Browse Source

Merge branch 'fix_bug' into preview

# Conflicts:
#	src/views/components/addResi.vue
feature
mk 2 years ago
parent
commit
dce4561646
  1. 20
      src/assets/scss/pages/resiAdd.scss
  2. 48
      src/assets/scss/pages/resiInfo.scss
  3. 2
      src/assets/scss/pages/smartImport.scss
  4. 1551
      src/views/components/addResi.vue
  5. 395
      src/views/components/editResi.vue
  6. 10
      src/views/components/resiSearch.vue
  7. 67
      src/views/modules/base/community/community.vue
  8. 107
      src/views/modules/base/resi.vue
  9. 7
      src/views/modules/base/smartImport/cpts/completeTask.vue
  10. 51
      src/views/modules/base/smartImport/cpts/createdTask.vue
  11. 2
      src/views/modules/base/smartImport/cpts/executeTask.vue
  12. 21
      src/views/modules/portrayal/house/cpts/graph.vue
  13. 30
      src/views/modules/portrayal/house/index.vue
  14. 24
      src/views/modules/portrayal/jumin/cpts/businessRecord.vue
  15. 149
      src/views/modules/portrayal/jumin/cpts/graph.vue
  16. 368
      src/views/modules/portrayal/jumin/index.vue

20
src/assets/scss/pages/resiAdd.scss

@ -2,11 +2,29 @@
height: 100%;
padding:16px;
.item_width_1{
width: 514px;
width: 498px;
}
.form{
background-color: #fff;
padding:16px;
.flex_box{
display: flex;
flex-wrap: wrap;
.flex_item_width1{
width: 332px;
}
.flex_item_width2{
width: 700px;
}
.flex_item_width3{
width: 120px;
}
.flex_item_width4{
width: 300px;
}
}
}
}
h5 {

48
src/assets/scss/pages/resiInfo.scss

@ -84,6 +84,7 @@
}
.right{
flex: 1;
width: 100%;
height: 100%;
background: #ffffff;
position: relative;
@ -104,31 +105,40 @@
margin-left: 0px;
margin-top: 22px;
}
.f-label {
width: 100px;
text-align: right;
color: rgba(51, 51, 51, .85) ;
>b{
font-weight: 400;
position: relative;
color: rgba(51, 51, 51, .85) ;
.flex_box{
display: flex;
flex-wrap: wrap;
&::after{
content: '*';
position: absolute;
top: 0px;
color: #ff5107;
left: -7px;
.f-flex{
margin-top: 23px;
width: 332px;
align-items: center;
.f-label {
width: 100px;
text-align: right;
color: rgba(51, 51, 51, .85) ;
>b{
font-weight: 400;
position: relative;
color: rgba(51, 51, 51, .85) ;
&::after{
content: '*';
position: absolute;
top: 0px;
color: #ff5107;
left: -7px;
}
}
}
}
}
.f-labels{
width: 155px;
text-align: right;
}
.f-flex{
align-items: center;
}
.f-m-top23{
margin-top: 23px;
}
@ -138,6 +148,4 @@
::v-deep .el-button--text{
padding: 0;
}
::v-deep .el-row{
padding-left: 37px;
}

2
src/assets/scss/pages/smartImport.scss

@ -96,7 +96,7 @@
}
/deep/ .el-step__description{
width: 300px;
color: #cbcbcb;
color: #666666;
}
}

1551
src/views/components/addResi.vue

File diff suppressed because it is too large

395
src/views/components/editResi.vue

@ -1,15 +1,13 @@
<template>
<div class="div_form" v-loading="loading">
<div class="form">
<el-form :model="form" :rules="rules" label-width="100px" ref="editForm">
<el-form :model="form" :rules="rules" label-width="105px" ref="editForm">
<h5 style="margin-top: 6px">基础信息登记</h5>
<div class="basicInfo">
<el-row type="flex" justify="space-between">
<el-col :span="6">
<div class="flex_box">
<el-form-item
label="姓名"
prop="baseInfoDto.name"
class="font-color-orange"
class="font-color-orange flex_item_width1"
>
<el-input
class="list_item_width_1"
@ -19,12 +17,11 @@
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item
label="证件类型"
prop="baseInfoDto.idType"
class="font-color-orange"
class="font-color-orange flex_item_width1"
>
<el-select
v-model="form.baseInfoDto.idType"
@ -41,12 +38,11 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item
label="证件号"
prop="baseInfoDto.idNum"
class="font-color-orange"
class="flex_item_width1"
>
<el-input
v-model="form.baseInfoDto.idNum"
@ -57,12 +53,11 @@
@blur="handleValidBlur"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item
label="国籍"
prop="baseInfoDto.nationality"
class="font-color-orange"
class="font-color-orange flex_item_width1"
>
<el-select
v-model="form.baseInfoDto.nationality"
@ -79,14 +74,11 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" justify="space-between">
<el-col :span="6">
<el-form-item
label="联系电话"
prop="baseInfoDto.mobile"
class="font-color-orange"
class="font-color-orange flex_item_width1"
>
<el-input
class="list_item_width_1"
@ -96,9 +88,8 @@
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="性别" prop="baseInfoDto.gender">
<el-form-item label="性别" prop="baseInfoDto.gender" class="flex_item_width1">
<el-select
v-model="form.baseInfoDto.gender"
placeholder="请选择"
@ -114,9 +105,8 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="出生日期" prop="baseInfoDto.birthday">
<el-form-item label="出生日期" class="flex_item_width1" prop="baseInfoDto.birthday">
<el-date-picker
v-model.trim="form.baseInfoDto.birthday"
class="list_item_width_1"
@ -128,10 +118,8 @@
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="民族" prop="baseInfoDto.nation">
</el-form-item>
<el-form-item label="民族" class="flex_item_width1" prop="baseInfoDto.nation">
<el-select
v-model="form.baseInfoDto.nation"
placeholder="请选择"
@ -147,11 +135,8 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" justify="space-between">
<el-col :span="6">
<el-form-item label="文化程度" prop="eduInfoDto.cultureLevel">
<el-form-item label="文化程度" class="flex_item_width1" prop="eduInfoDto.cultureLevel">
<el-select
v-model="form.eduInfoDto.cultureLevel"
placeholder="请选择"
@ -167,9 +152,8 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="婚姻状况" prop="familyInfoDto.marriage">
<el-form-item label="婚姻状况" class="flex_item_width1" prop="familyInfoDto.marriage">
<el-select
v-model="form.familyInfoDto.marriage"
placeholder="请选择"
@ -186,19 +170,16 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span="6"
v-if="
<el-form-item
class="flex_item_width1"
label="配偶情况"
prop="familyInfoDto.spouseSituation" v-if="
(form.familyInfoDto &&
form.familyInfoDto.marriage == 'chuhun') ||
form.familyInfoDto.marriage == 'zaihun' ||
form.familyInfoDto.marriage == 'fuhun'
"
>
<el-form-item
label="配偶情况"
prop="familyInfoDto.spouseSituation"
>
<el-select
v-model="form.familyInfoDto.spouseSituation"
@ -215,9 +196,8 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="籍贯" prop="baseInfoDto.nativePlace">
<el-form-item label="籍贯" class="flex_item_width1" prop="baseInfoDto.nativePlace">
<el-input
v-model="form.baseInfoDto.nativePlace"
placeholder="请输入内容"
@ -239,9 +219,7 @@
>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-form-item label="备注" prop="baseInfoDto.remark">
<el-form-item label="备注" prop="baseInfoDto.remark" class="flex_item_width2">
<el-input
type="textarea"
class="item_width_1"
@ -254,17 +232,14 @@
</el-form-item>
</div>
<h5>居住信息登记</h5>
<div class="house">
<section
v-for="(rowItem, index) in this.form.resideInfoDtos"
:key="index"
>
<el-row type="flex" justify="start" style="margin-bottom: 24px">
<el-col :span="8">
<el-form-item
<div class="flex_box">
<el-form-item
label="所属组织"
class="font-color-orange"
style="margin: 0px"
class="font-color-orange flex_item_width1"
:prop="`resideInfoDtos[${index}].gridId`"
:rules="[
{
@ -275,7 +250,7 @@
]"
>
<el-cascader
class="u-item-width-agency"
class="list_item_width_1"
ref="myCascader"
clearable
size="small"
@ -286,14 +261,12 @@
:disabled="rowItem.accessable === 0"
></el-cascader>
</el-form-item>
</el-col>
<el-col :span="16" style="display: flex">
<el-form-item
:prop="`resideInfoDtos[${index}].villageId`"
label="所属房屋"
style="margin: 0px"
label-width="100px"
class="font-color-orange"
class="font-color-orange flex_item_width4"
:rules="[
{ required: true, message: '请选择小区', trigger: 'blur' },
]"
@ -302,7 +275,7 @@
v-model.trim="form.resideInfoDtos[index].villageId"
placeholder="请选择小区"
size="small"
class="u-item-width-communitycascader f-bto0"
class=" f-bto0"
clearable
@change="handleChangeV(index)"
:disabled="rowItem.accessable === 0"
@ -330,7 +303,7 @@
size="small"
clearable
@change="handleChangeB(index)"
class="u-item-width-buildcascader f-bto0"
class="flex_item_width3 f-bto0"
:disabled="rowItem.accessable === 0"
>
<el-option
@ -355,7 +328,7 @@
placeholder="单元"
size="small"
clearable
class="u-item-width-buildcascader f-bto0"
class="flex_item_width3 f-bto0"
@change="handleChangeD(index)"
:disabled="rowItem.accessable === 0"
>
@ -382,7 +355,7 @@
placeholder="房号"
size="small"
clearable
class="u-item-width-buildcascader f-bto0"
class="flex_item_width3 f-bto0"
@change="handleChangeH(index)"
:disabled="rowItem.accessable === 0"
>
@ -413,11 +386,9 @@
circle
>
</el-button>
</el-col>
</el-row>
<el-row type="flex" justify="space-between">
<el-col :span="6">
<el-form-item label="人房关系" class="font-color-blue">
</div>
<div class="flex_box">
<el-form-item label="人房关系" class="font-color-blue flex_item_width1">
<el-select
v-model="form.resideInfoDtos[index].resiHouseRel"
placeholder="请选择"
@ -435,9 +406,7 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="人户状况" class="font-color-blue">
<el-form-item label="人户状况" class="font-color-blue flex_item_width1">
<el-select
v-model="form.resideInfoDtos[index].householdSituation"
placeholder="请选择"
@ -454,11 +423,9 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item
label="与户主关系"
class="font-color-blue font-color-blue2"
class="font-color-blue font-color-blue2 flex_item_width1"
>
<el-select
v-model="form.resideInfoDtos[index].houseHolderRel"
@ -476,12 +443,8 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span="6"
v-if="form.resideInfoDtos[index].householdSituation == 'rzhbz'"
>
<el-form-item label="户籍所在地">
<el-form-item label="户籍所在地" v-if="form.resideInfoDtos[index].householdSituation == 'rzhbz'" class="flex_item_width1">
<el-input
class="list_item_width_1"
v-model="form.resideInfoDtos[index].placeOfDomicile"
@ -491,14 +454,10 @@
:disabled="rowItem.accessable === 0"
></el-input>
</el-form-item>
</el-col>
<el-col
:span="6"
v-else-if="
<el-form-item label="现居住地址" v-else-if="
form.resideInfoDtos[index].householdSituation == 'hzrbz'
"
>
<el-form-item label="现居住地址">
" class="flex_item_width1">
<el-input
class="list_item_width_1"
v-model="form.resideInfoDtos[index].currentResidence"
@ -508,14 +467,11 @@
clearable
></el-input>
</el-form-item>
</el-col>
<el-col
:span="6"
v-else-if="
<el-form-item label="迁出时间"
class="flex_item_width1" v-else-if="
form.resideInfoDtos[index].householdSituation == 'rhdbz'
"
>
<el-form-item label="迁出时间">
">
<el-date-picker
v-model.trim="form.resideInfoDtos[index].outOfTime"
class="list_item_width_1"
@ -529,16 +485,12 @@
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6" v-else> </el-col>
</el-row>
</div>
</section>
</div>
<h5>拓展信息登记</h5>
<div class="expand">
<el-row type="flex" justify="space-between">
<el-col :span="6">
<el-form-item label="宗教信仰" prop="religionDto.religion">
<div class="flex_box">
<el-form-item class="flex_item_width1" label="宗教信仰" prop="religionDto.religion">
<el-input
class="list_item_width_1"
v-model="form.religionDto.religion"
@ -547,11 +499,10 @@
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item
label="就业状态"
class="font-color-blue"
class="font-color-blue flex_item_width1"
prop="workInfoDto.careerStatus"
>
<el-select
@ -570,15 +521,11 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span="6"
v-if="
<el-form-item label="工作单位" class="flex_item_width1" prop="workInfoDto.workUnit" v-if="
form.workInfoDto.careerStatus >= 1 &&
form.workInfoDto.careerStatus <= 5
"
>
<el-form-item label="工作单位" prop="workInfoDto.workUnit">
">
<el-input
class="list_item_width_1"
v-model="form.workInfoDto.workUnit"
@ -587,15 +534,11 @@
clearable
></el-input>
</el-form-item>
</el-col>
<el-col
:span="6"
v-if="
<el-form-item v-if="
form.workInfoDto.careerStatus >= 1 &&
form.workInfoDto.careerStatus <= 5
"
>
<el-form-item label="职业" prop="workInfoDto.occupation">
" label="职业" class="flex_item_width1" prop="workInfoDto.occupation">
<el-input
class="list_item_width_1"
v-model="form.workInfoDto.occupation"
@ -604,16 +547,12 @@
clearable
></el-input>
</el-form-item>
</el-col>
<el-col
:span="6"
v-if="
<el-form-item v-if="
(form.workInfoDto.careerStatus == 0 ||
form.workInfoDto.careerStatus == 6) &&
form.workInfoDto.careerStatus
"
>
<el-form-item
class="flex_item_width1"
label="原工作单位"
prop="unemployedDto.originWorkUnit"
>
@ -625,17 +564,12 @@
clearable
></el-input>
</el-form-item>
</el-col>
<el-col
:span="6"
v-if="
<el-form-item class="flex_item_width1" v-if="
(form.workInfoDto.careerStatus == 0 ||
form.workInfoDto.careerStatus == 6) &&
form.workInfoDto.careerStatus
"
>
<el-form-item
label="失业时间"
prop="unemployedDto.unemploymentTime"
>
@ -651,23 +585,12 @@
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12" v-if="!form.workInfoDto.careerStatus"></el-col>
</el-row>
<el-row
v-if="
<el-form-item label="月收入" class="flex_item_width1" v-if="
form.workInfoDto.careerStatus >= 1 &&
form.workInfoDto.careerStatus <= 5
"
>
<el-col
:span="6"
v-if="
form.workInfoDto.careerStatus >= 1 &&
form.workInfoDto.careerStatus <= 5
"
>
<el-form-item label="月收入" prop="economyDto.monthIncome">
" prop="economyDto.monthIncome">
<el-input
class="list_item_width_1"
v-model="form.economyDto.monthIncome"
@ -676,22 +599,15 @@
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="18"> </el-col>
</el-row>
<el-row
type="flex"
justify=""
v-if="
<el-form-item class="flex_item_width1"
label="失业证号"
prop="unemployedDto.unemploymentNum"
v-if="
(form.workInfoDto.careerStatus == 0 ||
form.workInfoDto.careerStatus == 6) &&
form.workInfoDto.careerStatus
"
>
<el-col :span="6">
<el-form-item
label="失业证号"
prop="unemployedDto.unemploymentNum"
>
<el-input
class="list_item_width_1"
@ -701,11 +617,15 @@
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item
<el-form-item class="flex_item_width1"
label="失业原因"
prop="unemployedDto.unemploymentReason"
v-if="
(form.workInfoDto.careerStatus == 0 ||
form.workInfoDto.careerStatus == 6) &&
form.workInfoDto.careerStatus
"
>
<el-select
v-model="form.unemployedDto.unemploymentReason"
@ -722,12 +642,15 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item
<el-form-item class="flex_item_width1"
label="再就业优惠证号"
label-width="120px"
prop="unemployedDto.employmentNum"
v-if="
(form.workInfoDto.careerStatus == 0 ||
form.workInfoDto.careerStatus == 6) &&
form.workInfoDto.careerStatus
"
>
<el-input
class="list_item_width_1"
@ -737,9 +660,12 @@
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="技术特长" prop="unemployedDto.specialSkill">
<el-form-item label="技术特长" class="flex_item_width1" prop="unemployedDto.specialSkill" v-if="
(form.workInfoDto.careerStatus == 0 ||
form.workInfoDto.careerStatus == 6) &&
form.workInfoDto.careerStatus
">
<el-input
class="list_item_width_1"
v-model="form.unemployedDto.specialSkill"
@ -748,20 +674,15 @@
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row
type="flex"
v-if="
<el-form-item v-if="
(form.workInfoDto.careerStatus == 0 ||
form.workInfoDto.careerStatus == 6) &&
form.workInfoDto.careerStatus
"
>
<el-col :span="6">
<el-form-item
class="flex_item_width1"
label="是否领取失业金"
label-width="120px"
prop="unemployedDto.unempCompensationFlag"
>
<el-radio-group
@ -775,11 +696,14 @@
>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item
<el-form-item v-if="
(form.workInfoDto.careerStatus == 0 ||
form.workInfoDto.careerStatus == 6) &&
form.workInfoDto.careerStatus
"
class="flex_item_width1"
label="是否就业困难对象"
label-width="150px"
prop="unemployedDto.employmentHardFlag"
>
<el-radio-group v-model="form.unemployedDto.employmentHardFlag">
@ -791,11 +715,14 @@
>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item
<el-form-item v-if="
(form.workInfoDto.careerStatus == 0 ||
form.workInfoDto.careerStatus == 6) &&
form.workInfoDto.careerStatus
"
class="flex_item_width1"
label="劳动就业愿望"
label-width="105px"
prop="workInfoDto.employmentWish"
>
<el-select
@ -813,11 +740,10 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" justify="">
<el-col :span="6">
<el-form-item label="有无赡养人" prop="familyInfoDto.elderlyFlag">
<el-form-item label="有无赡养人" class="flex_item_width1" prop="familyInfoDto.elderlyFlag">
<el-radio-group v-model="form.familyInfoDto.elderlyFlag">
<el-radio
:label="item.value"
@ -828,11 +754,10 @@
>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="6" v-if="form.familyInfoDto.elderlyFlag == 1">
<el-form-item
v-if="form.familyInfoDto.elderlyFlag == 1" class="flex_item_width1"
label="与赡养人关系"
label-width="105px"
prop="familyInfoDto.elderlyRelation"
>
<el-select
@ -850,11 +775,9 @@
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" v-if="form.familyInfoDto.elderlyFlag == 1">
<el-form-item
v-if="form.familyInfoDto.elderlyFlag == 1" class="flex_item_width1"
label="赡养人联系电话"
label-width="150px"
prop="familyInfoDto.dependantMobile"
>
<el-input
@ -865,8 +788,6 @@
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<h5>人员标签</h5>
<div class="stafftag">
@ -1021,7 +942,7 @@ export default {
optionsB: [],
optionsH: [],
optionsD: [],
orgOptions:[]
orgOptions: [],
},
],
religionDto: {
@ -1050,7 +971,7 @@ export default {
monthIncome: null, //
},
},
orgOption:[],
orgOption: [],
footerInputList: [
{
id: "healthDto",
@ -1174,12 +1095,12 @@ export default {
children: [
{
label: "老年人分类",
itemType: "select1",
multiple: true,
itemType: "checkbox",
formName: "oldPeopleCategories",
opctionUrl: "sys/dict/data/dictlist",
opctionParams: { dictType: "oldPeople_categories" },
pformName: "oldPeopleDto",
opction:[]
},
{
label: "居住情况",
@ -1600,7 +1521,7 @@ export default {
title: "志愿者",
},
},
formCopy:null
formCopy: null,
};
},
async created() {
@ -1610,7 +1531,7 @@ export default {
this.resiId = this.$route.query.id;
this.loading = true;
await this.getDicts();
await this.getOrgTreeListAll()
await this.getOrgTreeListAll();
await this.getResiDetail();
},
methods: {
@ -1628,12 +1549,13 @@ export default {
promises.push(this.getBuildList(i));
promises.push(this.getHouseList(i));
promises.push(this.getUniList(i));
this.form.resideInfoDtos[i].orgOptions = []
this.getOrgTreeList(this.form.resideInfoDtos[i].agencyId,i);
this.form.resideInfoDtos[i].orgOptions = [];
this.getOrgTreeList(this.form.resideInfoDtos[i].agencyId, i);
}
this.form = { ...res.data.data };
this.form.baseInfoDto.idNum = this.$route.params.idNum;
this.form.baseInfoDto.mobile = this.$route.params.mobile;
this.form.baseInfoDto.name = this.$route.params.name;
if (!res.data.data.familyInfoDto) {
this.form.familyInfoDto = {
marriage: null, //
@ -1668,7 +1590,7 @@ export default {
if (!res.data.data.subsistenceAllowanceDto) {
this.form.subsistenceAllowanceDto = {
reasons: [],
category:null ,
category: null,
};
}
if (!res.data.data.unemployedDto) {
@ -1705,12 +1627,17 @@ export default {
formData &&
Object.keys(formData).includes(formName)
) {
if(this.footerInputList[i].children[index].itemType == 'cascader1'){
if (
this.footerInputList[i].children[index].itemType ==
"cascader1"
) {
this.footerInputList[i].children[index].orgPath =
formData.partyOrgIdPath || null;
formData.partyOrgIdPath || null;
}
this.footerInputList[i].children[index].value =
formData[formName] != null?formData[formName]:null
formData[formName] != null
? formData[formName]
: null;
this.footerInputList[i].children[index].id =
formData.id;
}
@ -1791,9 +1718,9 @@ export default {
console.log("获取字典失败: ", error);
}
},
getOrgTreeList(id,i) {
getOrgTreeList(id, i) {
this.$http
.post("/gov/org/customeragency/rootagencygridtree", {agencyId:id})
.post("/gov/org/customeragency/rootagencygridtree", { agencyId: id })
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
@ -1808,12 +1735,12 @@ export default {
},
getOrgTreeListAll() {
this.$http
.post("/gov/org/customeragency/agencygridtree", {})
.post("/gov/org/customeragency/agencygridtree", {})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
} else {
this.orgOption.push(res.data)
this.orgOption.push(res.data);
}
})
.catch(() => {
@ -1890,7 +1817,7 @@ export default {
this.$http
.post("/actual/base/communityQuarters/listQuartersOptions", {
gridId: this.form.resideInfoDtos[index].gridId,
agencyId:this.form.resideInfoDtos[index].agencyId || user.agencyId,
agencyId: this.form.resideInfoDtos[index].agencyId || user.agencyId,
})
.then(({ data: res }) => {
if (res.code !== 0) {
@ -1973,7 +1900,7 @@ export default {
optionsB: [],
optionsH: [],
optionsD: [],
orgOptions:this.orgOption
orgOptions: this.orgOption,
});
},
handelClickDelHouse(i) {
@ -2068,22 +1995,22 @@ export default {
});
},
handleClickSubmit(house) {
this.$refs["editForm"].validate((valid) => {
if (valid) {
this.form.resideInfoDtos.forEach((item) => {
delete item.optionsV;
delete item.optionsB;
delete item.optionsH;
delete item.optionsD;
delete item.orgOptions;
});
delete this.form.integrityData;
this.submitForm(house);
}
});
this.$refs["editForm"].validate((valid) => {
if (valid) {
this.form.resideInfoDtos.forEach((item) => {
delete item.optionsV;
delete item.optionsB;
delete item.optionsH;
delete item.optionsD;
delete item.orgOptions;
});
delete this.form.integrityData;
this.submitForm(house);
}
});
},
async submitForm(house) {
this.btnLoading = true
this.btnLoading = true;
try {
let url = this.houseType
? "/actual/base/residentBaseInfo/update"

10
src/views/components/resiSearch.vue

@ -358,16 +358,6 @@ export default {
value: "xiejiaorenyuan",
children: null
},
{
label: "信访人员",
value: "petitionOfficerFlag",
children: null
},
{
label: "统战人员",
value: "unitedFrontFlag",
children: null
}
],
careerStatusList: [],
form: {

67
src/views/modules/base/community/community.vue

@ -42,8 +42,16 @@
<span style="color: red">{{ data.showNum }}</span>
<span>{{ ")" }}</span>
</span> -->
<span :id="data.id"
:style="{ color: showIcons(data) ? '#ff4d4f' : '' }">{{ data.showName }}</span>
<el-tooltip
:content="tooltipTitle"
:disabled="isShowTooltip"
placement="top"
effect="dark"
>
<span class="over-ellipsis" @mouseover="mouseOverNode($event)">
{{ node.label }}
</span>
</el-tooltip>
</span>
</el-tree>
</el-scrollbar>
@ -432,6 +440,9 @@ export default {
bDisabled: false,
treeIsOk: true,//
isShowTooltip:false,
tooltipTitle:null,
};
},
components: {
@ -492,6 +503,18 @@ export default {
updateStartDate () { }
},
methods: {
mouseOverNode(event){
var target = event.target;
let textLength = target.clientWidth;
let containerLength = target.scrollWidth;
if (textLength < containerLength) {
this.tooltipTitle = event.target.innerText;
this.isShowTooltip = false;
} else {
this.isShowTooltip = true;
}
},
handleChangeV (val) {
this.buildingId = "";
this.buildingUnitId = "";
@ -1006,28 +1029,44 @@ export default {
.div_tree {
margin: 7px 8px 7px 7px;
width: 30%;
max-width: 304px;
min-width: 240px;
width: 200px;
padding: 24px 15px;
background: #ffffff;
box-shadow: 0px 6px 16px 0px rgba(0, 0, 0, 0.08),
0px 3px 6px -4px rgba(0, 0, 0, 0.12);
// border-radius: 5px;
overflow-y: hidden;
/deep/ .el-scrollbar__wrap {
overflow-x: hidden !important;
}
/deep/ .el-scrollbar__bar{
right: -2px;
}
//
/deep/ .el-input--medium .el-input__inner {
height: 32px;
background: rgba(0, 0, 0, 0.05);
border-radius: 4px;
}
flex: 0 0 280px;
background: #ffffff;
box-shadow: 0px 6px 16px 0px rgba(0, 0, 0, 0.08),
0px 3px 6px -4px rgba(0, 0, 0, 0.12);
// border-radius: 5px;
padding: 24px 15px;
overflow-y: hidden;
}
.custom-tree-node {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
overflow: hidden;
}
.over-ellipsis {
display: block;
width: 140PX;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
-webkit-line-clamp: 1;
}
.filter_tree {
overflow-x: auto;
// background-color: #f6f6f6;
@ -1036,7 +1075,7 @@ export default {
.div_left {
// flex: 1;
width: calc(100% - 300px);
width: calc(100% - 200px);
}
::v-deep .el-dialog__body {
padding: 0;

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

@ -24,7 +24,7 @@
:default-expanded-keys="autoOpenArr"
:load="lazyLoadTree"
>
<span slot-scope="{ node, data }" class="custom-tree-node">
<div slot-scope="{ node, data }" class="custom-tree-node">
<!-- <img
v-if="showIcons(data)"
src="@/assets/images/index/abnormal.png"
@ -43,12 +43,22 @@
<span style="color: red">{{ data.showNum }}</span>
<span>{{ ")" }}</span>
</span> -->
<span :id="data.id">{{ data.label }}</span>
</span>
<el-tooltip
:content="tooltipTitle"
:disabled="isShowTooltip"
placement="top"
effect="dark"
>
<span class="over-ellipsis" @mouseover="mouseOverNode($event)">
{{ node.label }}
</span>
</el-tooltip>
<!-- <span :id="data.id">{{ data.label }}</span> -->
</div>
</el-tree>
</el-scrollbar>
</div>
<section style="width: calc(100% - 300px)">
<section style="width: calc(100% - 200px)">
<div class="m-search">
<section
:class="
@ -556,6 +566,8 @@ export default {
category: this.$route.query.category,
searchForm: {},
isShowTooltip:false,
tooltipTitle:null,
};
},
@ -586,7 +598,13 @@ export default {
async mounted() {
this.searchH = this.$refs.myResiSearch.offsetHeight;
this.loadTree();
await this.loadTree();
if (this.treeData.length > 0) {
this.$nextTick(() => {
// ref_tree ref value node-key
this.$refs.ref_tree.setCurrentKey(this.treeData[0].id);
});
}
this.displayedBaobiaoBtn = await this.$refs.baobiao.existsTemplate({
elseParams: {
categoryKeys: ["resi_info"],
@ -595,8 +613,22 @@ export default {
});
this.handleSearchFrom();
},
activated(){
this.handleSearchFrom();
},
methods: {
mouseOverNode(event){
var target = event.target;
let textLength = target.clientWidth;
let containerLength = target.scrollWidth;
console.log(textLength,containerLength);
if (textLength < containerLength) {
this.tooltipTitle = event.target.innerText;
this.isShowTooltip = false;
} else {
this.isShowTooltip = true;
}
},
//
updateBtnAuths() {
let rot = this.$route;
@ -773,10 +805,6 @@ export default {
})
.catch((err) => {
if (err == "cancel") {
// this.$message({
// type: "info",
// message: ""
// });
}
});
} else {
@ -1029,7 +1057,7 @@ export default {
this.$router.push({
name: "edit-resi",
query: { id: this.editUserId },
params: { idNum: data.idNum, mobile: data.mobile },
params: { idNum: data.idNum, mobile: data.mobile,name:data.name },
});
this.checkPasswordFrom.password = "";
} else {
@ -1208,12 +1236,7 @@ export default {
this.autoOpenArr.push(data.id);
if (!isRefresh && data) {
this.selTreeObj = data;
if (!this.selTreeObj.latitude) {
this.selTreeObj.latitude = this.centerPoint[0];
}
if (!this.selTreeObj.longitude) {
this.selTreeObj.longitude = this.centerPoint[1];
}
}
} else {
this.$message.error(msg);
@ -1225,7 +1248,7 @@ export default {
},
async handleNodeClick(obj) {
this.selObj = JSON.parse(JSON.stringify(obj));
this.getTreeObj(obj);
this.selTreeObj = obj;
await nextTick(1000);
this.searchAgencyObj = {};
if (obj.level === "building") {
@ -1242,17 +1265,7 @@ export default {
this.handleSearchFrom("type");
}
},
//
getTreeObj(obj) {
if (!obj.latitude) {
obj.latitude = this.centerPoint[0];
}
if (!obj.longitude) {
obj.longitude = this.centerPoint[1];
}
this.selTreeObj = obj;
},
},
watch: {
$route: {
@ -1288,12 +1301,39 @@ export default {
}
.div_tree {
margin: 7px 8px 7px 7px;
width: 30%;
max-width: 304px;
min-width: 240px;
width: 200px;
padding: 24px 15px;
background: #ffffff;
box-shadow: 0px 6px 16px 0px rgba(0, 0, 0, 0.08),
0px 3px 6px -4px rgba(0, 0, 0, 0.12);
// border-radius: 5px;
overflow-y: hidden;
.scrollar{
margin-top: 30px;
}
/deep/ .el-scrollbar__wrap {
overflow-x: hidden !important;
}
/deep/ .el-scrollbar__bar{
right: -2px;
}
.custom-tree-node {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
overflow: hidden;
}
.over-ellipsis {
display: block;
width: 140PX;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
-webkit-line-clamp: 1;
}
//
/deep/ .el-input--medium .el-input__inner {
@ -1301,12 +1341,11 @@ export default {
background: rgba(0, 0, 0, 0.05);
border-radius: 4px;
}
flex: 0 0 280px;
// flex: 0 0 280px;
background: #ffffff;
box-shadow: 0px 6px 16px 0px rgba(0, 0, 0, 0.08),
0px 3px 6px -4px rgba(0, 0, 0, 0.12);
// border-radius: 5px;
padding: 24px 15px;
overflow-y: hidden;
}

7
src/views/modules/base/smartImport/cpts/completeTask.vue

@ -21,7 +21,7 @@
操作说明
</h4>
<p>1可以到居民信息中查看本次导入的数据</p>
<p>2导入失效的数据,您可以下载失败文件修改后,重新创建任务导入</p>
<p>2您可以下载导入失败的数据按错误提示更正后新建任务再次导入</p>
</div>
</div>
<h3 class="title-small">数据导入明细</h3>
@ -41,19 +41,18 @@
@click="handelClickLook('fail')"
>查看</el-button
>
<!-- -->
<i class="el-icon-download" style="margin-left: 16px;"></i>
<a
v-if="resultDescFile"
:href="resultDescFile"
target="_blank"
style="color: #ff4d4f; cursor: pointer"
>下载结果说明</a
>下载导入失败数据</a
>
</el-col>
</el-row>
<el-dialog
title="列表"
title="导入结果明细"
:visible.sync="showTable"
width="50%"
v-if="showTable"

51
src/views/modules/base/smartImport/cpts/createdTask.vue

@ -97,12 +97,12 @@
ref="upload"
>
<i class="el-icon-upload" style="font-size: 58px; color: #c5c9d1"></i>
<div class="el-upload__text" v-html="$t('upload.text')"></div>
<div class="el-upload__text" v-html="$t('upload.text')" ></div>
</el-upload>
<section v-else class="uploadList">
<div v-for="file in fileList" :key="file.id" :file="file" style="display: flex; align-items: center">
<span>{{ file.name }}</span>
<i class="el-icon-close" @click="removeFile(file)" style="cursor: pointer;"></i>
<el-button type="text" @click="removeFile(file)" style="margin-left: 16px;"> 删除</el-button>
</div>
</section>
</div>
@ -416,6 +416,7 @@ export default {
data: params,
})
.then((res) => {
console.log(res);
const url = window.URL.createObjectURL(new Blob([res.data]));
const aLink = document.createElement("a");
aLink.style.display = "none";
@ -433,39 +434,51 @@ export default {
},
//
async handelClickDownModule() {
let url = "/actual/base/intelligentImportData/downloadImportModule";
let url = "/actual/base/intelligentImportData/autoGenerateExcelModule";
let params = {
importCategory: this.form.importCategory,
};
await this.$http({
method: "POST",
url,
responseType: "blob",
// responseType: "blob",
data: params,
})
.then((res) => {
if (res.headers["content-disposition"]) {
// if (res.status==200) {
// let fileName = window.decodeURI(
// res.headers["content-disposition"]
// .split(";")[1]
// .split("=")[1]
// );
let fileName = `${
// let fileName = `${
// this.$store.state.user.agencyName + this.categoryName
// }`;
// let blob = new Blob([res.data], {
// type: "application/vnd.ms-excel",
// });
// var url = window.URL.createObjectURL(blob);
// var aLink = document.createElement("a");
// aLink.style.display = "none";
// aLink.href = url;
// aLink.setAttribute("download", fileName);
// document.body.appendChild(aLink);
// aLink.click();
// document.body.removeChild(aLink); //
// window.URL.revokeObjectURL(url); //blob
// } else this.$message.error("");
let fileName = `${
this.$store.state.user.agencyName + this.categoryName
}导入模板`;
let blob = new Blob([res.data], {
type: "application/vnd.ms-excel",
});
var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download", fileName);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink); //
window.URL.revokeObjectURL(url); //blob
} else this.$message.error("下载失败");
const url = res.data.data;
const aLink = document.createElement("a");
aLink.style.display = "none";
aLink.href = url;
aLink.setAttribute("download",`${fileName}.xlsx`);
document.body.appendChild(aLink);
aLink.click();
document.body.removeChild(aLink);
window.URL.revokeObjectURL(url);
})
.catch((err) => {
console.log(err);

2
src/views/modules/base/smartImport/cpts/executeTask.vue

@ -57,7 +57,7 @@
</el-col>
</el-row>
<el-dialog
title="列表"
title="导入结果明细"
:visible.sync="showTable"
width="50%"
v-if="showTable"

21
src/views/modules/portrayal/house/cpts/graph.vue

@ -74,7 +74,9 @@ export default {
'text': item.name,
'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' : item.gender == 1 ? 'father' : 'mother' }"><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(2)} ${item.age?`${item.age})岁`:''}</div></div>`
item.name.substring(0, 1) + '*' + item.name.substring(2)} ${item.age?`${item.age})岁`:''}</div></div>`,
'data':{id: item.id,type:item.type,name:item.name},
}))
@ -97,7 +99,22 @@ export default {
},
onNodeClick(nodeObject, $event) {
console.log('onNodeClick:', nodeObject);
let {name,id,type} = nodeObject.data
if(type === 0){
this.$store.dispatch("saveData", {
resiId:id,
name
});
this.$router.push({ name: 'jumin-huaxiang' });
this.$store.state.contentTabs = this.$store.state.contentTabs.map(
(item) => {
if (item.name === "jumin-huaxiang") {
return { ...item, title: name };
}
return item;
}
);
}
},
onLineClick(lineObject, $event) {
console.log('onLineClick:', lineObject);

30
src/views/modules/portrayal/house/index.vue

@ -43,8 +43,8 @@
<el-col :span="6" class="f-flex">
<div class="f-label">家庭标签</div>
<div class="f-left8 f-font-color" v-if="houseDetailObj">
{{houseDetailObj.familyTags || "--" }}
<div class="f-left8 f-font-color" v-if="houseDetailObj.familyTags">
{{familyTags() }}
</div>
</el-col>
<el-col :span="6" class="f-flex">
@ -55,7 +55,7 @@
</el-col>
<el-col :span="6" class="f-flex">
<div class="f-label"><b>证件号</b></div>
<div class="f-label">证件号</div>
<div class="f-left8 f-font-color">
{{
houseDetailObj.ownerIdCard
@ -86,7 +86,7 @@
>
</el-col>
<el-col :span="6" class="f-flex">
<div class="f-label"><b>联系电话</b></div>
<div class="f-label">联系电话</div>
<div class="f-left8 f-font-color">
{{
houseDetailObj.ownerPhone
@ -202,10 +202,12 @@ export default {
rules: {
password: [{ required: true, message: "请输入密码", trigger: "blur" }],
},
familyTagList:[]
};
},
components: { graph, businessRecord, changeRecord },
created() {
this.getFamilyTagsDict()
},
mounted() {},
activated() {},
@ -298,7 +300,25 @@ export default {
params: { agencyId: "1673584241869238273",gridId: "1673585475279826946",villageId:"1673600667388780545",buildId:"1673600667527192577",unitId:"1673600667577524226",homeId:"1673600737530126338"},
});
},
getFamilyTagsDict(){
this.$http.post("sys/dict/data/dictlist", {
dictType: 'family_tag',
}).then(res=>{
if(res.data.code === 0){
this.familyTagList = res.data.data;
}
}).catch(err=>{
console.log(err);
})
},
familyTags(){
const labels = this.houseDetailObj.familyTags.map(value => {
const item = this.familyTagList.find(obj => obj.value === value);
return item ? item.label : null;
});
return labels?labels.join(','):'--';
},
async handleSaveTuomin(password) {
const url = `/actual/base/communityHouse/getClearHouseDeatilById/${this.houseId}`;
let parm = {

24
src/views/modules/portrayal/jumin/cpts/businessRecord.vue

@ -72,16 +72,8 @@ export default {
},
//
created() {
this.resiId = [this.userInfo.resiId];
},
async mounted() {
await this.getComplainList();
await this.getShengList();
await this.getShequList();
await this.getshijianList();
await this.getxuqiuList();
await this.getfuwuList();
},
mounted() {},
props: {
userInfo: {
type: Object,
@ -271,7 +263,19 @@ export default {
//
computed: {},
//
watch: {},
watch: {
'userInfo': {
handler(newVal, oldVal) {
this.resiId = [this.userInfo.baseInfoDto.resiId];
this.getComplainList();
this.getShengList();
this.getfuwuList();
this.getshijianList();
this.getxuqiuList();
},
deep: true
}
},
};
</script>

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

@ -45,7 +45,6 @@ export default {
},
mounted() {
this.$nextTick(() => {
// this.showSeeksGraph();
this.getFamilyRelationshipList()
})
},
@ -62,10 +61,8 @@ export default {
let url = `/actual/base/peopleRoomOverview/getFamilyRelationshipList?type=0&resid=` + this.userInfo.resiId;
let { code, data, msg } = await requestPost(url)
if (code == 0) {
//
let index = data.findIndex(item => item.name == this.userInfo.name);
if (index !== -1) {
//
const [item] = data.splice(index, 1);
data.unshift(item);
}
@ -74,7 +71,8 @@ export default {
'text': item.name,
'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(2)} ${item.age?`${item.age})岁`:''}</div></div>`
item.name.substring(0, 1) + '*' + item.name.substring(2)} ${item.age?`${item.age})岁`:''}</div></div>`,
'data':{id: item.id,type:item.type,name:item.name},
}))
let lineList = data.map((item, index) => ({
'from': 'N1',
@ -82,7 +80,8 @@ export default {
'text':item.type ==1?'房屋':data[index].houseHolderRel || '未知',
'isHideArrow': true,
'color': item.houseHolderRel === '父亲' ? '#3876f2' : (item.houseHolderRel === '母亲' || item.houseHolderRel === '祖父母' ? '#ff9696' : (item.houseHolderRel === '女儿' ? '#ffd5d5' : '#3876f2')),
'fontColor': item.houseHolderRel === '父亲' ? '#3876f2' : (item.houseHolderRel === '母亲' || item.houseHolderRel === '祖父母' ? '#ff9696' : (item.houseHolderRel === '女儿' ? '#ffd5d5' : '#3876f2'))
'fontColor': item.houseHolderRel === '父亲' ? '#3876f2' : (item.houseHolderRel === '母亲' || item.houseHolderRel === '祖父母' ? '#ff9696' : (item.houseHolderRel === '女儿' ? '#ffd5d5' : '#3876f2')),
}));
lineList = lineList.slice(1)
const __graph_json_data = { rootId: 'root', nodes: familyList, lines: lineList }
@ -94,109 +93,32 @@ export default {
this.$message.error(msg)
}
},
showSeeksGraph() {
const __graph_json_data = {
'rootId': 'N13', 'nodes': [
{ 'id': 'N1', 'text': '', 'borderColor': '#6cc0ff', 'data': { 'isGoodMan': false, 'sexType': '男' }, 'innerHTML': '<div class="c-my-node1 c-my-node-father"><div class="c-node-name1" style="color:#6cc0ff"></div></div>' }, { 'id': 'N2', 'text': '李*康', 'data': { 'isGoodMan': true, 'sexType': '男' }, 'innerHTML': '<div class="c-my-node2 c-my-node-girl" ><div class="c-node-name2" style="color:#ff875e">李*康</div></div>' }, { 'id': 'N3', 'text': '祁*伟', 'borderColor': '#6cc0ff', 'data': { 'isGoodMan': false, 'sexType': '男' }, 'innerHTML': '<div class="c-my-node2 c-my-node-son" ><div class="c-node-name2" style="color:#6cc0ff">祁*伟</div></div>' }, { 'id': 'N4', 'text': '陈*石', 'data': { 'isGoodMan': true, 'sexType': '男' }, 'innerHTML': '<div class="c-my-node2 c-my-node-mother" ><div class="c-node-name2" style="color:#ff875e">陈*石</div></div>' }, { 'id': 'N5', 'text': '陆*可', 'data': { 'isGoodMan': true, 'sexType': '女' }, 'innerHTML': '<div class="c-my-node2 c-my-node-grandpa" ><div class="c-node-name2" style="color:#ff875e">陆*可(25岁)</div></div>' }, { 'id': 'N6', 'text': '高*良', 'data': { 'isGoodMan': false, 'sexType': '男' }, 'innerHTML': '<div class="c-my-node2 c-my-node-grandma" ><div class="c-node-name2" style="color:#6cc0ff">高*良</div></div>' }, { 'id': 'N7', 'text': '沙*金', 'data': { 'isGoodMan': true, 'sexType': '男' }, 'innerHTML': '<div class="c-my-node2 c-my-node-home" ><div class="c-node-name2" style="color:#ff875e">沙*金</div></div>' }, { 'id': 'N9', 'text': '沙*金2', 'data': { 'isGoodMan': true, 'sexType': '男' }, 'innerHTML': '<div class="c-my-node2 c-my-node-home" ><div class="c-node-name2" style="color:#ff875e">沙*金2</div></div>' },], 'lines': [
{
'from': 'N1',
'to': 'N6',
'text': '',
'color': '#3b3b3b',
'fontColor': '#3b3b3b',
'isHideArrow': true,
'data': {
'type': '父亲'
},
},
{
'from': 'N1',
'to': 'N7',
'text': '父亲',
'color': '#3b3b3b',
'fontColor': '#3b3b3b',
'isHideArrow': true,
'data': {
'type': '母亲'
}
},
{
'from': 'N1',
'to': 'N8',
'text': '母亲',
'color': '#3b3b3b',
'fontColor': '#3b3b3b',
'isHideArrow': true,
'data': {
'type': '儿子'
}
},
{
'from': 'N1',
'to': 'N2',
'text': '儿子',
'color': '#3b3b3b',
'fontColor': '#3b3b3b',
'isHideArrow': true,
'data': {
'type': '女儿'
}
},
{
'from': 'N1',
'to': 'N3',
'text': '女儿',
'color': '#3b3b3b',
'fontColor': '#3b3b3b',
'isHideArrow': true,
'data': {
'type': '配偶'
}
},
{
'from': 'N1',
'to': 'N4',
'text': '配偶',
'color': '#d7e5ff',
'fontColor': '#3b3b3b',
'isHideArrow': true,
'data': {
'type': '岳父'
}
},
{
'from': 'N1',
'to': 'N5',
'text': '岳父',
'color': '#3b3b3b',
'fontColor': '#3b3b3b',
'isHideArrow': true,
'data': {
'type': '岳母'
}
},
{
'from': 'N1',
'to': 'N9',
'text': '岳母',
'isHideArrow': true,
'color': '#ffe4e4',
'fontColor': '#3b3b3b',
'data': {
'type': '岳母'
}
},
]
};
this.$refs.seeksRelationGraph.setJsonData(__graph_json_data, (graphInstance) => {
//
});
},
onNodeClick(nodeObject, $event) {
console.log('onNodeClick:', nodeObject);
let {name,id,type} = nodeObject.data
if(type === 0){
this.$store.dispatch("saveData", {
resiId:id,
name
});
this.$store.state.contentTabs = this.$store.state.contentTabs.map(
(item) => {
if (item.name === "jumin-huaxiang") {
return { ...item, title: name };
}
return item;
}
);
}else if(type === 1){
this.$store.dispatch('saveDataH', { houseId:id, houseName:name});
this.$router.push({ name: 'house-huaxiang' });
this.$store.state.contentTabs = this.$store.state.contentTabs.map(item => {
if (item.name === "house-huaxiang") {
return { ...item, title: name };
}
return item;
});
}
},
onLineClick(lineObject, $event) {
console.log('onLineClick:', lineObject);
@ -216,9 +138,9 @@ export default {
}
.c-node-name2 {
margin-left: -5px;
margin-left: 2px;
text-align: center;
margin-top: 63px;
margin-top: 83px;
line-height: 20px;
position: absolute;
width: 96px;
@ -267,7 +189,16 @@ export default {
}
.c-node-name1 {
display: none;
margin-left: 2px;
text-align: center;
margin-top: 83px;
line-height: 20px;
position: absolute;
width: 96px;
height: 20px;
background: #FFFFFF;
box-shadow: 0px 4px 6px 0px rgba(211, 213, 214, 0.4);
border-radius: 10px;
}
.rel-node-checked {

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

@ -21,10 +21,11 @@
:class="{ item: true, active: index == active }"
v-for="(item, index) in menuList"
@click="handelCLickMenu(item.id, index)"
v-show="item.filledQty != 0"
v-show="item.filledQty != 0 || item.id == 'ext' || item.id == 'reside'"
>
<span>{{ item.name }}</span
><span
v-if="item.id != 'businessRecord' && item.id != 'updateRecord' "
:class="{
incomplete: item.filledQty != item.totalQty && index != active,
full: item.filledQty == item.totalQty,
@ -46,10 +47,9 @@
>
</div>
<div class="title-small" id="base">基础信息</div>
<el-row type="flex" justify="" class="f-m-top23">
<el-col :span="6" class="f-flex">
<div class="flex_box">
<div class="f-flex">
<div class="f-label"><b>国籍</b></div>
<div
class="f-left8 f-font-color"
v-if="this.resiDetailObj.baseInfoDto"
@ -57,8 +57,8 @@
{{ nationalityText() }}
</div>
<div class="f-left8 f-font-color" v-else>--</div>
</el-col>
<el-col :span="6" class="f-flex">
</div>
<div class="f-flex">
<div class="f-label"><b>证件类型</b></div>
<div
class="f-left8 f-font-color"
@ -67,8 +67,8 @@
{{ idTypeText() }}
</div>
<div class="f-left8 f-font-color" v-else>--</div>
</el-col>
<el-col :span="6" class="f-flex">
</div>
<div class="f-flex">
<div class="f-label"><b>证件号</b></div>
<div class="f-left8 f-font-color">
{{
@ -98,8 +98,8 @@
@click="handelCLickShowCheckPassword('idCard')"
>{{ showFlagIdCardBtn ? "显示" : "隐藏" }}</el-button
>
</el-col>
<el-col :span="6" class="f-flex">
</div>
<div class="f-flex">
<div class="f-label"><b>联系电话</b></div>
<div class="f-left8 f-font-color">
{{
@ -129,10 +129,9 @@
@click="handelCLickShowCheckPassword('mobile')"
>{{ showFlagMobileBtn ? "显示" : "隐藏" }}</el-button
>
</el-col>
</el-row>
<el-row type="flex" justify="" class="f-m-top23">
<el-col :span="6" class="f-flex">
</div>
<div class="f-flex">
<div class="f-label">性别</div>
<div class="f-left8 f-font-color">
{{
@ -141,14 +140,14 @@
: "--"
}}
</div>
</el-col>
<el-col :span="6" class="f-flex">
</div>
<div class="f-flex">
<div class="f-label">出生日期</div>
<div class="f-left8 f-font-color" v-if="resiDetailObj.baseInfoDto">
{{ resiDetailObj.baseInfoDto.birthday || "--" }}
</div>
</el-col>
<el-col :span="6" class="f-flex">
</div>
<div class="f-flex">
<div class="f-label">民族</div>
<div class="f-left8 f-font-color">
{{
@ -157,8 +156,8 @@
: "--"
}}
</div>
</el-col>
<el-col :span="6" class="f-flex">
</div>
<div class="f-flex">
<div class="f-label">文化程度</div>
<span class="f-left8 f-font-color">
{{
@ -168,11 +167,8 @@
: "--"
}}</span
>
</el-col>
</el-row>
<el-row type="flex" justify="" class="f-m-top23">
<el-col :span="6" class="f-flex">
<div class="f-flex">
</div>
<div class="f-flex">
<div class="f-label">婚姻状况</div>
<span
class="f-left8 f-font-color"
@ -181,10 +177,8 @@
{{ categoryDictText() }}</span
>
<span v-else> -- </span>
</div>
</el-col>
<el-col :span="6" class="f-flex">
<div class="f-flex">
</div>
<div class="f-flex">
<div class="f-label">配偶情况</div>
<span
class="f-left8 f-font-color"
@ -192,9 +186,18 @@
>{{ spouseText() }}</span
>
<span v-else> -- </span>
</div>
</el-col>
<el-col :span="6" class="f-flex">
</div>
<div class="f-flex">
<div class="f-label">籍贯</div>
<span class="f-left8 f-font-color">{{
resiDetailObj.baseInfoDto
? resiDetailObj.baseInfoDto.nativePlace
? resiDetailObj.baseInfoDto.nativePlace
: "--"
: "--"
}}</span>
</div>
<div class="f-flex">
<div class="f-label">备注</div>
<div class="f-left8 f-font-color" v-if="resiDetailObj.baseInfoDto">
{{
@ -203,9 +206,9 @@
: "--"
}}
</div>
</el-col>
<el-col :span="6" class="f-flex">
<div class="f-label">创建日期</div>
</div>
<div class="f-flex">
<div class="f-label">创建时间</div>
<span class="f-left8 f-font-color" v-if="resiDetailObj.baseInfoDto">
{{
resiDetailObj.baseInfoDto.createdTime
@ -213,11 +216,8 @@
: "--"
}}</span
>
</el-col>
</el-row>
<el-row type="flex" justify="" class="f-m-top23">
<el-col :span="24" class="f-flex">
<div class="f-flex">
</div>
<div class="f-flex">
<div class="f-label">更新时间</div>
<span class="f-left8 f-font-color" v-if="resiDetailObj.baseInfoDto">
{{
@ -227,34 +227,28 @@
}}</span
>
</div>
</el-col>
</el-row>
</div>
<div class="title-small">居住信息</div>
<section
v-for="(item, indexK) in resiDetailObj.resideInfoDtos"
:key="indexK"
>
<el-row type="flex" justify="" class="f-m-top23">
<el-col :span="12" class="f-flex">
<div class="f-flex">
<div class="flex_box">
<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" style="width: 600px">
<div class="f-label"><b>所属房屋</b></div>
<span class="f-left8 f-font-color">
{{ item.gridName + "-" + item.homeName || "--" }}
{{ item.agencyName?item.agencyName:'' + item.homeName || "--" }}
</span>
</div>
</el-col>
</el-row>
<el-row type="flex" justify="" class="f-m-top23">
<el-col :span="6" class="f-flex">
<div class="f-flex">
</div>
<div class="flex_box">
<div class="f-flex">
<div class="f-label"><b>人房关系</b></div>
<span class="f-left8 f-font-color">
{{
@ -267,35 +261,31 @@
: "--"
}}
</span>
</div>
</el-col>
<el-col :span="6" class="f-flex">
</div>
<div class="f-flex">
<div class="f-label"><b>人户状况</b></div>
<span class="f-left8 f-font-color">{{
householdSituationText(indexK)
}}</span>
</div>
</el-col>
<el-col :span="6" class="f-flex">
<div 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>
<div 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>
</div>
</section>
<div class="title-small" id="ext">拓展信息</div>
<el-row type="flex" justify="" class="f-m-top23">
<el-col :span="6" class="f-flex">
<div class="f-flex">
<section class="flex_box">
<div class="f-flex">
<div class="f-label">宗教信仰</div>
<span class="f-left8 f-font-color">{{
resiDetailObj.religionDto && resiDetailObj.religionDto.religion
@ -303,28 +293,16 @@
: "--"
}}</span>
</div>
</el-col>
<el-col :span="6" class="f-flex">
<div class="f-flex">
<div class="f-label">籍贯</div>
<span class="f-left8 f-font-color">{{
resiDetailObj.baseInfoDto
? resiDetailObj.baseInfoDto.nativePlace
? resiDetailObj.baseInfoDto.nativePlace
: "--"
: "--"
}}</span>
</div>
</el-col>
<el-col :span="6" class="f-flex">
<div class="f-flex">
<div class="f-label"><b>就业状态</b></div>
<span class="f-left8 f-font-color" v-if="resiDetailObj.workInfoDto">
{{ careerStatusText() }}
</span>
<span v-else>--</span>
</el-col>
<el-col
:span="6"
</div>
<div
class="f-flex"
v-if="
resiDetailObj.workInfoDto &&
@ -340,9 +318,9 @@
: "--"
: "--"
}}</span>
</el-col>
<el-col
:span="6"
</div>
<div
class="f-flex"
v-if="
resiDetailObj.workInfoDto &&
@ -358,11 +336,9 @@
: "--"
: "--"
}}</span>
</el-col>
</el-row>
<el-row type="flex" class="f-m-top23">
<el-col
:span="6"
</div>
<div
class="f-flex"
v-if="
resiDetailObj.workInfoDto &&
@ -370,7 +346,6 @@
resiDetailObj.workInfoDto.careerStatus <= 5
"
>
<div class="f-flex">
<div class="f-label">职业</div>
<span class="f-left8 f-font-color">{{
resiDetailObj.workInfoDto
@ -379,10 +354,9 @@
: "--"
: "--"
}}</span>
</div>
</el-col>
<el-col
:span="6"
</div>
<div
class="f-flex"
v-if="
resiDetailObj.workInfoDto &&
@ -398,9 +372,9 @@
: "--"
: "--"
}}</span>
</el-col>
<el-col
:span="6"
</div>
<div
class="f-flex"
v-if="
resiDetailObj.workInfoDto &&
@ -408,7 +382,6 @@
resiDetailObj.workInfoDto.careerStatus <= 5
"
>
<div class="f-flex">
<div class="f-label">月收入</div>
<span class="f-left8 f-font-color">{{
resiDetailObj.economyDto
@ -418,9 +391,7 @@
: "--"
}}</span>
</div>
</el-col>
<el-col
:span="6"
<div
class="f-flex"
v-if="
resiDetailObj.workInfoDto &&
@ -436,9 +407,8 @@
: "--"
: "--"
}}</span>
</el-col>
<el-col
:span="6"
</div>
<div
class="f-flex"
v-if="
resiDetailObj.workInfoDto &&
@ -454,16 +424,8 @@
: "--"
: "--"
}}</span>
</el-col>
<el-col
:span="6"
class="f-flex"
v-if="
resiDetailObj.workInfoDto &&
resiDetailObj.workInfoDto.careerStatus >= 1 &&
resiDetailObj.workInfoDto.careerStatus <= 5
"
>
</div>
<div class="f-flex">
<div class="f-label">有无赡养人</div>
<div class="f-left8 f-font-color">
{{
@ -476,9 +438,8 @@
: "--"
}}
</div>
</el-col>
<el-col
:span="6"
</div>
<div
class="f-flex"
v-if="
resiDetailObj.workInfoDto &&
@ -494,18 +455,13 @@
: "--"
: "--"
}}</span>
</el-col>
</el-row>
<el-row
type="flex"
class="f-m-top23"
v-if="
</div>
<div class="f-flex" v-if="
resiDetailObj.workInfoDto &&
(resiDetailObj.workInfoDto.careerStatus == 0 ||
resiDetailObj.workInfoDto.careerStatus == 6)
"
>
<el-col :span="6" class="f-flex">
">
<div class="f-label" style="width: 113px">再就业优惠证号</div>
<span class="f-left8 f-font-color">{{
resiDetailObj.unemployedDto
@ -514,8 +470,12 @@
: "--"
: "--"
}}</span>
</el-col>
<el-col :span="6" class="f-flex">
</div>
<div class="f-flex" v-if="
resiDetailObj.workInfoDto &&
(resiDetailObj.workInfoDto.careerStatus == 0 ||
resiDetailObj.workInfoDto.careerStatus == 6)
">
<div class="f-label" style="width: 113px">是否领取失业金</div>
<span class="f-left8 f-font-color" v-if="resiDetailObj.unemployedDto">
{{
@ -529,8 +489,12 @@
}}
</span>
<span v-else>--</span>
</el-col>
<el-col :span="6" class="f-flex">
</div>
<div class="f-flex" v-if="
resiDetailObj.workInfoDto &&
(resiDetailObj.workInfoDto.careerStatus == 0 ||
resiDetailObj.workInfoDto.careerStatus == 6)
">
<div class="f-label" style="width: 113px">是否就业困难对象</div>
<span class="f-left8 f-font-color" v-if="resiDetailObj.unemployedDto">
{{
@ -544,8 +508,12 @@
}}
</span>
<span v-else>--</span>
</el-col>
<el-col :span="6" class="f-flex">
</div>
<div class="f-flex" v-if="
resiDetailObj.workInfoDto &&
(resiDetailObj.workInfoDto.careerStatus == 0 ||
resiDetailObj.workInfoDto.careerStatus == 6)
">
<div class="f-label" style="width: 113px">劳动就业愿望</div>
<span class="f-left8 f-font-color">
{{
@ -556,17 +524,13 @@
: "--"
}}
</span>
</el-col>
</el-row>
<el-row
v-if="
</div>
<div class="f-flex" v-if="
resiDetailObj.workInfoDto &&
(resiDetailObj.workInfoDto.careerStatus == 0 ||
resiDetailObj.workInfoDto.careerStatus == 6)
"
class="f-m-top23"
>
<el-col :span="6" class="f-flex">
">
<div class="f-label">有无赡养人</div>
<div class="f-left8 f-font-color">
{{
@ -579,8 +543,8 @@
: "--"
}}
</div>
</el-col>
</el-row>
</div>
</section>
<div class="title-small">关系图谱</div>
<graph
:userInfo="resiDetailObj.baseInfoDto"
@ -600,27 +564,20 @@
<div class="title-small" :id="sectionItem.scrollId">
{{ sectionItem.title }}
</div>
<el-row
type="flex"
justify=""
class="f-m-top23"
v-for="(row, rowIndex) in sectionItem.rows"
<section class="flex_box">
<div
class="f-flex"
v-for="(row, rowIndex) in sectionItem.children"
: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>
<div class="f-label">{{ row.label }}</div>
<span class="f-left8 f-font-color">{{
item.value ? item.value : "--"
row.value ? row.value : "--"
}}</span>
</div>
</el-col>
</el-row>
</div>
</section>
</section>
<div class="title-small" id="businessRecord">业务记录</div>
@ -798,7 +755,7 @@ export default {
children: [
{
label: "老年人分类",
itemType: "select1",
itemType: "checkbox",
multiple: true,
formName: "oldPeopleCategories",
opctionUrl: "sys/dict/data/dictlist",
@ -1106,6 +1063,64 @@ export default {
rules: {
password: [{ required: true, message: "请输入密码", trigger: "blur" }],
},
incidence: {
parymemberInfoDto: {
formId: "parymemberInfoDto",
formType: "parymemberInfoDto",
title: "党员信息",
},
disabilityFlag: {
formId: "healthDto",
formType: "healthDto",
title: "残疾信息",
},
seriousIllnessFlag: {
formId: "seriousIllnessDto",
formType: "seriousIllnessDto",
title: "大病信息",
},
chronicDiseaseFlag: {
formId: "chronicDiseaseDto",
formType: "chronicDiseaseDto",
title: "慢病信息",
},
deathFlag: { formId: "deathDto", formType: "deathDto", title: "死亡" },
oldPeopleFlag: {
formId: "oldPeopleDto",
formType: "oldPeopleDto",
title: "老年人信息",
},
subsistenceAllowanceFlag: {
formId: "subsistenceAllowanceDto",
formType: "subsistenceAllowanceDto",
title: "低保人员信息",
},
veteranFlag: {
formId: "veteranDto",
formType: "veteranDto",
title: "退役军人信息",
},
ensureHouseFlag: {
formId: "ensureHouseDto",
formType: "ensureHouseDto",
title: "保障性住房信息",
},
specialSupportFlag: {
formId: "specialSupportDto",
formType: "specialSupportDto",
title: "特扶人员",
},
unitedFrontFlag: {
formId: "unitedFrontDto",
formType: "unitedFrontDto",
title: "统战人员",
},
volunteerFlag: {
formId: "volunteerDto",
formType: "volunteerDto",
title: "志愿者",
},
},
};
},
components: { graph, staffTag, businessRecord, changeRecord },
@ -1145,6 +1160,7 @@ export default {
if (res.data.code === 0) {
this.resiDetailObj = res.data.data || {};
const nameMap = {
reside: "居住信息",
ext: "拓展信息",
united_front: "统战人员信息",
party_member: "党员信息",
@ -1169,14 +1185,14 @@ export default {
totalQty: value.totalQty,
}))
.reverse();
let arr = this.menuList.filter(
(item) =>
item.filledQty > 0 &&
item.name !== "基本信息" &&
item.name !== "拓展信息"
);
const keysWithValueOne = [];
for (const key in this.resiDetailObj.baseInfoDto.categoryInfo) {
if (this.resiDetailObj.baseInfoDto.categoryInfo[key] === 1) {
keysWithValueOne.push(this.incidence[key].formId);
}
}
this.expandList = this.originalExpandList.filter((itemA) => {
return arr.some((itemB) => itemB.name === itemA.title);
return keysWithValueOne.some((itemB) => itemB === itemA.id);
});
await Promise.all(
this.expandList.map(async (item) => {
@ -1199,25 +1215,13 @@ export default {
})
);
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,
id: "businessRecord",
},
{
name: "更新纪录",
filledQty: 1,
totalQty: 1,
id: "updateRecord",
}
);

Loading…
Cancel
Save