监测对象

This commit is contained in:
liuye
2022-04-26 10:36:06 +08:00
parent 050f76c1be
commit 7e19978d7a
3 changed files with 150 additions and 64 deletions

View File

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

View File

@@ -9,21 +9,26 @@
@onBackClick="back" @onBackClick="back"
> >
<template #rightBtn> <template #rightBtn>
<template v-if="/0/.test(detail.status) && isGridAdmin"> <template v-if="detail.status == 1">
<el-button type="primary" @click="handleAccept(1)" <el-button type="primary" icon="iconfont iconEdit" @click="gotoEdit">编辑</el-button>
>纳入监测</el-button <el-button v-if="isGridAdmin" icon="iconfont iconDelete" @click="handleDelete(detail.id)">删除</el-button>
>
<el-button type="primary" @click="handleAccept(0)"
>驳回申请</el-button
>
</template> </template>
<template v-if="/2/.test(detail.status) && isGridAdmin"> <template v-if="isGridAdmin">
<el-button type="primary" @click="handleRelieve(1)" <el-button type="primary" @click="applyMonitor('纳入监测', 1)" v-if="detail.status === null">纳入监测</el-button>
>解除风险</el-button <el-button type="primary" @click="examine('纳入监测审批', 2)" v-if="detail.status == 0">纳入监测审批</el-button>
> <el-button type="primary" @click="applyMonitor('解除风险', 4)" v-if="detail.status == 1">解除风险</el-button>
<el-button type="primary" @click="handleRelieve(0)" <el-button type="primary" @click="examine('解除风险审批', 5)" v-if="detail.status == 2">解除风险审批</el-button>
>继续监测</el-button <el-button type="primary" @click="applyMonitor('继续监测', 1)" v-if="detail.status == 3">继续监测</el-button>
> </template>
<template v-else>
<el-button type="primary" @click="applyMonitor('申请纳入监测', 0)" v-if="detail.status == 0">申请纳入监测</el-button>
<el-button type="primary" @click="applyMonitor('申请解除风险', 3)" v-if="detail.status == 2">申请解除风险</el-button>
</template>
<!-- <template v-if="/2/.test(detail.status) && isGridAdmin">
<el-button type="primary" @click="applyMonitor('解除风险', 4)">解除风险</el-button>
<el-button type="primary" @click="handleRelieve(0)">继续监测</el-button>
</template> </template>
<template v-if="/3/.test(detail.status) && isGridAdmin"> <template v-if="/3/.test(detail.status) && isGridAdmin">
<el-button type="primary" @click="handleAccept(1)" <el-button type="primary" @click="handleAccept(1)"
@@ -72,7 +77,8 @@
@click="handleDelete(detail.id)" @click="handleDelete(detail.id)"
>删除</el-button >删除</el-button
> >
</template> </template> -->
<el-button <el-button
v-if="/4/g.test(detail.status)" v-if="/4/g.test(detail.status)"
icon="iconfont iconDelete" icon="iconfont iconDelete"
@@ -80,8 +86,6 @@
> >
删除 删除
</el-button> </el-button>
<el-button type="primary" @click="applyMonitor('申请纳入监测')">申请纳入监测</el-button>
<el-button type="primary" @click="examine('纳入监测审批')">纳入监测</el-button>
</template> </template>
</ai-title> </ai-title>
<template #content> <template #content>
@@ -611,65 +615,65 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</ai-dialog> </ai-dialog>
<!-- <ai-dialog :visible.sync="isShowApply" :title="dialogTitle" @closed="form={}" @onConfirm="submitApply" width="600px"> <ai-dialog :visible.sync="isShowApply" :title="dialogTitle" @closed="applyInfo={},applyFileList=[]" @onConfirm="submitApply" width="600px">
<el-form :model="applyInfo" :rules="rulesApply" ref="dialogApplyInfo" size="small" label-width="80px"> <el-form :model="applyInfo" :rules="rulesApply" ref="dialogApplyInfo" size="small" label-width="120px">
<el-form-item label="风险因素" prop="riskType"> <el-form-item label="风险因素" prop="riskType" v-if="changeStatus == 0 || changeStatus == 1">
<ai-select <ai-select
v-model="applyInfo.riskType" v-model="applyInfo.riskType"
:selectList="dict.getDict('fpRiskType')" :selectList="dict.getDict('fpRiskType')"
/> />
</el-form-item> </el-form-item>
<el-form-item label="风险消除因素" prop="riskType"> <el-form-item label="风险消除方式" prop="riskEliminationMethod" v-if="changeStatus == 3 || changeStatus == 4">
<ai-select <ai-select
v-model="applyInfo.riskType" v-model="applyInfo.riskEliminationMethod"
:selectList="dict.getDict('fpRiskType')" :selectList="dict.getDict('fpRiskEliminationMethod')"
/> />
</el-form-item> </el-form-item>
<el-form-item label="备注说明"> <el-form-item label="备注说明">
<el-input type="textarea" v-model="applyInfo.detail" placeholder="请输入" maxlength="500" show-word-limit rows="5"/> <el-input type="textarea" v-model="applyInfo.opinion" placeholder="请输入" maxlength="500" show-word-limit rows="5"/>
</el-form-item> </el-form-item>
<el-form-item label="图片"> <el-form-item label="图片">
<ai-uploader v-model="applyInfo.files" :instance="instance" acceptType=".jpg,.jpeg,.png"> <ai-uploader v-model="applyFileList" :instance="instance" acceptType=".jpg,.jpeg,.png">
<template #tips> <template #tips>
最多9张,仅支持10M以内的jpgjpegpng格式照片 最多9张,仅支持10M以内的jpgjpegpng格式照片
</template> </template>
</ai-uploader> </ai-uploader>
</el-form-item> </el-form-item>
</el-form> </el-form>
</ai-dialog> --> </ai-dialog>
<ai-dialog :visible.sync="isShowExamine" :title="dialogTitle" @closed="form={}" @onConfirm="submitApply" width="800px" customFooter> <ai-dialog :visible.sync="isShowExamine" :title="dialogTitle" width="800px" customFooter>
<el-steps :active="2" align-center> <el-steps :active="examineStep" align-center>
<el-step title="申请信息"></el-step> <el-step title="申请信息"></el-step>
<el-step title="处理意见"></el-step> <el-step title="处理意见"></el-step>
<el-step title="完成"></el-step> <el-step title="完成"></el-step>
</el-steps> </el-steps>
<div class="info"> <div class="info" v-if="examineStep == 1">
<ai-wrapper label-width="120px" :columnsNumber="2" style="margin-top: 16px;"> <ai-wrapper label-width="120px" :columnsNumber="2" style="margin-top: 16px;">
<ai-info-item label="操作类型" :value="detail.name"/> <ai-info-item label="操作类型" :value="changeStatus == 2 ? '申请纳入监测' : '申请解除风险' "/>
<ai-info-item label="风险因素" :value="detail.name"/> <ai-info-item label="风险因素" :value="dict.getLabel('fpRiskType', examineInfo.bizDictValue)" v-if="changeStatus == 2"/>
<ai-info-item label="风险消除方式" :value="detail.name"/> <ai-info-item label="风险消除方式" :value="dict.getLabel('fpRiskEliminationMethod', examineInfo.bizDictValue)" v-if="changeStatus == 5"/>
<ai-info-item label="申请人" :value="detail.name"/> <ai-info-item label="申请人" :value="examineInfo.operationUserName"/>
<ai-info-item label="申请时间" :value="detail.name"/> <ai-info-item label="申请时间" :value="examineInfo.createTime"/>
</ai-wrapper> </ai-wrapper>
<ai-wrapper label-width="120px" :columnsNumber="1"> <ai-wrapper label-width="120px" :columnsNumber="1">
<ai-info-item label="备注说明" :value="detail.name"/> <ai-info-item label="备注说明" :value="examineInfo.detail"/>
</ai-wrapper> </ai-wrapper>
<ai-uploader v-model="detail.files" disabled/> <ai-uploader v-model="examineInfo.files" disabled style="padding-left:60px;" />
</div> </div>
<div class="form"> <div class="form" v-if="examineStep == 2">
<el-form :model="applyInfo" :rules="rulesApply" ref="dialogApplyInfo" size="small" label-width="80px"> <el-form :model="examineFrom" size="small" label-width="80px">
<el-form-item label="审核结果" prop="riskType"> <el-form-item label="审核结果" required>
<el-radio-group v-model="rulesApply.radio"> <el-radio-group v-model="examineFrom.pass">
<el-radio :label="3">解除风险</el-radio> <el-radio :label="1" v-if="changeStatus == 5">解除风险</el-radio>
<el-radio :label="3">纳入监测</el-radio> <el-radio :label="1" v-if="changeStatus == 2">纳入监测</el-radio>
<el-radio :label="6">驳回申请</el-radio> <el-radio :label="0">驳回申请</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="备注说明"> <el-form-item label="备注说明">
<el-input type="textarea" v-model="applyInfo.detail" placeholder="请输入" maxlength="500" show-word-limit rows="5"/> <el-input type="textarea" v-model="examineFrom.opinion" placeholder="请输入" maxlength="500" show-word-limit rows="5"/>
</el-form-item> </el-form-item>
<el-form-item label="图片"> <el-form-item label="图片">
<ai-uploader v-model="applyInfo.files" :instance="instance" acceptType=".jpg,.jpeg,.png"> <ai-uploader v-model="examineFileList" :instance="instance" acceptType=".jpg,.jpeg,.png">
<template #tips> <template #tips>
最多9张,仅支持10M以内的jpgjpegpng格式照片 最多9张,仅支持10M以内的jpgjpegpng格式照片
</template> </template>
@@ -677,9 +681,13 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="success" v-if="examineStep == 3">
<i class="el-icon-success"></i>
<p>审核成功</p>
</div>
<template slot="footer"> <template slot="footer">
<el-button>取消</el-button> <el-button @click="cancelExamine">{{examineStep == 2 ? '上一步' : '取消'}}</el-button>
<el-button type="primary">下一步</el-button> <el-button type="primary" @click="examineNext">{{examineStep == 3 ? '确定' : '下一步'}}</el-button>
</template> </template>
</ai-dialog> </ai-dialog>
</template> </template>
@@ -749,6 +757,7 @@ export default {
rulesApply() { rulesApply() {
return { return {
riskType: [{ required: true, message: "请选择风险因素" }], riskType: [{ required: true, message: "请选择风险因素" }],
riskEliminationMethod: [{ required: true, message: "请选择风险消除方式" }],
}; };
}, },
rootArea() { rootArea() {
@@ -768,7 +777,13 @@ export default {
isShowApply: false, isShowApply: false,
dialogTitle: '', dialogTitle: '',
applyInfo: {}, applyInfo: {},
isShowExamine: false isShowExamine: false,
examineInfo: {},
examineStep: 1, //审批步骤
examineFrom: {pass: 1},
applyFileList: [],
examineFileList: [],
changeStatus: 0, //操作状态 0:申请纳入监测 1:纳入监测 2:纳入监测审批 3:申请解除风险 4:解除风险 5:解除风险审批
}; };
}, },
methods: { methods: {
@@ -875,26 +890,82 @@ export default {
let { query } = this.$route; let { query } = this.$route;
this.$router.push({ query, hash: "#add" }); this.$router.push({ query, hash: "#add" });
}, },
applyMonitor(title) { applyMonitor(title, status) {
this.dialogTitle = title this.dialogTitle = title
this.changeStatus = status
this.isShowApply = true this.isShowApply = true
}, },
submitApply() { submitApply() {
this.$refs.dialogApplyInfo.validate((v) => { this.$refs.dialogApplyInfo.validate((v) => {
if (v) { if (v) {
// this.instance.post(`/app/apppreventionreturntopoverty/addOrUpdate`, this.form).then(res => { this.applyInfo.id = this.detail.id
// if (res.code == 0) { if(this.changeStatus == 1 || this.changeStatus == 4) { //网格长直接纳入监测/解除风险
// this.getDetail() this.applyInfo.pass = 1
// this.$message.success('提交成功!'); }
// this.isShowAdd = false var url = ''
// } if(this.changeStatus == 0 || this.changeStatus == 1) { //纳入监测
// }) url = `/app/apppreventionreturntopoverty/examine`
}
if(this.changeStatus == 3 || this.changeStatus == 4) { //解除风险
url = `/app/apppreventionreturntopoverty/relieve`
}
if(this.applyFileList.length) {
var ids = this.applyFileList.map((item) => {
return item.id
})
this.applyInfo.files = ids.join(',')
}
this.instance.post(url, null, {params: this.applyInfo}).then(res => {
if (res.code == 0) {
this.getDetail()
this.$message.success('提交成功!');
this.isShowApply = false
}
})
} }
}); });
}, },
examine(title) { examine(title, status) {
this.dialogTitle = title this.dialogTitle = title
this.isShowExamine = true this.changeStatus = status
this.instance.post(`/app/apppreventionreturntopoverty/popup?id=${this.detail.id}`).then(res => {
if (res.code == 0) {
this.examineInfo = res.data
this.isShowExamine = true
}
})
},
examineNext() {
if(this.examineStep == 2) { //审批操作
if(this.examineFileList.length) {
var ids = this.examineFileList.map((item) => {
return item.id
})
this.examineFrom.files = ids.join(',')
}
this.examineFrom.id = this.detail.id
this.instance.post(`/app/apppreventionreturntopoverty/relieve`, null, {params: this.examineFrom}).then(res => {
if (res.code == 0) {
this.getDetail()
this.$message.success('提交成功!');
}
})
}
if(this.examineStep == 3) {
this.isShowExamine = false
this.examineFrom = {pass: 1}
return
}
this.examineStep ++
},
cancelExamine() {
if(this.examineStep == 2) {
return this.examineStep --
}
this.isShowExamine = false
}, },
@@ -989,6 +1060,20 @@ export default {
} }
} }
.success {
text-align: center;
padding-top: 20px;
.el-icon-success{
color: rgb(46, 162, 34);
font-size: 100px;
}
p{
font-size: 16px;
padding-top: 20px;
color: #000;
}
}
::v-deep.el-tabs__content { ::v-deep.el-tabs__content {
max-height: calc(100vh - 136px); max-height: calc(100vh - 136px);
overflow-y: auto; overflow-y: auto;
@@ -1000,7 +1085,7 @@ export default {
::v-deep .el-step__line{ ::v-deep .el-step__line{
background-color: #ccc!important; background-color: #ccc!important;
} }
::v-deep .el-step__title{ ::v-deep .el-step__title, .is-wait{
color: #666!important; color: #666!important;
} }
::v-deep .is-finish{ ::v-deep .is-finish{

View File

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