城阳居民端公众号前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

277 lines
8.7 KiB

2 years ago
<template>
<div>
<div class="block container">
<div class="title fw500">{{ detail.eventContent }}</div>
2 years ago
<div class="time">{{ detail.happenTime || detail.reportTime }}</div>
2 years ago
<div class="imgs">
<van-image
fit="cover"
v-for="(item2, index2) in detail.imageList"
@click.prevent.stop="previewImage(index2, detail.imageList)"
2 years ago
:src="item2"
:key="index2"
/>
</div>
<div class="address">详细地址{{ detail.address }}</div>
2 years ago
</div>
1 year ago
<div class="block container" v-if="detail.status === 'closed_case'">
2 years ago
<div class="title">满意度评价</div>
<div class="btns flex flex-mean">
<!-- <van-button
2 years ago
round
size="small"
@click="setEvaluate('perfect')"
:type="evaluate == 'perfect' ? 'info' : 'default'"
plain
block
>满意</van-button
>
<van-button
round
size="small"
@click="setEvaluate('good')"
:type="evaluate === 'good' ? 'info' : 'default'"
style="margin: 0 37px"
plain
block
>基本满意</van-button
>
<van-button
round
size="small"
@click="setEvaluate('bad')"
:type="evaluate === 'bad' ? 'info' : 'default'"
plain
block
>不满意</van-button
> -->
<div class="flex flex-y flex-center2" v-for="item in btns" @click="setEvaluate(item)">
<img :src="require(`@/assets/images/icons/${btnFlag===item?'':'ic_'}${item}.png`)" class="img_57"alt="">
<span>{{item === 'perfect'?'非常满意':item === 'good'?'满意':'不满意'}}</span>
</div>
2 years ago
</div>
</div>
<div class="block container">
<div class="title">办理经过</div>
2 years ago
<van-divider />
<van-steps v-if="process.length > 0 && detail.pageType === 'event'" direction="vertical" :active="0">
2 years ago
<van-step v-for="(item, index) in process" :key="index">
<div class="step-title" v-if="item.agencyId">指派</div>
<div class="step-title" v-if="!item.timeLimit">完成并回复</div>
<div class="step-title" v-if="!item.agencyId && item.timeLimit">{{ item.processName }}</div>
<div class="step-time">{{ item.processTime ? item.processTime : '' }}</div>
2 years ago
<template v-if="item.type === 'event'">
<template v-if="item.agencyId">
<div class="content">
<div class="label">指派人</div>
<div class="value">
{{ item.departmentName }}
</div>
</div>
<div class="content">
<div class="label">指派部门</div>
<div class="value">
{{ item.agencyName }}
</div>
</div>
<div class="content">
<div class="label">转办意见</div>
<div class="value">
{{ item.publicReply }}
</div>
</div>
<div class="content">
<div class="label">办结时限</div>
<div class="value">
{{ item.timeLimit }}
</div>
</div>
</template>
<template v-else>
<div class="content">
<div class="label">回复人</div>
<div class="value">
{{ item.departmentName }}
</div>
</div>
<div class="content">
<div class="label">回复内容</div>
<div class="value">
{{ item.publicReply }}
</div>
</div>
<div class="content" v-if="item.limitTime">
2 years ago
<div class="label">办结时限</div>
<div class="value">
{{item.limitTime }}
2 years ago
</div>
</div>
</template>
</template>
</van-step>
</van-steps>
<van-steps v-if="process.length > 0 && detail.pageType === 'demand'" direction="vertical" :active="0">
<van-step v-for="(item, index) in process" :key="index">
<div class="step-title">
{{
item.actionCode === 'create'
? '创建需求'
: item.actionCode === 'update'
? '更新需求'
: item.actionCode === 'cancel'
? '撤销需求'
: item.actionCode === 'assign'
? '指派'
: item.actionCode === 'take_order'
? '接单'
: item.actionCode === 'finish'
? '完成'
: item.actionCode === 'evaluate'
? '评价'
: ''
}}
</div>
<div class="step-time">{{ item.oprateTime }}</div>
<template v-if="item.actionCode === 'create'">
<div class="content">
<div class="label">上报人</div>
<div class="value">{{ item.reportUserName }} {{ item.roleName }}</div>
</div>
</template>
<template v-if="item.actionCode === 'assign'">
<div class="content">
<div class="label">办理人</div>
<div class="value">
{{ item.assignUser }}
</div>
</div>
<div class="content">
<div class="label">指派给服务方</div>
<div class="value">
{{ item.serverName }} {{
item.serviceType === 'volunteer'
? '志愿者'
: item.serviceType === 'social_org'
? '社会组织'
: item.serviceType === 'community_org'
? '社区自组织'
: item.serviceType === 'party_unit'
? '区域党建单位'
: item.serviceType === 'enterprise'
? '企业,商家'
: ''
}}
</div>
</div>
</template>
<template v-if="item.actionCode === 'finish'">
<div class="content">
<div class="label">服务方</div>
<div class="value">
{{ item.serverName }} {{
item.serviceType === 'volunteer'
? '志愿者'
: item.serviceType === 'social_org'
? '社会组织'
: item.serviceType === 'community_org'
? '社区自组织'
: item.serviceType === 'party_unit'
? '区域党建单位'
: item.serviceType === 'enterprise'
? '企业,商家'
: ''
}}
</div>
</div>
</template>
</van-step>
</van-steps>
</div>
<Android/>
2 years ago
</div>
</template>
<script>
import { ImagePreview } from 'vant'
import { process, updateEvent } from '@/api/event'
import { getUserDemandUnSolvedDetail } from '@/api/demand'
1 year ago
2 years ago
export default {
name: 'appealDetail',
2 years ago
components: {
[ImagePreview.Component.name]: ImagePreview.Component,
2 years ago
},
data() {
return {
evaluate: 0,
detail: {},
1 year ago
process: [],
btns:['perfect','good','bad'],
1 year ago
btnFlag:null
2 years ago
}
},
mounted() {
1 year ago
this.detail = this.$route.query;
if(this.detail.satisfaction){
this.btnFlag = this.detail.satisfaction
}
2 years ago
this.getProcess()
console.log(this.detail)
},
methods: {
setEvaluate(val) {
1 year ago
if(this.btnFlag){
this.$toast('请勿重复评价!')
return false
}
2 years ago
if (this.detail.pageType === 'event') {
this.btnFlag = val;
2 years ago
updateEvent({
1 year ago
icEventId: this.detail.icEventId,
satisfaction: val,
2 years ago
}).then(() => {
1 year ago
this.evaluate = val;
2 years ago
this.$toast.success('评价成功')
})
}
},
previewImage(index, urls) {
ImagePreview({
images: urls,
startPosition: index
})
},
getProcess() {
if (this.detail.pageType === 'event') {
process({
icEventId: this.detail.icEventId
2 years ago
}).then(res => {
this.process = res.data
2 years ago
})
} else {
getUserDemandUnSolvedDetail({
id: this.detail.id
}).then(res => {
this.process = res.data.logList
2 years ago
})
}
},
getTrueTime(time) {
return this.$moment(time * 1000).format('YYYY-MM-DD hh:mm')
}
}
}
</script>
<style scoped lang="less">
@import './index';
</style>