|
|
@ -7,8 +7,8 @@ |
|
|
|
</div> |
|
|
|
<div class="menu"> |
|
|
|
<div class="progress"> |
|
|
|
<div class="text"><span>信息完整度</span> <span>50</span> </div> |
|
|
|
<el-progress :percentage="50" :show-text="false"></el-progress> |
|
|
|
<div class="text"><span>信息完整度</span> <span>70</span> </div> |
|
|
|
<el-progress :percentage="70" :show-text="false"></el-progress> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="list"> |
|
|
@ -24,21 +24,19 @@ |
|
|
|
<div class="title-small">基础信息</div> |
|
|
|
<el-row type="flex" justify="" class="f-m-top23"> |
|
|
|
<el-col :span="6" class="f-flex"> |
|
|
|
<div class="f-label ">国籍:</div> |
|
|
|
<div class="f-label "><b>国籍:</b></div> |
|
|
|
<div class="f-left8 f-font-color"> |
|
|
|
{{ resiDetailObj.nationalityName ? resiDetailObj.nationalityName : "--" }} |
|
|
|
</div> |
|
|
|
|
|
|
|
</el-col> |
|
|
|
<el-col :span="6" class="f-flex"> |
|
|
|
<div class="f-label">证件类型:</div> |
|
|
|
<div class="f-label"><b>证件类型:</b></div> |
|
|
|
<div class="f-left8 f-font-color"> |
|
|
|
{{ resiDetailObj.idTypeName ? resiDetailObj.idTypeName : "--" }} |
|
|
|
</div> |
|
|
|
|
|
|
|
</el-col> |
|
|
|
<el-col :span="6" class="f-flex"> |
|
|
|
<div class="f-label">证件号:</div> |
|
|
|
<div class="f-label"><b>证件号:</b></div> |
|
|
|
<div class="f-left8 f-font-color"> |
|
|
|
{{ |
|
|
|
resiDetailObj.showIdNum |
|
|
@ -55,10 +53,10 @@ |
|
|
|
<img v-show="!showFlagIdCardBtn" src="@/assets/img/yanjing2.png" alt="" width="14px" |
|
|
|
style="margin-left: 10px" /> |
|
|
|
<el-button v-if="resiDetailObj.idNum" type="text" class="div-table-button--blue" size="small" |
|
|
|
@click="handleTuomin('idCard')">{{ showFlagIdCardBtn ? "显示" : "隐藏" }}</el-button> |
|
|
|
@click="handelCLickShowCheckPassword('idCard')">{{ showFlagIdCardBtn ? "显示" : "隐藏" }}</el-button> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6" class="f-flex"> |
|
|
|
<div class="f-label">联系电话:</div> |
|
|
|
<div class="f-label"><b>联系电话:</b></div> |
|
|
|
<div class="f-left8 f-font-color"> |
|
|
|
{{ |
|
|
|
resiDetailObj.showMobile |
|
|
@ -75,7 +73,7 @@ |
|
|
|
<img v-show="!showFlagMobileBtn" src="@/assets/img/yanjing2.png" alt="" width="14px" |
|
|
|
style="margin-left: 10px" /> |
|
|
|
<el-button v-if="resiDetailObj.mobile" type="text" class="div-table-button--blue" size="small" |
|
|
|
@click="handleTuomin('mobile')">{{ showFlagMobileBtn ? "显示" : "隐藏" }}</el-button> |
|
|
|
@click="handelCLickShowCheckPassword('mobile')">{{ showFlagMobileBtn ? "显示" : "隐藏" }}</el-button> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
</el-row> |
|
|
@ -125,6 +123,7 @@ |
|
|
|
<div class="f-label">备注:</div> |
|
|
|
<div class="f-left8 f-font-color"> |
|
|
|
{{ resiDetailObj.remark ? resiDetailObj.remark : "--" }} |
|
|
|
<!-- --> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6" class="f-flex"> |
|
|
@ -140,6 +139,42 @@ |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<div class="title-small">居住信息</div> |
|
|
|
<el-row type="flex" justify="" class="f-m-top23"> |
|
|
|
<el-col :span="24" class="f-flex"> |
|
|
|
<div class="f-flex "> |
|
|
|
<div class="f-label"><b>所属房屋:</b></div> |
|
|
|
<span class="f-left8 f-font-color" v-if="resiDetailObj"> |
|
|
|
{{ resiDetailObj.houseInfo.gridName + '-' + resiDetailObj.houseInfo.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 class="f-label"><b>人房关系:</b></div> |
|
|
|
<span class="f-left8 f-font-color">--</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">--</span> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6" class="f-flex"> |
|
|
|
<div class="f-label"><b>户籍所在地:</b></div> |
|
|
|
<div class="f-left8 f-font-color"> |
|
|
|
-- |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6" class="f-flex"> |
|
|
|
<div class="f-label"><b>与户主关系:</b></div> |
|
|
|
<span class="f-left8 f-font-color">--</span> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
|
|
|
|
<div class="title-small">拓展信息</div> |
|
|
|
<el-row type="flex" justify="" class="f-m-top23"> |
|
|
|
<el-col :span="6" class="f-flex"> |
|
|
@ -163,7 +198,7 @@ |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6" class="f-flex"> |
|
|
|
<div class="f-label">就业状态:</div> |
|
|
|
<div class="f-label"><b>就业状态:</b></div> |
|
|
|
<div class="f-left8 f-font-color"> |
|
|
|
-- |
|
|
|
</div> |
|
|
@ -178,16 +213,6 @@ |
|
|
|
: "--" |
|
|
|
}}</span> |
|
|
|
</el-col> |
|
|
|
<!-- <el-col :span="6" class="f-flex"> |
|
|
|
<div class="f-label">人房关系:</div> |
|
|
|
<div class="f-left8 f-font-color"> |
|
|
|
{{ resiDetailObj.remark ? resiDetailObj.remark : "--" }} |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
<el-col :span="6" class="f-flex"> |
|
|
|
<div class="f-labels">人户状况:</div> |
|
|
|
<span class="f-left8 f-font-color">{{ resiDetailObj.createdTime || '--' }}</span> |
|
|
|
</el-col> --> |
|
|
|
</el-row> |
|
|
|
<el-row type="flex" justify="" class="f-m-top23"> |
|
|
|
<el-col :span="6" class="f-flex"> |
|
|
@ -227,26 +252,36 @@ |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
|
|
|
|
<div class="title-small">关系图谱</div> |
|
|
|
<graph /> |
|
|
|
<graph :userInfo="resiDetailObj" v-if="resiDetailObj.resiId"/> |
|
|
|
<div class="title-small">人员标签</div> |
|
|
|
<staff-tag></staff-tag> |
|
|
|
<staff-tag :userInfo="resiDetailObj" v-if="Object.keys(resiDetailObj).length !== 0"></staff-tag> |
|
|
|
<div class="title-small">业务记录</div> |
|
|
|
<business-record :userInfo="resiDetailObj"></business-record> |
|
|
|
<div class="title-small">更新记录</div> |
|
|
|
<change-record :tableData="changeRecordList"></change-record> |
|
|
|
</div> |
|
|
|
<el-dialog title="密码验证" :visible.sync="showCheckPassword"> |
|
|
|
<el-form :model="form" :rules="rules" ref="form"> |
|
|
|
<el-form-item label="密码" prop="password"> |
|
|
|
<el-input v-model="form.password" autocomplete="off" 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> |
|
|
|
</template> |
|
|
|
<script> |
|
|
|
import { requestPost, requestGet } from '@/js/dai/request' |
|
|
|
import { requestPost } from '@/js/dai/request' |
|
|
|
import { idTypeList } from "@/js/columns/constants"; |
|
|
|
import graph from './cpts/graph.vue' |
|
|
|
import staffTag from './cpts/staffTag.vue' |
|
|
|
import businessRecord from './cpts/businessRecord.vue' |
|
|
|
import changeRecord from './cpts/table/changeRecord.vue' |
|
|
|
|
|
|
|
|
|
|
|
import businessRecord from './cpts/businessRecord.vue' |
|
|
|
import changeRecord from './cpts/table/changeRecord.vue' |
|
|
|
|
|
|
|
export default { |
|
|
|
data() { |
|
|
@ -268,29 +303,32 @@ export default { |
|
|
|
name: '基本信息(7/7)' |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '拓展信息(3/4)' |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '党员信息(7/7)' |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '残疾信息(7/7)' |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '大病信息(7/7)' |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '慢病信息(7/7)' |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '退役军人信息(7/7)' |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '保障房信息(7/7)' |
|
|
|
name: '居住信息(4/4)' |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '特扶人员信息(7/7)' |
|
|
|
name: '拓展信息(3/4)' |
|
|
|
}, |
|
|
|
// { |
|
|
|
// name: '党员信息(0/3)' |
|
|
|
// }, |
|
|
|
// { |
|
|
|
// name: '残疾信息(0/3)' |
|
|
|
// }, |
|
|
|
// { |
|
|
|
// name: '大病信息(0/3)' |
|
|
|
// }, |
|
|
|
// { |
|
|
|
// name: '慢病信息(0/3)' |
|
|
|
// }, |
|
|
|
// { |
|
|
|
// name: '退役军人信息(0/3)' |
|
|
|
// }, |
|
|
|
// { |
|
|
|
// name: '保障房信息(0/3)' |
|
|
|
// }, |
|
|
|
// { |
|
|
|
// name: '特扶人员信息(0/3)' |
|
|
|
// }, |
|
|
|
{ |
|
|
|
name: '业务记录(1)' |
|
|
|
}, { |
|
|
@ -305,11 +343,21 @@ export default { |
|
|
|
marriageArr: [], //婚姻状况字典 |
|
|
|
spouseArr: [],//配偶情况字典 |
|
|
|
careerStatusArr: [],//就业状况字典 |
|
|
|
|
|
|
|
showCheckPassword: false, |
|
|
|
form: { |
|
|
|
password: ''//脱敏确认密码 |
|
|
|
}, |
|
|
|
rules: { |
|
|
|
password: [ |
|
|
|
{ required: true, message: '请输入密码', trigger: 'blur' }, |
|
|
|
] |
|
|
|
} |
|
|
|
}; |
|
|
|
}, |
|
|
|
components: { graph, staffTag, businessRecord,changeRecord }, |
|
|
|
components: { graph, staffTag, businessRecord, changeRecord }, |
|
|
|
async created() { |
|
|
|
this.resiDetailObj = this.$store.state.huaXiang.userInfo |
|
|
|
this.resiId = this.$store.state.huaXiang.userInfo.resiId; |
|
|
|
await this.getNationalityList(); |
|
|
|
this.getResiDetail(); |
|
|
|
this.getEduInfoDtoObj(); |
|
|
@ -325,9 +373,10 @@ export default { |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
}, |
|
|
|
async activated() { |
|
|
|
this.resiDetailObj = this.$store.state.huaXiang.userInfo |
|
|
|
await this.getNationalityList(); |
|
|
|
activated() { |
|
|
|
this.resiDetailObj = null |
|
|
|
this.resiId = this.$store.state.huaXiang.userInfo.resiId; |
|
|
|
this.getNationalityList(); |
|
|
|
this.getResiDetail(); |
|
|
|
this.getEduInfoDtoObj(); |
|
|
|
this.getEducation(); |
|
|
@ -345,7 +394,7 @@ export default { |
|
|
|
async getChangeRecordDetailById() { |
|
|
|
try { |
|
|
|
const { data } = await this.$http.post( |
|
|
|
`/actual/base/residentChangeRecord/getChangeRecordsById/${this.resiDetailObj.resiId}` |
|
|
|
`/actual/base/residentChangeRecord/getChangeRecordsById/${this.resiId}` |
|
|
|
); |
|
|
|
if (data.data == null) { |
|
|
|
this.changeRecordList = []; |
|
|
@ -382,7 +431,7 @@ export default { |
|
|
|
}, |
|
|
|
getResiDetail() { |
|
|
|
this.$http |
|
|
|
.post(`/actual/base/residentBaseInfo/detail/${this.resiDetailObj.resiId}`) |
|
|
|
.post(`/actual/base/residentBaseInfo/detail/${this.resiId}`) |
|
|
|
.then((res) => { |
|
|
|
this.resiDetailObj = res.data.data; |
|
|
|
this.resiDetailObj.nationalityName = '' |
|
|
@ -408,32 +457,59 @@ export default { |
|
|
|
handelCLickMenu(index) { |
|
|
|
this.active = index |
|
|
|
}, |
|
|
|
async handleTuomin(type) { |
|
|
|
const url = `/actual/base/residentBaseInfo/getResiUserInfo/${this.resiDetailObj.resiId}`; |
|
|
|
const { data, code, msg } = await requestPost(url); |
|
|
|
handelCLickShowCheckPassword(type) { |
|
|
|
this.form.password = ''; |
|
|
|
if (type === 'idCard') { |
|
|
|
if (this.showFlagIdCardBtn) { |
|
|
|
this.showCheckPassword = true; |
|
|
|
} else { |
|
|
|
this.showFlagIdCardBtn = true; |
|
|
|
this.$set( |
|
|
|
this.resiDetailObj, |
|
|
|
"showIdNum", |
|
|
|
this.resiDetailObj.idNum.substr(0, 11) + "****" + this.resiDetailObj.idNum.substr(16, 2) |
|
|
|
); |
|
|
|
} |
|
|
|
} else if (type === 'mobile') { |
|
|
|
if (this.showFlagMobileBtn) { |
|
|
|
this.showCheckPassword = true; |
|
|
|
} else { |
|
|
|
this.showFlagMobileBtn = true; |
|
|
|
this.$set( |
|
|
|
this.resiDetailObj, |
|
|
|
"showMobile", |
|
|
|
this.resiDetailObj.mobile.substr(0, 3) + "****" + this.resiDetailObj.mobile.substr(7, 4) |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
this.tuominType = type; |
|
|
|
}, |
|
|
|
|
|
|
|
handelClickCheckPassword() { |
|
|
|
this.$refs.form.validate(vali => { |
|
|
|
if (vali) { |
|
|
|
this.handleSaveTuomin(this.form.password) |
|
|
|
} else { |
|
|
|
return false |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
async handleSaveTuomin(password) { |
|
|
|
const url = `/actual/base/residentBaseInfo/getResiUserInfo/${this.resiId}`; |
|
|
|
let parm = { |
|
|
|
password |
|
|
|
} |
|
|
|
const { data, code, msg } = await requestPost(url, parm); |
|
|
|
if (code === 0) { |
|
|
|
if (type === "mobile") { |
|
|
|
if (this.tuominType === "mobile") { |
|
|
|
this.$set(this.resiDetailObj, "showMobile", data.mobile); |
|
|
|
this.showFlagMobileBtn = !this.showFlagMobileBtn; |
|
|
|
if (this.showFlagMobileBtn) { |
|
|
|
this.$set( |
|
|
|
this.resiDetailObj, |
|
|
|
"showMobile", |
|
|
|
data.mobile.substr(0, 3) + "****" + data.mobile.substr(7, 4) |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
if (type === "idCard") { |
|
|
|
if (this.tuominType === "idCard") { |
|
|
|
this.$set(this.resiDetailObj, "showIdNum", data.idNum); |
|
|
|
this.showFlagIdCardBtn = !this.showFlagIdCardBtn; |
|
|
|
if (this.showFlagIdCardBtn) { |
|
|
|
this.$set( |
|
|
|
this.resiDetailObj, |
|
|
|
"showIdNum", |
|
|
|
data.idNum.substr(0, 11) + "****" + data.idNum.substr(16, 2) |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
this.showCheckPassword = false |
|
|
|
} else { |
|
|
|
this.$message.error(msg); |
|
|
|
} |
|
|
@ -452,7 +528,7 @@ export default { |
|
|
|
async getEduInfoDtoObj() { |
|
|
|
try { |
|
|
|
const { data } = await this.$http.get( |
|
|
|
`/actual/base/residentEduInfo/detail/${this.resiDetailObj.resiId}` |
|
|
|
`/actual/base/residentEduInfo/detail/${this.resiId}` |
|
|
|
); |
|
|
|
if (data.data == null) { |
|
|
|
this.eduInfoDto = {}; |
|
|
@ -467,7 +543,7 @@ export default { |
|
|
|
async getResidentReligionObj() { |
|
|
|
try { |
|
|
|
const { data } = await this.$http.get( |
|
|
|
`/actual/base/residentReligion/detail/${this.resiDetailObj.resiId}` |
|
|
|
`/actual/base/residentReligion/detail/${this.resiId}` |
|
|
|
); |
|
|
|
if (data.data == null) { |
|
|
|
this.residentReligionObj = {}; |
|
|
@ -504,7 +580,7 @@ export default { |
|
|
|
async getFamilyInfoDetail() { |
|
|
|
try { |
|
|
|
const { data } = await this.$http.post( |
|
|
|
`/actual/base/residentFamilyInfo/getFamilyInfoDetailById/${this.resiDetailObj.resiId}` |
|
|
|
`/actual/base/residentFamilyInfo/getFamilyInfoDetailById/${this.resiId}` |
|
|
|
); |
|
|
|
if (data.data == null) { |
|
|
|
this.residentFamilyInfoObj = {}; |
|
|
@ -519,7 +595,7 @@ export default { |
|
|
|
async getResidentWorkInfoObj() { |
|
|
|
try { |
|
|
|
const { data } = await this.$http.get( |
|
|
|
`/actual/base/residentWorkInfo/detail/${this.resiDetailObj.resiId}` |
|
|
|
`/actual/base/residentWorkInfo/detail/${this.resiId}` |
|
|
|
); |
|
|
|
if (data.data == null) { |
|
|
|
this.residentWorkInfoObj = {}; |
|
|
@ -534,7 +610,7 @@ export default { |
|
|
|
async getEconomyDetail() { |
|
|
|
try { |
|
|
|
const { data } = await this.$http.post( |
|
|
|
`/actual/base/residentEconomy/getEconomyDetailById/${this.resiDetailObj.resiId}` |
|
|
|
`/actual/base/residentEconomy/getEconomyDetailById/${this.resiId}` |
|
|
|
); |
|
|
|
if (data.data == null) { |
|
|
|
this.resiEconomyObj = {}; |
|
|
@ -549,7 +625,7 @@ export default { |
|
|
|
async getResideInfoDetail() { |
|
|
|
try { |
|
|
|
const { data } = await this.$http.post( |
|
|
|
`/actual/base/residentResideInfo/getResideInfoDetailById/${this.resiDetailObj.resiId}` |
|
|
|
`/actual/base/residentResideInfo/getResideInfoDetailById/${this.resiId}` |
|
|
|
); |
|
|
|
if (data.data == null) { |
|
|
|
this.residentResideInfoObj = {}; |
|
|
|