检测对象完成

This commit is contained in:
aixianling
2022-03-26 17:41:38 +08:00
parent 88775a9bdb
commit b0b03d00d4
4 changed files with 404 additions and 82 deletions

View File

@@ -27,7 +27,8 @@ export default {
},
created() {
this.dict.load("sex", "fpNation", "fpPrtpStatus", "fpHealth", "fpStudentsInSchool", 'fpYesOrNo', "fpRelationship",
"yesOrNo", "fpLaborSkills", "fpEducation", "fpType", "fpPoliticalOutlook")
"yesOrNo", "fpLaborSkills", "fpEducation", "fpType", "fpPoliticalOutlook",
"fpPublicWelfarePostAssistance","fpHealthAssistance","fpFnancialAssistance","fpEmploymentAssistance","fpEducationalAssistance","fpIndustrialAssistance","fpSocialAssistance")
}
}
</script>

View File

@@ -78,7 +78,7 @@
<el-input v-model="form.phone" placeholder="请输入联系方式" :maxlength="11" show-word-limit/>
</el-form-item>
<el-form-item label="现住址" prop="currentAreaId">
<ai-area-select :instance="instance" v-model="form.currentAreaId"/>
<ai-area-get :instance="instance" v-model="form.currentAreaId" :root="rootArea"/>
<el-form-item prop="currentAddress">
<el-input v-model="form.currentAddress" placeholder="详细地址" maxlength="30" show-word-limit clearable/>
</el-form-item>
@@ -108,7 +108,8 @@
</template>
<template v-if="form.isHousehold==0">
<el-form-item label="与户主关系" prop="householdRelation">
<ai-select v-model="form.householdRelation" :selectList="dict.getDict('fpRelationship')"/>
<ai-select v-model="form.householdRelation" :selectList="dict.getDict('fpRelationship')"
@change="$forceUpdate()"/>
</el-form-item>
<el-form-item label="户主身份证号" prop="householdIdNumber">
<el-input v-model="form.householdIdNumber" placeholder="请输入户主身份证号" :maxlength="18" clearable/>
@@ -117,6 +118,69 @@
</div>
</template>
</ai-card>
<template v-if="/[123]/.test(form.status)">
<ai-card title="收入情况(单位:元)">
<template slot="content">
<div flex class="half wrap">
<el-form-item label="工资收入">
<el-input v-model="form.income1" placeholder="请输入" clearable/>
</el-form-item>
<el-form-item label="生产经营收入">
<el-input v-model="form.income2" placeholder="请输入" clearable/>
</el-form-item>
<el-form-item label="财产性收入">
<el-input v-model="form.income3" placeholder="请输入" clearable/>
</el-form-item>
<el-form-item label="转移性收入">
<el-input v-model="form.income4" placeholder="请输入" clearable/>
</el-form-item>
<el-form-item label="理赔收入">
<el-input v-model="form.income5" placeholder="请输入" clearable/>
</el-form-item>
<el-form-item label="生产经营支出">
<el-input v-model="form.income6" placeholder="请输入" clearable/>
</el-form-item>
<el-form-item label="合规自然支出">
<el-input v-model="form.income7" placeholder="请输入" clearable/>
</el-form-item>
<el-form-item label="家庭人均纯收入">
<el-input v-model="form.income8" placeholder="请输入" clearable/>
</el-form-item>
</div>
</template>
</ai-card>
<ai-card title="帮扶情况">
<template slot="content">
<div flex class="half wrap">
<el-form-item label="产业帮扶">
<ai-select v-model="form.industrialAssistance" :selectList="dict.getDict('fpIndustrialAssistance')"/>
</el-form-item>
<el-form-item label="健康帮扶1">
<ai-select v-model="form.healthAssistance" :selectList="dict.getDict('fpHealthAssistance')"/>
</el-form-item>
<el-form-item label="就业帮扶1">
<ai-select v-model="form.employmentAssistance" :selectList="dict.getDict('fpEmploymentAssistance')"/>
</el-form-item>
<el-form-item label="教育帮扶1">
<ai-select v-model="form.educationalAssistance" :selectList="dict.getDict('fpEducationalAssistance')"/>
</el-form-item>
<el-form-item label="金融帮扶1">
<ai-select v-model="form.financialAssistance" :selectList="dict.getDict('fpFnancialAssistance')"/>
</el-form-item>
<el-form-item label="社会帮扶1">
<ai-select v-model="form.socialAssistance" :selectList="dict.getDict('fpSocialAssistance')"/>
</el-form-item>
<el-form-item label="公益岗帮扶">
<ai-select v-model="form.publicWelfarePostAssistance" :selectList="dict.getDict('fpPublicWelfarePostAssistance')"/>
</el-form-item>
<el-form-item label="是否风险消除">
<ai-select disabled v-model="form.riskEliminated" :selectList="dict.getDict('fpYesOrNo')"/>
</el-form-item>
<el-form-item label="风险消除日期">{{ form.riskEliminatedTime }}</el-form-item>
</div>
</template>
</ai-card>
</template>
</el-form>
</template>
<template #footer>
@@ -129,6 +193,8 @@
<script>
import {mapState} from "vuex";
export default {
name: "hrAdd",
props: {
@@ -137,8 +203,9 @@ export default {
permissions: Function
},
computed: {
...mapState(['user']),
addTitle() {
return !!this.$route.query.id ? "编辑测对象" : "添加测对象"
return !!this.$route.query.id ? "编辑测对象" : "添加测对象"
},
rules() {
return {
@@ -148,6 +215,9 @@ export default {
currentAreaId: [{required: true, message: "请选择户籍地"}],
isHousehold: [{required: true, message: "请选择是否户主"}],
}
},
rootArea() {
return this.user.info?.areaId?.replace(/(\d{6})\d+/g, '$1' + Array(7).join("0")) || ""
}
},
data() {
@@ -176,6 +246,9 @@ export default {
submit() {
this.$refs.ruleForm.validate(v => {
if (v) {
if (this.form.isHousehold == 1) {
this.form.householdIdNumber = this.form.idNumber
}
this.instance.post(`/app/apppreventionreturntopoverty/addOrUpdate`, this.form).then(res => {
if (res.code == 0) {
this.$message.success('提交成功!');

View File

@@ -1,9 +1,35 @@
<template>
<section class="hrDetail">
<ai-detail>
<ai-title slot="title" title="监测对象详情" isShowBottomBorder isShowBack @onBackClick="back"/>
<ai-title slot="title" title="监测对象详情" isShowBottomBorder isShowBack @onBackClick="back">
<template #rightBtn>
<template v-if="/0/.test(detail.status)">
<el-button type="primary" @click="handleAccept(1)">纳入监测</el-button>
<el-button type="primary" @click="handleAccept(0)">驳回申请</el-button>
</template>
<template v-if="/1/.test(detail.status)">
<el-button type="primary" @click="handleRelieve(1)" v-if="isGridAdmin">解除风险</el-button>
<el-button type="primary" @click="handleRelieve()" v-else>申请解除风险</el-button>
</template>
<template v-if="/2/.test(detail.status)">
<el-button type="primary" @click="handleRelieve(1)" v-if="isGridAdmin">解除风险</el-button>
<el-button type="primary" @click="handleRelieve(0)">继续监测</el-button>
</template>
<template v-if="/3/.test(detail.status)">
<el-button type="primary" @click="handleAccept(1)">纳入监测</el-button>
</template>
<el-button v-if="/[134]/g.test(detail.status)" type="primary" icon="iconfont iconEdit" @click="gotoEdit">
编辑
</el-button>
<el-button v-if="/[134]/g.test(detail.status)" icon="iconfont iconDelete" @click="handleDelete(detail.id)">
删除
</el-button>
</template>
</ai-title>
<template #content>
<el-form :model="detail" label-width="130px" label-position="right" size="small">
<el-tabs tabPosition="left" v-model="currentTab">
<el-tab-pane label="基本信息" lazy>
<ai-card :title="detail.name||'无名氏'">
<template #content>
<div flex class="flex-start">
@@ -24,7 +50,10 @@
</el-form-item>
<el-form-item label="健康状况">{{ dict.getLabel('fpHealth', detail.healthyStatus) }}</el-form-item>
<el-form-item label="务工时间(月)" prop="idNumber">{{ detail.workeMonths }}</el-form-item>
<el-form-item label="劳动技能">{{ dict.getLabel('fpLaborSkills', detail.labourStatus) }}</el-form-item>
<el-form-item label="劳动技能">{{
dict.getLabel('fpLaborSkills', detail.labourStatus)
}}
</el-form-item>
<el-form-item label="务工区域" prop="idNumber">{{ detail.workArea }}</el-form-item>
<el-form-item label="是否参加大病保险">{{
dict.getLabel('fpYesOrNo', detail.seriousIllnessInsurance)
@@ -61,7 +90,7 @@
<template slot="content">
<div flex class="half wrap">
<el-form-item label="是否户主">{{ dict.getLabel('yesOrNo', detail.isHousehold) }}</el-form-item>
<template v-if="detail.householdName==1">
<template v-if="detail.isHousehold==1">
<el-form-item label="监测对象类型">{{ dict.getLabel('fpType', detail.objectType) }}</el-form-item>
<el-form-item label="是否危房">
{{ dict.getLabel('fpYesOrNo', detail.dilapidatedHousehold) }}
@@ -71,7 +100,7 @@
</el-form-item>
<el-form-item label="是否搬迁">{{ dict.getLabel('fpYesOrNo', detail.move) }}</el-form-item>
</template>
<template v-if="detail.householdName==0">
<template v-if="detail.isHousehold==0">
<el-form-item label="与户主关系">
{{ dict.getLabel('fpRelationship', detail.householdRelation) }}
</el-form-item>
@@ -80,13 +109,95 @@
</div>
</template>
</ai-card>
<template v-if="/[123]/.test(detail.status)">
<ai-card title="收入情况(单位:元)">
<template slot="content">
<div flex class="half wrap">
<el-form-item label="工资收入">{{ detail.income1 }}</el-form-item>
<el-form-item label="生产经营收入">{{ detail.income2 }}</el-form-item>
<el-form-item label="财产性收入">{{ detail.income3 }}</el-form-item>
<el-form-item label="转移性收入">{{ detail.income4 }}</el-form-item>
<el-form-item label="理赔收入">{{ detail.income5 }}</el-form-item>
<el-form-item label="生产经营支出">{{ detail.income6 }}</el-form-item>
<el-form-item label="合规自然支出">{{ detail.income7 }}</el-form-item>
<el-form-item label="家庭人均纯收入">{{ detail.income8 }}</el-form-item>
</div>
</template>
</ai-card>
<ai-card title="帮扶情况">
<template slot="content">
<div flex class="half wrap">
<el-form-item label="产业帮扶">{{ dict.getLabel('fpIndustrialAssistance', detail.industrialAssistance) }}</el-form-item>
<el-form-item label="健康帮扶">{{ dict.getLabel('fpHealthAssistance', detail.healthAssistance) }}</el-form-item>
<el-form-item label="就业帮扶">{{ dict.getLabel('fpEmploymentAssistance', detail.employmentAssistance) }}</el-form-item>
<el-form-item label="教育帮扶">{{ dict.getLabel('fpEducationalAssistance', detail.educationalAssistance) }}</el-form-item>
<el-form-item label="金融帮扶">{{ dict.getLabel('fpFnancialAssistance', detail.financialAssistance) }}</el-form-item>
<el-form-item label="社会帮扶">{{ dict.getLabel('fpSocialAssistance', detail.socialAssistance) }}</el-form-item>
<el-form-item label="公益岗帮扶">{{ dict.getLabel('fpPublicWelfarePostAssistance', detail.publicWelfarePostAssistance) }}</el-form-item>
<el-form-item label="是否风险消除">{{ dict.getLabel('fpYesOrNo', detail.riskEliminated) }}</el-form-item>
<el-form-item label="风险消除日期">{{ detail.riskEliminatedTime }}</el-form-item>
</div>
</template>
</ai-card>
<ai-card title="家庭成员">
<template #content>
<ai-table :tableData="detail.family" :colConfigs="colConfigs" :dict="dict" :isShowPagination="false">
<el-table-column slot="options" label="操作" align="center">
<template slot-scope="{row}">
<el-button type="text" @click="$router.push({query:{id:row.id}})">详情</el-button>
</template>
</el-table-column>
</ai-table>
</template>
</ai-card>
</template>
</el-tab-pane>
<el-tab-pane label="帮扶日志" lazy name="log">
<ai-card title="帮扶日志">
<template #right>
<el-button type="text" icon="el-icon-plus" @click="dialog=true">添加</el-button>
</template>
<template #content>
<div class="logItem" v-for="row in tableData" :key="row.id">
<el-row type="flex" align="middle" justify="space-between">
<b v-text="row.createUserName"/>
<span v-text="row.createTime"/>
</el-row>
<div class="content" v-text="row.detail"/>
<ai-uploader v-model="row.files" disabled/>
<div class="btns">
<el-button type="text" @click="handleEditLog(row)">编辑</el-button>
<el-button type="text" @click="handleDeleteLog(row.id)">删除</el-button>
</div>
</div>
<ai-empty v-if="tableData.length==0"/>
</template>
</ai-card>
</el-tab-pane>
</el-tabs>
</el-form>
</template>
</ai-detail>
<ai-dialog :visible.sync="dialog" title="新建日志" @closed="form={}" @onConfirm="submitHelpLog" width="600px">
<el-form :model="form" :rules="rules" ref="DialogForm" size="small" label-width="80px">
<el-form-item label="帮扶日志" prop="detail">
<el-input type="textarea" v-model="form.detail" placeholder="请输入" maxlength="500" show-word-limit rows="5"/>
</el-form-item>
<el-form-item label="图片" prop="files">
<ai-uploader v-model="form.files" :instance="instance" acceptType=".jpg,.jpeg,.png">
<template #tips>
仅支持10M以内的jpgjpegpng格式照片
</template>
</ai-uploader>
</el-form-item>
</el-form>
</ai-dialog>
</section>
</template>
<script>
import {mapState} from "vuex";
export default {
name: "hrDetail",
props: {
@@ -94,9 +205,39 @@ export default {
dict: Object,
permissions: Function
},
computed: {
...mapState(['user']),
colConfigs() {
return [
{label: "与户主关系", prop: "householdRelation", dict: "fpRelationship"},
{label: "姓名", prop: "name"},
{label: "性别", prop: "sex", dict: "sex"},
{label: "年龄", prop: "age"},
{label: "身份证号", render: (h, {row}) => h('p', null, this.idCardNoUtil.hideId(row.idNumber))},
{slot: "options"}
]
},
isGridAdmin() {
return this.user.info.girdCheckType == 2
}
},
watch: {
currentTab(v) {
if (v == "log") {
this.getHelpLogs()
}
}
},
data() {
return {
detail: {}
detail: {},
dialog: false,
form: {},
rules: {
detail: {required: true, message: "请输入帮扶内容"}
},
currentTab: "",
tableData: []
}
},
methods: {
@@ -113,6 +254,87 @@ export default {
}
})
},
gotoEdit() {
let {query} = this.$route
this.$router.push({query, hash: "#add"})
},
handleDelete(ids) {
this.$confirm("是否要删除监测对象").then(() => {
this.instance.post("/app/apppreventionreturntopoverty/delete", null, {
params: {ids: ids?.toString()}
}).then(res => {
if (res?.code == 0) {
this.$message.success("删除成功!")
this.back()
}
})
}).catch(() => 0)
},
handleAccept(pass) {
let msg = pass == 1 ? "是否将该人员纳入监测对象?" : "是否驳回纳入监测对象申请?", {id} = this.detail
this.$confirm(msg).then(() => {
this.instance.post("/app/apppreventionreturntopoverty/examine", null, {
params: {pass, id}
}).then(res => {
if (res?.code == 0) {
this.$message.success("审批提交成功!")
this.back()
}
})
}).catch(() => 0)
},
handleRelieve(pass) {
let {id} = this.detail
this.$confirm(`是否${!pass ? '(申请)' : ''}解除监测对象`).then(() => {
this.instance.post("/app/apppreventionreturntopoverty/relieve", null, {
params: {pass, id}
}).then(res => {
if (res?.code == 0) {
this.$message.success("审批提交成功!")
this.back()
}
})
}).catch(() => 0)
},
getHelpLogs() {
let {id: pid} = this.detail
this.instance.post("/app/apppreventionreturntopovertylog/list", null, {
params: {size: 9999, pid}
}).then(res => {
if (res?.data) {
this.tableData = res.data?.records || []
}
})
},
submitHelpLog() {
this.$refs.DialogForm.validate(v => {
if (v) {
let {id: pid} = this.detail
this.instance.post(`/app/apppreventionreturntopovertylog/addOrUpdate`, {...this.form, pid}).then(res => {
if (res.code == 0) {
this.$message.success('提交成功!');
this.getHelpLogs()
}
})
}
})
},
handleEditLog(row) {
this.dialog = true
this.form = JSON.parse(JSON.stringify(row))
},
handleDeleteLog(ids) {
this.$confirm("是否要删除帮扶日志").then(() => {
this.instance.post("/app/apppreventionreturntopovertylog/delete", null, {
params: {ids: ids?.toString()}
}).then(res => {
if (res?.code == 0) {
this.$message.success("删除成功!")
this.back()
}
})
}).catch(() => 0)
},
},
created() {
this.getDetail()
@@ -147,5 +369,30 @@ export default {
.el-date-editor {
width: 100%;
}
.logItem {
position: relative;
padding: 8px 16px;
border-radius: 4px;
&:hover {
background: #eee;
.btns {
display: block;
}
}
.content {
margin: 8px 0;
}
.btns {
display: none;
position: absolute;
right: 8px;
bottom: 8px;
}
}
}
</style>

View File

@@ -40,7 +40,8 @@
unlink-panels
@change="page.current=1,getTableData()"
/>
<ai-select placeholder="政治面貌" v-model="search.politicsStatus" :selectList="dict.getDict('fpPoliticalOutlook')"
<ai-select placeholder="政治面貌" v-model="search.politicsStatus"
:selectList="dict.getDict('fpPoliticalOutlook')"
@change="page.current=1,getTableData()"/>
<ai-select placeholder="是否户主" v-model="search.isHousehold"
:selectList="dict.getDict('yesOrNo')"
@@ -123,7 +124,7 @@ export default {
{label: "民族", prop: "nation", align: "center", dict: "fpNation"},
{label: "文化程度", prop: "education", align: "center", dict: "fpEducation"},
{label: "政治面貌", prop: "politicsStatus", align: "center", dict: "fpPoliticalOutlook"},
{label: "档案状态", prop: "status", dict: "fpPrtpStatus"},
{label: "档案状态", prop: "status", dict: "fpPrtpStatus", align: "center"},
{slot: "options"}
],
ids: [],