Browse Source

满意度评价

shibei_master
jiangyy 3 years ago
parent
commit
a05af088f8
  1. 93
      src/assets/scss/modules/shequzhili/event-info.scss
  2. 3
      src/views/modules/shequzhili/event/cpts/add.vue
  3. 79
      src/views/modules/shequzhili/event/cpts/event-detail.vue
  4. 13
      src/views/modules/shequzhili/event/cpts/process-form.vue
  5. 2
      src/views/modules/shequzhili/event/eventList.vue
  6. 1
      src/views/modules/visual/communityGovern/shijianchuli/shijianchulifenxi.vue
  7. 19
      src/views/modules/visual/communityGovern/shijianfenlei/shijianfenleifenxi.vue

93
src/assets/scss/modules/shequzhili/event-info.scss

@ -24,29 +24,58 @@
.avatar-uploader {
margin: 0 0 0 20px;
/deep/ .el-upload--picture-card{
width: 100px;
height: 100px;
}
/deep/ .el-upload{
width: 100px;
height: 100px;
line-height: 100px;
}
/deep/ .el-upload-list--picture-card .el-upload-list__item{
width: 100px;
height: 100px;
line-height: 100px;
}
/deep/ .el-upload-list--picture-card .el-upload-list__item-thumbnail{
width: 100px;
height: 100px;
line-height: 100px;
}
/deep/ .avatar{
width: 100px;
height: 100px;
}
// /deep/ .el-upload--picture-card{
// width: 100px;
// height: 100px;
// }
// /deep/ .el-upload{
// width: 100px;
// height: 100px;
// line-height: 100px;
// }
// /deep/ .el-upload-list--picture-card .el-upload-list__item{
// width: 100px;
// height: 100px;
// line-height: 100px;
// }
// /deep/ .el-upload-list--picture-card .el-upload-list__item-thumbnail{
// width: 100px;
// height: 100px;
// line-height: 100px;
// }
// /deep/ .avatar{
// width: 100px;
// height: 100px;
// }
// /deep/ .el-upload-list__item-status-label {
// display: block;
// position: absolute;
// right: -15px;
// top: -6px;
// width: 40px;
// height: 24px;
// background: #13ce66;
// text-align: center;
// -webkit-transform: rotate(45deg);
// transform: rotate(45deg);
// -webkit-box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2);
// box-shadow: 0 0 1pc 1px rgba(0, 0, 0, 0.2);
// }
// /deep/ .el-upload-list__item-actions {
// position: absolute;
// width: 100%;
// height: 100%;
// left: 0;
// top: 0;
// cursor: default;
// text-align: center;
// color: #fff;
// opacity: 0;
// font-size: 20px;
// background-color: rgba(0, 0, 0, 0.5);
// -webkit-transition: opacity .3s;
// transition: opacity .3s;
// }
}
@ -206,8 +235,9 @@
}
.m-row {
display: flex;
// display: flex;
justify-content: space-between;
width:100%;
}
.m-hint {
@ -404,17 +434,20 @@
}
.div-satisfy{
padding:50px;
padding:10px 0 0;
display:flex ;
justify-content: space-around;
text-align: center;
justify-content: flex-start;
text-align: center;
>div{
margin-left:50px;
}
img{
width:100px;
height:100px;
width:80px;
height:80px;
}
.tip-satisfy{
text-align: center;
margin-top:20px
margin-top:10px
}
}

3
src/views/modules/shequzhili/event/cpts/add.vue

@ -585,12 +585,15 @@ export default {
removePic (file, fileList) {
this.formData.imageList.splice(this.formData.imageList.findIndex(item => item === file.url), 1)
this.replayImgList.splice(this.replayImgList.findIndex(item => item.uid === file.uid), 1)
this.hideUploadBtn = fileList.length >= 3;
},
// 3
handleEditChange (file, fileList) {
this.hideUploadBtn = fileList.length >= 3;
},
exceedPic () {

79
src/views/modules/shequzhili/event/cpts/event-detail.vue

@ -73,24 +73,51 @@
</div>
</div>
<div v-if="info.operationId&&info.status!=='closed_case'"
class="div-btn ">
<el-button size="small"
@click="handleCloseEvent">关闭</el-button>
</div>
</el-card>
<el-card v-if=" info.status==='closed_case'">
<h3>满意度评价</h3>
<div class="m-row">
<div class="m-info">
<div class="div-satisfy">
<div>
<img :src="selBad?badurl_light:badurl"
@click="clickSatisfy('bad')" />
<div class="tip-satisfy">不满意</div>
</div>
<div>
<img :src="selGood?goodurl_light:goodurl"
@click="clickSatisfy('good')" />
<div class="tip-satisfy">满意</div>
</div>
<div>
<img :src="selPerfect?perfecturl_light:perfecturl"
@click="clickSatisfy('perfect')" />
<div class="tip-satisfy">非常满意</div>
</div>
</div>
</div>
</div>
<div v-if="info.operationId||info.status==='closed_case'"
class="div-btn ">
<el-button v-if=" info.status==='closed_case'&&!info.satisfactionName && user.id===info.createdUserId"
size="small"
class="diy-button--reset"
@click="handleSatisfy">满意度评价</el-button>
<el-button size="small"
@click="handleCloseEvent">关闭</el-button>
<el-button v-if="info.status==='closed_case'&&!info.satisfactionName && user.id===info.createdUserId"
size="small"
type="primary"
@click="handleComfirmSatisfy">确定</el-button>
</div>
</el-card>
<!-- <div v-if="showType=='project'">
<project-info ref="eleEditForm"
:type="projectPageType"
:projectId="info.operationId"
@close="handleClose"
@afterEdit="handleClose" />
</div> -->
<el-dialog :visible.sync="showSatisfy"
:close-on-click-modal="false"
:close-on-press-escape="false"
@ -100,23 +127,6 @@
class="dialog-h"
@closed="showSatisfy=false">
<div class="div-satisfy">
<div>
<img :src="selBad?badurl_light:badurl"
@click="clickSatisfy('bad')" />
<div class="tip-satisfy">不满意</div>
</div>
<div>
<img :src="selGood?goodurl_light:goodurl"
@click="clickSatisfy('good')" />
<div class="tip-satisfy">满意</div>
</div>
<div>
<img :src="selPerfect?perfecturl_light:perfecturl"
@click="clickSatisfy('perfect')" />
<div class="tip-satisfy">非常满意</div>
</div>
</div>
<div class="div-btn">
<el-button size="small"
@click="showSatisfy=false">关闭</el-button>
@ -213,6 +223,11 @@ export default {
this.user = this.$store.state.user
if (this.eventId) {
this.info = JSON.parse(JSON.stringify(this.eventDetailData));
//
if (this.info.status === 'closed_case' && this.info.satisfactionName) {
this.changeSatisfyType(this.info.satisfaction)
}
}
// this.getApiData();
@ -255,6 +270,14 @@ export default {
},
clickSatisfy (type) {
if (this.info.satisfactionName) {
return false
}
this.changeSatisfyType(type)
},
changeSatisfyType (type) {
if (type === 'bad') {
this.selGood = false
this.selPerfect = false

13
src/views/modules/shequzhili/event/cpts/process-form.vue

@ -10,10 +10,13 @@
<el-form-item label="处理方式"
label-width="150px"
prop="operationType">
<el-radio-group v-model="operationType">
<el-radio-group v-model="operationType"
@change="handleChangeOperationType">
<el-radio label="">暂不处理</el-radio>
<el-radio label="0">回复</el-radio>
<el-radio label="1">立项</el-radio>
<el-radio label="2">转服务</el-radio>
</el-radio-group>
</el-form-item>
@ -142,13 +145,11 @@ export default {
},
methods: {
handleChangeOperationType (val) {
},
async getProcessInfo () {
this.okflag = false
// this.categoryList = []
// this.categoryList.push(this.selCategoryArray[1])
if (this.operationType === '0') {
this.$refs.ref_process_form_replay.getReplayInfo()
if (this.$refs.ref_process_form_replay.okflag) {

2
src/views/modules/shequzhili/event/eventList.vue

@ -246,7 +246,7 @@
width="100">
<template slot-scope="scope">
<el-button v-if="scope.row.status==='processing' "
<el-button v-if="scope.row.status==='processing'&&!scope.row.operationId "
@click="handleDispose(scope.row)"
type="text"
size="small"

1
src/views/modules/visual/communityGovern/shijianchuli/shijianchulifenxi.vue

@ -448,6 +448,7 @@ export default {
queryEndTime: this.queryEndTime,
pageNo: this.demand.pageNo,
pageSize: this.demand.pageSize,
biz: 'eventProcessAnalysis'
};
const { data, code, msg } = await requestPost(url, params);

19
src/views/modules/visual/communityGovern/shijianfenlei/shijianfenleifenxi.vue

@ -124,7 +124,7 @@ import dateFormat from "dai-js/tools/dateFormat"
import nextTick from 'dai-js/tools/nextTick'
const colorArray = [ '#1B51FF', '#00E5ED', '#7800FF', '#16D783', '#FF7800', '#FFBA00', '#FFD685', '#2A00FF', '#C600FF', '#FF2A00']
const colorArray = ['#1B51FF', '#00E5ED', '#7800FF', '#16D783', '#FF7800', '#FFBA00', '#FFD685', '#2A00FF', '#C600FF', '#FF2A00']
export default {
name: "shijianchulifenxi",
data () {
@ -256,7 +256,7 @@ export default {
//
this.initData()
await this.getAgencylist() //
//
await this.handleChangeDate(this.dataType)
this.dataLoading = false
@ -276,7 +276,7 @@ export default {
let end = new Date()
let start = new Date()
if (index === '1') { //
start.setFullYear(start.getFullYear() -1)
start.setFullYear(start.getFullYear() - 1)
} else if (index === '2') { //
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
@ -287,10 +287,10 @@ export default {
start.setTime(start.getTime() - 3600 * 1000 * 24 * 183)
}
if (index != '0') {
this.queryStartTime = dateFormat(start,'yyyy-MM-dd')+" 00:00:00"
this.queryEndTime = dateFormat(end,'yyyy-MM-dd')+" 23:59:59"
this.queryStartTime = dateFormat(start, 'yyyy-MM-dd') + " 00:00:00"
this.queryEndTime = dateFormat(end, 'yyyy-MM-dd') + " 23:59:59"
}
if (index !== '0'){
if (index !== '0') {
await this.getApiData()
// this.assignData()
}
@ -303,8 +303,8 @@ export default {
handleSelectChange (value) {
console.log(value)
this.queryStartTime = value[0]+" 00:00:00"
this.queryEndTime = value[1]+" 23:59:59"
this.queryStartTime = value[0] + " 00:00:00"
this.queryEndTime = value[1] + " 23:59:59"
this.getApiData()
},
@ -423,6 +423,7 @@ export default {
categoryCode: this.categoryCode,
pageNo: this.demand.pageNo,
pageSize: this.demand.pageSize,
biz: 'eventCategoryAnalysis'
}
const { data, code, msg } = await requestPost(url, params)
@ -433,7 +434,7 @@ export default {
this.tableList = data.list
this.demand.list = data.list.map((item, index) => {
return [
index+1,
index + 1,
item.gridName ? item.gridName : '',
item.eventContent ? item.eventContent : '',
item.sourceTypeName ? item.sourceTypeName : '',

Loading…
Cancel
Save