新增,处理结果

This commit is contained in:
shijingjing
2022-05-19 15:41:49 +08:00
parent da2644738a
commit c3ce556dc4
8 changed files with 440 additions and 101 deletions

View File

@@ -71,7 +71,7 @@
{{ item.girdMemberName && item.girdMemberName.substring(item.girdMemberName.length, item.girdMemberName.length - 2) }}
</span>
<img src="./components/1.png" class="avatarIcon" alt="" />
<!-- <img src="./components/1.png" class="avatarIcon" alt="" /> -->
</div>
<div class="cardss-right">
@@ -102,12 +102,12 @@
<div class="fixedBtn">
<div class="status00" v-if="data.eventStatus == 0">
<div class="columns border-r" @click="toContent(1)">
<img src="./components/img/zhuanjiao.png" alt="" />
<!-- <img src="./components/img/zhuanjiao.png" alt="" /> -->
<span class="hint">转交事件</span>
</div>
<div class="columns" @click="toContent(2)">
<img src="./components/img/jujue.png" alt="" />
<!-- <img src="./components/img/jujue.png" alt="" /> -->
<span class="hint">拒绝受理</span>
</div>

View File

@@ -160,7 +160,11 @@ export default {
this.flag = true
this.$http.post('/app/apphelpdeclarationinfo/addByEw',{...this.form}).then((res) => {
if(res.code ==0) {
uni.navigateTo({url: './result'})
this.$u.toast('提交成功')
uni.$emit('update')
setTimeout(() => {
uni.navigateBack()
},600)
}
})
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

View File

@@ -1,36 +1,111 @@
<template>
<div class="details">
<div class="user">
<div class="avatar">{{ data.name && data.name.substring(data.name.length, data.name.length - 2) }}</div>
<div class="right">
<p><span>{{ data.name }}</span>的帮扶申请</p>
<div>{{ data.declareTime }}</div>
</div>
</div>
<div class="event_info">
<div class="content">{{ data.riskDescription }}</div>
<div class="picture" v-if="data.files.length">
<img :src="item.url" v-for="(item,index) in data.files" :key="index" alt="" @click="preview(index)">
</div>
<div class="tags">
<span v-for="(item,index) in list" :key="index">{{item}}</span>
<span :style="{background: data.status == 0? '#FF883C':data.status == 1? '#1AAAFF': data.status==2? '#FF4466': '#42D784'}">{{ $dict.getLabel('helpDeclarationStatus', data.status) }}</span>
</div>
</div>
<div class="progress_info">
<div class="item">
<label>申报进度</label>
<div :style="{color: item.status == 0? '#FF883C':item.status == 1? '#1AAAFF': item.status==2? '#FF4466': '#42D784'}">{{ $dict.getLabel('helpDeclarationStatus', data.status) }}</div>
</div>
<div class="item">
<label>申报人姓名</label>
<div>{{ data.name }}</div>
</div>
<div class="item">
<label>申报时间</label>
<div>{{ data.declareTime }}</div>
<label>家庭人口数</label>
<div>{{ data.householdNumber }}</div>
</div>
<div class="item">
<label>联系方式</label>
<div>{{ data.phone }}</div>
</div>
<div class="item">
<label>申报方式</label>
<div>自主申报</div>
</div>
<div class="item">
<label>身份证号</label>
<div>{{ data.idNumber }}</div>
</div>
<div class="item">
<label>所在地区</label>
<div>{{ data.areaName }}</div>
</div>
<div class="items" v-if="data.files && data.files.length">
<p>照片</p>
<div class="picture">
<img :src="item.url" v-for="(item,index) in data.files" :key="index" alt="" @click="preview(data.files, item.url)">
</div>
<div class="items">
<label>详细地址</label>
<div>{{ data.address }}</div>
</div>
</div>
<div class="progress"></div>
<div class="header-bottom">
<div class="plan">
<div class="nav">
<span>办理进度</span>
<span> ({{ $dict.getLabel('clapEventStatus', data.eventStatus) }})</span>
</div>
<div class="cards" v-for="(item, index) in data.processList" :key="index">
<div class="cardss">
<div class="cardss-left">
<span>
{{ item.girdMemberName && item.girdMemberName.substring(item.girdMemberName.length, item.girdMemberName.length - 2) }}
</span>
<img src="./components/1.png" class="avatarIcon" alt="" />
</div>
<div class="cardss-right">
<div class="cardsss-right-left">
<div class="cardssss-right-left-top">
<span>{{ item.systemExplain }}</span>
<div style="color: #2ea222; font-size: 16px; margin-top: 5px">
{{ $dict.getLabel('clapDoStatus', item.doStatus) }}
</div>
</div>
</div>
<div class="cardees-right-right">{{ item.doTime }}</div>
</div>
<div class="lines"></div>
</div>
<div class="cardes-msg-top" v-if="item.doExplain">{{ item.doExplain }}</div>
<div class="imgs">
<img :src="e.url" alt="" v-for="(e, index) in item.files" :key="index" @click="previewImage(item.files, e.url)" />
</div>
</div>
</div>
</div>
<div class="fixedBtn">
<div class="status00">
<div class="columns border-r" @click="toContent(1)">
<span class="hint">转交事件</span>
</div>
<!-- <div class="columns" @click="toContent(2)">
<span class="hint">拒绝受理</span>
</div> -->
<div class="doIt" @click="doItShow = true">审核处理</div>
</div>
<div class="endDoIt" v-if="data.eventStatus == 1 && data.rightType == 0" @click="toContent(3)">前往办理</div>
</div>
</div>
</template>
@@ -53,15 +128,18 @@ export default {
},
methods: {
getDetail() {
this.$instance.post(`/app/apphelpdeclarationinfo/queryDetailById?id=${this.id}`).then(res => {
this.$http.post(`/app/apphelpdeclarationinfo/queryDetailById?id=${this.id}`).then(res => {
if(res.code == 0) {
this.data = res.data
this.list = res.data.reason.split(',')
}
})
},
preview(index) {
this.$previewImage(this.data.files, index, "url");
preview(images, img) {
uni.previewImage({
urls: images.map(v => v.url),
current: img
})
},
}
}
@@ -69,6 +147,37 @@ export default {
<style lang="scss" scoped>
.details {
.user {
height: 120px;
padding: 26px 30px;
box-sizing: border-box;
display: flex;
background: #FFF;
.avatar {
width: 80px;
height: 80px;
line-height: 80px;
border-radius: 50%;
background: #4E8EEE;
text-align: center;
color: #FFFFFF;
font-size: 28px;
margin-right: 16px;
}
.right {
p {
font-weight: 600;
font-size: 32px;
color: #333333;
}
div {
color: #999999;
font-size: 28px;
margin-top: 8px;
}
}
}
.event_info {
background: #FFFFFF;
@@ -90,35 +199,35 @@ export default {
span {
display: inline-block;
margin-right: 16px;
background: #EEEEEE;
padding: 4px 16px;
padding: 4px 8px;
box-sizing: border-box;
border-radius: 24px;
margin-bottom: 16px;
color: #999999;
border-radius: 8px;
color: #FFF;
// margin-bottom: 16px;
}
}
}
.progress_info {
margin-top: 16px;
background: #FFF;
padding: 0 32px 20px 32px;
box-sizing: border-box;
.item {
padding: 32px;
box-sizing: border-box;
display: flex;
justify-content: space-between;
border-bottom: 1px solid #DDDDDD;
border-top: 1px solid #DDDDDD;
label {
color: #999999;
}
}
.item:first-child {
border-top: none;
}
.items {
padding: 32px;
box-sizing: border-box;
label {
border-top: 1px solid #DDDDDD;
p {
color: #999999;
}
div {
@@ -138,5 +247,153 @@ export default {
color: #FF4466
}
}
.header-bottom {
padding-bottom: 80px;
background: #FFF;
margin-top: 16px;
.plan {
padding: 0 32px;
.nav {
padding: 26px 0;
}
.cards {
position: relative;
padding-bottom: 80px;
.cardss {
display: flex;
justify-content: space-between;
.cardss-left {
position: relative;
width: 80px;
height: 80px;
text-align: center;
line-height: 80px;
color: #fff;
background: #197df0;
border: 1px solid #dddddd;
border-radius: 50%;
font-size: 28px;
z-index: 9;
.avatarIcon {
position: absolute;
bottom: 0;
right: 0;
width: 38px;
height: 38px;
}
}
.cardss-right {
width: calc(100% - 110px);
display: flex;
justify-content: space-between;
.cardsss-right-left {
.cardssss-right-left-top {
width: 300px;
overflow: hidden;
text-overflow: ellipsis;
font-size: 32px;
}
.cardssss-right-left-bottom {
margin-top: 10px;
font-size: 28px;
color: #666666;
}
}
.cardees-right-right {
font-size: 28px;
color: #999999;
}
}
.lines {
position: absolute;
top: 0;
left: 40px;
width: 4px;
height: 100%;
background: #eeeeee;
}
}
.cardes-msg-top {
font-size: 28px;
color: #343d65;
margin-top: 10px;
margin-left: 110px;
}
.imgs {
margin-top: 10px;
margin-left: 110px;
img {
width: 136px;
height: 136px;
border-radius: 4px;
margin-right: 12px;
}
img:nth-child(4n) {
margin-right: 0;
}
}
}
.cards:last-child {
.lines {
width: 0;
height: 0;
}
}
}
}
.fixedBtn {
background: #fff;
position: fixed;
bottom: 0;
width: 100%;
box-sizing: border-box;
z-index: 999;
.status00 {
display: flex;
.columns {
display: flex;
flex-direction: column;
align-items: center;
width: 50%;
padding: 16px 0;
border-top: 1px solid #ddd;
.hint {
margin-top: 16px;
font-size: 32px;
color: #666666;
}
}
.border-r {
border-right: 1px solid #ddd;
}
.doIt {
width: 56%;
background: #3975c6;
text-align: center;
line-height: 112px;
font-size: 32px;
font-weight: 500;
color: #fff;
}
}
.endDoIt {
background: #3975c6;
text-align: center;
padding: 34px 0;
font-size: 32px;
font-weight: 500;
color: #ffffff;
}
}
}
</style>

View File

@@ -1,5 +1,5 @@
<template>
<div class="progress">
<div class="list">
<AiTopFixed>
<div class="tab-select">
<div class="item" :class="tabIndex == index ? 'active' : ''" v-for="(item, index) in tabs" :key="index" @click="tabClick(index)">{{item}}<span></span></div>
@@ -17,18 +17,18 @@
</AiAreaPicker>
</div>
<div class="right">
<AiSelect dict="helpDeclarationStatus" v-model="status">
<span v-if="!status" style="color: #999;">风险类型</span>
<span v-else>{{status}}</span>
<AiSelect dict="helpDeclarationReason" v-model="declareReason">
<span v-if="!declareReason" style="color: #999;">风险类型</span>
<span v-else>{{ $dict.getLabel('helpDeclarationReason', declareReason) }}</span>
<u-icon name="arrow-down" color="#999" size="24" style="margin-left: 4px;width: 14px;display:inline-block;"></u-icon>
<u-icon name="close-circle" v-if="ststus" color="#999" size="24" style="margin-left: 4px;width: 14px;display:inline-block;"></u-icon>
<u-icon name="close-circle" v-if="declareReason" color="#999" size="24" style="margin-left: 4px;width: 14px;display:inline-block;"></u-icon>
</AiSelect>
</div>
</div>
</AiTopFixed>
<div v-if="list.length">
<div class="card_list" v-for="(item,index) in list" :key="index">
<div class="card" @click="$linkTo(`./details?id=${item.id}`)">
<div class="card_list">
<div class="card" v-for="(item,index) in list" :key="index" @click="toDetail(item.id)">
<div class="top">
<div class="title">{{ item.riskDescription }}</div>
<div class="time">{{ item.declareTime }}</div>
@@ -58,11 +58,15 @@ export default {
current: 1,
areaId: '',
areaName: '',
status: '',
declareReason: '',
}
},
onShow() {
this.$dict.load('helpDeclarationStatus')
this.$dict.load('helpDeclarationStatus').then(() => {
uni.$on('update', () => {
this.getList()
})
})
this.getList()
},
methods: {
@@ -74,10 +78,12 @@ export default {
},
getList() {
this.$http.post('/app/apphelpdeclarationinfo/list',null,{
this.$http.post('/app/apphelpdeclarationinfo/listByEw',null,{
params: {
current: this.current,
// status: this.tabIndex == 0 ?
areaId: this.areaId,
searchType: this.tabIndex,
declareReason: this.declareReason // 风险类型
}
}).then((res) => {
if(res?.data) {
@@ -90,6 +96,10 @@ export default {
uni.navigateTo({url: './add'})
},
toDetail(id) {
uni.navigateTo({url: `./details?id=${id}`})
},
onReachBottom() {
this.current ++
this.getList()
@@ -99,7 +109,7 @@ export default {
</script>
<style lang="scss" scoped>
.progress {
.list {
// padding-top: 24px;
::v-deep .AiTopFixed .content {
padding: 0;
@@ -151,7 +161,7 @@ export default {
}
.card_list {
padding: 0 32px;
padding: 24px 32px;
box-sizing: border-box;
.card {
background: #FFFFFF;

View File

@@ -1,82 +1,150 @@
<template>
<div class="service-result" >
<!-- v-if="showPage" -->
<img src="./components/resultPic.png" />
<h2>申请成功</h2>
<div class="result" showPage='false'>
<div class="type">
<div class="left">
<span>*</span>
<span v-if="checkType == 1">处理意见</span>
<span v-if="checkType == 2">处理结果</span>
</div>
<div class="right">
<AiSelect v-model="operation" dict="fpRiskPersonOperation1" v-if="checkType == 1" />
<AiSelect v-model="operation" dict="fpRiskPersonOperation2" v-if="checkType == 2" />
</div>
</div>
<div class="remark">
<div class="top">
<span>*</span><span>备注说明</span>
</div>
<div class="bottom">
<u-input type="textarea" v-model="opinion" placeholder="请简要说明情况" maxlength="500" height="200"/>
</div>
</div>
<div class="picture">
<div class="top">
<span style="margin-right: 8px"></span><span>图片<span style="color: #999;font-size:14px;">最多9张</span></span>
</div>
<div class="bottom">
<AiUploader :def.sync="files" multiple placeholder="上传图片" :limit="9" action="/admin/file/add2"></AiUploader>
</div>
</div>
<div class="btn" @click="submit">提交</div>
<div class="service-btn" hover-class="text-hover" @click="myAdd">查看我的申报</div>
<div class="service-btn" hover-class="text-hover" @click="back">返回</div>
</div>
</template>
<script>
export default {
name: 'result',
data() {
return {
operation: '',
opinion: '',
checkType: '',
files: [],
showPage: false,
title: '',
id:''
}
},
onLoad(query) {
this.title = query.title
uni.setNavigationBarTitle({
title: this.title,
})
if (this.title) {
onLoad(o) {
this.$dict.load('fpRiskPersonOperation1','fpRiskPersonOperation2','fpRiskType').then(()=>{
this.checkType = o.checkType
this.id = o.id
this.showPage = true
})
},
methods: {
submit() {
if(!this.operation) {
return this.$u.toast('请选择处理意见')
}
if(!this.opinion) {
return this.$u.toast('请输入备注说明')
}
let ids = [];
ids.push(this.id);
this.$http.post('/app/apppreventionreturntopovertyriskperson/monitor',{
operation: this.operation,
opinion: this.opinion,
files: this.files,
ids: ids,
}).then(res => {
if (res.code == 0) {
this.$u.toast('提交成功')
uni.$emit('update')
setTimeout(() => {
uni.navigateBack({delta: 2})
},600)
}
})
}
},
methods: {
myAdd() {
uni.reLaunch({url: './progress'})
},
back() {
uni.navigateBack()
},
},
onShow() {
document.title = this.checkType == 1? "处理意见":this.checkType == 2? "处理结果": ''
}
}
</script>
<style lang="scss" scoped>
.service-result {
min-height: 100vh;
padding-top: 96px;
text-align: center;
background: #fff;
box-sizing: border-box;
.service-btn {
width: 320px;
height: 88px;
line-height: 88px;
margin: 80px auto 0;
text-align: center;
background: #4181FF;
font-size: 36px;
color: #fff;
box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.02);
border-radius: 16px;
.result {
padding-bottom: 112px;
::v-deep .ai-uploader .fileList .default {
width: 160px;
height: 160px;
}
.service-btn:last-child {
margin-top: 30px;
.type {
height: 112px;
line-height: 112px;
background: #FFF;
color: #4181FF;
border: 1px solid #4181FF;
font-size: 32px;
display: flex;
justify-content: space-between;
padding: 0 32px;
box-sizing: border-box;
.left {
span:first-child {
color: #FF4466;
}
h2 {
margin-bottom: 32px;
span:last-child {
color: #333333;
font-size: 40px;
font-weight: 600;
}
}
}
.remark,
.picture {
box-sizing: border-box;
margin-top: 16px;
background: #FFF;
padding: 0 32px;
font-size: 32px;
.top {
padding-top: 20px;
span:first-child {
color: #FF4466;
}
span:last-child {
color: #333333;
}
}
.bottom {
padding: 30px 0;
}
}
image {
width: 240px;
height: 240px;
.btn {
height: 112px;
line-height: 112px;
text-align: center;
background: #3192F4;
color: #FFF;
position: fixed;
bottom: 0;
left: 0;
width: 100%;
font-size: 32px;
}
}
</style>