35 changed files with 3918 additions and 149 deletions
|
After Width: | Height: | Size: 3.2 KiB |
@ -0,0 +1,52 @@ |
|||
|
|||
.dialog-small { |
|||
|
|||
/deep/ .el-dialog { |
|||
background: url(~@/assets/images/overview/dia_con.png) !important; |
|||
background-size: 100% 100% !important; |
|||
width: 100%; |
|||
position: relative; |
|||
z-index: revert !important; |
|||
|
|||
&:before { |
|||
content: ''; |
|||
display: block; |
|||
width: 100%; |
|||
background: url("@/assets/images/overview/dia_head.png") no-repeat !important; |
|||
height: 29px !important; |
|||
position: absolute; |
|||
top: -29px !important; |
|||
background-size: 100% !important; |
|||
} |
|||
|
|||
&:after { |
|||
content: ''; |
|||
display: block; |
|||
width: 100%; |
|||
background: url("@/assets/images/overview/dia_foot.png") no-repeat !important; |
|||
height: 36px !important; |
|||
position: absolute; |
|||
bottom: -36px !important; |
|||
background-size: 100% !important; |
|||
} |
|||
} |
|||
|
|||
/deep/ .el-dialog__body { |
|||
padding: 0 20px 30px; |
|||
} |
|||
|
|||
/deep/ .el-dialog__header { |
|||
border: 0 !important; |
|||
padding: 0; |
|||
} |
|||
|
|||
/deep/ .el-dialog__headerbtn { |
|||
top: 0; |
|||
right: 32px; |
|||
|
|||
.el-dialog__close { |
|||
color: #ffffff; |
|||
font-weight: 600; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,63 @@ |
|||
.table { |
|||
|
|||
/deep/ .el-table td, |
|||
/deep/ .el-table tr { |
|||
padding: 10px 0px !important; |
|||
border: none !important; |
|||
} |
|||
|
|||
/deep/ .el-table th { |
|||
padding: 6px 14px !important; |
|||
border: none !important; |
|||
} |
|||
|
|||
/deep/ .el-table td, |
|||
/deep/ .el-table th { |
|||
background: none !important; |
|||
} |
|||
|
|||
/deep/ .el-table td { |
|||
font-size: 14px; |
|||
font-weight: 400; |
|||
color: #FFFFFF; |
|||
text-shadow: 1px 2px 4px rgba(10, 32, 60, 0.51); |
|||
} |
|||
|
|||
/deep/ .el-table tr { |
|||
background: none !important; |
|||
background-size: 100% !important; |
|||
|
|||
|
|||
&:hover { |
|||
background-color: rgba(26, 149, 255, 0.3) !important; |
|||
} |
|||
} |
|||
|
|||
/deep/ .el-table { |
|||
background: none !important; |
|||
|
|||
&:before { |
|||
background: none !important; |
|||
} |
|||
} |
|||
|
|||
/deep/ .el-table__body-wrapper tr { |
|||
&:nth-child(odd) { |
|||
background: rgba(#0E3873, .4) !important; |
|||
} |
|||
} |
|||
/deep/ .el-table__header-wrapper tr { |
|||
color: #A3B9DA !important; |
|||
font-size: 14px; |
|||
font-weight: 400; |
|||
opacity: 0.76; |
|||
|
|||
&:hover { |
|||
background: none !important; |
|||
} |
|||
} |
|||
|
|||
/deep/ .el-table__header-wrapper { |
|||
background: none; |
|||
} |
|||
} |
|||
@ -0,0 +1,30 @@ |
|||
<template> |
|||
<el-button class="tel-btn" :icon="icon" plain round size="small" type="primary">{{text}}</el-button> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: "CallPhone", |
|||
props: { |
|||
icon: { |
|||
type: String, |
|||
default: "" |
|||
}, |
|||
text: { |
|||
type: String, |
|||
default: "拨打" |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
|
|||
.tel-btn { |
|||
margin-left: 10px; |
|||
color: #06ebff; |
|||
border: 1px solid #06ebff; |
|||
border-radius: 18px; |
|||
background: rgba(#06ebff, 0.3); |
|||
} |
|||
</style> |
|||
@ -0,0 +1,282 @@ |
|||
<template> |
|||
<div> |
|||
|
|||
<el-dialog |
|||
:before-close="handleClose" |
|||
:modal="true" |
|||
:modal-append-to-body="false" |
|||
:visible.sync="dialogVisible" |
|||
class="dissatisfied-detail" |
|||
title="" |
|||
width="1118px" |
|||
> |
|||
<div class="content"> |
|||
<div class="main-title main-title2"> |
|||
<Title :text="!isSelect?'不满意事项详情':'共性需求派单'"/> |
|||
</div> |
|||
<div class="contents"> |
|||
<el-row> |
|||
<el-col :span="12"> |
|||
<div class="items"> |
|||
<div class="label">需求类别:</div> |
|||
<div class="value">教育讲座类-健康知识专业讲座</div> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<div class="items"> |
|||
<div class="label">需求标题:</div> |
|||
<div class="value">教育讲座类共性需求</div> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<div class="items"> |
|||
<div class="label">详细说明:</div> |
|||
<div class="value"> |
|||
健康生活方式,是指有益于健康的习惯化的行为方式。主要表现为生活有规律,没有不良嗜好,讲求个人卫生、环境卫生、饮食卫生,讲科学、不迷 |
|||
信,平时注意保健、生病及时就医,积极参加健康有益的文体活动和社会活动等等。 |
|||
</div> |
|||
</div> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row v-if="isSelect"> |
|||
<el-col :span="24"> |
|||
<div class="items"> |
|||
<div class="label">服务方:</div> |
|||
<el-select v-model="form.roles" class="select" popper-class="selectPopClass"> |
|||
<el-option label="志愿者" value="1"/> |
|||
</el-select> |
|||
<el-select v-model="form.user" class="select" popper-class="selectPopClass"> |
|||
<el-option label="王军(13210141412)" value="1"/> |
|||
</el-select> |
|||
<CallPhone icon="el-icon-phone"/> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<div class="items"> |
|||
<div class="label">自动通知服务方:</div> |
|||
<el-radio-group v-model="form.noticeType" text-color="#fff" class="select" popper-class="selectPopClass"> |
|||
<el-radio label="短信通知" value="1"/> |
|||
<el-radio label="微信公众号通知" value="2"/> |
|||
</el-radio-group> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<div class="items"> |
|||
<div class="label">服务范围:</div> |
|||
<el-select v-model="form.range" class="select" popper-class="selectPopClass"> |
|||
<el-option label="志愿者" value="1"/> |
|||
</el-select> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<div class="items"> |
|||
<div class="label">服务时间:</div> |
|||
<el-date-picker |
|||
v-model="form.date" |
|||
:append-to-body="false" |
|||
class="select" |
|||
end-placeholder="结束日期" |
|||
format="yyyy-MM-dd" |
|||
popper-class="date-current-weiyi" |
|||
range-separator="至" |
|||
start-placeholder="开始日期" |
|||
type="daterange" |
|||
value-format="yyyy-MM-dd" |
|||
/> |
|||
</div> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<div v-if="!isSelect" class="btn-group"> |
|||
<el-button class="green" plain round type="success" @click="handleDispatch">资源调度</el-button> |
|||
</div> |
|||
|
|||
<div v-else class="btn-group"> |
|||
<el-button class="cancel" plain round type="success" @click="handleCancel">取消</el-button> |
|||
<el-button class="sure" plain round type="warning" @click="handleSure">确定</el-button> |
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
</el-dialog> |
|||
<ResourceScheduling ref="ResourceScheduling"/> |
|||
|
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Title from "@/views/dataBoard/satisfactionEval/components/Title"; |
|||
import ResourceScheduling from "@/views/dataBoard/overview/components/ResourceScheduling.vue"; |
|||
import CallPhone from "@/views/dataBoard/cpts/CallPhone"; |
|||
|
|||
export default { |
|||
name: "ServiceDetails", |
|||
components: {Title, ResourceScheduling, CallPhone}, |
|||
data() { |
|||
return { |
|||
dialogVisible: false, |
|||
isSelect: false, |
|||
form: { |
|||
roles: "", |
|||
user: "", |
|||
} |
|||
}; |
|||
}, |
|||
methods: { |
|||
handleClose(done) { |
|||
this.dialogVisible = false; |
|||
}, |
|||
open(id) { |
|||
this.dialogVisible = true; |
|||
this.getDetail(id); |
|||
}, |
|||
getDetail(id) { |
|||
|
|||
}, |
|||
handleDispatch() { |
|||
this.$refs.ResourceScheduling.open() |
|||
}, |
|||
handleSupervision() { |
|||
this.$refs.supervision.open() |
|||
}, |
|||
handleCancel() { |
|||
|
|||
}, |
|||
handleSure() { |
|||
|
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "~@/assets/scss/dataBoard/dialog.scss"; |
|||
|
|||
.contents { |
|||
padding: 40px 50px; |
|||
|
|||
.items { |
|||
font-size: 14px; |
|||
position: relative; |
|||
display: flex; |
|||
align-items: flex-start; |
|||
margin-bottom: 17px; |
|||
line-height: 34px; |
|||
|
|||
.label { |
|||
color: #9CB4D3; |
|||
white-space: nowrap; |
|||
} |
|||
|
|||
.value { |
|||
color: #FFFFFF; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.hr { |
|||
height: 1px; |
|||
margin: 25px 0; |
|||
opacity: .4; |
|||
border-bottom: 1px #0E79D6 dashed; |
|||
} |
|||
|
|||
|
|||
.btn-group { |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
margin-top: 20px; |
|||
|
|||
.green { |
|||
color: #00CD96; |
|||
border: 1px solid #00CD96; |
|||
background: rgba(39, 189, 127, 0.3); |
|||
} |
|||
|
|||
.el-button { |
|||
width: 136px; |
|||
height: 36px; |
|||
margin: 0 20px; |
|||
} |
|||
|
|||
.orange { |
|||
color: #FD8904; |
|||
border: 1px solid #FD8904; |
|||
background: rgba(253, 137, 4, 0.3); |
|||
} |
|||
|
|||
.sure { |
|||
color: #8ED3FF; |
|||
border: 1px solid #006CFF; |
|||
background: rgba(0, 108, 255, 0.5); |
|||
} |
|||
|
|||
.cancel { |
|||
color: #B6D2FF; |
|||
border: 1px solid #6496E8; |
|||
background: rgba(116, 146, 194, 0.6); |
|||
} |
|||
|
|||
} |
|||
|
|||
.select { |
|||
margin-right: 16px; |
|||
} |
|||
|
|||
/deep/ .el-date-editor .el-range-separator { |
|||
color: #fff; |
|||
} |
|||
/deep/ .el-radio { |
|||
color: #fff; |
|||
} |
|||
/deep/ .el-input__inner { |
|||
width: 360px; |
|||
height: 40px; |
|||
color: #fff; |
|||
border: 1px solid #0E3978; |
|||
border-radius: 20px; |
|||
background: rgba(0, 23, 66, 0.72); |
|||
} |
|||
|
|||
/deep/ .el-range-editor .el-range-input { |
|||
background: none; |
|||
color: #fff; |
|||
} |
|||
|
|||
::v-deep .date-current-weiyi { |
|||
background: rgba(3, 19, 51, 0.9); |
|||
border-color: #006cff; |
|||
box-shadow: inset 0px 0px 16px 0px rgba(0, 145, 255, 1); |
|||
|
|||
.el-date-picker__header-label { |
|||
color: #ffffff; |
|||
} |
|||
|
|||
.el-picker-panel__icon-btn { |
|||
color: #ffffff; |
|||
} |
|||
|
|||
.el-month-table { |
|||
td { |
|||
.cell { |
|||
color: #ffffff; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.el-month-table td.current:not(.disabled) .cell { |
|||
color: #fff; |
|||
background-color: #409eff; |
|||
} |
|||
|
|||
.el-month-table td.today:not(.disabled) .cell { |
|||
color: #0056d6; |
|||
} |
|||
|
|||
.el-date-picker__header--bordered { |
|||
border-bottom: solid 1px #006cff; |
|||
} |
|||
} |
|||
</style> |
|||
@ -0,0 +1,182 @@ |
|||
<template> |
|||
<el-dialog |
|||
:before-close="handleClose" |
|||
:modal="true" |
|||
:modal-append-to-body="false" |
|||
:visible.sync="dialogVisible" |
|||
class="dissatisfied-detail" |
|||
title="" |
|||
width="1118px" |
|||
> |
|||
<div class="main-title main-title2"> |
|||
<Title text="不满意事项详情"/> |
|||
</div> |
|||
<div class="content"> |
|||
|
|||
<el-row :gutter="20"> |
|||
<el-col :span="10"> |
|||
<div class="sub-title">事项详情</div> |
|||
<div class="detail"> |
|||
<p> |
|||
{{ unsatisfiedMattersModel.reason }} |
|||
</p> |
|||
<ul> |
|||
<li> |
|||
<span>事项来源:</span |
|||
>{{ |
|||
satisfactionSourceOptions[ |
|||
unsatisfiedMattersModel.satisfactionSource |
|||
] |
|||
}} |
|||
</li> |
|||
<li> |
|||
<span>事项类型:</span |
|||
>{{ unsatisfiedMattersModel.satisfactionCategoryName }} |
|||
</li> |
|||
<li> |
|||
<span>所属月份:</span |
|||
>{{ unsatisfiedMattersModel.satisfactionCategoryName }} |
|||
</li> |
|||
<li> |
|||
<span>所属社区:</span |
|||
>{{ unsatisfiedMattersModel.organizationName }} |
|||
</li> |
|||
<li><span>提交人:</span>{{ unsatisfiedMattersModel.name }}</li> |
|||
<li> |
|||
<span>提交人电话:</span>{{ unsatisfiedMattersModel.mobile }} |
|||
</li> |
|||
</ul> |
|||
</div> |
|||
</el-col> |
|||
<el-col :offset="4" :span="10"> |
|||
<div class="sub-title">回访记录</div> |
|||
<div class="log"> |
|||
<div |
|||
v-for="(item, index) in followUpRecordDetails" |
|||
class="log-item" |
|||
> |
|||
<div class="name"> |
|||
{{ item.followUpUser }}({{ item.roleName }}) |
|||
</div> |
|||
<div>{{ item.followUpDate }}</div> |
|||
<div> |
|||
{{ item.followUpWay }} <i class="el-icon-arrow-right"></i> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</el-col> |
|||
</el-row> |
|||
</div> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import Title from "@/views/dataBoard/satisfactionEval/components/Title"; |
|||
|
|||
export default { |
|||
name: "DissatisfiedDetails", |
|||
components: {Title}, |
|||
data() { |
|||
return { |
|||
dialogVisible: false, |
|||
unsatisfiedMattersModel: "", |
|||
unsatisfiedHisCount: "", |
|||
followUpRecordDetails: "", |
|||
satisfactionSourceOptions: { |
|||
satisfaction_12345: "12345投诉", |
|||
satisfaction_province: "省满意度调查", |
|||
satisfaction_community: "社区满意度自查", |
|||
}, |
|||
}; |
|||
}, |
|||
methods: { |
|||
handleClose(done) { |
|||
this.dialogVisible = false; |
|||
}, |
|||
open(id) { |
|||
this.dialogVisible = true; |
|||
this.getDetail(id); |
|||
}, |
|||
getDetail(id) { |
|||
this.$http |
|||
.post( |
|||
"/governance/satisfactionDetailList/getUnsatisfiedMattersDetailInfo", |
|||
{id} |
|||
) |
|||
.then(({data: {data}}) => { |
|||
this.unsatisfiedMattersModel = data.unsatisfiedMattersModel; |
|||
this.unsatisfiedHisCount = data.unsatisfiedHisCount; |
|||
this.followUpRecordDetails = data.followUpRecordDetails; |
|||
if (this.unsatisfiedMattersModel.satisfactionSource) { |
|||
this.unsatisfiedMattersModel.satisfactionSource = |
|||
satisfactionSourceOptions.filter( |
|||
(item) => |
|||
item.value === this.unsatisfiedMattersModel.satisfactionSource |
|||
)[0].label; |
|||
} |
|||
}); |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "~@/assets/scss/dataBoard/dialog.scss"; |
|||
|
|||
.dissatisfied-detail { |
|||
.sub-title { |
|||
font-size: 18px; |
|||
font-weight: 500; |
|||
line-height: 22px; |
|||
margin-bottom: 14px; |
|||
padding-left: 26px; |
|||
color: #ffffff; |
|||
background: url("@/assets/images/manyidu/icon_fk.png") no-repeat left center; |
|||
} |
|||
|
|||
.detail { |
|||
p { |
|||
font-size: 14px; |
|||
font-weight: 400; |
|||
line-height: 32px; |
|||
margin: 0 0 10px; |
|||
color: #ffffff; |
|||
} |
|||
|
|||
ul { |
|||
margin: 0; |
|||
padding: 0; |
|||
list-style-type: none; |
|||
} |
|||
|
|||
li { |
|||
line-height: 32px; |
|||
color: #ffffff; |
|||
|
|||
span { |
|||
color: #9cb4d3; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.log { |
|||
padding-left: 26px; |
|||
|
|||
.log-item { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
width: 100%; |
|||
padding: 9px 0; |
|||
color: #fff; |
|||
background: url("@/assets/images/manyidu/hf_line.png") bottom center no-repeat; |
|||
|
|||
.name { |
|||
flex: 0 0 33.33333%; |
|||
} |
|||
} |
|||
} |
|||
.content { |
|||
padding: 0 60px; |
|||
} |
|||
} |
|||
</style> |
|||
@ -0,0 +1,407 @@ |
|||
<template> |
|||
<div> |
|||
<el-dialog |
|||
:destroy-on-close="true" |
|||
:modal="true" |
|||
:modal-append-to-body="false" |
|||
:visible="showDialog" |
|||
width="1118px" |
|||
@close="handleClose" |
|||
|
|||
> |
|||
<div class="main-title main-title2"> |
|||
<Title text="事件详情"/> |
|||
</div> |
|||
<div v-loading="loading" |
|||
class="eventWrap" |
|||
element-loading-background="rgba(0, 0, 0, 0.5)" |
|||
element-loading-spinner="el-icon-loading" |
|||
element-loading-text="加载中" |
|||
> |
|||
<el-row :gutter="32"> |
|||
<el-col |
|||
:span="13" |
|||
style="padding-left: 40px" |
|||
> |
|||
<div class="leftEvent"> |
|||
<div class="eventDetails"> |
|||
<img |
|||
:height="18" |
|||
:width="18" |
|||
src="@/assets/images/manyidu/tc-title-icon.png" |
|||
/>事项详情 |
|||
</div> |
|||
<div class="eventItem"> |
|||
{{ item.eventContent }} |
|||
</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.happenTime }}</span> |
|||
</div> |
|||
<div class="eventItem"> |
|||
<span>联系人:</span> |
|||
<span>{{ item.name }}</span> |
|||
</div> |
|||
<div class="eventItem"> |
|||
<span>联系电话:</span> |
|||
<span>{{ item.mobile }}</span> |
|||
<CallPhone icon="el-icon-phone"/> |
|||
</div> |
|||
<div class="eventItem"> |
|||
<span>详细地址:</span> |
|||
<span>{{ item.address }}</span> |
|||
</div> |
|||
<div class="eventItem"> |
|||
<span>办结时限:</span> |
|||
<span>{{ item.latestOperatedTime }}</span> |
|||
</div> |
|||
<div class="eventItem"> |
|||
<span>满意度评价:</span> |
|||
<span>{{ item.satisfactionName }}</span> |
|||
</div> |
|||
</div> |
|||
</el-col> |
|||
<el-col |
|||
:span="11" |
|||
> |
|||
<div class="rightEvent m-info"> |
|||
<div class="eventDetails"> |
|||
<img |
|||
:height="18" |
|||
:width="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 |
|||
v-for="(item, index) in activities" |
|||
:key="item.processId" |
|||
:class="[index === 0 ? 'z-on' : '']" |
|||
class="item" |
|||
> |
|||
<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 v-if="item.timeLimit" class="detail"> |
|||
<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 class="btn-group"> |
|||
<el-button class="green" plain round type="success" @click="handleDispatch">资源调度</el-button> |
|||
<el-button class="orange" plain round type="warning" @click="handleSupervision">催办督办</el-button> |
|||
</div> |
|||
|
|||
</div> |
|||
</el-dialog> |
|||
<ResourceScheduling ref="ResourceScheduling"/> |
|||
<Supervision ref="supervision"/> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Title from "@/views/dataBoard/satisfactionEval/components/Title"; |
|||
import CallPhone from "@/views/dataBoard/cpts/CallPhone.vue"; |
|||
import ResourceScheduling from "@/views/dataBoard/overview/components/ResourceScheduling.vue"; |
|||
import Supervision from "@/views/dataBoard/overview/components/Supervision.vue"; |
|||
|
|||
export default { |
|||
name: "EventDetail", |
|||
components: { |
|||
CallPhone, |
|||
Title, |
|||
ResourceScheduling, |
|||
Supervision |
|||
}, |
|||
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); |
|||
} else { |
|||
this.item = {} |
|||
this.activities = [] |
|||
} |
|||
}, |
|||
immediate: true, |
|||
}, |
|||
}, |
|||
mounted() { |
|||
}, |
|||
|
|||
methods: { |
|||
handleClose() { |
|||
this.$emit("close", false); |
|||
this.item = {}; |
|||
}, |
|||
handleDispatch() { |
|||
this.$refs.ResourceScheduling.open() |
|||
}, |
|||
handleSupervision() { |
|||
this.$refs.supervision.open() |
|||
}, |
|||
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" scoped src="@/assets/scss/dataBoard/popup-info.scss"></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 { |
|||
overflow-x: hidden; |
|||
//height: 798px; |
|||
overflow-y: auto; |
|||
width: 1094px; |
|||
padding: 24px; |
|||
|
|||
.eventDetails { |
|||
font-size: 18px; |
|||
margin: 0px 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: 23px; |
|||
color: #FFFFFF; |
|||
|
|||
span:first-child { |
|||
color: #9CB4D3 |
|||
} |
|||
|
|||
span:last-child { |
|||
} |
|||
} |
|||
} |
|||
|
|||
.rightEvent { |
|||
color: #fff; |
|||
} |
|||
} |
|||
|
|||
|
|||
.btn-group { |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
margin-top: 20px; |
|||
|
|||
.green { |
|||
color: #00CD96; |
|||
border: 1px solid #00CD96; |
|||
background: rgba(39, 189, 127, 0.3); |
|||
} |
|||
|
|||
.el-button { |
|||
width: 136px; |
|||
height: 36px; |
|||
margin: 0 20px; |
|||
} |
|||
|
|||
.orange { |
|||
color: #FD8904; |
|||
border: 1px solid #FD8904; |
|||
background: rgba(253, 137, 4, 0.3); |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
</style> |
|||
@ -0,0 +1,353 @@ |
|||
<template> |
|||
<div> |
|||
|
|||
<el-dialog |
|||
:before-close="handleClose" |
|||
:modal="true" |
|||
:modal-append-to-body="false" |
|||
:visible.sync="dialogVisible" |
|||
class="dissatisfied-detail" |
|||
title="" |
|||
width="1118px" |
|||
> |
|||
<div class="content"> |
|||
<div class="main-title main-title2"> |
|||
<Title text="事件派单"/> |
|||
</div> |
|||
<div class="contents"> |
|||
<el-row> |
|||
<el-col :span="12"> |
|||
<div class="items"> |
|||
<div class="label">需求类别:</div> |
|||
<div class="value">教育讲座类-健康知识专业讲座</div> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<div class="items"> |
|||
<div class="label">需求标题:</div> |
|||
<div class="value">教育讲座类共性需求</div> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<div class="items"> |
|||
<div class="label">详细说明:</div> |
|||
<div class="value"> |
|||
健康生活方式,是指有益于健康的习惯化的行为方式。主要表现为生活有规律,没有不良嗜好,讲求个人卫生、环境卫生、饮食卫生,讲科学、不迷 |
|||
信,平时注意保健、生病及时就医,积极参加健康有益的文体活动和社会活动等等。 |
|||
</div> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<div class="items" style="align-items: center"> |
|||
<div class="label">处理方式:</div> |
|||
<el-radio-group v-model="form.noticeType" class="select" popper-class="selectPopClass" |
|||
text-color="#fff"> |
|||
<el-radio label="指派" value="1"/> |
|||
<el-radio label="转财务" value="2"/> |
|||
</el-radio-group> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<div class="items"> |
|||
<div class="label">处理部门:</div> |
|||
<div class="value">XX社区第一网格 杨军(网格员)</div> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
|
|||
<div class="items"> |
|||
<div class="label">转办意见:</div> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<div class="items"> |
|||
<el-input |
|||
v-model="form.explain" |
|||
:autosize="{ minRows: 5, maxRows: 10}" |
|||
class="input" |
|||
maxlength="500" |
|||
placeholder="请输入转办意见" |
|||
type="textarea"/> |
|||
</div> |
|||
</el-col> |
|||
|
|||
<el-col :span="24"> |
|||
<div class="items"> |
|||
<div class="label">图片/附件:</div> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<div class="items"> |
|||
<el-upload |
|||
:auto-upload="false" |
|||
action="#" |
|||
list-type="picture-card"> |
|||
<div slot="default"> |
|||
<i class="el-icon-plus"></i> |
|||
<div class="text">添加图片</div> |
|||
</div> |
|||
|
|||
<div slot="file" slot-scope="{file}"> |
|||
<img |
|||
:src="file.url" |
|||
alt="" class="el-upload-list__item-thumbnail" |
|||
> |
|||
<span class="el-upload-list__item-actions"> |
|||
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)"> |
|||
<i class="el-icon-zoom-in"></i> |
|||
</span> |
|||
<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleDownload(file)"> |
|||
<i class="el-icon-download"></i> |
|||
</span> |
|||
<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)"> |
|||
<i class="el-icon-delete"></i> |
|||
</span> |
|||
</span> |
|||
</div> |
|||
</el-upload> |
|||
|
|||
</div> |
|||
</el-col> |
|||
<el-col :span="24"> |
|||
<div class="items"> |
|||
<div class="label">办结时限:</div> |
|||
<el-date-picker |
|||
v-model="form.date" |
|||
:append-to-body="false" |
|||
format="yyyy-MM-dd" |
|||
placeholder="开始日期" |
|||
popper-class="date-current-weiyi" |
|||
value-format="yyyy-MM-dd" |
|||
/> |
|||
</div> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
|
|||
<div class="btn-group"> |
|||
<el-button class="cancel" plain round type="success" @click="handleCancel">取消</el-button> |
|||
<el-button class="sure" plain round type="warning" @click="handleSure">确定</el-button> |
|||
</div> |
|||
|
|||
</div> |
|||
</div> |
|||
</el-dialog> |
|||
<el-dialog :visible.sync="imageVisible" append-to-body width="300px"> |
|||
<img :src="dialogImageUrl" alt="" width="100%"> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Title from "@/views/dataBoard/satisfactionEval/components/Title"; |
|||
import ResourceScheduling from "@/views/dataBoard/overview/components/ResourceScheduling.vue"; |
|||
import CallPhone from "@/views/dataBoard/cpts/CallPhone"; |
|||
|
|||
export default { |
|||
name: "EventDispatchOrder", |
|||
components: {Title, ResourceScheduling, CallPhone}, |
|||
data() { |
|||
return { |
|||
dialogVisible: false, |
|||
form: { |
|||
roles: "", |
|||
user: "", |
|||
}, |
|||
dialogImageUrl: '', |
|||
imageVisible: false, |
|||
disabled: false |
|||
}; |
|||
}, |
|||
methods: { |
|||
handleClose(done) { |
|||
this.dialogVisible = false; |
|||
}, |
|||
open(id) { |
|||
this.dialogVisible = true; |
|||
this.getDetail(id); |
|||
}, |
|||
getDetail(id) { |
|||
|
|||
}, |
|||
handleDispatch() { |
|||
this.$refs.ResourceScheduling.open() |
|||
}, |
|||
handleSupervision() { |
|||
this.$refs.supervision.open() |
|||
}, |
|||
handleCancel() { |
|||
|
|||
}, |
|||
handleSure() { |
|||
|
|||
}, |
|||
|
|||
handleRemove(file) { |
|||
console.log(file); |
|||
}, |
|||
handlePictureCardPreview(file) { |
|||
this.dialogImageUrl = file.url; |
|||
this.imageVisible = true; |
|||
}, |
|||
handleDownload(file) { |
|||
console.log(file); |
|||
} |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "~@/assets/scss/dataBoard/dialog.scss"; |
|||
|
|||
.contents { |
|||
padding: 40px 50px; |
|||
|
|||
.items { |
|||
font-size: 14px; |
|||
line-height: 34px; |
|||
position: relative; |
|||
display: flex; |
|||
align-items: flex-start; |
|||
margin-bottom: 17px; |
|||
|
|||
.label { |
|||
white-space: nowrap; |
|||
color: #9CB4D3; |
|||
} |
|||
|
|||
.value { |
|||
color: #FFFFFF; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.hr { |
|||
height: 1px; |
|||
margin: 25px 0; |
|||
opacity: .4; |
|||
border-bottom: 1px #0E79D6 dashed; |
|||
} |
|||
|
|||
|
|||
.btn-group { |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
margin-top: 20px; |
|||
|
|||
.green { |
|||
color: #00CD96; |
|||
border: 1px solid #00CD96; |
|||
background: rgba(39, 189, 127, 0.3); |
|||
} |
|||
|
|||
.el-button { |
|||
width: 136px; |
|||
height: 36px; |
|||
margin: 0 20px; |
|||
} |
|||
|
|||
.orange { |
|||
color: #FD8904; |
|||
border: 1px solid #FD8904; |
|||
background: rgba(253, 137, 4, 0.3); |
|||
} |
|||
|
|||
.sure { |
|||
color: #8ED3FF; |
|||
border: 1px solid #006CFF; |
|||
background: rgba(0, 108, 255, 0.5); |
|||
} |
|||
|
|||
.cancel { |
|||
color: #B6D2FF; |
|||
border: 1px solid #6496E8; |
|||
background: rgba(116, 146, 194, 0.6); |
|||
} |
|||
|
|||
} |
|||
|
|||
.select { |
|||
margin-right: 16px; |
|||
} |
|||
|
|||
/deep/ .el-date-editor .el-range-separator { |
|||
color: #fff; |
|||
} |
|||
|
|||
/deep/ .el-radio { |
|||
color: #fff; |
|||
} |
|||
|
|||
/deep/ .el-input__inner { |
|||
width: 360px; |
|||
height: 40px; |
|||
color: #fff; |
|||
border: 1px solid #0E3978; |
|||
border-radius: 20px; |
|||
background: rgba(0, 23, 66, 0.72); |
|||
} |
|||
|
|||
/deep/ .el-range-editor .el-range-input { |
|||
color: #fff; |
|||
background: none; |
|||
} |
|||
|
|||
::v-deep .date-current-weiyi { |
|||
border-color: #006cff; |
|||
background: rgba(3, 19, 51, 0.9); |
|||
box-shadow: inset 0px 0px 16px 0px rgba(0, 145, 255, 1); |
|||
|
|||
.el-date-picker__header-label { |
|||
color: #ffffff; |
|||
} |
|||
|
|||
.el-picker-panel__icon-btn { |
|||
color: #ffffff; |
|||
} |
|||
|
|||
.el-month-table { |
|||
td { |
|||
.cell { |
|||
color: #ffffff; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.el-month-table td.current:not(.disabled) .cell { |
|||
color: #fff; |
|||
background-color: #409eff; |
|||
} |
|||
|
|||
.el-month-table td.today:not(.disabled) .cell { |
|||
color: #0056d6; |
|||
} |
|||
|
|||
.el-date-picker__header--bordered { |
|||
border-bottom: solid 1px #006cff; |
|||
} |
|||
} |
|||
|
|||
/deep/ .el-textarea__inner { |
|||
color: #fff; |
|||
border: 1px solid #0E3978; |
|||
border-radius: 2px; |
|||
background: rgba(0, 23, 66, 0.72); |
|||
} |
|||
|
|||
/deep/ .el-upload--picture-card { |
|||
color: #fff; |
|||
border: 1px solid #0E3978; |
|||
border-radius: 2px; |
|||
background: rgb(0, 23, 66); |
|||
line-height: normal; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
text-align: center; |
|||
opacity: 0.72; |
|||
.text { |
|||
margin-top: 10px; |
|||
} |
|||
} |
|||
</style> |
|||
@ -0,0 +1,92 @@ |
|||
<template> |
|||
<div> |
|||
<div class="table"> |
|||
<el-table v-loading="loading" :data="list" height="600px" |
|||
element-loading-background="rgba(0, 0, 0, 0.3)"> |
|||
<el-table-column label="序号" type="index" width="80"/> |
|||
<el-table-column label="月度" prop="key" width="100"/> |
|||
<el-table-column label="所属社区" prop="key" width="150"/> |
|||
<el-table-column label="文化设施" prop="key" width="150"/> |
|||
<el-table-column label="体育设施" prop="key" width="150"/> |
|||
<el-table-column label="生态环境" prop="key" width="150"/> |
|||
<el-table-column label="社会治安" prop="key" width="150"/> |
|||
<el-table-column label="社会救助" prop="key" width="150"/> |
|||
<el-table-column label="老有所养" prop="key" width="150"/> |
|||
<el-table-column label="基础教育" prop="key" width="150"/> |
|||
<el-table-column label="病有所医" prop="key" width="150"/> |
|||
<el-table-column label="提交时间" prop="key" width="150"/> |
|||
<el-table-column label="姓名" prop="key" width="100"/> |
|||
<el-table-column label="电话" prop="mobile" width="100"> |
|||
<template slot-scope="scope"> |
|||
{{ $sensitive(scope.row.mobile, 3, 7) }} |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="是否回访" prop="key" width="150"/> |
|||
<el-table-column label="消除风险" prop="key" width="150"/> |
|||
<el-table-column label="操作" prop="op" width="250"> |
|||
<template slot-scope="scope"> |
|||
<span class="view" @click="handleViews(scope.row)">查看</span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<Pagination |
|||
v-show="total > 0" |
|||
:limit.sync="queryParams.pageSize" |
|||
:page.sync="queryParams.pageNo" |
|||
:total="total" |
|||
@pagination="getList" |
|||
/> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination"; |
|||
|
|||
export default { |
|||
name: "CommunityList", |
|||
components: {Pagination}, |
|||
props: { |
|||
catVal: { |
|||
type: [String, Number], |
|||
default: "" |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
total: 10, |
|||
queryParams: {}, |
|||
list: [], |
|||
loading: false, |
|||
} |
|||
}, |
|||
mounted() { |
|||
|
|||
}, |
|||
methods: { |
|||
getList() { |
|||
|
|||
}, |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/dataBoard/table2.scss"; |
|||
|
|||
.table { |
|||
margin-top: 20px; |
|||
} |
|||
|
|||
.handle { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #9A69EC; |
|||
} |
|||
|
|||
.view { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #007FF1; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,91 @@ |
|||
<template> |
|||
<div> |
|||
<Tabs v-model="type" :list="typeList" @changeVal="typeChange"/> |
|||
<div class="table"> |
|||
<el-table v-loading="loading" :data="list" element-loading-background="rgba(0, 0, 0, 0.3)" |
|||
height="250px"> |
|||
<el-table-column label="需求类别" prop="key"/> |
|||
<el-table-column label="需求内容" prop="key"/> |
|||
<el-table-column label="需求人" prop="key"/> |
|||
<el-table-column label="需求人联系电话" prop="key" width="200"/> |
|||
<el-table-column label="状态" prop="key"/> |
|||
<el-table-column label="服务方" prop="key"/> |
|||
<el-table-column label="操作" prop="op" width="250"> |
|||
<template slot-scope="scope"> |
|||
<CallPhone text="拨打电话"/> |
|||
<span class="handle">处理</span> |
|||
<span class="view" @click="handleViews(scope.row)">查看</span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<Pagination |
|||
v-show="total > 0" |
|||
:limit.sync="queryParams.pageSize" |
|||
:page.sync="queryParams.pageNo" |
|||
:total="total" |
|||
@pagination="getList" |
|||
/> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination"; |
|||
import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue"; |
|||
import CallPhone from "@/views/dataBoard/cpts/CallPhone"; |
|||
|
|||
export default { |
|||
name: "DisputeDispatch", |
|||
components: {Pagination, Tabs, CallPhone}, |
|||
data() { |
|||
return { |
|||
total: 10, |
|||
queryParams: {}, |
|||
type: "1", |
|||
list: [], |
|||
loading: false, |
|||
typeList: [ |
|||
{ |
|||
label: "个性服务", |
|||
value: "1", |
|||
}, |
|||
{ |
|||
label: "共性需求", |
|||
value: "2", |
|||
} |
|||
], |
|||
} |
|||
}, |
|||
mounted() { |
|||
|
|||
}, |
|||
methods: { |
|||
getList() { |
|||
|
|||
}, |
|||
typeChange() { |
|||
|
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/dataBoard/table2.scss"; |
|||
|
|||
.table { |
|||
margin-top: 20px; |
|||
} |
|||
|
|||
.handle { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #9A69EC; |
|||
} |
|||
|
|||
.view { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #007FF1; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,213 @@ |
|||
<template> |
|||
<div class="charts"> |
|||
<div id="DifficultyCharts"></div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
|
|||
import * as echarts from "echarts"; |
|||
|
|||
export default { |
|||
name: "DifficultyCharts", |
|||
props: { |
|||
data: { |
|||
type: Array, |
|||
default: () => [] |
|||
} |
|||
}, |
|||
data() { |
|||
return {} |
|||
}, |
|||
mounted() { |
|||
this.$http.get('/governance/icEventOld/statisticsByCategory').then(({data: {data}}) => { |
|||
this.initCharts(data ? data : []) |
|||
}) |
|||
}, |
|||
methods: { |
|||
initCharts(data) { |
|||
let div = document.getElementById('DifficultyCharts'); |
|||
this.myChart = echarts.init(div); |
|||
let chartData = data.map((item) => { |
|||
return { |
|||
name: item.name, |
|||
count: item.value, |
|||
}; |
|||
}) |
|||
let xData = chartData.map(item => item.name); |
|||
let yData = chartData.map(item => item.value) |
|||
let color = [[ |
|||
{ |
|||
offset: 0, |
|||
color: 'rgba(0, 84, 255, 0)' // 0% 处的颜色 |
|||
}, |
|||
{ |
|||
offset: 1, |
|||
color: 'rgba(38, 244, 248, 1)' // 100% 处的颜色 |
|||
} |
|||
]] |
|||
let num = yData |
|||
const max = Math.max(...num) |
|||
let barArray = new Array(xData.length).fill((parseInt(max / 100) + 1) * 100) |
|||
var option = { |
|||
title: { |
|||
show: false, |
|||
text: '', |
|||
x: 'center', |
|||
top: '15px', |
|||
textStyle: { |
|||
color: '#333333', |
|||
fontWeight: 500, |
|||
fontSize: 18, |
|||
}, |
|||
}, |
|||
tooltip: { |
|||
trigger: 'axis', |
|||
backgroundColor: 'rgba(13,33,71,0.5)', |
|||
borderColor: 'rgba(143,174,252,0.6)', |
|||
padding: 8, |
|||
textStyle: { |
|||
color: '#fff', |
|||
}, |
|||
formatter: function (params) { |
|||
var res = '<div"><p>' + params[0].name + ':' + params[0].value + '</p></div>' |
|||
return res; |
|||
}, |
|||
}, |
|||
dataZoom: [ |
|||
{ |
|||
"type": "slider", |
|||
"start": 0, |
|||
"end": parseInt((5 / xData.length) * 10) / 10 * 100, |
|||
"height": 10, |
|||
"bottom": 0, |
|||
"showDetail": false, |
|||
"showDataShadow": false, |
|||
"borderColor": "transparent" |
|||
} |
|||
], |
|||
grid: { |
|||
top: '18%', |
|||
left: '2%', |
|||
right: '4%', |
|||
bottom: '8%', |
|||
containLabel: true |
|||
}, |
|||
xAxis: [ |
|||
{ |
|||
type: 'category', |
|||
axisTick: { |
|||
show: false, |
|||
}, |
|||
splitLine: { |
|||
show: false, |
|||
}, |
|||
axisLine: { |
|||
lineStyle: { |
|||
color: '#323c41' |
|||
} |
|||
}, |
|||
axisLabel: { |
|||
align: 'center', |
|||
interval: 0, |
|||
textStyle: { |
|||
fontSize: 12, |
|||
color: '#A3B9DA' |
|||
} |
|||
}, |
|||
boundaryGap: true, |
|||
data: xData, |
|||
}, { |
|||
type: 'category', |
|||
data: xData, |
|||
axisLine: {show: false}, |
|||
axisLabel: { |
|||
show: false, |
|||
}, |
|||
boundaryGap: true, |
|||
|
|||
} |
|||
], |
|||
|
|||
yAxis: [ |
|||
{ |
|||
type: 'value', |
|||
name: '单位:件', |
|||
nameLocation: 'end', |
|||
splitLine: { |
|||
show: true, |
|||
lineStyle: { |
|||
color: 'rgba(4,187,255,0.18)', |
|||
type: 'dashed' |
|||
}, |
|||
}, |
|||
nameTextStyle: { |
|||
color: '#A3B9DA', |
|||
textStyle: { |
|||
fontSize: 12 |
|||
}, |
|||
align: 'center' |
|||
}, |
|||
axisLabel: { |
|||
show: true, |
|||
color: '#A3B9DA', |
|||
textStyle: { |
|||
fontSize: 12 |
|||
} |
|||
}, |
|||
axisTick: { |
|||
show: false |
|||
} |
|||
} |
|||
], |
|||
series: [ |
|||
{ |
|||
name: "", |
|||
type: 'bar', |
|||
barWidth: 20, |
|||
itemStyle: { |
|||
opacity: 1, |
|||
color: new echarts.graphic.LinearGradient( |
|||
0, |
|||
1, |
|||
0, |
|||
0, |
|||
color[0], |
|||
false |
|||
) |
|||
}, |
|||
data: yData, |
|||
}, |
|||
{ |
|||
name: '', |
|||
type: 'bar', |
|||
barWidth: 50, |
|||
barGap: '-60%', |
|||
data: barArray, |
|||
itemStyle: { |
|||
normal: { |
|||
color: 'rgba(22,153,152, 0.1)' |
|||
} |
|||
}, |
|||
zlevel: -1, |
|||
xAxisIndex: 1, |
|||
} |
|||
], |
|||
}; |
|||
this.myChart.setOption(option); |
|||
window.addEventListener("resize", () => this.myChart.resize()); |
|||
this.loading = false |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
|
|||
.charts { |
|||
#DifficultyCharts { |
|||
width: 100%; |
|||
height: 350px; |
|||
} |
|||
} |
|||
</style> |
|||
@ -0,0 +1,94 @@ |
|||
<template> |
|||
<div> |
|||
<Tabs v-model="type" :list="typeList" @changeVal="typeChange"/> |
|||
<div class="table"> |
|||
<el-table v-loading="loading" :data="list" element-loading-background="rgba(0, 0, 0, 0.3)" |
|||
height="250px"> |
|||
<el-table-column label="资源类型" prop="key"/> |
|||
<el-table-column label="所属网格" prop="key"/> |
|||
<el-table-column label="姓名/名称" prop="key"/> |
|||
<el-table-column label="联系电话" prop="key"/> |
|||
<el-table-column label="状态" prop="name"/> |
|||
<el-table-column label="距离" prop="name"/> |
|||
</el-table> |
|||
<Pagination |
|||
v-show="total > 0" |
|||
:limit.sync="queryParams.pageSize" |
|||
:page.sync="queryParams.pageNo" |
|||
:total="total" |
|||
@pagination="getList" |
|||
/> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination"; |
|||
import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue"; |
|||
|
|||
export default { |
|||
name: "DisputeDispatch", |
|||
components: {Pagination, Tabs}, |
|||
data() { |
|||
return { |
|||
total: 10, |
|||
queryParams: {}, |
|||
type: "1", |
|||
list: [], |
|||
loading: false, |
|||
typeList: [ |
|||
{ |
|||
label: "网格员", |
|||
value: "1", |
|||
}, |
|||
{ |
|||
label: "公益岗", |
|||
value: "2", |
|||
}, |
|||
{ |
|||
label: "志愿者", |
|||
value: "3", |
|||
}, |
|||
{ |
|||
label: "社区自组织", |
|||
value: "4", |
|||
}, |
|||
{ |
|||
label: "联建单位", |
|||
value: "5", |
|||
}, |
|||
], |
|||
} |
|||
}, |
|||
mounted() { |
|||
|
|||
}, |
|||
methods: { |
|||
getList() { |
|||
|
|||
}, |
|||
typeChange() { |
|||
|
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped lang="scss"> |
|||
@import "@/assets/scss/dataBoard/table2.scss"; |
|||
.table { |
|||
margin-top: 20px; |
|||
} |
|||
|
|||
.handle { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #9A69EC; |
|||
} |
|||
|
|||
.view { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #007FF1; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,83 @@ |
|||
<template> |
|||
<div> |
|||
<div class="table"> |
|||
<el-table v-loading="loading" :data="list" height="600px" |
|||
element-loading-background="rgba(0, 0, 0, 0.3)"> |
|||
<el-table-column label="序号" type="index" width="80"/> |
|||
<el-table-column label="所属网格" prop="key" width="120"/> |
|||
<el-table-column label="接收时间" prop="key" width="180"/> |
|||
<el-table-column label="问题描述" prop="key" width="120"/> |
|||
<el-table-column label="办结时限" prop="key" width="120"/> |
|||
<el-table-column label="联系人" prop="key" width="120"/> |
|||
<el-table-column label="联系电话" prop="key" width="120"/> |
|||
<el-table-column label="状态" prop="name" width="120"/> |
|||
<el-table-column label="操作" prop="op" width="250"> |
|||
<template slot-scope="scope"> |
|||
<CallPhone text="拨打电话"/> |
|||
<span class="handle">处理</span> |
|||
<span class="view" @click="handleViews(scope.row)">查看</span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<Pagination |
|||
v-show="total > 0" |
|||
:limit.sync="queryParams.pageSize" |
|||
:page.sync="queryParams.pageNo" |
|||
:total="total" |
|||
@pagination="getList" |
|||
/> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination"; |
|||
import CallPhone from "@/views/dataBoard/cpts/CallPhone"; |
|||
|
|||
export default { |
|||
name: "List12345", |
|||
components: {Pagination,CallPhone}, |
|||
props: { |
|||
catVal: { |
|||
type: [String,Number], |
|||
default: "" |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
total: 10, |
|||
queryParams: {}, |
|||
list: [], |
|||
loading: false, |
|||
} |
|||
}, |
|||
mounted() { |
|||
|
|||
}, |
|||
methods: { |
|||
getList() { |
|||
|
|||
}, |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/dataBoard/table2.scss"; |
|||
|
|||
.table { |
|||
margin-top: 20px; |
|||
} |
|||
|
|||
.handle { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #9A69EC; |
|||
} |
|||
|
|||
.view { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #007FF1; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,83 @@ |
|||
<template> |
|||
<div> |
|||
<div class="table"> |
|||
<el-table v-loading="loading" :data="list" :height="catVal === 1|| catVal === 2?'250px':'600px'" |
|||
element-loading-background="rgba(0, 0, 0, 0.3)"> |
|||
<el-table-column label="所属网格" prop="key" width="120"/> |
|||
<el-table-column label="接收时间" prop="key" width="180"/> |
|||
<el-table-column label="问题描述" prop="key" width="120"/> |
|||
<el-table-column label="语音" prop="key" width="120"/> |
|||
<el-table-column label="办结时限" prop="key" width="120"/> |
|||
<el-table-column label="联系人" prop="key" width="120"/> |
|||
<el-table-column label="联系电话" prop="key" width="120"/> |
|||
<el-table-column label="状态" prop="name" width="120"/> |
|||
<el-table-column label="操作" prop="op" width="250"> |
|||
<template slot-scope="scope"> |
|||
<CallPhone text="拨打电话"/> |
|||
<span class="handle">处理</span> |
|||
<span class="view" @click="handleViews(scope.row)">查看</span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<Pagination |
|||
v-show="total > 0" |
|||
:limit.sync="queryParams.pageSize" |
|||
:page.sync="queryParams.pageNo" |
|||
:total="total" |
|||
@pagination="getList" |
|||
/> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination"; |
|||
import CallPhone from "@/views/dataBoard/cpts/CallPhone"; |
|||
|
|||
export default { |
|||
name: "Njjwtqk", |
|||
components: {Pagination, CallPhone}, |
|||
props: { |
|||
catVal: { |
|||
type: [String, Number], |
|||
default: "" |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
total: 10, |
|||
queryParams: {}, |
|||
list: [], |
|||
loading: false, |
|||
} |
|||
}, |
|||
mounted() { |
|||
|
|||
}, |
|||
methods: { |
|||
getList() { |
|||
|
|||
}, |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/dataBoard/table2.scss"; |
|||
|
|||
.table { |
|||
margin-top: 20px; |
|||
} |
|||
|
|||
.handle { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #9A69EC; |
|||
} |
|||
|
|||
.view { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #007FF1; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,105 @@ |
|||
<template> |
|||
<div> |
|||
<Tabs v-model="type" :list="typeList" @changeVal="typeChange"/> |
|||
<div class="table"> |
|||
<el-table v-loading="loading" :data="list" element-loading-background="rgba(0, 0, 0, 0.3)" |
|||
height="250px"> |
|||
<el-table-column label="资源类型" prop="key"/> |
|||
<el-table-column label="所属网格" prop="key"/> |
|||
<el-table-column label="姓名/名称" prop="key"/> |
|||
<el-table-column label="联系电话" prop="key"/> |
|||
<el-table-column label="状态" prop="name"/> |
|||
<el-table-column label="距离" prop="name"/> |
|||
<el-table-column label="操作" prop="op" width="250"> |
|||
<template slot-scope="scope"> |
|||
<CallPhone text="拨打电话"/> |
|||
<span class="view" @click="handleViews(scope.row)">查看</span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<Pagination |
|||
v-show="total > 0" |
|||
:limit.sync="queryParams.pageSize" |
|||
:page.sync="queryParams.pageNo" |
|||
:total="total" |
|||
@pagination="getList" |
|||
/> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination"; |
|||
import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue"; |
|||
import CallPhone from "@/views/dataBoard/cpts/CallPhone"; |
|||
|
|||
export default { |
|||
name: "DisputeDispatch", |
|||
components: {Pagination, Tabs, CallPhone}, |
|||
data() { |
|||
return { |
|||
total: 10, |
|||
queryParams: {}, |
|||
type: "1", |
|||
list: [], |
|||
loading: false, |
|||
typeList: [ |
|||
{ |
|||
label: "网格员", |
|||
value: "1", |
|||
}, |
|||
{ |
|||
label: "公益岗", |
|||
value: "2", |
|||
}, |
|||
{ |
|||
label: "志愿者", |
|||
value: "3", |
|||
}, |
|||
{ |
|||
label: "社区自组织", |
|||
value: "4", |
|||
}, |
|||
{ |
|||
label: "联建单位", |
|||
value: "5", |
|||
}, |
|||
{ |
|||
label: "15分钟生活圈商家", |
|||
value: "5", |
|||
}, |
|||
], |
|||
} |
|||
}, |
|||
mounted() { |
|||
|
|||
}, |
|||
methods: { |
|||
getList() { |
|||
|
|||
}, |
|||
typeChange() { |
|||
|
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped lang="scss"> |
|||
@import "@/assets/scss/dataBoard/table2.scss"; |
|||
.table { |
|||
margin-top: 20px; |
|||
} |
|||
|
|||
.handle { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #9A69EC; |
|||
} |
|||
|
|||
.view { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #007FF1; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,87 @@ |
|||
<template> |
|||
<div> |
|||
<div class="table"> |
|||
<el-table v-loading="loading" :data="list" height="600px" |
|||
element-loading-background="rgba(0, 0, 0, 0.3)"> |
|||
<el-table-column label="序号" type="index" width="80"/> |
|||
<el-table-column label="月度" prop="key" width="100"/> |
|||
<el-table-column label="所属社区" prop="key" width="150"/> |
|||
<el-table-column label="事项来源" prop="key" width="150"/> |
|||
<el-table-column label="问题" prop="key" width="220"/> |
|||
<el-table-column label="提交时间" prop="key" width="150"/> |
|||
<el-table-column label="姓名" prop="key" width="100"/> |
|||
<el-table-column label="电话" prop="mobile" width="100"> |
|||
<template slot-scope="scope"> |
|||
{{ $sensitive(scope.row.mobile, 3, 7) }} |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="是否完成" prop="key" width="150"/> |
|||
<el-table-column label="消除风险" prop="key" width="150"/> |
|||
<el-table-column label="状态" prop="name" width="120"/> |
|||
<el-table-column label="操作" prop="op" width="250"> |
|||
<template slot-scope="scope"> |
|||
<span class="view" @click="handleViews(scope.row)">查看</span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<Pagination |
|||
v-show="total > 0" |
|||
:limit.sync="queryParams.pageSize" |
|||
:page.sync="queryParams.pageNo" |
|||
:total="total" |
|||
@pagination="getList" |
|||
/> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination"; |
|||
|
|||
export default { |
|||
name: "SatisfactionList", |
|||
components: {Pagination}, |
|||
props: { |
|||
catVal: { |
|||
type: [String,Number], |
|||
default: "" |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
total: 10, |
|||
queryParams: {}, |
|||
list: [], |
|||
loading: false, |
|||
} |
|||
}, |
|||
mounted() { |
|||
|
|||
}, |
|||
methods: { |
|||
getList() { |
|||
|
|||
}, |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/dataBoard/table2.scss"; |
|||
|
|||
.table { |
|||
margin-top: 20px; |
|||
} |
|||
|
|||
.handle { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #9A69EC; |
|||
} |
|||
|
|||
.view { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #007FF1; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,292 @@ |
|||
<template> |
|||
<div> |
|||
<el-dialog |
|||
:before-close="handleClose" |
|||
:modal="true" |
|||
:modal-append-to-body="false" |
|||
:visible.sync="dialogVisible" |
|||
class="dissatisfied-detail" |
|||
title="" |
|||
width="1366px" |
|||
> |
|||
<div class="content"> |
|||
<div class="main-title main-title2"> |
|||
|
|||
<Title :text=" |
|||
type === 'njjwtqk'?'难解决问题情况': |
|||
type === 'bmysxqk'?'不满意事项情况': |
|||
type === 'xqwwcqk'?'需求未完成情况':'' |
|||
"/> |
|||
</div> |
|||
|
|||
<div class="contents"> |
|||
<el-row :gutter="30"> |
|||
<el-col :span="5"> |
|||
<div class="tree"> |
|||
<el-tree |
|||
ref="tree" |
|||
:data="type === 'njjwtqk'?njjwtqkTree:type === 'bmysxqk'?bmysxqkTree:type === 'xqwwcqk'?xqwwcqkTree:[]" |
|||
:default-expand-all="true" |
|||
:props="defaultProps" |
|||
highlight-current |
|||
icon-class="el-icon-arrow-right" |
|||
node-key="value" |
|||
@node-click="handleNodeClick" |
|||
/> |
|||
</div> |
|||
</el-col> |
|||
<el-col :span="19"> |
|||
<template v-if="type === 'njjwtqk'"> |
|||
<div class="eventDetails"> |
|||
<img |
|||
:height="18" |
|||
:width="18" |
|||
src="@/assets/images/manyidu/tc-title-icon.png" |
|||
/> |
|||
{{ |
|||
catVal === 1 ? '难点堵点分类统计' : |
|||
catVal === 2 ? '矛盾纠纷资源调度' : |
|||
catVal === 3 ? '自身问题事件列表' : |
|||
catVal === 4 ? '超出服务范围事件列表' : '' |
|||
}} |
|||
</div> |
|||
<DifficultyCharts v-if="catVal === 1" style="margin-bottom: 56px;"/> |
|||
<DisputeDispatch v-if="catVal === 2" style="margin-bottom: 56px;"/> |
|||
<Njjwtqk :catVal="catVal"/> |
|||
</template> |
|||
|
|||
<template v-if="type === 'bmysxqk'"> |
|||
<div class="eventDetails"> |
|||
<img :height="18" :width="18" src="@/assets/images/manyidu/tc-title-icon.png"/> |
|||
不满意事项列表 |
|||
</div> |
|||
<List12345 v-if="catVal === 1" :catVal="catVal"/> |
|||
<CommunityList v-if="catVal === 2" :catVal="catVal"/> |
|||
<SatisfactionList v-if="catVal === 3" :catVal="catVal"/> |
|||
</template> |
|||
|
|||
<template v-if="type === 'xqwwcqk'"> |
|||
<div class="eventDetails"> |
|||
<img :height="18" :width="18" src="@/assets/images/manyidu/tc-title-icon.png"/> |
|||
{{ catLabel }}-资源调度 |
|||
</div> |
|||
<ResourceDispatch :catVal="catVal"/> |
|||
<div class="eventDetails"> |
|||
<img :height="18" :width="18" src="@/assets/images/manyidu/tc-title-icon.png"/> |
|||
{{ catLabel }}-需求列表 |
|||
</div> |
|||
<DemandList :catVal="catVal"/> |
|||
</template> |
|||
</el-col> |
|||
</el-row> |
|||
</div> |
|||
</div> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Title from "@/views/dataBoard/satisfactionEval/components/Title"; |
|||
import DifficultyCharts from "./DifficultyCharts"; |
|||
import Njjwtqk from "./Njjwtqk.vue"; |
|||
import List12345 from "./List12345.vue"; |
|||
import CommunityList from "./CommunityList.vue"; |
|||
import SatisfactionList from "./SatisfactionList.vue"; |
|||
import DisputeDispatch from "./DisputeDispatch"; |
|||
import DemandList from "./DemandList"; |
|||
import ResourceDispatch from "./ResourceDispatch"; |
|||
import titleSmall from "@/views/dataBoard/satisfactionEval/components/Title/titleSmall.vue"; |
|||
import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination"; |
|||
|
|||
export default { |
|||
name: "MapDialog", |
|||
components: { |
|||
Title, |
|||
DifficultyCharts, |
|||
Njjwtqk, |
|||
titleSmall, |
|||
DisputeDispatch, |
|||
Pagination, |
|||
List12345, |
|||
CommunityList, |
|||
SatisfactionList, |
|||
DemandList, |
|||
ResourceDispatch |
|||
}, |
|||
props: { |
|||
type: { |
|||
type: String, |
|||
default: '', |
|||
required: true |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
total: 10, |
|||
queryParams: {}, |
|||
dialogVisible: false, |
|||
njjwtqkTree: [ |
|||
{ |
|||
label: '难点堵点', |
|||
value: 1 |
|||
}, { |
|||
label: '矛盾纠纷', |
|||
value: 2 |
|||
}, { |
|||
label: '自身问题', |
|||
value: 3 |
|||
}, { |
|||
label: '超出服务范围', |
|||
value: 4 |
|||
} |
|||
], |
|||
bmysxqkTree: [ |
|||
{ |
|||
label: '12345政务热线', |
|||
value: 1, |
|||
children: [{ |
|||
label: '城市综合', |
|||
value: 4 |
|||
}, { |
|||
label: '城乡建设', |
|||
value: 5 |
|||
}] |
|||
}, { |
|||
label: '社区自查', |
|||
value: 2, |
|||
children: [{ |
|||
label: '文化设施', |
|||
value: 6 |
|||
}, { |
|||
label: '病有所医', |
|||
value: 7 |
|||
}, { |
|||
label: '社会救助', |
|||
value: 8 |
|||
}] |
|||
}, { |
|||
label: '满意度调查', |
|||
value: 3, |
|||
children: [{ |
|||
label: '文化设施', |
|||
value: 9 |
|||
}, { |
|||
label: '基础教育', |
|||
value: 10 |
|||
}, { |
|||
label: '体育设施', |
|||
value: 11 |
|||
}] |
|||
} |
|||
], |
|||
xqwwcqkTree: [ |
|||
{ |
|||
label: '教育讲座类', |
|||
value: 1 |
|||
}, { |
|||
label: '社会治理类', |
|||
value: 2 |
|||
}, { |
|||
label: '公益事业类', |
|||
value: 3 |
|||
}, { |
|||
label: '公共服务类', |
|||
value: 4 |
|||
}, { |
|||
label: '设施维护类', |
|||
value: 5 |
|||
}, { |
|||
label: '技能培训类', |
|||
value: 6 |
|||
}, { |
|||
label: '岗位提供类', |
|||
value: 7 |
|||
} |
|||
], |
|||
defaultProps: { |
|||
children: 'children', |
|||
label: 'label' |
|||
}, |
|||
catVal: 1, |
|||
catLabel: '' |
|||
}; |
|||
}, |
|||
methods: { |
|||
handleClose(done) { |
|||
this.dialogVisible = false; |
|||
}, |
|||
open(data) { |
|||
this.dialogVisible = true; |
|||
this.getDetail(data); |
|||
this.catLabel = this.xqwwcqkTree[0].label; |
|||
this.$nextTick(() => { |
|||
this.$refs.tree.setCurrentKey(this.catVal) |
|||
}) |
|||
}, |
|||
getDetail({orgId}) { |
|||
if (this.type === 'njjwtqk') { |
|||
this.$http.post('/governance/icEventOld/getMarkersByMarkType', { |
|||
agencyId: orgId, |
|||
type: 2 |
|||
}).then(({data: {data}}) => { |
|||
console.log('data', data) |
|||
}) |
|||
} |
|||
}, |
|||
handleViews() { |
|||
this.$refs.ResourceInfo.open() |
|||
}, |
|||
handleNodeClick(item) { |
|||
this.catLabel = item.label |
|||
console.log(this.getTopLevel(item.value)) |
|||
this.catVal = this.getTopLevel(item.value) || item.value |
|||
}, |
|||
getTopLevel(key) { |
|||
const currentNode = this.$refs.tree.getNode(key); |
|||
let parentNode = currentNode; |
|||
if (!parentNode) { |
|||
return parentNode |
|||
} |
|||
while (parentNode.level > 1) { |
|||
parentNode = parentNode.parent; |
|||
} |
|||
console.log(parentNode, parentNode.level, 'parentNode') |
|||
|
|||
return parentNode.data.value |
|||
} |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/dataBoard/dialog.scss"; |
|||
@import "@/assets/scss/dataBoard/tree.scss"; |
|||
@import "@/assets/scss/dataBoard/table2.scss"; |
|||
|
|||
.handle { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #9A69EC; |
|||
} |
|||
|
|||
.view { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #007FF1; |
|||
} |
|||
|
|||
.eventDetails { |
|||
font-size: 18px; |
|||
margin-bottom: 26px; |
|||
color: #ffffff; |
|||
|
|||
img { |
|||
margin-top: -4px; |
|||
margin-right: 8px; |
|||
} |
|||
} |
|||
|
|||
.tree { |
|||
height: 700px; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,138 @@ |
|||
<template> |
|||
<div> |
|||
<div class="dialog-small"> |
|||
|
|||
<el-dialog |
|||
:before-close="handleClose" |
|||
:modal="true" |
|||
:modal-append-to-body="false" |
|||
:visible.sync="dialogVisible" |
|||
title="" |
|||
width="416px" |
|||
> |
|||
<template #title> |
|||
<Title noBg text="资源信息卡"/> |
|||
</template> |
|||
<div class="content"> |
|||
<div class="items"> |
|||
<div class="label">资源类型:</div> |
|||
<div class="value">联建单位</div> |
|||
</div> |
|||
<div class="items"> |
|||
<div class="label">单位名称:</div> |
|||
<div class="value">青岛**消毒科技有限公司</div> |
|||
</div> |
|||
<div class="items"> |
|||
<div class="label">分类:</div> |
|||
<div class="value">区域单位党建</div> |
|||
</div> |
|||
<div class="items"> |
|||
<div class="label">服务事项:</div> |
|||
<div class="value">青岛**消毒科技有限公司</div> |
|||
</div> |
|||
<div class="items"> |
|||
<div class="label">联系人:</div> |
|||
<div class="value">王军</div> |
|||
</div> |
|||
<div class="items"> |
|||
<div class="label">联系电话:</div> |
|||
<div class="value">133****8989</div> |
|||
<CallPhone icon="el-icon-phone"/> |
|||
</div> |
|||
<div class="items"> |
|||
<div class="label">所在位置:</div> |
|||
<div class="value">xxxxxxxxxxxxxxxxxxxxxxxxxxxxx</div> |
|||
</div> |
|||
<div class="btn-group"> |
|||
<el-button class="sure" plain round type="warning" @click="handleSure">查看更多</el-button> |
|||
</div> |
|||
</div> |
|||
</el-dialog> |
|||
</div> |
|||
|
|||
<MapResourceInfoMore ref="MapResourceInfoMore"/> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Title from "@/views/dataBoard/satisfactionEval/components/Title"; |
|||
import CallPhone from "@/views/dataBoard/cpts/CallPhone"; |
|||
import MapResourceInfoMore from "@/views/dataBoard/overview/components/MapResourceInfoMore"; |
|||
|
|||
export default { |
|||
name: "MapResourceInfo", |
|||
components: {Title, CallPhone, MapResourceInfoMore}, |
|||
data() { |
|||
return { |
|||
dialogVisible: false, |
|||
explain: "" |
|||
} |
|||
}, |
|||
mounted() { |
|||
|
|||
}, |
|||
methods: { |
|||
handleClose(done) { |
|||
this.dialogVisible = false; |
|||
}, |
|||
open(id) { |
|||
this.dialogVisible = true; |
|||
}, |
|||
handleSure() { |
|||
this.$refs.MapResourceInfoMore.open() |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" src="@/assets/scss/dataBoard/dialog-small.scss" scoped></style> |
|||
<style lang="scss" scoped> |
|||
|
|||
.content { |
|||
padding: 0 25px; |
|||
|
|||
.items { |
|||
font-size: 14px; |
|||
position: relative; |
|||
display: flex; |
|||
align-items: center; |
|||
margin-bottom: 17px; |
|||
|
|||
.label { |
|||
color: #9CB4D3; |
|||
} |
|||
|
|||
.value { |
|||
color: #FFFFFF; |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
.btn-group { |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
margin-top: 20px; |
|||
|
|||
.el-button { |
|||
width: 136px; |
|||
height: 36px; |
|||
margin: 0 20px; |
|||
} |
|||
|
|||
.sure { |
|||
color: #8ED3FF; |
|||
border: 1px solid #006CFF; |
|||
background: rgba(0, 108, 255, 0.5); |
|||
} |
|||
|
|||
.cancel { |
|||
color: #B6D2FF; |
|||
border: 1px solid #6496E8; |
|||
background: rgba(116, 146, 194, 0.6); |
|||
} |
|||
|
|||
} |
|||
|
|||
</style> |
|||
@ -0,0 +1,163 @@ |
|||
<template> |
|||
<el-dialog |
|||
:before-close="handleClose" |
|||
:modal="true" |
|||
:modal-append-to-body="false" |
|||
:visible.sync="dialogVisible" |
|||
class="dissatisfied-detail" |
|||
title="" |
|||
width="1118px" |
|||
> |
|||
<div class="content"> |
|||
<div class="main-title main-title2"> |
|||
<Title text="查看更多"/> |
|||
</div> |
|||
|
|||
<div class="contents"> |
|||
<el-row> |
|||
<el-col :span="12"> |
|||
<div class="items"> |
|||
<div class="label">所属网格:</div> |
|||
<div class="value">xxxx社区第一网格</div> |
|||
</div> |
|||
</el-col> |
|||
</el-row> |
|||
<Tabs v-model="type" :list="typeList" @changeVal="typeChange"/> |
|||
<div class="table"> |
|||
<el-table v-loading="loading" :data="list" element-loading-background="rgba(0, 0, 0, 0.3)" |
|||
height="250px"> |
|||
<el-table-column label="序号" type="index"/> |
|||
|
|||
<el-table-column label="服务时间" prop="key" v-if="type === 1"/> |
|||
<el-table-column label="需求类型" prop="key" v-if="type === 1"/> |
|||
<el-table-column label="需求内容" prop="key" v-if="type === 1"/> |
|||
<el-table-column label="满意度" prop="key" v-if="type === 1"/> |
|||
<el-table-column label="状态" prop="key" v-if="type === 1"/> |
|||
|
|||
<el-table-column label="服务类型" prop="key" v-if="type !== 1"/> |
|||
<el-table-column label="服务事项" prop="key" v-if="type !== 1"/> |
|||
<el-table-column label="来自" prop="key" v-if="type !== 1"/> |
|||
<el-table-column label="服务时间" prop="key" v-if="type !== 1"/> |
|||
<el-table-column label="服务人数" prop="key" v-if="type !== 1"/> |
|||
|
|||
<el-table-column label="操作" prop="op"> |
|||
<template slot-scope="scope"> |
|||
<span class="view" @click="handleViews(scope.row)">查看</span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<Pagination |
|||
v-show="total > 0" |
|||
:limit.sync="queryParams.pageSize" |
|||
:page.sync="queryParams.pageNo" |
|||
:total="total" |
|||
@pagination="getList" |
|||
/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination"; |
|||
import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue"; |
|||
import CallPhone from "@/views/dataBoard/cpts/CallPhone"; |
|||
import Title from "@/views/dataBoard/satisfactionEval/components/Title"; |
|||
|
|||
export default { |
|||
name: "MapResourceInfoMore", |
|||
components: {Pagination, Tabs, CallPhone, Title}, |
|||
data() { |
|||
return { |
|||
dialogVisible: false, |
|||
total: 10, |
|||
queryParams: {}, |
|||
type: "1", |
|||
list: [], |
|||
loading: false, |
|||
typeList: [ |
|||
{ |
|||
label: "个性服务", |
|||
value: 1, |
|||
}, |
|||
{ |
|||
label: "服务找人", |
|||
value: 2, |
|||
}, |
|||
{ |
|||
label: "温暖找人", |
|||
value: 3, |
|||
}, |
|||
{ |
|||
label: "岗位找人", |
|||
value: 4, |
|||
}, |
|||
{ |
|||
label: "技能找人", |
|||
value: 5, |
|||
}, |
|||
], |
|||
} |
|||
}, |
|||
mounted() { |
|||
|
|||
}, |
|||
methods: { |
|||
handleClose(done) { |
|||
this.dialogVisible = false; |
|||
}, |
|||
open(id) { |
|||
this.dialogVisible = true; |
|||
}, |
|||
getList() { |
|||
|
|||
}, |
|||
typeChange() { |
|||
|
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/dataBoard/table2.scss"; |
|||
|
|||
@import "~@/assets/scss/dataBoard/dialog.scss"; |
|||
|
|||
.contents { |
|||
padding: 40px 50px; |
|||
|
|||
.items { |
|||
font-size: 14px; |
|||
position: relative; |
|||
display: flex; |
|||
align-items: center; |
|||
margin-bottom: 17px; |
|||
|
|||
.label { |
|||
color: #9CB4D3; |
|||
} |
|||
|
|||
.value { |
|||
color: #FFFFFF; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.table { |
|||
margin-top: 20px; |
|||
} |
|||
|
|||
.handle { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #9A69EC; |
|||
} |
|||
|
|||
.view { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #007FF1; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,135 @@ |
|||
<template> |
|||
<div class="dialog-small"> |
|||
|
|||
<el-dialog |
|||
:before-close="handleClose" |
|||
:modal="true" |
|||
:modal-append-to-body="false" |
|||
:visible.sync="dialogVisible" |
|||
class="dissatisfied-detail" |
|||
title="" |
|||
width="416px" |
|||
> |
|||
<template #title> |
|||
<Title noBg text="资源信息卡"/> |
|||
</template> |
|||
<div class="content"> |
|||
<div class="items"> |
|||
<div class="label">资源类型:</div> |
|||
<div class="value">网格员</div> |
|||
</div> |
|||
<div class="items"> |
|||
<div class="label">联系电话:</div> |
|||
<div class="value">133****8989</div> |
|||
<CallPhone icon="el-icon-phone"/> |
|||
</div> |
|||
|
|||
<div class="items"> |
|||
<div class="label">联系人:</div> |
|||
<div class="value">王军</div> |
|||
</div> |
|||
|
|||
<div class="items"> |
|||
<div class="label">状态:</div> |
|||
<div class="value">巡查中</div> |
|||
</div> |
|||
|
|||
<div class="items"> |
|||
<div class="label">所在位置:</div> |
|||
<div class="value">xxxxxxxxxxxxxxxxxxxxxxxxxxxxx</div> |
|||
</div> |
|||
<div class="btn-group"> |
|||
<el-button class="sure" plain round type="warning" @click="handleSure">派单</el-button> |
|||
</div> |
|||
</div> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Title from "@/views/dataBoard/satisfactionEval/components/Title"; |
|||
import CallPhone from "@/views/dataBoard/cpts/CallPhone"; |
|||
|
|||
export default { |
|||
name: "Supervision", |
|||
components: {Title, CallPhone}, |
|||
data() { |
|||
return { |
|||
dialogVisible: false, |
|||
explain: "" |
|||
} |
|||
}, |
|||
mounted() { |
|||
|
|||
}, |
|||
methods: { |
|||
handleClose(done) { |
|||
this.dialogVisible = false; |
|||
}, |
|||
open(id) { |
|||
this.dialogVisible = true; |
|||
}, |
|||
handleSure() { |
|||
|
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "~@/assets/scss/dataBoard/dialog-small.scss"; |
|||
|
|||
.content { |
|||
padding: 0 25px; |
|||
|
|||
.items { |
|||
font-size: 14px; |
|||
position: relative; |
|||
display: flex; |
|||
align-items: center; |
|||
margin-bottom: 17px; |
|||
|
|||
.label { |
|||
color: #9CB4D3; |
|||
} |
|||
|
|||
.value { |
|||
color: #FFFFFF; |
|||
} |
|||
} |
|||
} |
|||
|
|||
/deep/ .el-textarea__inner { |
|||
color: #fff; |
|||
border: 1px solid #0E3978; |
|||
border-radius: 2px; |
|||
background: rgba(0, 23, 66, 0.72); |
|||
} |
|||
|
|||
.btn-group { |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
margin-top: 20px; |
|||
|
|||
.el-button { |
|||
width: 136px; |
|||
height: 36px; |
|||
margin: 0 20px; |
|||
} |
|||
|
|||
.sure { |
|||
color: #8ED3FF; |
|||
border: 1px solid #006CFF; |
|||
background: rgba(0, 108, 255, 0.5); |
|||
} |
|||
|
|||
.cancel { |
|||
color: #B6D2FF; |
|||
border: 1px solid #6496E8; |
|||
background: rgba(116, 146, 194, 0.6); |
|||
} |
|||
|
|||
} |
|||
|
|||
</style> |
|||
@ -0,0 +1,151 @@ |
|||
<template> |
|||
<div class="dialog-small"> |
|||
|
|||
<el-dialog |
|||
:before-close="handleClose" |
|||
:modal="true" |
|||
:modal-append-to-body="false" |
|||
:visible.sync="dialogVisible" |
|||
class="dissatisfied-detail" |
|||
title="" |
|||
width="416px" |
|||
> |
|||
<template #title> |
|||
<Title noBg text="催办督办"/> |
|||
</template> |
|||
<div class="content"> |
|||
<div class="items"> |
|||
<div class="label">当前办理部门:</div> |
|||
<div class="value">XXX社区</div> |
|||
</div> |
|||
|
|||
<div class="items"> |
|||
<div class="label">转入该部门时间:</div> |
|||
<div class="value">2023-09-10 15:30</div> |
|||
</div> |
|||
|
|||
<div class="items"> |
|||
<div class="label">联系人:</div> |
|||
<div class="value">王军</div> |
|||
</div> |
|||
|
|||
<div class="items"> |
|||
<div class="label">联系电话:</div> |
|||
<div class="value">133****8989</div> |
|||
<CallPhone icon="el-icon-phone"/> |
|||
</div> |
|||
|
|||
<div class="items"> |
|||
<div class="label">时间状态:</div> |
|||
<div class="value">办理中</div> |
|||
</div> |
|||
|
|||
<div class="items"> |
|||
<div class="label">催办说明:</div> |
|||
</div> |
|||
<div class="items"> |
|||
<el-input |
|||
v-model="explain" |
|||
:autosize="{ minRows: 5, maxRows: 10}" |
|||
class="input" |
|||
maxlength="500" |
|||
placeholder="请填写催办说明,不超过500字" |
|||
type="textarea"/> |
|||
</div> |
|||
|
|||
<div class="btn-group"> |
|||
<el-button class="cancel" plain round type="success" @click="handleClose">取消</el-button> |
|||
<el-button class="sure" plain round type="warning" @click="handleSure">确定</el-button> |
|||
</div> |
|||
</div> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Title from "@/views/dataBoard/satisfactionEval/components/Title"; |
|||
import CallPhone from "@/views/dataBoard/cpts/CallPhone"; |
|||
|
|||
export default { |
|||
name: "Supervision", |
|||
components: {Title, CallPhone}, |
|||
data() { |
|||
return { |
|||
dialogVisible: false, |
|||
explain: "" |
|||
} |
|||
}, |
|||
mounted() { |
|||
|
|||
}, |
|||
methods: { |
|||
handleClose(done) { |
|||
this.dialogVisible = false; |
|||
}, |
|||
open(id) { |
|||
this.dialogVisible = true; |
|||
}, |
|||
handleSure() { |
|||
|
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "~@/assets/scss/dataBoard/dialog-small.scss"; |
|||
|
|||
.content { |
|||
padding: 0 25px; |
|||
|
|||
.items { |
|||
font-size: 14px; |
|||
position: relative; |
|||
display: flex; |
|||
align-items: center; |
|||
margin-bottom: 17px; |
|||
|
|||
.label { |
|||
color: #9CB4D3; |
|||
} |
|||
|
|||
.value { |
|||
color: #FFFFFF; |
|||
} |
|||
} |
|||
} |
|||
|
|||
/deep/ .el-textarea__inner { |
|||
color: #fff; |
|||
border: 1px solid #0E3978; |
|||
border-radius: 2px; |
|||
background: rgba(0, 23, 66, 0.72); |
|||
} |
|||
|
|||
.btn-group { |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
margin-top: 20px; |
|||
|
|||
.el-button { |
|||
width: 136px; |
|||
height: 36px; |
|||
margin: 0 20px; |
|||
} |
|||
|
|||
.sure { |
|||
color: #8ED3FF; |
|||
border: 1px solid #006CFF; |
|||
background: rgba(0, 108, 255, 0.5); |
|||
} |
|||
|
|||
.cancel { |
|||
color: #B6D2FF; |
|||
border: 1px solid #6496E8; |
|||
background: rgba(116, 146, 194, 0.6); |
|||
} |
|||
|
|||
} |
|||
|
|||
</style> |
|||
@ -0,0 +1,122 @@ |
|||
<template> |
|||
<div> |
|||
<Breadcrumb :list="breadcrumbList"/> |
|||
<div class="table"> |
|||
<el-table v-loading="loading" |
|||
:data="list" |
|||
element-loading-background="rgba(0,0,0,0.5)" |
|||
element-loading-spinner="el-icon-loading" |
|||
element-loading-text="加载中..." |
|||
> |
|||
<el-table-column label="序号" type="index" width="80"/> |
|||
|
|||
<el-table-column label="所属网格" prop="key"/> |
|||
<el-table-column label="接收时间" prop="key"/> |
|||
<el-table-column label="问题描述" prop="key"/> |
|||
<el-table-column label="语音" prop="key"/> |
|||
<el-table-column label="办结时限" prop="key"/> |
|||
<el-table-column label="联系人" prop="key"/> |
|||
<el-table-column label="联系人电话" prop="mobile"> |
|||
<template slot-scope="scope"> |
|||
{{ $sensitive(scope.row.mobile, 3, 7) }} |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="状态" prop="key"/> |
|||
<el-table-column label="操作" sortable> |
|||
<template slot-scope="{ row }"> |
|||
<CallPhone text="拨打电话"/> |
|||
<span class="handle">处理</span> |
|||
<span class="view" @click="handleView(scope.row)">查看</span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
|
|||
<Pagination v-show="total > 0" :limit.sync="queryParams.pageSize" :page.sync="queryParams.pageNo" :total="total" |
|||
@pagination="getList"/> |
|||
<sjwjj :id="rowId" :showDialog="showDialog" @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"; |
|||
import CallPhone from '@/views/dataBoard/cpts/CallPhone.vue' |
|||
|
|||
export default { |
|||
name: "12345Hotline", |
|||
components: {Breadcrumb, Pagination, Title, sjwjj, CallPhone}, |
|||
data() { |
|||
return { |
|||
queryParams: { |
|||
reportUserId: this.$route.query.reportUserId, |
|||
pageNo: 1, |
|||
pageSize: 10, |
|||
}, |
|||
total: 0, |
|||
breadcrumbList: [ |
|||
{ |
|||
path: "/dataBoard/overview/index", |
|||
name: "书记看板", |
|||
}, |
|||
{ |
|||
path: "", |
|||
name: "12345投诉列表", |
|||
}, |
|||
], |
|||
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("/?" + 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 lang="scss" scoped> |
|||
@import "@/assets/scss/dataBoard/table.scss"; |
|||
|
|||
.table { |
|||
margin-top: 40px; |
|||
} |
|||
|
|||
.handle { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #9A69EC; |
|||
} |
|||
|
|||
.view { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #007FF1; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,121 @@ |
|||
<template> |
|||
<div> |
|||
<Breadcrumb :list="breadcrumbList"/> |
|||
<div class="table"> |
|||
<el-table v-loading="loading" |
|||
:data="list" |
|||
element-loading-background="rgba(0,0,0,0.5)" |
|||
element-loading-spinner="el-icon-loading" |
|||
element-loading-text="加载中..." |
|||
> |
|||
<el-table-column label="序号" type="index" width="80"/> |
|||
|
|||
<el-table-column label="月度" prop="key"/> |
|||
<el-table-column label="所属社区" prop="key"/> |
|||
<el-table-column label="事项来源" prop="key"/> |
|||
<el-table-column label="问题" prop="key"/> |
|||
<el-table-column label="提交时间" prop="key"/> |
|||
<el-table-column label="姓名" prop="key"/> |
|||
<el-table-column label="电话" prop="mobile"> |
|||
<template slot-scope="scope"> |
|||
{{ $sensitive(scope.row.mobile, 3, 7) }} |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="是否完成" prop="key"/> |
|||
<el-table-column label="消除风险" prop="key"/> |
|||
<el-table-column label="操作" sortable> |
|||
<template slot-scope="{ row }"> |
|||
<span class="view" @click="handleView(scope.row)">查看</span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
|
|||
<Pagination v-show="total > 0" :limit.sync="queryParams.pageSize" :page.sync="queryParams.pageNo" :total="total" |
|||
@pagination="getList"/> |
|||
<sjwjj :id="rowId" :showDialog="showDialog" @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"; |
|||
import CallPhone from '@/views/dataBoard/cpts/CallPhone.vue' |
|||
|
|||
export default { |
|||
name: "provinceSatisfaction", |
|||
components: {Breadcrumb, Pagination, Title, sjwjj, CallPhone}, |
|||
data() { |
|||
return { |
|||
queryParams: { |
|||
reportUserId: this.$route.query.reportUserId, |
|||
pageNo: 1, |
|||
pageSize: 10, |
|||
}, |
|||
total: 0, |
|||
breadcrumbList: [ |
|||
{ |
|||
path: "/dataBoard/overview/index", |
|||
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("/?" + 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 lang="scss" scoped> |
|||
@import "@/assets/scss/dataBoard/table.scss"; |
|||
|
|||
.table { |
|||
margin-top: 40px; |
|||
} |
|||
|
|||
.handle { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #9A69EC; |
|||
} |
|||
|
|||
.view { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #007FF1; |
|||
} |
|||
</style> |
|||
@ -0,0 +1,127 @@ |
|||
<template> |
|||
<div> |
|||
<Breadcrumb :list="breadcrumbList"/> |
|||
<div class="table"> |
|||
<el-table v-loading="loading" |
|||
:data="list" |
|||
element-loading-background="rgba(0,0,0,0.5)" |
|||
element-loading-spinner="el-icon-loading" |
|||
element-loading-text="加载中..." |
|||
> |
|||
<el-table-column label="序号" type="index" width="80"/> |
|||
|
|||
<el-table-column label="月度" prop="key"/> |
|||
<el-table-column label="所属社区" prop="key"/> |
|||
<el-table-column label="文化设施" prop="key"/> |
|||
<el-table-column label="体育设施" prop="key"/> |
|||
<el-table-column label="生态环境" prop="key"/> |
|||
<el-table-column label="社会治安" prop="key"/> |
|||
<el-table-column label="社会救助" prop="key"/> |
|||
<el-table-column label="老有所养" prop="key"/> |
|||
<el-table-column label="基础教育" prop="key"/> |
|||
<el-table-column label="病有所医" prop="key"/> |
|||
<el-table-column label="提交时间" prop="key"/> |
|||
<el-table-column label="姓名" prop="key"/> |
|||
<el-table-column label="电话" prop="mobile"> |
|||
<template slot-scope="scope"> |
|||
{{ $sensitive(scope.row.mobile, 3, 7) }} |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="是否回访" prop="key"/> |
|||
<el-table-column label="消除风险" prop="key"/> |
|||
<el-table-column label="操作" sortable> |
|||
<template slot-scope="{ row }"> |
|||
<span class="view" @click="handleView(scope.row)">查看</span> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</div> |
|||
|
|||
<Pagination v-show="total > 0" :limit.sync="queryParams.pageSize" :page.sync="queryParams.pageNo" :total="total" |
|||
@pagination="getList"/> |
|||
<sjwjj :id="rowId" :showDialog="showDialog" @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"; |
|||
import CallPhone from '@/views/dataBoard/cpts/CallPhone.vue' |
|||
|
|||
export default { |
|||
name: "selfInspect", |
|||
components: {Breadcrumb, Pagination, Title, sjwjj, CallPhone}, |
|||
data() { |
|||
return { |
|||
queryParams: { |
|||
reportUserId: this.$route.query.reportUserId, |
|||
pageNo: 1, |
|||
pageSize: 10, |
|||
}, |
|||
total: 0, |
|||
breadcrumbList: [ |
|||
{ |
|||
path: "/dataBoard/overview/index", |
|||
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("/?" + 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 lang="scss" scoped> |
|||
@import "@/assets/scss/dataBoard/table.scss"; |
|||
|
|||
.table { |
|||
margin-top: 40px; |
|||
} |
|||
|
|||
.handle { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #9A69EC; |
|||
} |
|||
|
|||
.view { |
|||
font-size: 14px; |
|||
margin-left: 10px; |
|||
color: #007FF1; |
|||
} |
|||
</style> |
|||
Loading…
Reference in new issue