居民档案结构重组
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