居民档案结构重组
This commit is contained in:
@@ -12,17 +12,17 @@
|
||||
</el-tabs>
|
||||
</template>
|
||||
</ai-list>
|
||||
<component v-else :is="detailComponent" :instance="instance" :dict="dict" :permissions="permissions"/>
|
||||
<component v-else :is="detailComponent" :instance="instance" :dict="dict" :permissions="permissions"
|
||||
:name="dict.getLabel('residentType',activeName)"/>
|
||||
</section>
|
||||
</template>
|
||||
<script>
|
||||
import {mapState} from "vuex";
|
||||
import localResident from "./localResident";
|
||||
import ListTpl from "./listTpl";
|
||||
import MobileResident from "./mobileResident";
|
||||
import ResidentList from "./residentList";
|
||||
import ResidentSta from "./residentSta";
|
||||
import auditList from "./auditList";
|
||||
import auditDetail from "./audtiDetail";
|
||||
import auditDetail from "./auditDetail";
|
||||
import ResidentDetail from "./residentDetail";
|
||||
|
||||
export default {
|
||||
name: "AppResident",
|
||||
@@ -37,25 +37,9 @@ export default {
|
||||
resident: this
|
||||
}
|
||||
},
|
||||
components: {ResidentSta, MobileResident, ListTpl, localResident, auditList, audtiDetail: auditDetail},
|
||||
components: {ResidentDetail, ResidentSta, ResidentList, auditList, auditDetail},
|
||||
computed: {
|
||||
...mapState(["user"]),
|
||||
tabs() {
|
||||
let details = {
|
||||
"本地居民": localResident,
|
||||
"流动人员": MobileResident,
|
||||
}
|
||||
return [
|
||||
...this.dict.getDict('residentType').map(e => ({
|
||||
label: e.dictName,
|
||||
value: e.dictValue,
|
||||
comp: ListTpl,
|
||||
detail: details[e.dictName]
|
||||
})),
|
||||
{label: "居民统计", value: "3", comp: ResidentSta},
|
||||
{label: "居民档案审核", value: "4", comp: auditList, detail: auditDetail}
|
||||
]
|
||||
},
|
||||
hideLevel() {
|
||||
return this.user.info.areaList?.length || 0
|
||||
},
|
||||
@@ -71,6 +55,21 @@ export default {
|
||||
return {
|
||||
areaId: '',
|
||||
activeName: "0",
|
||||
tabs: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
initTabs() {
|
||||
this.tabs = [
|
||||
...this.dict.getDict('residentType').map(e => ({
|
||||
label: e.dictName,
|
||||
value: e.dictValue,
|
||||
comp: ResidentList,
|
||||
detail: ResidentDetail
|
||||
})),
|
||||
{label: "居民统计", value: "3", comp: ResidentSta},
|
||||
{label: "居民档案审核", value: "4", comp: auditList, detail: auditDetail}
|
||||
]
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@@ -79,7 +78,7 @@ export default {
|
||||
this.dict.load('residentType', "sex", "faithType", "fileStatus", "legality", "education", "maritalStatus",
|
||||
"politicsStatus", "householdName", "nation", "liveReason", "certificateType", "job", "militaryStatus",
|
||||
"householdRelation", "logoutReason", "nation", "registerStatus", "residentTipType", "liveCategory",
|
||||
"livePeriod", "language", "nationality", "residentType");
|
||||
"livePeriod", "language", "nationality", "importTips").then(() => this.initTabs());
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<section class="addAborigines">
|
||||
<section class="auditDetail">
|
||||
<ai-detail>
|
||||
<ai-title slot="title" title="详情" isShowBack @onBackClick="$router.push({query:{}})" isShowBottomBorder/>
|
||||
<template #content>
|
||||
@@ -482,7 +482,7 @@ export default {
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.addAborigines {
|
||||
.auditDetail {
|
||||
height: 100%;
|
||||
font-size: 14px;
|
||||
|
||||
77
packages/meta/AppResident/components/tagsManage.vue
Normal file
77
packages/meta/AppResident/components/tagsManage.vue
Normal file
@@ -0,0 +1,77 @@
|
||||
<template>
|
||||
<section class="tagsManage">
|
||||
<el-form ref="PersonalAssets" :model="form" size="small" label-width="0">
|
||||
<ai-edit-card title="标签信息" :show-btn="permissions('app_appresident_edit')"
|
||||
@save="submitTags" @cancel="getTags">
|
||||
<template #edit>
|
||||
<el-form-item prop="">
|
||||
<el-checkbox label="1">标签1</el-checkbox>
|
||||
</el-form-item>
|
||||
</template>
|
||||
<template>
|
||||
<el-tag effect="dark">标签二</el-tag>
|
||||
</template>
|
||||
</ai-edit-card>
|
||||
</el-form>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapState} from "vuex";
|
||||
import AiEditCard from "./AiEditCard";
|
||||
|
||||
export default {
|
||||
name: "tagsManage",
|
||||
components: {AiEditCard},
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
permissions: Function,
|
||||
residentId: {required: true, default: ""}
|
||||
},
|
||||
computed: {
|
||||
...mapState(['user']),
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
form: {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getTags() {
|
||||
let {residentId} = this
|
||||
this.instance.post("/app/appresidentvehicle/list", null, {
|
||||
params: {residentId}
|
||||
}).then(res => {
|
||||
if (res?.data) {
|
||||
this.form.cars = res.data.records || []
|
||||
}
|
||||
})
|
||||
},
|
||||
submitTags(cb) {
|
||||
this.$refs.PersonalAssets.validate(v => {
|
||||
if (v) {
|
||||
let {residentId, form: {cars: residentVehicleList}} = this
|
||||
this.instance.post("/app/appresidentvehicle/update", {
|
||||
residentId, residentVehicleList
|
||||
}).then(res => {
|
||||
if (res?.code == 0) {
|
||||
this.$message.success("提交成功")
|
||||
this.getCars()
|
||||
cb?.()
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.getTags()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.tagsManage {
|
||||
}
|
||||
</style>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,11 @@
|
||||
<template>
|
||||
<section class="localResident">
|
||||
<section class="residentDetail">
|
||||
<ai-detail>
|
||||
<ai-title slot="title" :title="pageTitle" isShowBack @onBackClick="back" isShowBottomBorder>
|
||||
<template v-if="showDetail" #rightBtn>
|
||||
<el-button @click="beforeWriteOff()" icon="el-icon-switch-button" v-if="baseInfo.fileStatus==0">注销档案
|
||||
</el-button>
|
||||
<el-button icon="iconfont iconDelete" @click="handleDelete()" v-if="$permissions('app_appresident_del')">
|
||||
<el-button icon="iconfont iconDelete" @click="handleDelete()" v-if="permissions('app_appresident_del')">
|
||||
删除人员
|
||||
</el-button>
|
||||
</template>
|
||||
@@ -199,17 +199,7 @@
|
||||
</ai-table>
|
||||
</div>
|
||||
</ai-card>
|
||||
<ai-edit-card title="标签信息" :show-btn="permissions('app_appresident_edit')"
|
||||
@save="saveFrom" @cancel="getDetail(baseInfo.id)">
|
||||
<template #edit>
|
||||
<el-form-item label-width="0">
|
||||
<el-checkbox label="1">标签1</el-checkbox>
|
||||
</el-form-item>
|
||||
</template>
|
||||
<template>
|
||||
<el-tag effect="dark">标签二</el-tag>
|
||||
</template>
|
||||
</ai-edit-card>
|
||||
<tags-manage v-if="currentTab=='0'" v-bind="$props" :resident-id="baseInfo.id"/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="资产信息" lazy>
|
||||
<personal-assets v-if="currentTab==1" :resident-id="baseInfo.id" v-bind="$props"/>
|
||||
@@ -441,14 +431,16 @@
|
||||
import {mapState} from "vuex";
|
||||
import AiEditCard from "./components/AiEditCard";
|
||||
import PersonalAssets from "./components/personalAssets";
|
||||
import TagsManage from "./components/tagsManage";
|
||||
|
||||
export default {
|
||||
name: "localResident",
|
||||
components: {PersonalAssets, AiEditCard},
|
||||
name: "residentDetail",
|
||||
components: {TagsManage, PersonalAssets, AiEditCard},
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
permissions: Function,
|
||||
name: {default: ""}
|
||||
},
|
||||
data() {
|
||||
let IdNumberPass = (rule, value, callback) => {
|
||||
@@ -557,7 +549,8 @@ export default {
|
||||
return !!this.$route.query?.id
|
||||
},
|
||||
pageTitle() {
|
||||
return this.showDetail ? '本地居民信息' : '添加本地居民'
|
||||
let {name} = this
|
||||
return this.showDetail ? `${name}信息` : `添加${name}`
|
||||
},
|
||||
hasSpecial() {
|
||||
//是否有特殊人员信息
|
||||
@@ -708,7 +701,7 @@ export default {
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.localResident {
|
||||
.residentDetail {
|
||||
height: 100%;
|
||||
font-size: 14px;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<section class="listTpl">
|
||||
<section class="ResidentList">
|
||||
<ai-list isTabs>
|
||||
<template #content>
|
||||
<ai-search-bar>
|
||||
@@ -160,7 +160,7 @@
|
||||
import {mapState} from "vuex";
|
||||
|
||||
export default {
|
||||
name: "listTpl",
|
||||
name: "ResidentList",
|
||||
inject: ['resident'],
|
||||
props: {
|
||||
areaId: {default: ""},
|
||||
@@ -347,7 +347,7 @@ export default {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.listTpl {
|
||||
.ResidentList {
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user