城阳居民端公众号前端代码
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.
 
 
 
 

291 lines
9.4 KiB

<template>
<div>
<div class="block container">
<div class="title fw500">{{ detail.eventContent }}</div>
<div class="time">{{ detail.happenTime || detail.reportTime }}</div>
<div class="imgs">
<van-image
fit="cover"
v-for="(item2, index2) in detail.imageList"
@click.prevent.stop="previewImage(index2, detail.imageList)"
:src="item2"
:key="index2"
/>
</div>
<div class="address">问题位置:{{ detail.address }}</div>
<div class="address">联系人:{{ detail.name }}</div>
<div class="address">联系电话:{{ detail.mobile }}</div>
</div>
<div class="block container" v-if="detail.status === 'closed_case'">
<div class="title">满意度评价</div>
<div class="btns flex flex-mean">
<!-- <van-button
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>
</div>
</div>
<div class="block container">
<div class="title">办理经过</div>
<van-divider />
<van-steps v-if="process.length > 0 && detail.pageType === 'event'" direction="vertical" :active="0">
<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 style="background-color: #f8f8f8;" class="container">
<div class="flex flex-center2">
<div :class="index==0?'step-title0':'step-title'">{{ item.processName }}</div>
<div class="step-time">{{ item.processTime ? item.processTime : '' }}</div></div>
<template v-if="item.type === 'event'">
<div class="content">
<!-- <div class="label">回复内容:</div> -->
<div class="value">
{{ item.publicReply }}
</div>
</div>
<!-- <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" v-if="item.limitTime">
<div class="label">办结时限:</div>
<div class="value">
{{item.limitTime }}
</div>
</div> -->
<!-- </template> -->
</template></div>
</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/>
</div>
</template>
<script>
import { ImagePreview } from 'vant'
import { process, updateEvent } from '@/api/event'
import { getUserDemandUnSolvedDetail } from '@/api/demand'
import dayjs from 'dayjs'
export default {
name: 'appealDetail',
components: {
[ImagePreview.Component.name]: ImagePreview.Component,
},
data() {
return {
evaluate: 0,
detail: {},
process: [],
btns:['perfect','good','bad'],
btnFlag:null
}
},
mounted() {
this.detail = this.$route.query;
console.log(this.detail,"sd;lfjlsd");
if(this.detail.satisfaction){
this.btnFlag = this.detail.satisfaction
}
this.getProcess()
console.log(this.detail)
},
methods: {
setEvaluate(val) {
if(this.btnFlag){
this.$toast('请勿重复评价!')
return false
}
if (this.detail.pageType === 'event') {
this.btnFlag = val;
updateEvent({
icEventId: this.detail.icEventId,
satisfaction: val,
}).then(() => {
this.evaluate = val;
this.$toast.success('评价成功')
})
}
},
previewImage(index, urls) {
ImagePreview({
images: urls,
startPosition: index
})
},
getProcess() {
if (this.detail.pageType === 'event') {
process({
icEventId: this.detail.icEventId
}).then(res => {
this.process = res.data
this.process.forEach(item => {
item.processTime = dayjs(item.processTime*1000).format('YYYY-MM-DD hh:mm:ss')
})
})
} else {
getUserDemandUnSolvedDetail({
id: this.detail.id
}).then(res => {
this.process = res.data.logList
})
}
},
getTrueTime(time) {
return this.$moment(time * 1000).format('YYYY-MM-DD hh:mm')
}
}
}
</script>
<style scoped lang="less">
@import './index';
</style>