|
@ -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"> |
|
|
|
|
|
<el-col :span="12" class="f-flex"> |
|
|
|
|
|
<div class="f-flex "> |
|
|
|
|
|
<div class="f-label"><b>所属网格:</b></div> |
|
|
|
|
|
<span class="f-left8 f-font-color"> |
|
|
|
|
|
{{ item.gridName || '--' }} |
|
|
|
|
|
</span> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="12" 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"> |
|
|
{{ resiDetailObj.houseInfo.gridName + '-' + resiDetailObj.houseInfo.homeName || '--' }} |
|
|
{{ item.gridName + '-' + item.homeName || '--' }} |
|
|
</span> |
|
|
</span> |
|
|
</div> |
|
|
</div> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> --> |
|
|
</el-row> |
|
|
<el-row type="flex" justify="" class="f-m-top23"> |
|
|
<el-row type="flex" justify="" class="f-m-top23"> |
|
|
<el-col :span="6" 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> |
|
|
<span class="f-left8 f-font-color"> |
|
|
|
|
|
{{ item.resiHouseRel != null ? item.resiHouseRel === 0 ? '自住' : item.resiHouseRel === |
|
|
|
|
|
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-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> |
|
|
<span class="f-left8 f-font-color">{{ householdSituationText(indexK) }}</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-label"><b>户籍所在地:</b></div> |
|
|
<div class="f-left8 f-font-color"> |
|
|
<div class="f-left8 f-font-color"> |
|
|
-- |
|
|
{{ item.placeOfDomicile || '--' }} |
|
|
</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-label"><b>与户主关系:</b></div> |
|
|
<span class="f-left8 f-font-color">--</span> |
|
|
<span class="f-left8 f-font-color">{{ houseHolderRelText(indexK) }}</span> |
|
|
</el-col> |
|
|
</el-col> |
|
|
</el-row> |
|
|
</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, |
|
|
|
|
|
age: null, |
|
|
|
|
|
|
|
|
|
|
|
nationalityList: [],//国籍字典 |
|
|
|
|
|
marriageArr: [], //婚姻状况字典 |
|
|
|
|
|
spouseArr: [],//配偶情况字典 |
|
|
|
|
|
careerStatusArr: [],//就业状况字典 |
|
|
|
|
|
householdSituationArr: [],//户籍情况字典 |
|
|
|
|
|
houseHolderRelArr: [],//与户主关系字典 |
|
|
|
|
|
idTypeList,//证件类型字典 |
|
|
|
|
|
showCheckPassword: false, |
|
|
|
|
|
originalExpandList: [{ |
|
|
|
|
|
id: 'healthDto', |
|
|
|
|
|
title: '残疾信息', |
|
|
|
|
|
children: [ |
|
|
{ |
|
|
{ |
|
|
name: '基本信息', |
|
|
label: "残疾类别", |
|
|
num: '(7/7)' |
|
|
itemType: "select1", |
|
|
|
|
|
formName: "disabilityCategoryCode", |
|
|
|
|
|
opctionUrl: 'sys/dict/data/dictlist', |
|
|
|
|
|
opctionParams: { dictType: 'disability_category_code' }, |
|
|
|
|
|
opction: [] |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
name: '居住信息', |
|
|
label: "残疾等级", |
|
|
num: '(4/4)' |
|
|
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: [] |
|
|
|
|
|
},] |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
name: '拓展信息', |
|
|
id: 'chronicDiseaseDto', |
|
|
num: '(3/4)' |
|
|
title: '慢病信息', |
|
|
|
|
|
children: [ |
|
|
|
|
|
{ |
|
|
|
|
|
label: "所患慢病", |
|
|
|
|
|
itemType: "checkbox", |
|
|
|
|
|
formName: "chronicDiseaseCodes", |
|
|
|
|
|
opctionUrl: 'sys/dict/data/dictlist', |
|
|
|
|
|
opctionParams: { dictType: 'chronic_disease_code' }, |
|
|
|
|
|
opction: [] |
|
|
|
|
|
}, |
|
|
|
|
|
] |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|
name: '党员信息', |
|
|
id: 'deathDto', |
|
|
num: '(0/3)' |
|
|
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: [] |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
] |
|
|
}, |
|
|
}, |
|
|
// { |
|
|
|
|
|
// name: '残疾信息(0/3)' |
|
|
|
|
|
// }, |
|
|
|
|
|
// { |
|
|
|
|
|
// name: '大病信息(0/3)' |
|
|
|
|
|
// }, |
|
|
|
|
|
// { |
|
|
|
|
|
// name: '慢病信息(0/3)' |
|
|
|
|
|
// }, |
|
|
|
|
|
// { |
|
|
|
|
|
// name: '退役军人信息(0/3)' |
|
|
|
|
|
// }, |
|
|
|
|
|
// { |
|
|
|
|
|
// name: '保障房信息(0/3)' |
|
|
|
|
|
// }, |
|
|
|
|
|
// { |
|
|
|
|
|
// name: '特扶人员信息(0/3)' |
|
|
|
|
|
// }, |
|
|
|
|
|
{ |
|
|
{ |
|
|
name: '业务记录', |
|
|
id: "parymemberInfoDto", |
|
|
num: '(1)' |
|
|
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 }, |
|
|
|
|
|
] |
|
|
}, { |
|
|
}, { |
|
|
name: '更新记录', |
|
|
label: "党员中心户", |
|
|
num: '(1)' |
|
|
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: [ |
|
|
|
|
|
] |
|
|
} |
|
|
} |
|
|
], |
|
|
] |
|
|
age: null, |
|
|
}, |
|
|
|
|
|
{ |
|
|
|
|
|
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: [ |
|
|
|
|
|
|
|
|
nationalityList: [],//国籍字典 |
|
|
] |
|
|
marriageArr: [], //婚姻状况字典 |
|
|
}, |
|
|
spouseArr: [],//配偶情况字典 |
|
|
{ |
|
|
careerStatusArr: [],//就业状况字典 |
|
|
label: "培训状况", |
|
|
idTypeList,//证件类型字典 |
|
|
itemType: "input1", |
|
|
showCheckPassword: false, |
|
|
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> |
|
|
|
|
|
|
|
|