网格长审批

This commit is contained in:
shijingjing
2022-04-26 15:44:43 +08:00
parent 8c54d439eb
commit 2a1597e06d
2 changed files with 246 additions and 12 deletions

View File

@@ -233,14 +233,14 @@
<div class="footer-btn" v-if="info.status == 1"> <div class="footer-btn" v-if="info.status == 1">
<div class="confirm-btn" @click="toAddView('您确认要申请解除此监测对象的风险吗?', '')">申请解除风险</div> <div class="confirm-btn" @click="toAddView('您确认要申请解除此监测对象的风险吗?', '')">申请解除风险</div>
</div> </div>
<div class="footer-btn" v-if="info.status == null || info.status == 3"> <div class="footer-btn" v-if="info.status == 0 || info.status == 3">
<div class="confirm-btn" @click="toAddView('您确认要申请纳入此监测对象吗?', '')">申请纳入监测</div> <div class="confirm-btn" @click="toAddView('您确认要申请纳入此监测对象吗?', '')">申请纳入监测</div>
</div> </div>
</div> </div>
<div v-if="checkType == 2 && currIndex != 1"> <div v-if="checkType == 2 && currIndex != 1">
<div class="footer-btn" v-if="info.status == 0"> <div class="footer-btn" v-if="info.status == 0">
<div @click="examine('您确认要驳回此居民的监测对象申请吗?', 0)">驳回申请</div> <div @click="toRemove('您确认要驳回此居民的监测对象申请吗?', 0)">驳回申请</div>
<div class="confirm-btn" @click="toRemove('您确认要将此居民纳入监测对象吗?', 1)">纳入监测</div> <div class="confirm-btn" @click="toRemove('您确认要将此居民纳入监测对象吗?', 1)">纳入监测</div>
</div> </div>
<div class="footer-btn" v-if="info.status == 1"> <div class="footer-btn" v-if="info.status == 1">
@@ -248,7 +248,7 @@
<div class="confirm-btn" @click="toRemove('您确认要解除此监测对象的风险吗?', 1)">消除风险</div> <div class="confirm-btn" @click="toRemove('您确认要解除此监测对象的风险吗?', 1)">消除风险</div>
</div> </div>
<div class="footer-btn" v-if="info.status == 2"> <div class="footer-btn" v-if="info.status == 2">
<div @click="examine('您确认要继续监测该居民?', 0)">继续监测</div> <div @click="toRemove('您确认要继续监测该居民?', 0)">继续监测</div>
<div class="confirm-btn" @click="toRemove('您确认要解除此监测对象的风险吗?', 1)">消除风险</div> <div class="confirm-btn" @click="toRemove('您确认要解除此监测对象的风险吗?', 1)">消除风险</div>
</div> </div>
<div class="footer-btn" v-if="info.status == 3"> <div class="footer-btn" v-if="info.status == 3">
@@ -466,7 +466,7 @@ export default {
toRemove(text, pass) { toRemove(text, pass) {
this.$confirm('', text).then(() => { this.$confirm('', text).then(() => {
uni.navigateTo({url: `./MonitorAddView?pass=${pass}&id=${this.info.id}`}) uni.navigateTo({url: `./MonitorRemoveView?pass=${pass}&id=${this.info.id}&status=${this.info.status}`})
// this.$http.post(`/app/apppreventionreturntopoverty/relieve?id=${this.id}&pass=${pass}`).then(res => { // this.$http.post(`/app/apppreventionreturntopoverty/relieve?id=${this.id}&pass=${pass}`).then(res => {
// if (res.code === 0) { // if (res.code === 0) {
// this.$u.toast('操作成功') // this.$u.toast('操作成功')

View File

@@ -1,36 +1,270 @@
<template> <template>
<div class="MonitorRemoveView"> <div class="MonitorRemoveView">
<div class="user-info">
<div class="title">审核信息</div>
<div class="info">
<div class="item">
<span>操作类型</span>
<span style="color: #2EA222;" v-if="info.operationType == 0">申请纳入监测</span>
<span style="color: #2EA222;" v-if="info.operationType == 1">申请解除风险</span>
</div>
<div class="item">
<span>监测类型</span>
<span v-if="info.operationType == 0">{{ $dict.getLabel('fpRiskType',info.bizDictValue) }}</span>
<span v-if="info.operationType == 1">{{ $dict.getLabel('fpRiskEliminationMethod',info.bizDictValue) }}</span>
</div>
<div class="item">
<span>申请人</span>
<span>{{ info.operationUserName }}</span>
</div>
<div class="item">
<span>申请时间</span>
<span>{{ info.createTime }}</span>
</div>
<div class="item">
<span>备注说明</span>
<span>{{ info.detail }}</span>
</div>
<div class="item">
<span style="color: #999;">图片</span>
<div class="imgs" v-if="info.files && info.files.length">
<image :src="img.url" @click="prevImg(info.files, img.url)" v-for="(img, index) in info.files"
:key="index"/>
</div>
</div>
</div>
</div>
<div class="result">
<div class="title">处理意见</div>
<div class="check">
<div class="left">
<span style="color: #FF4466;">*</span>
<span>审核结果</span>
</div>
<div class="right">
<div class="check-item" :class="form.pass == '1' ? 'check-active' : '' " @click="form.pass='1'">纳入监测<img src="./components/img/check-icon.png" alt=""></div>
<div class="check-item" :class="form.pass == '0' ? 'check-active' : '' " @click="form.pass='0'">驳回申请<img src="./components/img/check-icon.png" alt=""></div>
</div>
</div>
<div class="item">
<div><span style="color: #FF4466;">*</span>备注说明</div>
<div>
<u-input v-model="form.opinion" type="textarea" placeholder="请输入备注说明" height="200" :maxlength="500"></u-input>
</div>
</div>
<div class="item">
<div><span style="width: 8px;"></span>图片<span style="color: #999;">(最多9张)</span></div>
<div style="margin-top: 20px; box-sizing: border-box;">
<AiUploader :def.sync="files" multiple placeholder="上传图片" :limit="9" action="/admin/file/add2"></AiUploader>
</div>
</div>
</div>
<div class="btn" @click="submit">提交</div>
</div> </div>
</template> </template>
<script> <script>
export default { export default {
name: "MonitorRemoveView", name: "MonitorRemoveView",
// 网格长审核
data() { data() {
return { return {
info: {},
id: '', id: '',
pass: '', pass: '',
status: '',
form: {
pass: '',
opinion: '',
files: [],
},
files: [],
} }
}, },
onLoad(o) { onLoad(o) {
this.$dict.load('fpRiskType','fpRiskEliminationMethod')
this.pass = o.pass; this.pass = o.pass;
this.id = o.id; this.id = o.id;
this.status = o.status;
this.form.pass = this.pass;
},
onShow() {
this.getInfo()
}, },
methods: { methods: {
submit() { getInfo() {
this.$http.post(`/app/apppreventionreturntopoverty/relieve?id=${this.id}&pass=${pass}`).then(res => { this.$http.post(`/app/apppreventionreturntopoverty/popup?id=${this.id}`).then(res => {
if (res.code === 0) { if (res.code === 0) {
this.$u.toast('操作成功') this.info = res.data
uni.$emit('reload')
this.getInfo()
} }
}) })
},
prevImg(urls, img) {
const imgs = urls.map(v => v.url)
uni.previewImage({
urls: imgs,
current: img
})
},
submit() {
if (!this.form.opinion) {
return this.$u.toast('请输入备注说明')
}
if (this.info.operationType == 0) { // 申请纳入
this.$http.post(`/app/apppreventionreturntopoverty/examine`,null,{
params: {
...this.form,
id: this.id,
}
}).then(res => {
if (res.code === 0) {
this.$u.toast('操作成功')
uni.$emit('reload')
setTimeout(() =>{
uni.navigateBack({
delta: 2
})
})
}
})
} else { // 申请解除
this.$http.post(`/app/apppreventionreturntopoverty/relieve`,null,{
params: {
...this.form,
id: this.id,
}
}).then(res => {
if (res.code === 0) {
this.$u.toast('操作成功')
uni.$emit('reload')
setTimeout(() =>{
uni.navigateBack({
delta: 2
})
})
}
})
}
} }
}, },
} }
</script> </script>
<style> <style lang="scss" scoped>
.MonitorRemoveView {
.user-info {
background: #FFF;
.title {
padding: 30px 32px;
box-sizing: border-box;
border-bottom: 1px solid #DDDDDD;
font-weight: 600;
}
.info {
padding: 30px 32px;
box-sizing: border-box;
.item {
display: flex;
span {
padding: 12px 0;
}
span:first-child {
width: 140px;
color: #999999;
text-align: right;
}
span:last-child {
color: #343D65;
}
.imgs {
image {
width: 136px;
height: 136px;
margin-right: 8px;
margin-bottom: 8px;
}
}
}
}
}
.result {
margin-top: 16px;
padding-bottom: 112px;
box-sizing: border-box;
.title {
height: 112px;
padding: 30px 32px;
font-weight: 600;
box-sizing: border-box;
border-bottom: 1px solid #DDDDDD;
background: #FFF;
}
.check {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #DDDDDD;
padding: 30px 32px;
box-sizing: border-box;
background: #FFF;
align-items: center;
border-bottom: 1px solid #DDDDDD;
.check-item{
display: inline-block;
width: 140px;
height: 64px;
line-height: 64px;
text-align: center;
background: #F5F5F5;
border-radius: 4px;
font-size: 30px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #333;
position: relative;
img{
display: none;
}
}
.check-item:nth-of-type(1) {
margin-right: 36px;
}
.check-active{
background: #E7F1FE;
color: #1174FE;
img{
display: block;
position: absolute;
bottom: 0;
right: 0;
width: 48px;
height: 48px;
}
}
}
.item {
border-bottom: 1px solid #DDDDDD;
padding: 30px 32px;
background: #FFF;
}
::v-deep .ai-uploader .fileList .default {
width: 160px;
height: 160px;
}
}
.btn {
width: 100%;
height: 112px;
line-height: 112px;
text-align: center;
background: #3192F4;
color: #FFFFFF;
position: fixed;
bottom: 0;
left: 0;
}
}
</style> </style>