Browse Source

居民详情小问题修改

v1.1
mk 2 years ago
parent
commit
1337845653
  1. 20
      src/assets/scss/pages/resiInfo.scss
  2. 6
      src/views/components/addResi.vue
  3. 7
      src/views/components/resiExpand/index.vue
  4. 2
      src/views/components/resiForm.vue
  5. 105
      src/views/modules/base/resi.vue
  6. 1
      src/views/modules/communityParty/elegant/detail.vue
  7. 5
      src/views/modules/portrayal/jumin/cpts/graph.vue
  8. 37
      src/views/modules/portrayal/jumin/cpts/staffTag.vue
  9. 769
      src/views/modules/portrayal/jumin/index.vue

20
src/assets/scss/pages/resiInfo.scss

@ -58,10 +58,17 @@
padding-left: 16px; padding-left: 16px;
cursor: pointer; cursor: pointer;
line-height: 38px; line-height: 38px;
.full{
color: #0056d6;
}
.incomplete{
color: #ff5107;
}
} }
.active{ .active{
background: #F7FAFF; background: #F7FAFF;
color: #0056D6; color: #0056D6 !important;
position: relative; position: relative;
&::after{ &::after{
content: ''; content: '';
@ -99,10 +106,12 @@
.f-label { .f-label {
width: 100px; width: 100px;
text-align: right; text-align: right;
color: rgba(51, 51, 51, .85) ;
>b{ >b{
font-weight: 400; font-weight: 400;
position: relative; position: relative;
color:#ff5107; color: rgba(51, 51, 51, .85) ;
&::after{ &::after{
content: '*'; content: '*';
position: absolute; position: absolute;
@ -124,12 +133,7 @@
} }
} }
} }
.full{
color: #0056d6;
}
.incomplete{
color: #ff5107;
}
::v-deep .el-button--text{ ::v-deep .el-button--text{
padding: 0; padding: 0;
} }

6
src/views/components/addResi.vue

@ -606,8 +606,8 @@ export default {
children: [ children: [
{ {
label: "所患大病", label: "所患大病",
itemType: "select1", itemType: "checkbox",
formName: "illnessCode", formName: "illnessCodes",
opctionUrl: 'sys/dict/data/dictlist', opctionUrl: 'sys/dict/data/dictlist',
opctionParams: { dictType: 'illness_code' }, opctionParams: { dictType: 'illness_code' },
opction: [] opction: []
@ -619,7 +619,7 @@ export default {
{ {
label: "所患慢病", label: "所患慢病",
itemType: "checkbox", itemType: "checkbox",
formName: "chronicDiseaseCode", formName: "chronicDiseaseCodes",
opctionUrl: 'sys/dict/data/dictlist', opctionUrl: 'sys/dict/data/dictlist',
opctionParams: { dictType: 'chronic_disease_code' }, opctionParams: { dictType: 'chronic_disease_code' },
opction: [] opction: []

7
src/views/components/resiExpand/index.vue

@ -115,11 +115,11 @@ export default {
}, },
// //
seriousIllnessDto: { seriousIllnessDto: {
illnessCode: null illnessCodes: []
}, },
// //
chronicDiseaseDto: { chronicDiseaseDto: {
chronicDiseaseCode: [] chronicDiseaseCodes: []
}, },
// //
deathDto: { deathDto: {
@ -147,9 +147,10 @@ export default {
employmentSituation: null, employmentSituation: null,
pubWelfareJobFlag: null pubWelfareJobFlag: null
}, },
// //
ensureHouseDto: { ensureHouseDto: {
community: null, liveCommunity: null,
housingNature: null housingNature: null
}, },
// //

2
src/views/components/resiForm.vue

@ -1042,7 +1042,7 @@ export default {
}, },
{ {
label: "通知书领取日期", label: "通知书领取日期",
itemType: "datepicker1",//,,, itemType: "datepicker1",
formName: "notificationRcvDate", formName: "notificationRcvDate",
opction: [] opction: []
}, },

105
src/views/modules/base/resi.vue

@ -70,7 +70,8 @@
{{ handleFilterSpan(scope.row, item) }} {{ handleFilterSpan(scope.row, item) }}
</a> </a>
<div v-else-if="item.columnName == 'gender'"> <div v-else-if="item.columnName == 'gender'">
{{ scope.row.gender == null ? '--' : scope.row.gender == 1 ? '男' : scope.row.gender == 2 ? '女' : '--' }} {{ scope.row.gender == null ? '--' : scope.row.gender == 1 ? '男' : scope.row.gender == 2 ? '女' :
'--' }}
</div> </div>
<div v-else-if="item.columnName == 'birthday'"> <div v-else-if="item.columnName == 'birthday'">
{{ {{
@ -240,7 +241,7 @@
<template v-if="filterEdit(scope.row.agencyId)"> <template v-if="filterEdit(scope.row.agencyId)">
<el-button v-if="btnAuths.ic_resi_update" style="margin-right: 10px" <el-button v-if="btnAuths.ic_resi_update" style="margin-right: 10px"
@click="handleEdit(scope.row)" size="small" type="text">编辑</el-button> @click="handelCLickShowCheckPassword(scope.row)" size="small" type="text">编辑</el-button>
<el-popconfirm v-if="btnAuths.ic_resi_del" title="删除之后无法回复,确认删除?" <el-popconfirm v-if="btnAuths.ic_resi_del" title="删除之后无法回复,确认删除?"
@onConfirm="handleDel(scope.row)"> @onConfirm="handleDel(scope.row)">
@ -331,6 +332,17 @@
width="620px" top="5vh" class="dialog-h" @closed="diaClose"> width="620px" top="5vh" class="dialog-h" @closed="diaClose">
<resideath-add ref="ref_death" @dialogCancle="deathClose"></resideath-add> <resideath-add ref="ref_death" @dialogCancle="deathClose"></resideath-add>
</el-dialog> </el-dialog>
<el-dialog title="密码验证" :visible.sync="showCheckPassword">
<el-form :model="checkPasswordFrom" :rules="checkPasswordRulse" ref="checkPasswordFrom">
<el-form-item label="密码" prop="password">
<el-input v-model="checkPasswordFrom.password" autocomplete="off" type="password" placeholder="请输入当前账号密码"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="showCheckPassword = false"> </el-button>
<el-button type="primary" @click="handelClickCheckPassword"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
@ -379,6 +391,16 @@ export default {
isIndeterminate: false, isIndeterminate: false,
dialogEditVisible: false, dialogEditVisible: false,
dialogVisible: false, dialogVisible: false,
showCheckPassword: false,
checkPasswordFrom: {
password: ''
},
checkPasswordRulse: {
password: [
{ required: true, message: '请输入密码', trigger: 'blur' },
{ min: 6, max: 18, message: '长度在 6 到 18 个字符', trigger: 'blur' }
]
},
formType: 'add', formType: 'add',
// //
dialogVisible2: false, dialogVisible2: false,
@ -875,30 +897,71 @@ export default {
return item; return item;
}); });
}, },
handelCLickShowCheckPassword(row) {
//
async handleEdit(row) {
this.editUserId = row.resiId; this.editUserId = row.resiId;
this.formName = "编辑居民"; this.showCheckPassword = true;
this.formType = 'edit'
this.dialogVisible = true;
await this.residentBaseInfo();
}, },
// handelClickCheckPassword() {
residentBaseInfo() { this.$refs.checkPasswordFrom.validate(async vali => {
this.$http if (vali) {
.post(`/actual/base/residentBaseInfo/detail/clear/${this.editUserId}`) const url = `/actual/base/residentBaseInfo/getResiUserInfo/${this.checkPasswordFrom.password}`;
.then(({ data: res }) => { let parm = {
if (res.code !== 0) { password
return this.$message.error(res.msg); }
const { data, code, msg } = await requestPost(url, parm);
if (code === 0) {
this.formName = "编辑居民";
this.formType = 'edit'
this.dialogVisible = true;
this.$refs.baseForm.old_from(data);
this.showCheckPassword = false
} else { } else {
this.$refs.baseForm.old_from(res.data); this.$message.error(msg);
} }
}) } else {
.catch((err) => { return false
return this.$message.error("网络错误"); }
}); })
}, },
// async handleSaveTuomin(password) {
// const url = `/actual/base/residentBaseInfo/getResiUserInfo/${this.editUserId}`;
// let parm = {
// password
// }
// const { data, code, msg } = await requestPost(url, parm);
// if (code === 0) {
// this.formName = "";
// this.formType = 'edit'
// this.dialogVisible = true;
// this.$refs.baseForm.old_from(data);
// this.showCheckPassword = false
// } else {
// this.$message.error(msg);
// }
// },
//
// async handleEdit(row) {
// this.editUserId = row.resiId;
// this.formName = "";
// this.formType = 'edit'
// this.dialogVisible = true;
// await this.residentBaseInfo();
// },
//
// residentBaseInfo() {
// this.$http
// .post(`/actual/base/residentBaseInfo/detail/clear/${this.editUserId}`)
// .then(({ data: res }) => {
// if (res.code !== 0) {
// return this.$message.error(res.msg);
// } else {
// this.$refs.baseForm.old_from(res.data);
// }
// })
// .catch((err) => {
// return this.$message.error("");
// });
// },
handlerReset() { handlerReset() {
this.$refs.baseForm.resetForm(); this.$refs.baseForm.resetForm();
}, },

1
src/views/modules/communityParty/elegant/detail.vue

@ -72,7 +72,6 @@ export default {
watch: {}, watch: {},
async mounted () { async mounted () {
console.log('mounted-----我执行了')
}, },

5
src/views/modules/portrayal/jumin/cpts/graph.vue

@ -52,7 +52,6 @@ export default {
watch: { watch: {
userInfo: { userInfo: {
handler(newVal, oldVal) { handler(newVal, oldVal) {
console.log(newVal.resiId);
this.getFamilyRelationshipList() this.getFamilyRelationshipList()
}, },
deep: true deep: true
@ -73,9 +72,9 @@ export default {
let familyList = data.map((item, index) => ({ let familyList = data.map((item, index) => ({
'id': `N${index + 1}`, 'id': `N${index + 1}`,
'text': item.name, 'text': item.name,
'innerHTML': `<div class="c-my-node${index == 0 ? '1' : '2'} c-my-node-${index == 0 ? item.gender == 1 ? 'father' : 'mother' : item.houseHolderRel == '配偶' ? item.gender == '1' ? 'mother' : 'father' : item.houseHolderRel == '女儿' ? 'girl' : item.houseHolderRel == '儿子' ? 'gon' : item.houseHolderRel == '父亲' || item.houseHolderRel == '祖父母' ? item.gender == 1 ? 'grandpa' : 'grandma' : item.houseHolderRel == '母亲' ? 'grandma' : 'father'}"><div class="c-node-name${index == 0 ? '1' : '2'}" style="color:#000">${item.name.length === 2 ? 'innerHTML': `<div class="c-my-node${index == 0 ? '1' : '2'} c-my-node-${item.type == 1?'home':index == 0 ? item.gender == 1 ? 'father' : 'mother' : item.houseHolderRel == '配偶' ? item.gender == '1' ? 'mother' : 'father' : item.houseHolderRel == '女儿' ? 'girl' : item.houseHolderRel == '儿子' ? 'gon' : item.houseHolderRel == '父亲' || item.houseHolderRel == '祖父母' ? item.gender == 1 ? 'grandpa' : 'grandma' : item.houseHolderRel == '母亲' ? 'grandma' : 'father'}"><div class="c-node-name${index == 0 ? '1' : '2'}" style="color:#000">${item.type == 1?`${item.name}`:item.name.length === 2 ?
item.name.substring(0, 1) + '*' : item.name.substring(0, 1) + '*' :
item.name.substring(0, 1) + '*' + item.name.substring(2)} ${item.age}</div></div>` item.name.substring(0, 1) + '*' + item.name.substring(2)} ${item.age?`${item.age})岁`:''}</div></div>`
})) }))
let lineList = data.map((item, index) => ({ let lineList = data.map((item, index) => ({
'from': 'N1', 'from': 'N1',

37
src/views/modules/portrayal/jumin/cpts/staffTag.vue

@ -17,8 +17,9 @@
</el-form-item> </el-form-item>
<el-form-item :prop="'tableData.' + scope.$index + '.value'" v-if="scope.row.type == 'checkbox'"> <el-form-item :prop="'tableData.' + scope.$index + '.value'" v-if="scope.row.type == 'checkbox'">
<el-checkbox-group v-model="scope.row.value"> <el-checkbox-group v-model="scope.row.value">
<el-checkbox @change="handeleClickchckbox(item,$event,scope.$index )" :disabled="formType == 'detail'" <el-checkbox @change="handeleClickchckbox(item, $event, scope.$index)"
v-for="(item, index) in scope.row.option" :key="index" :label="item.value">{{ item.label :disabled="formType == 'detail'" v-for="(item, index) in scope.row.option" :key="index"
:label="item.value">{{ item.label
}}</el-checkbox> }}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
@ -45,7 +46,7 @@ export default {
type: 'radio', type: 'radio',
option: [ option: [
{ label: '群众', value: 0 }, { label: '群众', value: 0 },
{ label: '党员', value: 1}, { label: '党员', value: 1 },
{ label: '共青团员', value: 2 }, { label: '共青团员', value: 2 },
] ]
}, },
@ -197,24 +198,21 @@ export default {
}, },
methods: { methods: {
updatedForm() { updatedForm() {
if (!this.userInfo.categoryInfo) return; console.log(this.userInfo.baseInfoDto.categoryInfo);
if (!this.userInfo.baseInfoDto.categoryInfo) return;
const updateValue = (flag, dataIndex) => { const updateValue = (flag, dataIndex) => {
const { tableData } = this.formData; const { tableData } = this.formData;
const valueArray = tableData[dataIndex].value; const valueArray = tableData[dataIndex].value;
if (this.userInfo.baseInfoDto.categoryInfo[flag] === 1) {
if (this.userInfo.categoryInfo[flag] === 1) {
valueArray.push(flag); valueArray.push(flag);
} else { } else {
this.formData.tableData[dataIndex].value = valueArray.filter(item => item !== flag); this.formData.tableData[dataIndex].value = valueArray.filter(item => item !== flag);
} }
}; };
if(this.userInfo.baseInfoDto.categoryInfo.specialCrowdFlag == 1){
// partyFlag this.formData.tableData[3].value.push(...this.userInfo.specialDto.specialCategoryCodes);
if (this.userInfo.categoryInfo.partyFlag === 1) {
this.formData.tableData[0].value = '2';
} else if (this.userInfo.categoryInfo.partyFlag === 0) {
this.formData.tableData[0].value = '1';
} }
this.formData.tableData[0].value = this.userInfo.baseInfoDto.categoryInfo.partyFlag;
//keyindex(formData.tableData) //keyindex(formData.tableData)
updateValue('disabilityFlag', 1); updateValue('disabilityFlag', 1);
updateValue('seriousIllnessFlag', 1); updateValue('seriousIllnessFlag', 1);
@ -233,9 +231,9 @@ export default {
updateValue('publicWelfareFlag', 4); updateValue('publicWelfareFlag', 4);
}, },
handeleClickRadio(val) { handeleClickRadio(val) {
this.$emit('showDialog', {value:val === '1'?'parymemberInfoDto':val},val === '1') this.$emit('showDialog', { value: val === '1' ? 'parymemberInfoDto' : val }, val === '1')
}, },
handeleClickchckbox(item, event,index) { handeleClickchckbox(item, event, index) {
item.index = index item.index = index
this.$emit('showDialog', item, event) this.$emit('showDialog', item, event)
} }
@ -245,9 +243,18 @@ export default {
watch: { watch: {
userInfo: { userInfo: {
handler(newVal, oldVal) { handler(newVal, oldVal) {
this.formData.tableData.forEach((item, index) =>{
if(index!=0){
item.value = []
}else{
item.value = ''
}
})
this.updatedForm() this.updatedForm()
}, },
deep: true deep: true,
immediate: true
} }
}, },
} }

769
src/views/modules/portrayal/jumin/index.vue

@ -9,16 +9,17 @@
</div> </div>
<div class="menu"> <div class="menu">
<div class="progress"> <div class="progress">
<div class="text"><span>信息完整度</span> <span>70</span> </div> <div class="text"><span>信息完整度</span> <span>{{ score }}</span> </div>
<el-progress :percentage="70" :show-text="false"></el-progress> <el-progress :percentage="70" :show-text="false"></el-progress>
</div> </div>
<div class="list"> <div class="list">
<div :class="{ 'item': true, 'active': index == active }" v-for="(item, index) in menuList" <div :class="{ 'item': true, 'active': index == active }" v-for="(item, index) in menuList"
@click="handelCLickMenu(index)"> @click="handelCLickMenu(item.id, index)" v-show="item.filledQty != 0">
<span>{{ item.name }}</span><span <span>{{ item.name }}</span><span
:class="{ 'incomplete': index == '2' || index == '3', 'full': index != '2' && index != '3' }">{{ :class="{ 'incomplete': item.filledQty != item.totalQty && index != active, 'full': item.filledQty == item.totalQty }">{{
item.num }}</span> item.filledQty }}/{{
item.totalQty }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -118,14 +119,14 @@
<el-col :span="6" class="f-flex"> <el-col :span="6" class="f-flex">
<div class="f-label">备注</div> <div class="f-label">备注</div>
<div class="f-left8 f-font-color"> <div class="f-left8 f-font-color">
{{ resiDetailObj.baseInfoDt && resiDetailObj.baseInfoDto.remark ? resiDetailObj.baseInfoDto.remark : {{ resiDetailObj.baseInfoDto.remark ? resiDetailObj.baseInfoDto.remark :
"--" }} "--" }}
</div> </div>
</el-col> </el-col>
<el-col :span="6" class="f-flex"> <el-col :span="6" class="f-flex">
<div class="f-label">创建日期</div> <div class="f-label">创建日期</div>
<span class="f-left8 f-font-color"> <span class="f-left8 f-font-color">
{{ resiDetailObj.baseInfoDt && resiDetailObj.baseInfoDto.createdTime ? {{ resiDetailObj.baseInfoDto.createdTime ?
resiDetailObj.baseInfoDto.createdTime : "--" }}</span> resiDetailObj.baseInfoDto.createdTime : "--" }}</span>
</el-col> </el-col>
</el-row> </el-row>
@ -134,46 +135,59 @@
<div class="f-flex "> <div class="f-flex ">
<div class="f-label">更新时间</div> <div class="f-label">更新时间</div>
<span class="f-left8 f-font-color"> <span class="f-left8 f-font-color">
{{ resiDetailObj.baseInfoDt && resiDetailObj.baseInfoDto.updatedTime ? {{ resiDetailObj.baseInfoDto.updatedTime ?
resiDetailObj.baseInfoDto.updatedTime : "--" }}</span> resiDetailObj.baseInfoDto.updatedTime : "--" }}</span>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<div class="title-small">居住信息</div> <div class="title-small">居住信息</div>
<!-- <el-row type="flex" justify="" class="f-m-top23"> <section v-for="(item, indexK) in resiDetailObj.resideInfoDtos" :key="indexK">
<el-col :span="24" class="f-flex"> <el-row type="flex" justify="" class="f-m-top23">
<div class="f-flex "> <el-col :span="12" class="f-flex">
<div class="f-label"><b>所属房屋</b></div> <div class="f-flex ">
<span class="f-left8 f-font-color"> <div class="f-label"><b>所属网格</b></div>
{{ resiDetailObj.houseInfo.gridName + '-' + resiDetailObj.houseInfo.homeName || '--' }} <span class="f-left8 f-font-color">
</span> {{ item.gridName || '--' }}
</div> </span>
</el-col> </div>
</el-row> --> </el-col>
<el-row type="flex" justify="" class="f-m-top23"> <el-col :span="12" class="f-flex">
<el-col :span="6" class="f-flex"> <div class="f-flex ">
<div class="f-flex "> <div class="f-label"><b>所属房屋</b></div>
<div class="f-label"><b>人房关系</b></div> <span class="f-left8 f-font-color">
<span class="f-left8 f-font-color">--</span> {{ item.gridName + '-' + item.homeName || '--' }}
</div> </span>
</el-col> </div>
<el-col :span="6" class="f-flex"> </el-col>
<div class="f-flex "> </el-row>
<div class="f-label"><b>人户状况</b></div> <el-row type="flex" justify="" class="f-m-top23">
<span class="f-left8 f-font-color">--</span> <el-col :span="6" class="f-flex">
</div> <div class="f-flex ">
</el-col> <div class="f-label"><b>人房关系</b></div>
<el-col :span="6" class="f-flex"> <span class="f-left8 f-font-color">
<div class="f-label"><b>户籍所在地</b></div> {{ item.resiHouseRel != null ? item.resiHouseRel === 0 ? '自住' : item.resiHouseRel ===
<div class="f-left8 f-font-color"> 1 ? '租住' : '--' : '--' }}
-- </span>
</div> </div>
</el-col> </el-col>
<el-col :span="6" class="f-flex"> <el-col :span="6" class="f-flex">
<div class="f-label"><b>与户主关系</b></div> <div class="f-flex ">
<span class="f-left8 f-font-color">--</span> <div class="f-label"><b>人户状况</b></div>
</el-col> <span class="f-left8 f-font-color">{{ householdSituationText(indexK) }}</span>
</el-row> </div>
</el-col>
<el-col :span="6" class="f-flex">
<div class="f-label"><b>户籍所在地</b></div>
<div class="f-left8 f-font-color">
{{ item.placeOfDomicile || '--' }}
</div>
</el-col>
<el-col :span="6" class="f-flex">
<div class="f-label"><b>与户主关系</b></div>
<span class="f-left8 f-font-color">{{ houseHolderRelText(indexK) }}</span>
</el-col>
</el-row>
</section>
<div class="title-small">拓展信息</div> <div class="title-small">拓展信息</div>
<el-row type="flex" justify="" class="f-m-top23"> <el-row type="flex" justify="" class="f-m-top23">
@ -205,7 +219,7 @@
</div> </div>
</el-col> </el-col>
<el-col :span="6" class="f-flex"> <el-col :span="6" class="f-flex">
<div class="f-labels">工作单位:</div> <div class="f-label">工作单位:</div>
<span class="f-left8 f-font-color">{{ <span class="f-left8 f-font-color">{{
resiDetailObj.workInfoDto resiDetailObj.workInfoDto
? resiDetailObj.workInfoDto.workUnit ? resiDetailObj.workInfoDto.workUnit
@ -255,10 +269,22 @@
</el-row> </el-row>
<div class="title-small">关系图谱</div> <div class="title-small">关系图谱</div>
<graph :userInfo="resiDetailObj.baseInfoDto" v-if="resiDetailObj.baseInfoDto" /> <!-- <graph :userInfo="resiDetailObj.baseInfoDto" v-if="resiDetailObj.baseInfoDto" /> -->
<div class="title-small">人员标签</div> <div class="title-small">人员标签</div>
<staff-tag :userInfo="resiDetailObj.baseInfoDto.categoryInfo" <staff-tag :userInfo="resiDetailObj" ref="staffTag" v-if="Object.keys(resiDetailObj).length !== 0"></staff-tag>
v-if="Object.keys(resiDetailObj).length !== 0"></staff-tag> <section v-for="(sectionItem, sectionIndex) in expandList" :key="sectionIndex">
<div class="title-small" :id="sectionItem.id">{{ sectionItem.title }}</div>
<el-row type="flex" justify="" class="f-m-top23" v-for="(row, rowIndex) in sectionItem.rows"
:key="rowIndex + sectionItem.id">
<el-col :span="8" class="f-flex" v-for="(item, itemIndex) in row" :key="itemIndex">
<div class="f-flex">
<div class="f-label">{{ item.label }}</div>
<span class="f-left8 f-font-color">{{ item.value ? item.value : "--" }}</span>
</div>
</el-col>
</el-row>
</section>
<div class="title-small">业务记录</div> <div class="title-small">业务记录</div>
<business-record :userInfo="resiDetailObj"></business-record> <business-record :userInfo="resiDetailObj"></business-record>
<div class="title-small">更新记录</div> <div class="title-small">更新记录</div>
@ -267,7 +293,7 @@
<el-dialog title="密码验证" :visible.sync="showCheckPassword"> <el-dialog title="密码验证" :visible.sync="showCheckPassword">
<el-form :model="form" :rules="rules" ref="form"> <el-form :model="form" :rules="rules" ref="form">
<el-form-item label="密码" prop="password"> <el-form-item label="密码" prop="password">
<el-input v-model="form.password" autocomplete="off" placeholder="请输入当前账号密码"></el-input> <el-input v-model="form.password" autocomplete="off" type="password" placeholder="请输入当前账号密码"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -294,59 +320,432 @@ export default {
showFlagIdCardBtn: true, showFlagIdCardBtn: true,
showFlagMobileBtn: true, showFlagMobileBtn: true,
active: 0, active: 0,
menuList: [ menuList: [],
{ score: null,
name: '基本信息',
num: '(7/7)'
},
{
name: '居住信息',
num: '(4/4)'
},
{
name: '拓展信息',
num: '(3/4)'
},
{
name: '党员信息',
num: '(0/3)'
},
// {
// name: '0/3'
// },
// {
// name: '0/3'
// },
// {
// name: '0/3'
// },
// {
// name: '退0/3'
// },
// {
// name: '0/3'
// },
// {
// name: '0/3'
// },
{
name: '业务记录',
num: '(1)'
}, {
name: '更新记录',
num: '(1)'
}
],
age: null, age: null,
nationalityList: [],// nationalityList: [],//
marriageArr: [], // marriageArr: [], //
spouseArr: [],// spouseArr: [],//
careerStatusArr: [],// careerStatusArr: [],//
householdSituationArr: [],//
houseHolderRelArr: [],//
idTypeList,// idTypeList,//
showCheckPassword: false, showCheckPassword: false,
originalExpandList: [{
id: 'healthDto',
title: '残疾信息',
children: [
{
label: "残疾类别",
itemType: "select1",
formName: "disabilityCategoryCode",
opctionUrl: 'sys/dict/data/dictlist',
opctionParams: { dictType: 'disability_category_code' },
opction: []
},
{
label: "残疾等级",
itemType: "select1",
formName: "disabilityLevel",
opctionUrl: 'sys/dict/data/dictlist',
opctionParams: { dictType: 'disability_level' },
opction: []
},
{
label: "残疾证号",
itemType: "input1",
formName: "disabilityNum",
},
{
label: "残疾说明",
itemType: "input1",
formName: "disabilityDesc",
},
{
label: "监护人",
itemType: "radio1",
formName: "guardianFlag",
opction: [
{ label: '有', formName: '', value: 1 },
{ label: '无', formName: '', value: 0 }
]
},
{
label: "监护人姓名",
itemType: "input1",
formName: "guardianName",
},
{
label: "监护人联系电话",
itemType: "input1",
formName: "guardianMobile",
},
{
label: "技能特长",
itemType: "radio1",
formName: "specialSkillFlag",
opction: [
{ label: '有', formName: '', value: 1 },
{ label: '无', formName: '', value: 0 }
]
},
{
label: "劳动能力",
itemType: "radio1",
formName: "workCapacityFlag",
opction: [
{ label: '有', formName: '', value: 1 },
{ label: '无', formName: '', value: 0 }
]
},
]
},
{
id: 'seriousIllnessDto',
title: '大病信息',
children: [
{
label: "所患大病",
itemType: "checkbox",
formName: "illnessCodes",
opctionUrl: 'sys/dict/data/dictlist',
opctionParams: { dictType: 'illness_code' },
opction: []
},]
},
{
id: 'chronicDiseaseDto',
title: '慢病信息',
children: [
{
label: "所患慢病",
itemType: "checkbox",
formName: "chronicDiseaseCodes",
opctionUrl: 'sys/dict/data/dictlist',
opctionParams: { dictType: 'chronic_disease_code' },
opction: []
},
]
},
{
id: 'deathDto',
title: '死亡信息',
children: [
{
label: "死亡时间",
itemType: "datepicker1",
formName: "deathTime",
},
]
},
{
id: 'oldPeopleDto',
title: '老年人信息',
children: [
{
label: "老年人分类",
itemType: "select1",
multiple: true,
formName: "oldPeopleCategories",
opctionUrl: 'sys/dict/data/dictlist',
opctionParams: { dictType: 'oldPeople_categories' },
},
{
label: "居住情况",
itemType: "select1",
formName: "resideSituation",
opctionUrl: 'sys/dict/data/dictlist',
opctionParams: { dictType: 'reside_situation' },
},
{
label: "高龄补助",
itemType: "inputNum",
formName: "oldSubsidy",
},
]
},
{
id: 'subsistenceAllowanceDto',
title: '低保信息',
children: [
{
label: "低保类别",
itemType: "select1",
formName: "category",
opctionUrl: 'sys/dict/data/dictlist',
opctionParams: { dictType: 'subsistence_allowance_category' },
},
{
label: "低保享受原因",
itemType: "checkbox",
formName: "reasons",
opctionUrl: 'sys/dict/data/dictlist',
opctionParams: { dictType: 'subsistence_allowance_reasons' },
opction: []
},
]
},
{
id: "parymemberInfoDto",
title: '党员信息',
children: [
{
label: "入党时间",
itemType: "datepicker1",
formName: "joinTime",
opction: [
]
},
{
label: "转正时间",
itemType: "datepicker1",
formName: "positiveTime",
opction: [
]
},
{
label: "所属党组织",
itemType: "cascader1",
formName: "partyOrgId",
opction: [
]
},
{
label: "流动党员",
itemType: "radio1",
formName: "flowFlag",
opction: [
{ label: '是', value: 1 },
{ label: '否', value: 0 },
]
},
{
label: "流动党员活动证号",
itemType: "input1",
formName: "flowActNum",
},
{
label: "职务",
itemType: "select1",
formName: "partyJob",
opctionUrl: 'sys/dict/data/dictlist',
opctionParams: { dictType: 'party_job' },
opction: [
]
},
{
label: "工作职责",
itemType: "input1",
formName: "duty",
},
{
label: "是否退休",
itemType: "radio1",
formName: "retiredFlag",
opction: [
{ label: '是', value: 1 },
{ label: '否', value: 0 },
]
}, {
label: "党员中心户",
itemType: "radio1",
formName: "centerFlag",
opction: [
{ label: '是', value: 1 },
{ label: '否', value: 0 },
]
}, {
label: "免学习",
itemType: "radio1",
formName: "studyNotNeed",
opction: [
{ label: '是', value: 1 },
{ label: '否', value: 0 },
]
}, {
label: "入党时所在党支部",
itemType: "input1",
formName: "joinBranchName",
}, {
label: "组织关系转入社区时间",
itemType: "datepicker1",
formName: "joinCommunityTime",
opction: [
]
},
]
},
{
id: 'ensureHouseDto',
title: '保障房信息',
children: [
{
label: "所在社区",
itemType: "input1",
formName: "liveCommunity",
},
{
label: "住房性质",
itemType: "select1",
formName: "housingNature",
opctionUrl: 'sys/dict/data/house',
opctionParams: { formCode: "resi_base_info" },
opction: [
]
}
]
},
{
id: 'veteranDto',
title: '退役军人信息',
children: [
{
label: "入伍时间",
itemType: "datepicker1",
formName: "joinArmyTime",
opction: [
]
},
{
label: "退伍时间",
itemType: "datepicker1",
formName: "leaveArmyTime",
opction: [
]
},
{
label: "服役单位",
itemType: "input1",
formName: "serviceUnit",
},
{
label: "接收单位",
itemType: "input1",
formName: "receiveUnit",
},
{
label: "待安置补助金",
itemType: "inputNum",
formName: "settlementAmount",
opction: [
]
},
{
label: "培训状况",
itemType: "input1",
formName: "trainDesc",
},
{
label: "现就业情况",
itemType: "input1",
formName: "employmentSituation",
},
{
label: "是否办理公益性岗位",
itemType: "radio1",
formName: "pubWelfareJobFlag",
opction: [
{ label: '是', value: 1 },
{ label: '否', value: 0 },
]
}
]
},
{
id: 'unitedFrontDto',
title: '统战人员信息',
children: [{
label: "统战类型",
itemType: "input1",
formName: "unitedFrontType",
}]
},
{
id: 'volunteerDto',
title: '志愿者信息',
children: [
{
label: "志愿者类别",
itemType: "checkbox",
formName: "volunteerCategory",
opctionUrl: 'sys/dict/data/dictlist',
opctionParams: { dictType: "VOLUNTEER_CATEGORY" },
opction: [
]
}
]
},
{
id: 'specialSupportDto',
title: '特扶人员信息',
children: [
{//0
label: "特扶类别",
itemType: "select1",
formName: "specialSupportType",
opction: [
{
value: '1',
label: '失独'
},
{
value: '2',
label: '伤残'
}
]
},
{//1
label: "子女姓名",
itemType: "input1",
formName: "childName",
opction: [
]
},
{//2
label: "子女性别",
itemType: "select1",
formName: "childGender",
opction: [
{
value: '1',
label: '男'
},
{
value: '2',
label: '女'
}
]
},
{
label: "子女死亡日期",
itemType: "datepicker1",
formName: "certificateDate",
opction: [],
},
{
label: "子女伤残类别",
itemType: "select1",
formName: "childDisabilityCategoryCode",
opctionUrl: 'sys/dict/data/dictlist',
opctionParams: { dictType: 'disability_category_code' },
opction: []
},
{
label: "子女伤残等级",
itemType: "select1",
formName: "childDisabilityLevel",
opctionUrl: 'sys/dict/data/dictlist',
opctionParams: { dictType: 'disability_level' },
opction: []
}
]
},],
expandList: [],
form: { form: {
password: ''// password: ''//
}, },
@ -359,24 +758,20 @@ export default {
}, },
components: { graph, staffTag, businessRecord, changeRecord }, components: { graph, staffTag, businessRecord, changeRecord },
async created() { async created() {
this.resiId = this.$store.state.huaXiang.userInfo.resiId; // this.resiId = this.$store.state.huaXiang.userInfo.resiId;
console.log(this.$store.state.huaXiang.userInfo); // await this.getNationalityList();
await this.getNationalityList(); // this.getResiDetail();
this.getResiDetail(); // this.getMarriage()
this.getMarriageNation() // this.getSpouse()
this.getSpouse() // this.getCareerStatus()
this.getChangeRecordDetailById() // this.getChangeRecordDetailById()
// this.getHouseholdSituation()
// this.gethouseHolderRel()
}, },
mounted() { mounted() {
}, },
activated() { activated() {
this.resiDetailObj = null
this.resiId = this.$store.state.huaXiang.userInfo.resiId;
this.getNationalityList();
this.getResiDetail();
this.getMarriageNation()
this.getSpouse()
this.getChangeRecordDetailById()
}, },
methods: { methods: {
@ -421,26 +816,109 @@ export default {
}, },
getResiDetail() { getResiDetail() {
this.$http this.$http
.get(`/actual/base/residentIntegratedInfo/detail/masked/1740209624289349634`) .get(`/actual/base/residentIntegratedInfo/detail/masked/${this.resiId}`)
.then((res) => { .then(async (res) => {
console.log(res.data.data, 'resiDetailObj');
this.resiDetailObj = res.data.data || {}; this.resiDetailObj = res.data.data || {};
// this.resiDetailObj.nationalityName = '' const nameMap = {
ext: '拓展信息',
united_front: '统战人员信息',
party_member: '党员信息',
death: '死亡信息',
disability: '残疾信息',
subsistence_allowance: '低保信息',
serious_illness: '大病信息',
veteran: '退役军人信息',
special_support: '特扶人员信息',
old_people: '老年人信息',
ensure_house: '保障房信息',
chronic_disease: '慢病信息',
base: '基本信息'
};
this.menuList = Object.entries(res.data.data.integrityData.integrityQtyMap).map(([key, value]) => ({
name: nameMap[key],
id: key,
filledQty: value.filledQty,
totalQty: value.totalQty
})).reverse();
let arr = this.menuList.filter(item => item.filledQty > 0 && item.name !== '基本信息' && item.name !== '拓展信息');
this.expandList = this.originalExpandList.filter(itemA => {
return arr.some(itemB => itemB.name === itemA.title);
});
await Promise.all(this.expandList.map(async item => {
await Promise.all(item.children.map(async child => {
const key = child.formName;
if (this.resiDetailObj[item.id].hasOwnProperty(key)) {
child.value = await this.getDictName(child.opctionUrl, child.opctionParams, this.resiDetailObj[item.id][key], child.itemType, item.opction);
}
}));
}));
this.expandList.forEach(item => {
const rows = [];
const chunkSize = 3;
for (let i = 0; i < item.children.length; i += chunkSize) {
rows.push(item.children.slice(i, i + chunkSize));
}
item.rows = rows;
});
this.menuList.push(
{
name: '业务记录',
filledQty: 1,
totalQty: 1
},
{
name: '更新纪录',
filledQty: 1,
totalQty: 1
}
);
this.score = res.data.data.integrityData.score;
const birthdayTimestamp = Date.parse(res.data.data.baseInfoDto.birthday); const birthdayTimestamp = Date.parse(res.data.data.baseInfoDto.birthday);
this.age = this.calculateAge(birthdayTimestamp); this.age = this.calculateAge(birthdayTimestamp);
this.nationalityList.forEach(element => { this.nationalityList.forEach(element => {
if (element.value === res.data.data.nationality) { if (element.value === res.data.data.nationality) {
this.resiDetailObj.baseInfoDto.nationalityName = element.label this.resiDetailObj.baseInfoDto.nationalityName = element.label;
} }
}); });
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
}); });
}, },
handelCLickMenu(index) {
async getDictName(url, params, value, itemType, opction) {
try {
if (url) {
const { data } = await this.$http.post(url, params);
const dictData = data.data;
if (itemType == 'checkbox') {
const matchedItem = dictData.find(item => value.includes(item.value.toString()));
return matchedItem ? matchedItem.label : '--';
} else if (itemType == 'select1') {
const matchedItem = dictData.find(item => item.value === value);
return matchedItem ? matchedItem.label : '--';
}
} else {
if (itemType == 'radio') {
const matchedItem = opction.find(item => item.value === value)
return matchedItem ? matchedItem.label : '--';
} else if (itemType == 'input1') {
return value ? value : '--';
}
}
} catch (error) {
console.log(error);
}
},
handelCLickMenu(id, index) {
this.active = index this.active = index
if (index == 0) return
const bottomElement = document.getElementById('pane-jumin-huaxiang');
bottomElement.scrollIntoView({ behavior: 'smooth', block: 'end' });
}, },
handelCLickShowCheckPassword(type) { handelCLickShowCheckPassword(type) {
this.form.password = ''; this.form.password = '';
@ -500,10 +978,8 @@ export default {
} }
}, },
// //
async getMarriageNation() { async getMarriage() {
try { try {
const { data } = await this.$http.post("sys/dict/data/dictlist", { const { data } = await this.$http.post("sys/dict/data/dictlist", {
dictType: "marriage", dictType: "marriage",
@ -514,7 +990,7 @@ export default {
} }
}, },
// //
async getMarriageNation() { async getCareerStatus() {
try { try {
const { data } = await this.$http.post("sys/dict/data/dictlist", { const { data } = await this.$http.post("sys/dict/data/dictlist", {
dictType: "career_status", dictType: "career_status",
@ -524,7 +1000,17 @@ export default {
console.log(error, "获取就业状态字典"); console.log(error, "获取就业状态字典");
} }
}, },
//
async getHouseholdSituation() {
try {
const { data } = await this.$http.post("sys/dict/data/dictlist", {
dictType: "household_situation",
});
this.householdSituationArr = data.data;
} catch (error) {
console.log(error, "获取人户状况");
}
},
// //
async getSpouse() { async getSpouse() {
try { try {
@ -536,8 +1022,38 @@ export default {
console.log(error, "获取配偶情况字典"); console.log(error, "获取配偶情况字典");
} }
}, },
//
async gethouseHolderRel() {
try {
const { data } = await this.$http.post("sys/dict/data/relationship", {
formCode: "resi_base_info",
});
this.houseHolderRelArr = data.data;
} catch (error) {
console.log(error, "获取与户主关系");
}
},
houseHolderRelText(index) {
let text = "--";
this.houseHolderRelArr.forEach((item) => {
if (item.value == this.resiDetailObj.resideInfoDtos[index].houseHolderRel) {
text = item.label;
}
});
return text;
},
householdSituationText(index) {
let text = "--";
this.householdSituationArr.forEach((item) => {
if (item.value == this.resiDetailObj.resideInfoDtos[index].householdSituation) {
text = item.label;
}
});
return text;
}
}, },
computed: { computed: {
categoryDictText() { categoryDictText() {
let text = "--"; let text = "--";
this.marriageArr.forEach((item) => { this.marriageArr.forEach((item) => {
@ -575,7 +1091,24 @@ export default {
return text; return text;
} }
}, },
watch: {}, watch: {
'$store.state.huaXiang.userInfo.resiId': {
handler(newValue, oldValue) {
this.resiDetailObj = null
this.resiId = newValue;
this.getNationalityList();
this.getResiDetail();
this.getMarriage()
this.getSpouse()
this.getCareerStatus()
this.getChangeRecordDetailById()
this.getHouseholdSituation()
this.gethouseHolderRel()
},
deep: true, //
immediate: true // handler
}
}
} }
</script> </script>

Loading…
Cancel
Save