11 changed files with 1612 additions and 21 deletions
@ -0,0 +1,345 @@ |
|||||
|
<template> |
||||
|
<el-dialog |
||||
|
width="1118px" |
||||
|
:modal="true" |
||||
|
:modal-append-to-body="false" |
||||
|
:destroy-on-close="true" |
||||
|
:visible="showDialog" |
||||
|
@close="handleClose" |
||||
|
> |
||||
|
<div class="eventWrap"> |
||||
|
<el-row :gutter="32"> |
||||
|
<el-col :span="24" style="padding-left: 40px"> |
||||
|
<title-box text="事件详情" /> |
||||
|
</el-col> |
||||
|
<el-col |
||||
|
:span="13" |
||||
|
style="padding-left: 40px" |
||||
|
v-loading="loading" |
||||
|
element-loading-text="加载中" |
||||
|
element-loading-spinner="el-icon-loading" |
||||
|
element-loading-background="rgba(0, 21, 64, 0" |
||||
|
> |
||||
|
<div class="leftEvent"> |
||||
|
<div class="eventDetails"> |
||||
|
<img |
||||
|
:width="18" |
||||
|
:height="18" |
||||
|
src="@/assets/images/manyidu/tc-title-icon.png" |
||||
|
/>事项详情 |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>所属组织:</span> |
||||
|
<span>{{ item.gridName }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>上报渠道:</span> |
||||
|
<span>{{ item.sourceTypeName }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>事件类型:</span> |
||||
|
<span>{{ item.categoryName }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>上报时间:</span> |
||||
|
<span>{{ item.createdTime }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<div>问题描述:</div> |
||||
|
<div style="margin-top: 20px">{{ item.eventContent }}</div> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<div>图片/附件:</div> |
||||
|
<div style="margin-top: 20px; display: flex"> |
||||
|
<img |
||||
|
style="width: 100px; height: 100px; margin-right: 5px" |
||||
|
v-for="src in item.imageList" |
||||
|
:key="src" |
||||
|
:src="src" |
||||
|
alt="/" |
||||
|
@click="openImg(src)" |
||||
|
/> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>详细地址:</span> |
||||
|
<span>{{ item.address }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>上报人:</span> |
||||
|
<span>{{ item.name }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>联系电话:</span> |
||||
|
<span>{{ item.mobile }}</span> |
||||
|
</div> |
||||
|
|
||||
|
|
||||
|
</div> |
||||
|
</el-col> |
||||
|
<el-col |
||||
|
:span="11" |
||||
|
v-loading="loading1" |
||||
|
element-loading-text="加载中" |
||||
|
element-loading-spinner="el-icon-loading" |
||||
|
element-loading-background="rgba(0, 21, 64, 0.3)" |
||||
|
> |
||||
|
<div class="rightEvent m-info"> |
||||
|
<div class="eventDetails"> |
||||
|
<img |
||||
|
:width="18" |
||||
|
:height="18" |
||||
|
src="@/assets/images/manyidu/tc-title-icon.png" |
||||
|
/>办理进展 |
||||
|
</div> |
||||
|
<!-- <el-timeline class="timeline" :reverse="true"> |
||||
|
<el-timeline-item v-for="(item, index) in activities" :key="index" :class="index == activities.length - 1 ? 'sucess' : ''"> |
||||
|
<div class="status-box"> |
||||
|
<div class="status1" v-if="index == activities.length - 1">回复</div> |
||||
|
<div class="status2" v-else>完成并回复</div> |
||||
|
<div class="timestamp">{{ item.timeLimit ? $moment(item.timeLimit).format("YYYY-MM-DD hh:mm:ss") : "" }}</div> |
||||
|
</div> |
||||
|
<div class="content"> |
||||
|
<div class="field">回复人:</div> |
||||
|
<div class="value">{{ item.departmentName }}</div> |
||||
|
</div> |
||||
|
<div class="content"> |
||||
|
<div class="field">回复内容:</div> |
||||
|
<div class="value">{{ item.publicReply }}</div> |
||||
|
</div> |
||||
|
</el-timeline-item> |
||||
|
</el-timeline> --> |
||||
|
<div v-if="activities.length > 0"> |
||||
|
<!-- <el-card :class="{ 'box-card': source === 'visiual' }" style="min-height: calc(88vh - 50px); overflow: auto"> --> |
||||
|
<div class="m-process"> |
||||
|
<div class="list"> |
||||
|
<div |
||||
|
class="item" |
||||
|
:class="[index === 0 ? 'z-on' : '']" |
||||
|
:key="item.processId" |
||||
|
v-for="(item, index) in activities" |
||||
|
> |
||||
|
<div class="item-row"> |
||||
|
<template v-if="item.agencyId"> |
||||
|
<div class="name">指派</div> |
||||
|
</template> |
||||
|
<template v-if="!item.timeLimit"> |
||||
|
<div class="name">完成并回复</div> |
||||
|
</template> |
||||
|
<template v-if="!item.agencyId && item.timeLimit"> |
||||
|
<div class="name">{{ item.processName }}</div> |
||||
|
</template> |
||||
|
<div class="date"> |
||||
|
{{ |
||||
|
item.processTime ? getTrueTime(item.processTime) : "" |
||||
|
}} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div v-if="item.type === 'event'"> |
||||
|
<template v-if="item.agencyId"> |
||||
|
<div class="detail"> |
||||
|
<div class="detail-field">指派人:</div> |
||||
|
<div class="detail-value"> |
||||
|
{{ item.departmentName }} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="detail"> |
||||
|
<div class="detail-field">指派部门:</div> |
||||
|
<div class="detail-value"> |
||||
|
{{ item.agencyName }} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="detail"> |
||||
|
<div class="detail-field">转办意见:</div> |
||||
|
<div class="detail-value"> |
||||
|
{{ item.publicReply }} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="detail"> |
||||
|
<div class="detail-field">办结时限:</div> |
||||
|
<div class="detail-value"> |
||||
|
{{ item.timeLimit}} |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<template v-else> |
||||
|
<div class="detail"> |
||||
|
<div class="detail-field">回复人:</div> |
||||
|
<div class="detail-value"> |
||||
|
{{ item.departmentName }} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="detail"> |
||||
|
<div class="detail-field">回复内容:</div> |
||||
|
<div class="detail-value"> |
||||
|
{{ item.publicReply }} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="detail" v-if="item.timeLimit"> |
||||
|
<div class="detail-field">办结时限:</div> |
||||
|
<div class="detail-value"> |
||||
|
{{ getTrueTime(item.timeLimit) }} |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- </el-card> --> |
||||
|
</div> |
||||
|
</div> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</div> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import titleBox from "@/views/dataBoard/satisfactionEval/components/Title" |
||||
|
|
||||
|
export default { |
||||
|
name: "ReportAnEvent", |
||||
|
components: { |
||||
|
titleBox, |
||||
|
}, |
||||
|
props: { |
||||
|
id: { |
||||
|
type: String, |
||||
|
default: "", |
||||
|
}, |
||||
|
showDialog: { |
||||
|
type: Boolean, |
||||
|
default: false, |
||||
|
}, |
||||
|
}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
item: {}, |
||||
|
loading: false, |
||||
|
loading1: false, |
||||
|
activities: [], |
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
computed: {}, |
||||
|
watch: { |
||||
|
showDialog: { |
||||
|
handler(val) { |
||||
|
if (val) { |
||||
|
this.getDetailsData(this.id); |
||||
|
this.getProcessData(this.id); |
||||
|
} |
||||
|
}, |
||||
|
immediate: true, |
||||
|
}, |
||||
|
}, |
||||
|
mounted() {}, |
||||
|
|
||||
|
methods: { |
||||
|
handleClose() { |
||||
|
this.$emit("close", false); |
||||
|
this.item = {}; |
||||
|
}, |
||||
|
|
||||
|
openImg(src) { |
||||
|
window.open(src); |
||||
|
}, |
||||
|
|
||||
|
getTrueTime(time) { |
||||
|
return this.$moment(time * 1000).format("YYYY-MM-DD hh:mm"); |
||||
|
}, |
||||
|
|
||||
|
getDetailsData(id) { |
||||
|
this.loading = true; |
||||
|
this.$http |
||||
|
.post("/governance/icEvent/detail", { icEventId: id }) |
||||
|
.then((res) => { |
||||
|
const { code, data, msg } = res.data; |
||||
|
if (code === 0) { |
||||
|
this.item = data; |
||||
|
this.loading = false; |
||||
|
} else { |
||||
|
this.loading = false; |
||||
|
this.$message.error(msg); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
getProcessData(id) { |
||||
|
this.$http |
||||
|
.post("/governance/icEvent/process", { icEventId: id }) |
||||
|
.then((res) => { |
||||
|
const { code, data, msg } = res.data; |
||||
|
if (code === 0) { |
||||
|
this.activities = data; |
||||
|
this.loading1 = false; |
||||
|
} else { |
||||
|
this.loading1 = false; |
||||
|
this.$message.error(msg); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" src="@/assets/scss/dataBoard/popup-info.scss" scoped></style> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
@import "@/assets/scss/modules/shequzhili/event-info.scss"; |
||||
|
@import "@/assets/scss/dataBoard/dialog.scss"; |
||||
|
@mixin fontStyle { |
||||
|
color: #fff !important; |
||||
|
font-size: 14px !important; |
||||
|
} |
||||
|
.eventWrap { |
||||
|
//width: 1094px; |
||||
|
//height: 798px; |
||||
|
overflow-y: auto; |
||||
|
overflow-x: hidden; |
||||
|
padding: 24px; |
||||
|
.eventDetails { |
||||
|
font-size: 18px; |
||||
|
margin: 48px 24px 48px 0; |
||||
|
color: #ffffff; |
||||
|
img { |
||||
|
margin-top: -4px; |
||||
|
margin-right: 8px; |
||||
|
} |
||||
|
} |
||||
|
.m-info { |
||||
|
padding: 0px !important; |
||||
|
.m-process { |
||||
|
margin: 0 !important; |
||||
|
.name { |
||||
|
@include fontStyle; |
||||
|
} |
||||
|
.date { |
||||
|
@include fontStyle; |
||||
|
} |
||||
|
.detail { |
||||
|
@include fontStyle; |
||||
|
.detail-field { |
||||
|
flex: none !important; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.leftEvent { |
||||
|
color: #fff; |
||||
|
.eventItem { |
||||
|
font-size: 14px; |
||||
|
margin-bottom: 24px; |
||||
|
span:first-child { |
||||
|
} |
||||
|
span:last-child { |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.rightEvent { |
||||
|
color: #fff; |
||||
|
} |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,332 @@ |
|||||
|
<template> |
||||
|
<el-dialog |
||||
|
width="1118px" |
||||
|
:modal="true" |
||||
|
:modal-append-to-body="false" |
||||
|
:destroy-on-close="true" |
||||
|
:visible="showDialog" |
||||
|
@close="handleClose" |
||||
|
> |
||||
|
<div class="eventWrap"> |
||||
|
<el-row :gutter="32"> |
||||
|
<el-col :span="24" style="padding-left: 40px"> |
||||
|
<title-box text="事件详情"/> |
||||
|
</el-col> |
||||
|
<el-col |
||||
|
:span="13" |
||||
|
style="padding-left: 40px" |
||||
|
v-loading="loading" |
||||
|
element-loading-text="加载中" |
||||
|
element-loading-spinner="el-icon-loading" |
||||
|
element-loading-background="rgba(0, 21, 64, 0" |
||||
|
> |
||||
|
<div class="leftEvent"> |
||||
|
<div class="eventDetails"> |
||||
|
<img |
||||
|
:width="18" |
||||
|
:height="18" |
||||
|
src="@/assets/images/manyidu/tc-title-icon.png" |
||||
|
/>事项详情 |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>所属组织:</span> |
||||
|
<span>{{ item.agencyName }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>上报渠道:</span> |
||||
|
<span>{{ item.reportType }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>需求类型:</span> |
||||
|
<span>{{ item.categoryName }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>上报时间:</span> |
||||
|
<span>{{ item.reportTime }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<div>需求描述:</div> |
||||
|
<div style="margin-top: 20px">{{ item.content }}</div> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>需求人:</span> |
||||
|
<span>{{ item.demandUserName }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>需求人电话:</span> |
||||
|
<span>{{ item.demandUserMobile }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>需求人住址:</span> |
||||
|
<span>{{ item.reportUserName }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>上报人:</span> |
||||
|
<span>{{ item.reportUserName }}</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</el-col> |
||||
|
<el-col |
||||
|
:span="11" |
||||
|
v-loading="loading1" |
||||
|
element-loading-text="加载中" |
||||
|
element-loading-spinner="el-icon-loading" |
||||
|
element-loading-background="rgba(0, 21, 64, 0.3)" |
||||
|
> |
||||
|
<div class="rightEvent m-info"> |
||||
|
<div class="eventDetails"> |
||||
|
<img |
||||
|
:width="18" |
||||
|
:height="18" |
||||
|
src="@/assets/images/manyidu/tc-title-icon.png" |
||||
|
/>办理进展 |
||||
|
</div> |
||||
|
<div v-if="logList.length > 0"> |
||||
|
<!-- <el-card :class="{ 'box-card': source === 'visiual' }" style="min-height: calc(88vh - 50px); overflow: auto"> --> |
||||
|
<div class="m-process"> |
||||
|
<div class="list"> |
||||
|
<div |
||||
|
class="item" |
||||
|
:class="[index === 0 ? 'z-on' : '']" |
||||
|
:key="item.processId" |
||||
|
v-for="(item, index) in logList" |
||||
|
> |
||||
|
<div class="item-row"> |
||||
|
|
||||
|
|
||||
|
<template> |
||||
|
<div class="name"> |
||||
|
{{ |
||||
|
item.actionCode === 'create' ? '创建需求' : |
||||
|
item.actionCode === 'update' ? '更新需求' : |
||||
|
item.actionCode === 'cancel' ? '撤销需求' : |
||||
|
item.actionCode === 'assign' ? '指派' : |
||||
|
item.actionCode === 'take_order' ? '接单' : |
||||
|
item.actionCode === 'finish' ? '完成' : |
||||
|
item.actionCode === 'evaluate' ? '评价' : '' |
||||
|
}} |
||||
|
</div> |
||||
|
</template> |
||||
|
、 |
||||
|
<div class="date"> |
||||
|
{{ |
||||
|
item.oprateTime |
||||
|
}} |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div> |
||||
|
<template v-if="item.actionCode === 'create'"> |
||||
|
<div class="detail"> |
||||
|
<div class="detail-field">上报人:</div> |
||||
|
<div class="detail-value"> |
||||
|
{{ item.reportUserName }} {{ item.roleName }} |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<template v-if="item.actionCode === 'assign'"> |
||||
|
<div class="detail"> |
||||
|
<div class="detail-field">办理人:</div> |
||||
|
<div class="detail-value"> |
||||
|
{{ item.assignUser }} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="detail"> |
||||
|
<div class="detail-field">指派给服务方:</div> |
||||
|
<div class="detail-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="detail"> |
||||
|
<div class="detail-field">服务方:</div> |
||||
|
<div class="detail-value"> |
||||
|
{{ item.serverName }} ({{ |
||||
|
item.serviceType === 'volunteer' ? '志愿者' : |
||||
|
item.serviceType === 'social_org' ? '社会组织' : |
||||
|
item.serviceType === 'community_org' ? '社区自组织' : |
||||
|
item.serviceType === 'party_unit' ? '区域党建单位' : |
||||
|
item.serviceType === 'enterprise' ? '企业,商家' : '' |
||||
|
}}) |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- <div class="detail"> |
||||
|
<div class="detail-field">完成时间:</div> |
||||
|
<div class="detail-value"> |
||||
|
{{ item.assignUser }} |
||||
|
</div> |
||||
|
</div>--> |
||||
|
</template> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- </el-card> --> |
||||
|
</div> |
||||
|
</div> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</div> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import titleBox from "@/views/dataBoard/satisfactionEval/components/Title" |
||||
|
|
||||
|
export default { |
||||
|
name: "ReportAnEvent", |
||||
|
components: { |
||||
|
titleBox, |
||||
|
}, |
||||
|
props: { |
||||
|
id: { |
||||
|
type: String, |
||||
|
default: "", |
||||
|
}, |
||||
|
showDialog: { |
||||
|
type: Boolean, |
||||
|
default: false, |
||||
|
}, |
||||
|
}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
item: { |
||||
|
}, |
||||
|
logList: [], |
||||
|
loading: false, |
||||
|
loading1: false, |
||||
|
activities: [], |
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
computed: {}, |
||||
|
watch: { |
||||
|
showDialog: { |
||||
|
handler(val) { |
||||
|
if (val) { |
||||
|
this.getDetailsData(this.id); |
||||
|
} |
||||
|
}, |
||||
|
immediate: true, |
||||
|
}, |
||||
|
}, |
||||
|
mounted() { |
||||
|
}, |
||||
|
|
||||
|
methods: { |
||||
|
handleClose() { |
||||
|
this.$emit("close", false); |
||||
|
this.item = {}; |
||||
|
}, |
||||
|
|
||||
|
openImg(src) { |
||||
|
window.open(src); |
||||
|
}, |
||||
|
|
||||
|
getTrueTime(time) { |
||||
|
return this.$moment(time * 1000).format("YYYY-MM-DD hh:mm"); |
||||
|
}, |
||||
|
|
||||
|
getDetailsData(id) { |
||||
|
this.loading = true; |
||||
|
this.$http |
||||
|
.get("/governance/satisfactionDetailList/getUserDemandUnSolvedDetail?id=" + id) |
||||
|
.then((res) => { |
||||
|
const {code, data, msg} = res.data; |
||||
|
if (code === 0) { |
||||
|
this.item = data; |
||||
|
this.logList = data.logList; |
||||
|
this.loading = false; |
||||
|
} else { |
||||
|
this.loading = false; |
||||
|
this.$message.error(msg); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" src="@/assets/scss/dataBoard/popup-info.scss" scoped></style> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
@import "@/assets/scss/modules/shequzhili/event-info.scss"; |
||||
|
@import "@/assets/scss/dataBoard/dialog.scss"; |
||||
|
|
||||
|
|
||||
|
@mixin fontStyle { |
||||
|
color: #fff !important; |
||||
|
font-size: 14px !important; |
||||
|
} |
||||
|
|
||||
|
.eventWrap { |
||||
|
width: 1094px; |
||||
|
//height: 798px; |
||||
|
overflow-y: auto; |
||||
|
overflow-x: hidden; |
||||
|
padding: 24px; |
||||
|
|
||||
|
.eventDetails { |
||||
|
font-size: 18px; |
||||
|
margin: 48px 24px 48px 0; |
||||
|
color: #ffffff; |
||||
|
|
||||
|
img { |
||||
|
margin-top: -4px; |
||||
|
margin-right: 8px; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.m-info { |
||||
|
padding: 0px !important; |
||||
|
|
||||
|
.m-process { |
||||
|
margin: 0 !important; |
||||
|
|
||||
|
.name { |
||||
|
@include fontStyle; |
||||
|
} |
||||
|
|
||||
|
.date { |
||||
|
@include fontStyle; |
||||
|
} |
||||
|
|
||||
|
.detail { |
||||
|
@include fontStyle; |
||||
|
|
||||
|
.detail-field { |
||||
|
flex: none !important; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.leftEvent { |
||||
|
color: #fff; |
||||
|
|
||||
|
.eventItem { |
||||
|
font-size: 14px; |
||||
|
margin-bottom: 24px; |
||||
|
|
||||
|
span:first-child { |
||||
|
} |
||||
|
|
||||
|
span:last-child { |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.rightEvent { |
||||
|
color: #fff; |
||||
|
} |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,221 @@ |
|||||
|
<template> |
||||
|
<el-dialog width="1118px" :modal="true" :modal-append-to-body="false" :destroy-on-close="true" :visible="showDialog" @close="handleClose"> |
||||
|
<div class="eventWrap"> |
||||
|
<el-row :gutter="32"> |
||||
|
<el-col :span="24" style="padding-left: 40px"> |
||||
|
<title-box text="事件详情" /> |
||||
|
</el-col> |
||||
|
<el-col :span="13" style="padding-left: 40px" v-loading="loading" element-loading-text="加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 21, 64, 0"> |
||||
|
<div class="leftEvent"> |
||||
|
<div class="eventDetails"><img :width="18" :height="18" src="@/assets/images/manyidu/tc-title-icon.png" />事项详情</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>所属组织:</span> |
||||
|
<span>{{ item.organizationName }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>服务类型:</span> |
||||
|
<span>{{ item.serviceCategoryName }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>服务事项:</span> |
||||
|
<span>{{ item.serviceName }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>服务时间:</span> |
||||
|
<span>{{ item.serviceTimeStart }} ~ {{ item.serviceTimeEnd }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<div>服务内容:</div> |
||||
|
<div style="margin-top: 20px">{{ item.remark }}</div> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>经办人:</span> |
||||
|
<span>{{ item.principalName }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>联系电话:</span> |
||||
|
<span> {{ $sensitive(item.principalContact, 3, 7) }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>服务方:</span> |
||||
|
<span>{{ item.serviceOrgName }}</span> |
||||
|
</div> |
||||
|
<div class="eventItem"> |
||||
|
<span>政策依据:</span> |
||||
|
<span>{{ item.title }}</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</el-col> |
||||
|
<el-col :span="11" v-loading="loading1" element-loading-text="加载中" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 21, 64, 0.3)"> |
||||
|
<div class="rightEvent m-info"> |
||||
|
<div class="eventDetails"><img :width="18" :height="18" src="@/assets/images/manyidu/tc-title-icon.png" />办理进展</div> |
||||
|
<div v-if="logList.length > 0"> |
||||
|
<div class="m-process"> |
||||
|
<div class="list"> |
||||
|
<div class="item" :class="[index === 0 ? 'z-on' : '']" v-for="(item, index) in logList"> |
||||
|
<div class="item-row"> |
||||
|
<div class="name">{{ item.serviceStatus }}</div> |
||||
|
<div class="date"> |
||||
|
{{ item.createdTime }} |
||||
|
</div> |
||||
|
</div> |
||||
|
<div> |
||||
|
<template v-if="item.serviceStatus === '创建服务'"> |
||||
|
<div class="detail"> |
||||
|
<div class="detail-field">创建人:</div> |
||||
|
<div class="detail-value">{{ item.createdBy }} ({{ item.agencyName }})</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
<template v-else> |
||||
|
<div class="detail"> |
||||
|
<div class="detail-field">服务方:</div> |
||||
|
<div class="detail-value"> |
||||
|
{{ item.serviceOrgName }} |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<!-- </el-card> --> |
||||
|
</div> |
||||
|
</div> |
||||
|
</el-col> |
||||
|
</el-row> |
||||
|
</div> |
||||
|
</el-dialog> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import titleBox from "@/views/dataBoard/satisfactionEval/components/Title"; |
||||
|
export default { |
||||
|
name: "ReportAnEvent", |
||||
|
components: { |
||||
|
titleBox, |
||||
|
}, |
||||
|
props: { |
||||
|
id: { |
||||
|
type: String, |
||||
|
default: "", |
||||
|
}, |
||||
|
showDialog: { |
||||
|
type: Boolean, |
||||
|
default: false, |
||||
|
}, |
||||
|
}, |
||||
|
|
||||
|
data() { |
||||
|
return { |
||||
|
item: {}, |
||||
|
logList: [], |
||||
|
loading: false, |
||||
|
loading1: false, |
||||
|
activities: [], |
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
computed: {}, |
||||
|
watch: { |
||||
|
showDialog: { |
||||
|
handler(val) { |
||||
|
if (val) { |
||||
|
this.getDetailsData(this.id); |
||||
|
} |
||||
|
}, |
||||
|
immediate: true, |
||||
|
}, |
||||
|
}, |
||||
|
mounted() {}, |
||||
|
|
||||
|
methods: { |
||||
|
handleClose() { |
||||
|
this.$emit("close", false); |
||||
|
this.item = {}; |
||||
|
}, |
||||
|
|
||||
|
openImg(src) { |
||||
|
window.open(src); |
||||
|
}, |
||||
|
|
||||
|
getTrueTime(time) { |
||||
|
return this.$moment(time * 1000).format("YYYY-MM-DD hh:mm"); |
||||
|
}, |
||||
|
|
||||
|
getDetailsData(id) { |
||||
|
this.loading = true; |
||||
|
this.$http.get("/governance/satisfactionDetailList/getServiceNotEnjoyedDetailById?id=" + id).then((res) => { |
||||
|
const { code, data, msg } = res.data; |
||||
|
if (code === 0) { |
||||
|
this.item = data; |
||||
|
this.logList = data.logList; |
||||
|
this.loading = false; |
||||
|
} else { |
||||
|
this.loading = false; |
||||
|
this.$message.error(msg); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" src="@/assets/scss/dataBoard/popup-info.scss" scoped></style> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
@import "@/assets/scss/modules/shequzhili/event-info.scss"; |
||||
|
@import "@/assets/scss/dataBoard/dialog.scss"; |
||||
|
|
||||
|
@mixin fontStyle { |
||||
|
color: #fff !important; |
||||
|
font-size: 14px !important; |
||||
|
} |
||||
|
.eventWrap { |
||||
|
width: 1094px; |
||||
|
//height: 798px; |
||||
|
overflow-y: auto; |
||||
|
overflow-x: hidden; |
||||
|
padding: 24px; |
||||
|
.eventDetails { |
||||
|
font-size: 18px; |
||||
|
margin: 48px 24px 48px 0; |
||||
|
color: #ffffff; |
||||
|
img { |
||||
|
margin-top: -4px; |
||||
|
margin-right: 8px; |
||||
|
} |
||||
|
} |
||||
|
.m-info { |
||||
|
padding: 0px !important; |
||||
|
.m-process { |
||||
|
margin: 0 !important; |
||||
|
.name { |
||||
|
@include fontStyle; |
||||
|
} |
||||
|
.date { |
||||
|
@include fontStyle; |
||||
|
} |
||||
|
.detail { |
||||
|
@include fontStyle; |
||||
|
.detail-field { |
||||
|
flex: none !important; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.leftEvent { |
||||
|
color: #fff; |
||||
|
.eventItem { |
||||
|
font-size: 14px; |
||||
|
margin-bottom: 24px; |
||||
|
span:first-child { |
||||
|
} |
||||
|
span:last-child { |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.rightEvent { |
||||
|
color: #fff; |
||||
|
} |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,274 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<Breadcrumb :list="breadcrumbList" /> |
||||
|
<div class="screen"> |
||||
|
<el-form :model="queryParams" inline> |
||||
|
<el-select |
||||
|
popper-class="selectPopClass" |
||||
|
v-model="queryParams.agencyId" |
||||
|
size="small" |
||||
|
placeholder="按组织" |
||||
|
v-if="this.$route.query.type != 'shuji'" |
||||
|
> |
||||
|
<el-option |
||||
|
v-for="item in orgOptions" |
||||
|
:key="item.value" |
||||
|
:label="item.label" |
||||
|
:value="item.value" |
||||
|
></el-option> |
||||
|
</el-select> |
||||
|
<el-select |
||||
|
popper-class="selectPopClass" |
||||
|
v-model="queryParams.satisfactionSource" |
||||
|
size="small" |
||||
|
placeholder="按类型" |
||||
|
v-else |
||||
|
> |
||||
|
<el-option |
||||
|
v-for="item in orgOptionsC" |
||||
|
:key="item.value" |
||||
|
:label="item.label" |
||||
|
:value="item.value" |
||||
|
></el-option> |
||||
|
</el-select> |
||||
|
<el-input |
||||
|
v-model.trim="queryParams.name" |
||||
|
clearable |
||||
|
size="small" |
||||
|
placeholder="按姓名" |
||||
|
></el-input> |
||||
|
<el-input |
||||
|
v-model.trim="queryParams.mobile" |
||||
|
clearable |
||||
|
size="small" |
||||
|
placeholder="按电话" |
||||
|
></el-input> |
||||
|
<el-button size="small" class="btn" type="primary" @click="search" |
||||
|
>查询</el-button |
||||
|
> |
||||
|
</el-form> |
||||
|
</div> |
||||
|
|
||||
|
<div class="table"> |
||||
|
<el-table |
||||
|
:data="list" |
||||
|
v-loading="loading" |
||||
|
element-loading-text="加载中..." |
||||
|
element-loading-spinner="el-icon-loading" |
||||
|
element-loading-background="rgba(0,0,0,0.5)" |
||||
|
> |
||||
|
<el-table-column label="序号" type="index" width="80" /> |
||||
|
|
||||
|
<el-table-column prop="name" label="上报人" /> |
||||
|
|
||||
|
<el-table-column prop="mobile" label="上报人电话"> |
||||
|
<template slot-scope="scope"> |
||||
|
{{ $sensitive(scope.row.mobile, 3, 7) }} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<!-- <el-table-column prop="agencyName" label="所属组织"></el-table-column>--> |
||||
|
|
||||
|
<el-table-column prop="eventCount" sortable label="12345热线投诉"> |
||||
|
<template slot-scope="{ row }"> |
||||
|
<el-button |
||||
|
type="text" |
||||
|
@click=" |
||||
|
$router.push( |
||||
|
'/dataBoard/overview/potentialPeople/sjwjj?reportUserId=' + |
||||
|
row.reportUserId |
||||
|
) |
||||
|
" |
||||
|
> |
||||
|
{{ row.eventCount }} |
||||
|
</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column prop="demandCount" sortable label="上级满意度调查不满意数"> |
||||
|
<template slot-scope="{ row }"> |
||||
|
<el-button |
||||
|
type="text" |
||||
|
@click=" |
||||
|
$router.push( |
||||
|
'/dataBoard/overview/potentialPeople/xqwmz?reportUserId=' + |
||||
|
row.reportUserId |
||||
|
) |
||||
|
" |
||||
|
> |
||||
|
{{ row.provinceCount }} |
||||
|
</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column prop="serviceCount" sortable label="社区满意度自查不满意数"> |
||||
|
<template slot-scope="{ row }"> |
||||
|
<el-button |
||||
|
type="text" |
||||
|
@click=" |
||||
|
$router.push( |
||||
|
'/dataBoard/overview/potentialPeople/yxwxfw?reportUserId=' + |
||||
|
row.reportUserId |
||||
|
) |
||||
|
" |
||||
|
> |
||||
|
{{ row.inspCount }} |
||||
|
</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column prop="countAll" sortable label="总数"> |
||||
|
<template slot-scope="{ row }" |
||||
|
>{{ row.countAll }} |
||||
|
<!-- <el-button type="text"></el-button>--> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</div> |
||||
|
|
||||
|
<Pagination |
||||
|
v-show="total > 0" |
||||
|
:total="total" |
||||
|
:page.sync="queryParams.pageNo" |
||||
|
:limit.sync="queryParams.pageSize" |
||||
|
@pagination="getList" |
||||
|
/> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import Breadcrumb from "@/views/dataBoard/satisfactionEval/components/Breadcrumb"; |
||||
|
import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination"; |
||||
|
import Title from "@/views/dataBoard/satisfactionEval/components/Title"; |
||||
|
|
||||
|
export default { |
||||
|
name: "dissatisfied", |
||||
|
components: { Breadcrumb, Pagination, Title }, |
||||
|
data() { |
||||
|
return { |
||||
|
loading: true, |
||||
|
queryParams: { |
||||
|
month: "", |
||||
|
org: "", |
||||
|
matterSource: "", |
||||
|
matterType: "", |
||||
|
name: "", |
||||
|
tel: "", |
||||
|
pageNo: 1, |
||||
|
pageSize: 10, |
||||
|
satisfactionSource:"" |
||||
|
}, |
||||
|
orgOptions: [], |
||||
|
total: 0, |
||||
|
breadcrumbList: [ |
||||
|
{ |
||||
|
path: "/dataBoard/overview/index", |
||||
|
name: "书记看板", |
||||
|
}, |
||||
|
{ |
||||
|
path: "", |
||||
|
name: "不满意风险人员", |
||||
|
} |
||||
|
], |
||||
|
orgOptionsC:[ |
||||
|
{ |
||||
|
label:'12345政务热线', |
||||
|
value:'satisfaction_12345' |
||||
|
}, |
||||
|
{ |
||||
|
label:'上级满意度调查', |
||||
|
value:'satisfaction_province' |
||||
|
}, |
||||
|
{ |
||||
|
label:'社区满意度调查', |
||||
|
value:'satisfaction_community' |
||||
|
} |
||||
|
], |
||||
|
monthOptions: new Array(12).fill(0).map((_, index) => { |
||||
|
return { label: index - 0 + 1 + "月", value: index - 0 + 1 }; |
||||
|
}), |
||||
|
list: [], |
||||
|
}; |
||||
|
}, |
||||
|
|
||||
|
activated() { |
||||
|
this.queryParams.agencyId = this.$route.query.orgId; |
||||
|
this.getOrg(); |
||||
|
}, |
||||
|
methods: { |
||||
|
search() { |
||||
|
this.queryParams.pageNo = 1; |
||||
|
this.getList(); |
||||
|
}, |
||||
|
getOrg() { |
||||
|
let params = { |
||||
|
orgId: '', |
||||
|
level: '', |
||||
|
}; |
||||
|
|
||||
|
this.$http |
||||
|
.post(`/gov/org/agency/maporg`, params) |
||||
|
.then(async ({ data: { data } }) => { |
||||
|
let parent = { value: data.id, label: data.name }; |
||||
|
this.orgOptions = [ |
||||
|
parent, |
||||
|
...data.children.map((item) => { |
||||
|
return { |
||||
|
value: item.id, |
||||
|
label: item.name, |
||||
|
}; |
||||
|
}), |
||||
|
]; |
||||
|
this.getList(); |
||||
|
}); |
||||
|
}, |
||||
|
getList() { |
||||
|
this.loading = true; |
||||
|
console.log(this.queryParams); |
||||
|
let params = { |
||||
|
...this.queryParams, |
||||
|
countType: this.$route.query.countType, |
||||
|
}; |
||||
|
console.log(params); |
||||
|
this.$http |
||||
|
.get( |
||||
|
"/governance/satisfactionDetailList/getDissatisfiedCountDetail?" + |
||||
|
this.$paramsFormat(params) |
||||
|
) |
||||
|
.then(({ data: { data } }) => { |
||||
|
this.list = data.list; |
||||
|
this.total = data.total; |
||||
|
this.loading = false; |
||||
|
}); |
||||
|
}, |
||||
|
handleView(id) {}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style scoped lang="scss"> |
||||
|
@import "@/assets/scss/dataBoard/table.scss"; |
||||
|
|
||||
|
.screen { |
||||
|
margin: 25px 0 40px; |
||||
|
|
||||
|
.el-select, |
||||
|
.el-input { |
||||
|
width: 150px; |
||||
|
margin-right: 4px; |
||||
|
border: 1px solid #126ac5; |
||||
|
border-radius: 2px; |
||||
|
|
||||
|
/deep/ .el-input__inner { |
||||
|
background: none; |
||||
|
border: none; |
||||
|
color: #fff; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.btn { |
||||
|
margin-left: 46px; |
||||
|
height: 32px; |
||||
|
} |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,116 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<Breadcrumb :list="breadcrumbList" /> |
||||
|
<div class="table"> |
||||
|
<el-table :data="list" |
||||
|
v-loading="loading" |
||||
|
element-loading-text="加载中..." |
||||
|
element-loading-spinner="el-icon-loading" |
||||
|
element-loading-background="rgba(0,0,0,0.5)" |
||||
|
> |
||||
|
<el-table-column label="序号" type="index" width="80" /> |
||||
|
|
||||
|
<el-table-column prop="name" label="上报人" /> |
||||
|
|
||||
|
<el-table-column prop="mobile" label="上报人电话"> |
||||
|
<template slot-scope="scope"> |
||||
|
{{ $sensitive(scope.row.mobile, 3, 7) }} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column prop="agencyName" label="所属组织"> </el-table-column> |
||||
|
|
||||
|
<el-table-column prop="categoryName" label="事件类型" /> |
||||
|
|
||||
|
<el-table-column prop="eventContent" show-overflow-tooltip label="事件描述" /> |
||||
|
|
||||
|
<el-table-column prop="latestProcessingStatus" label="最新办理状态" /> |
||||
|
|
||||
|
<el-table-column prop="latestProcessingTime" sortable label="最近办理时间" /> |
||||
|
<el-table-column prop="happenTime" sortable label="事件上报时间" /> |
||||
|
<el-table-column sortable label="详情"> |
||||
|
<template slot-scope="{ row }"> |
||||
|
<el-button type="text" @click="handleView(row)">查看</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</div> |
||||
|
|
||||
|
<Pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" /> |
||||
|
<sjwjj :showDialog="showDialog" :id="rowId" @close="close" /> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import Breadcrumb from "@/views/dataBoard/satisfactionEval/components/Breadcrumb"; |
||||
|
import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination"; |
||||
|
import Title from "@/views/dataBoard/satisfactionEval/components/Title"; |
||||
|
import sjwjj from "@/views/dataBoard/satisfactionEval/potentialPeople/details/sjwjj.vue"; |
||||
|
|
||||
|
export default { |
||||
|
name: "dissatisfied", |
||||
|
components: { Breadcrumb, Pagination, Title, sjwjj }, |
||||
|
data() { |
||||
|
return { |
||||
|
queryParams: { |
||||
|
reportUserId: this.$route.query.reportUserId, |
||||
|
pageNo: 1, |
||||
|
pageSize: 10, |
||||
|
}, |
||||
|
total: 0, |
||||
|
breadcrumbList: [ |
||||
|
{ |
||||
|
path: "/dataBoard/satisfactionEval/index", |
||||
|
name: "满意度评价", |
||||
|
}, |
||||
|
{ |
||||
|
path: "/dataBoard/satisfactionEval/potentialPeople", |
||||
|
name: "潜在不满意数", |
||||
|
}, |
||||
|
{ |
||||
|
path: "", |
||||
|
name: "事件未解决数", |
||||
|
}, |
||||
|
], |
||||
|
list: [], |
||||
|
showDialog: false, |
||||
|
rowId: "", |
||||
|
loading: true |
||||
|
}; |
||||
|
}, |
||||
|
activated() { |
||||
|
this.queryParams.reportUserId = this.$route.query.reportUserId; |
||||
|
this.queryParams.pageNo = 1; |
||||
|
this.getList(); |
||||
|
}, |
||||
|
methods: { |
||||
|
search() { |
||||
|
this.queryParams.pageNo = 1; |
||||
|
this.getList(); |
||||
|
}, |
||||
|
getList() { |
||||
|
this.loading = true |
||||
|
this.$http.get("/governance/satisfactionDetailList/getEventUnSolvedByUserId?" + this.$paramsFormat(this.queryParams)).then(({ data: { data } }) => { |
||||
|
this.list = data.list; |
||||
|
this.total = data.total; |
||||
|
this.loading = false |
||||
|
}); |
||||
|
}, |
||||
|
handleView({ id }) { |
||||
|
this.showDialog = true; |
||||
|
this.rowId = id; |
||||
|
}, |
||||
|
close() { |
||||
|
this.showDialog = false; |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style scoped lang="scss"> |
||||
|
@import "@/assets/scss/dataBoard/table.scss"; |
||||
|
|
||||
|
.table { |
||||
|
margin-top: 40px; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,142 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<Breadcrumb :list="breadcrumbList"/> |
||||
|
|
||||
|
<div class="table"> |
||||
|
<el-table :data="list" |
||||
|
v-loading="loading" |
||||
|
element-loading-text="加载中..." |
||||
|
element-loading-spinner="el-icon-loading" |
||||
|
element-loading-background="rgba(0,0,0,0.5)" |
||||
|
> |
||||
|
<el-table-column |
||||
|
label="序号" |
||||
|
type="index" |
||||
|
width="80"/> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="demandUserName" |
||||
|
label="需求人"/> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="demandUserMobile" |
||||
|
label="需求人电话"> |
||||
|
<template slot-scope="scope"> |
||||
|
{{ $sensitive(scope.row.demandUserMobile, 3, 7) }} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="agencyName" |
||||
|
label="所属组织"> |
||||
|
</el-table-column> |
||||
|
|
||||
|
|
||||
|
<el-table-column |
||||
|
prop="content" |
||||
|
show-overflow-tooltip |
||||
|
label="需求描述"/> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="latestProcessingStatus" |
||||
|
label="最新办理状态"/> |
||||
|
|
||||
|
<el-table-column |
||||
|
prop="latestProcessingTime" |
||||
|
sortable |
||||
|
label="最近办理时间"/> |
||||
|
<el-table-column |
||||
|
prop="reportTime" |
||||
|
sortable |
||||
|
label="需求提交时间"/> |
||||
|
<el-table-column |
||||
|
sortable |
||||
|
label="详情"> |
||||
|
<template slot-scope="{row}"> |
||||
|
<el-button type="text" @click="handleView(row)">查看</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
</el-table> |
||||
|
</div> |
||||
|
|
||||
|
<Pagination |
||||
|
v-show="total>0" |
||||
|
:total="total" |
||||
|
:page.sync="queryParams.pageNo" |
||||
|
:limit.sync="queryParams.pageSize" |
||||
|
@pagination="getList" |
||||
|
/> |
||||
|
<xqwmz :showDialog="showDialog" :id="rowId" @close="close"/> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import Breadcrumb from '@/views/dataBoard/satisfactionEval/components/Breadcrumb' |
||||
|
import Pagination from '@/views/dataBoard/satisfactionEval/components/Pagination' |
||||
|
import Title from "@/views/dataBoard/satisfactionEval/components/Title" |
||||
|
import xqwmz from "@/views/dataBoard/satisfactionEval/potentialPeople/details/xqwmz.vue" |
||||
|
|
||||
|
export default { |
||||
|
name: "dissatisfied", |
||||
|
components: {Breadcrumb, Pagination, Title, xqwmz}, |
||||
|
data() { |
||||
|
return { |
||||
|
queryParams: { |
||||
|
reportUserId: this.$route.query.reportUserId, |
||||
|
pageNo: 1, |
||||
|
pageSize: 10, |
||||
|
}, |
||||
|
total: 0, |
||||
|
breadcrumbList: [{ |
||||
|
path: '/dataBoard/satisfactionEval/index', |
||||
|
name: '满意度评价' |
||||
|
}, { |
||||
|
path: '/dataBoard/satisfactionEval/potentialPeople', |
||||
|
name: '潜在不满意数' |
||||
|
}, { |
||||
|
path: '', |
||||
|
name: '需求未满足数' |
||||
|
}], |
||||
|
list: [], |
||||
|
showDialog: false, |
||||
|
rowId: '', |
||||
|
loading: true |
||||
|
} |
||||
|
}, |
||||
|
activated() { |
||||
|
this.queryParams.reportUserId = this.$route.query.reportUserId |
||||
|
this.queryParams.pageNo = 1 |
||||
|
this.getList(); |
||||
|
}, |
||||
|
methods: { |
||||
|
search() { |
||||
|
this.queryParams.pageNo = 1 |
||||
|
this.getList(); |
||||
|
}, |
||||
|
getList() { |
||||
|
this.loading = true |
||||
|
this.$http.get('/governance/satisfactionDetailList/getUserDemandUnSolvedByUserId?' + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => { |
||||
|
this.list = data.list; |
||||
|
this.total = data.total; |
||||
|
this.loading = false |
||||
|
}) |
||||
|
}, |
||||
|
handleView({name, id}) { |
||||
|
this.showDialog = true |
||||
|
this.rowId = id |
||||
|
}, |
||||
|
close() { |
||||
|
this.showDialog = false |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style scoped lang="scss"> |
||||
|
@import "@/assets/scss/dataBoard/table.scss"; |
||||
|
|
||||
|
.table { |
||||
|
margin-top: 40px; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,115 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<Breadcrumb :list="breadcrumbList"/> |
||||
|
<div class="table"> |
||||
|
<el-table :data="list" |
||||
|
v-loading="loading" |
||||
|
element-loading-text="加载中..." |
||||
|
element-loading-spinner="el-icon-loading" |
||||
|
element-loading-background="rgba(0,0,0,0.5)" |
||||
|
> |
||||
|
<el-table-column label="序号" type="index" width="80"/> |
||||
|
|
||||
|
<el-table-column prop="name" label="服务对象姓名"/> |
||||
|
|
||||
|
<el-table-column prop="mobile" label="服务对象电话"> |
||||
|
<template slot-scope="scope"> |
||||
|
{{ $sensitive(scope.row.mobile, 3, 7) }} |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
|
||||
|
<el-table-column prop="organizationName" label="所属组织"></el-table-column> |
||||
|
|
||||
|
<el-table-column prop="serviceCategoryName" label="服务类型"/> |
||||
|
|
||||
|
<el-table-column prop="remark" show-overflow-tooltip label="服务描述"/> |
||||
|
<el-table-column prop="serviceStatus" sortable label="是否已完成服务"/> |
||||
|
<el-table-column prop="serviceTimeStart" sortable label="服务发起时间"/> |
||||
|
<el-table-column sortable label="详情"> |
||||
|
<template slot-scope="{ row }"> |
||||
|
<el-button type="text" @click="handleView(row)">查看</el-button> |
||||
|
</template> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</div> |
||||
|
|
||||
|
<Pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" |
||||
|
@pagination="getList"/> |
||||
|
<yxwxfw :showDialog="showDialog" :id="rowId" @close="close"/> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import Breadcrumb from "@/views/dataBoard/satisfactionEval/components/Breadcrumb"; |
||||
|
import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination"; |
||||
|
import Title from "@/views/dataBoard/satisfactionEval/components/Title"; |
||||
|
import yxwxfw from "@/views/dataBoard/satisfactionEval/potentialPeople/details/yxwxfw.vue"; |
||||
|
|
||||
|
export default { |
||||
|
name: "dissatisfied", |
||||
|
components: {Breadcrumb, Pagination, Title, yxwxfw}, |
||||
|
data() { |
||||
|
return { |
||||
|
queryParams: { |
||||
|
pageNo: 1, |
||||
|
pageSize: 10, |
||||
|
}, |
||||
|
total: 0, |
||||
|
breadcrumbList: [ |
||||
|
{ |
||||
|
path: "/dataBoard/satisfactionEval/index", |
||||
|
name: "满意度评价", |
||||
|
}, |
||||
|
{ |
||||
|
path: "/dataBoard/satisfactionEval/potentialPeople", |
||||
|
name: "潜在不满意数", |
||||
|
}, |
||||
|
{ |
||||
|
path: "", |
||||
|
name: "应享未享服务数", |
||||
|
}, |
||||
|
], |
||||
|
|
||||
|
list: [], |
||||
|
showDialog: false, |
||||
|
rowId: "", |
||||
|
loading: true |
||||
|
}; |
||||
|
}, |
||||
|
activated() { |
||||
|
this.queryParams.reportUserId = this.$route.query.reportUserId; |
||||
|
this.queryParams.pageNo = 1; |
||||
|
this.getList(); |
||||
|
}, |
||||
|
methods: { |
||||
|
search() { |
||||
|
this.queryParams.pageNo = 1; |
||||
|
this.getList(); |
||||
|
}, |
||||
|
getList() { |
||||
|
this.loading = true |
||||
|
this.$http.get("/governance/satisfactionDetailList/getServiceNotEnjoyedByUserId?" + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => { |
||||
|
this.list = data.list; |
||||
|
this.total = data.total; |
||||
|
this.loading = false |
||||
|
}); |
||||
|
}, |
||||
|
|
||||
|
handleView({id}) { |
||||
|
this.showDialog = true; |
||||
|
this.rowId = id; |
||||
|
}, |
||||
|
close() { |
||||
|
this.showDialog = false; |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style scoped lang="scss"> |
||||
|
@import "@/assets/scss/dataBoard/table.scss"; |
||||
|
|
||||
|
.table { |
||||
|
margin-top: 40px; |
||||
|
} |
||||
|
</style> |
Loading…
Reference in new issue