Browse Source

修改满意度bug

feature
战立标 2 years ago
parent
commit
5e90d45b56
  1. 48
      src/assets/scss/dataBoard/dialog.scss
  2. 3
      src/assets/scss/modules/shequzhili/event-info.scss
  3. 181
      src/views/dataBoard/cpts/event-details.vue
  4. 33
      src/views/dataBoard/satisfactionEval/components/EventList/index.vue
  5. 4
      src/views/dataBoard/satisfactionEval/dissatisfied/index.vue
  6. 15
      src/views/dataBoard/satisfactionEval/index.vue
  7. 12
      src/views/dataBoard/satisfactionEval/modules/EventStatistics/index.vue
  8. 14
      src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue
  9. 13
      src/views/dataBoard/satisfactionEval/modules/PotentialPeople/index.vue
  10. 17
      src/views/dataBoard/satisfactionEval/modules/RiskStatistics/index.vue
  11. 43
      src/views/dataBoard/satisfactionEval/modules/TypesOfDissatisfaction/index.vue
  12. 28
      src/views/dataBoard/satisfactionEval/potentialPeople/details/sjwjj.vue
  13. 27
      src/views/dataBoard/satisfactionEval/potentialPeople/details/xqwmz.vue
  14. 23
      src/views/dataBoard/satisfactionEval/potentialPeople/details/yxwxfw.vue
  15. 4
      src/views/dataBoard/satisfactionEval/potentialPeople/index.vue

48
src/assets/scss/dataBoard/dialog.scss

@ -0,0 +1,48 @@
/deep/ .el-dialog {
background: url(~@/assets/images/manyidu/dialog_con.png);
background-size: 100% 100%;
width: 1118px;
position: relative;
z-index: revert !important;
&:before {
content: '';
display: block;
width: 1118px;
background: url(~@/assets/images/manyidu/dialog_head.png) no-repeat;
height: 40px;
position: absolute;
top: -40px;
background-size: 100%;
}
&:after {
content: '';
display: block;
width: 1118px;
background: url(~@/assets/images/manyidu/dialog_foot.png) no-repeat;
height: 36px;
position: absolute;
bottom: -36px;
background-size: 100%;
}
}
/deep/ .el-dialog__body {
padding: 0 20px 30px;
}
/deep/ .el-dialog__header {
border: 0 !important;
}
/deep/ .el-dialog__headerbtn {
top: 0;
right: 32px;
.el-dialog__close {
color: #ffffff;
font-weight: 600;
}
}

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

@ -359,6 +359,9 @@
margin-top: 15px;
margin-left: 15px;
width: 400px;
height: 400px;
overflow: auto;
padding-top: 10px;
.process-title {
margin-bottom: 25px;

181
src/views/dataBoard/cpts/event-details.vue

@ -1,31 +1,34 @@
<template>
<el-dialog
width="1118px"
:modal="true"
:modal-append-to-body="false"
:destroy-on-close="true"
:visible="showDialog"
@close="handleClose"
width="1118px"
:modal="true"
:modal-append-to-body="false"
:destroy-on-close="true"
:visible="showDialog"
@close="handleClose"
>
<div class="eventWrap">
<div class="eventWrap"
v-loading="loading"
element-loading-text="加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.5)"
>
<el-row :gutter="32">
<el-col :span="24" style="padding-left: 40px">
<title-box text="事件详情" />
<title-box text="事件详情"/>
</el-col>
<el-col
:span="13"
style="padding-left: 40px"
v-loading="loading"
element-loading-text="加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 21, 64, 0"
:span="13"
style="padding-left: 40px"
>
<div class="leftEvent">
<div class="eventDetails">
<img
:width="18"
:height="18"
src="@/assets/images/manyidu/tc-title-icon.png"
:width="18"
:height="18"
src="@/assets/images/manyidu/tc-title-icon.png"
/>
</div>
<div class="eventItem">
@ -44,27 +47,27 @@
<span>接受时间</span>
<span>{{ item.happenTime }}</span>
</div>
<!-- <div class="eventItem">
<span>工单号</span>
<span>{{ item.workOrderNum }}</span>
</div>-->
<!-- <div class="eventItem">
<span>工单号</span>
<span>{{ item.workOrderNum }}</span>
</div>-->
<div class="eventItem">
<div>问题描述</div>
<div style="margin-top: 20px">{{ item.eventContent }}</div>
</div>
<!-- <div class="eventItem">
<div>图片</div>
<div style="margin-top: 20px; display: flex">
<img
style="width: 100px; height: 100px; margin-right: 5px"
v-for="src in item.imageList"
:key="src"
:src="src"
alt="/"
@click="openImg(src)"
/>
</div>
</div>-->
<!-- <div class="eventItem">
<div>图片</div>
<div style="margin-top: 20px; display: flex">
<img
style="width: 100px; height: 100px; margin-right: 5px"
v-for="src in item.imageList"
:key="src"
:src="src"
alt="/"
@click="openImg(src)"
/>
</div>
</div>-->
<div class="eventItem">
<span>联系人</span>
<span>{{ item.name }}</span>
@ -88,18 +91,14 @@
</div>
</el-col>
<el-col
:span="11"
v-loading="loading1"
element-loading-text="加载中"
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 21, 64, 0.3)"
:span="11"
>
<div class="rightEvent m-info">
<div class="eventDetails">
<img
:width="18"
:height="18"
src="@/assets/images/manyidu/tc-title-icon.png"
:width="18"
:height="18"
src="@/assets/images/manyidu/tc-title-icon.png"
/>
</div>
<!-- <el-timeline class="timeline" :reverse="true">
@ -124,10 +123,10 @@
<div class="m-process">
<div class="list">
<div
class="item"
:class="[index === 0 ? 'z-on' : '']"
:key="item.processId"
v-for="(item, index) in activities"
class="item"
:class="[index === 0 ? 'z-on' : '']"
:key="item.processId"
v-for="(item, index) in activities"
>
<div class="item-row">
<template v-if="item.agencyId">
@ -168,7 +167,7 @@
<div class="detail">
<div class="detail-field">办结时限</div>
<div class="detail-value">
{{ formTimeLimit(item.timeLimit) }}
{{ item.timeLimit }}
</div>
</div>
</template>
@ -207,6 +206,7 @@
<script>
import titleBox from "./Title";
export default {
name: "ReportAnEvent",
components: {
@ -239,12 +239,16 @@ export default {
if (val) {
this.getDetailsData(this.id);
this.getProcessData(this.id);
} else {
this.item = {}
this.activities = []
}
},
immediate: true,
},
},
mounted() {},
mounted() {
},
methods: {
handleClose() {
@ -263,32 +267,32 @@ export default {
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);
}
});
.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);
}
});
.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);
}
});
},
},
};
@ -298,75 +302,70 @@ export default {
<style lang="scss" scoped>
@import "@/assets/scss/modules/shequzhili/event-info.scss";
@import "@/assets/scss/dataBoard/dialog.scss";
/deep/ .el-dialog {
background: url(~@/assets/images/manyidu/dialog-bg.png);
background-size: 100% 100%;
width: 1118px;
height: 822px;
}
/deep/ .el-dialog__body {
padding: 0 20px 30px;
}
/deep/ .el-dialog__header {
border: 0 !important;
}
/deep/ .el-dialog__headerbtn {
top: 24px;
right: 32px;
.el-dialog__close {
color: #ffffff;
font-weight: 600;
}
}
@mixin fontStyle {
color: #fff !important;
font-size: 14px !important;
}
.eventWrap {
width: 1094px;
height: 798px;
//height: 798px;
overflow-y: auto;
overflow-x: hidden;
padding: 24px;
.eventDetails {
font-size: 18px;
margin: 48px 24px 48px 0;
color: #ffffff;
img {
margin-top: -4px;
margin-right: 8px;
}
}
.m-info {
padding: 0px !important;
.m-process {
margin: 0 !important;
.name {
@include fontStyle;
}
.date {
@include fontStyle;
}
.detail {
@include fontStyle;
.detail-field {
flex: none !important;
}
}
}
}
.leftEvent {
color: #fff;
.eventItem {
font-size: 14px;
margin-bottom: 24px;
span:first-child {
}
span:last-child {
}
}
}
.rightEvent {
color: #fff;
}

33
src/views/dataBoard/satisfactionEval/components/EventList/index.vue

@ -5,7 +5,7 @@
class="dissatisfied-detail"
title=""
:visible.sync="dialogVisible"
width="1200px"
width="1118px"
:modal="false"
:before-close="handleClose"
>
@ -85,7 +85,7 @@ export default {
return {
queryParams: {
pageNo: 1,
pageSize: 4,
pageSize: 5,
},
total: 0,
list: [],
@ -131,31 +131,12 @@ export default {
<style scoped lang="scss">
@import "@/assets/scss/dataBoard/table.scss";
@import "@/assets/scss/dataBoard/dialog.scss";
/deep/ .el-dialog__wrapper {
background: rgba(0,0,0,.5);
z-index: 9999999999!important;
}
.dissatisfied-detail {
/deep/ .el-dialog {
background: url("@/assets/images/manyidu/dialog_bg.png") no-repeat left top;
background-size: 100%;
width: 1200px;
height: 550px;
color: #fff;
.el-dialog__header {
border-bottom: none !important;
}
.el-dialog__headerbtn {
top: 30px;
right: 30px;
.el-dialog__close {
color: #fff;
}
}
}
.content {
}
.main-title {
margin-bottom: 20px;

4
src/views/dataBoard/satisfactionEval/dissatisfied/index.vue

@ -51,8 +51,8 @@
:value="item.value">
</el-option>
</el-select>
<el-input v-model="queryParams.name" size="small" placeholder="按人员姓名"></el-input>
<el-input v-model="queryParams.mobile" size="small" placeholder="按人员电话"></el-input>
<el-input v-model.trim="queryParams.name" size="small" placeholder="按人员姓名"></el-input>
<el-input v-model.trim="queryParams.mobile" size="small" placeholder="按人员电话"></el-input>
<el-button size="small" class="btn" type="primary" @click="search">查询</el-button>
</el-form>
</div>

15
src/views/dataBoard/satisfactionEval/index.vue

@ -9,11 +9,11 @@
</div>
</Title>
<TypesOfDissatisfaction/>
<TypesOfDissatisfaction @timeChange="timeChange"/>
</div>
<div class="bg">
<Title text="不满意风险人员统计及回访情况"/>
<RiskStatistics/>
<RiskStatistics :date="typeDate"/>
</div>
</el-col>
<el-col :span="8">
@ -24,7 +24,7 @@
</div>
<div class="bg2">
<Title text="下级组织不满意事项统计"/>
<EventStatistics/>
<EventStatistics :date="typeDate"/>
</div>
</el-col>
<el-col :span="8">
@ -35,7 +35,7 @@
<div class="bg2">
<Title text="潜在不满意人数"/>
<PotentialPeople/>
<PotentialPeople :date="typeDate"/>
</div>
</el-col>
</el-row>
@ -65,11 +65,16 @@ export default {
PotentialPeople
},
data() {
return {}
return {
typeDate: {}
}
},
methods: {
goToPage(url) {
this.$router.push(url)
},
timeChange(date) {
this.typeDate = date
}
}

12
src/views/dataBoard/satisfactionEval/modules/EventStatistics/index.vue

@ -21,12 +21,21 @@ export default {
loading: true
}
},
props: {
date: {
type: Object,
default: () => {
}
}
},
watch: {
"$store.state.chooseArea.chooseName"(val) {
if (val.orgId) {
this.getData();
}
},
date() {
this.getData();
}
},
mounted() {
@ -40,6 +49,7 @@ export default {
let params = {
level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId,
...this.date
}
params = this.$paramsFormat(params)
this.$http.get('/governance/satisfactionOverview/childSatisfactionGroup?' + params).then(({data: {data}}) => {

14
src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue

@ -220,37 +220,37 @@ $purple: #6642fd;
border-radius: 50%;
}
&:nth-of-type(1) {
&:nth-of-type(3) {
left: 162px;
top: 0;
}
&:nth-of-type(2) {
&:nth-of-type(5) {
left: 297px;
top: 73px;
}
&:nth-of-type(3) {
&:nth-of-type(2) {
left: 316px;
top: 203px;
}
&:nth-of-type(4) {
&:nth-of-type(6) {
left: 228px;
top: 269px;
}
&:nth-of-type(5) {
&:nth-of-type(4) {
left: 77px;
top: 257px;
}
&:nth-of-type(6) {
&:nth-of-type(7) {
left: 0px;
top: 158px;
}
&:nth-of-type(7) {
&:nth-of-type(1) {
left: 48px;
top: 57px;
}

13
src/views/dataBoard/satisfactionEval/modules/PotentialPeople/index.vue

@ -49,11 +49,21 @@ export default {
loading: true
}
},
props: {
date: {
type: Object,
default: () => {
}
}
},
watch: {
"$store.state.chooseArea.chooseName"(val) {
if (val.orgId) {
this.getData();
}
},
date() {
this.getData();
}
},
mounted() {
@ -67,7 +77,8 @@ export default {
this.loading = true
let params = {
level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId
orgId: this.$store.state.chooseArea.chooseName.orgId,
...this.date
}
this.$http.get('/governance/satisfactionOverview/potentialSatisfactionGroup?' + this.$paramsFormat(params)).then(({data: {data}}) => {
this.noServiceNum = data.noServiceNum

17
src/views/dataBoard/satisfactionEval/modules/RiskStatistics/index.vue

@ -92,12 +92,21 @@ export default {
loading: true
}
},
props: {
date: {
type: Object,
default: () => {
}
}
},
watch: {
"$store.state.chooseArea.chooseName"(val) {
if (val.orgId) {
this.getData();
}
},
date() {
this.getData();
}
},
mounted() {
@ -110,7 +119,8 @@ export default {
this.loading = true
let params = {
level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId
orgId: this.$store.state.chooseArea.chooseName.orgId,
...this.date
}
this.$http.get('/governance/satisfactionOverview/satisfactionFollowGroup?' + this.$paramsFormat(params)).then(({data: {data}}) => {
this.event12345Num = data.event12345Num;
@ -131,8 +141,7 @@ export default {
.number-list {
display: flex;
justify-content: space-between;
margin: 40px 0;
padding: 0 15px 0 8px;
padding: 40px 15px 40px 8px;
.number-item {
display: flex;

43
src/views/dataBoard/satisfactionEval/modules/TypesOfDissatisfaction/index.vue

@ -11,7 +11,7 @@
popper-class="selectPopClass"
placeholder="请选择"
class="select"
@change="getData">
@change="timeChange">
<el-option
v-for="item in typeConditionList"
:key="item.value"
@ -52,13 +52,13 @@ export default {
label: '上月',
value: 2
}, {
label: '近3月',
label: '近月',
value: 3
}, {
label: '近半年',
value: 4
}, {
label: '近1年',
label: '近年',
value: 5
},
],
@ -84,34 +84,39 @@ export default {
this.getData()
}
},
getData() {
this.loading = true
let params = {
level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId,
startTime: '',
endTime: ''
}
timeChange() {
let startTime = '', endTime = ''
if (this.typeCondition === 1) {
params.startTime = this.$moment().startOf('month').format('YYYY-MM-DD')
startTime = this.$moment().startOf('month').format('YYYY-MM-DD')
}
if (this.typeCondition === 2) {
params.startTime = this.$moment().subtract(1, 'months').startOf('month').format('YYYY-MM-DD')
startTime = this.$moment().subtract(1, 'months').startOf('month').format('YYYY-MM-DD')
}
if (this.typeCondition === 3) {
params.startTime = this.$moment().subtract(2, 'months').startOf('month').format('YYYY-MM-DD')
startTime = this.$moment().subtract(2, 'months').startOf('month').format('YYYY-MM-DD')
}
if (this.typeCondition === 4) {
params.startTime = this.$moment().subtract(5, 'months').startOf('month').format('YYYY-MM-DD')
startTime = this.$moment().subtract(5, 'months').startOf('month').format('YYYY-MM-DD')
}
if (this.typeCondition === 5) {
params.startTime = this.$moment().subtract(11, 'months').startOf('month').format('YYYY-MM-DD')
startTime = this.$moment().subtract(11, 'months').startOf('month').format('YYYY-MM-DD')
}
if (this.typeCondition === 2) {
params.endTime = this.$moment().subtract(1, 'months').endOf('month').format('YYYY-MM-DD')
endTime = this.$moment().subtract(1, 'months').endOf('month').format('YYYY-MM-DD')
} else {
params.endTime = this.$moment().endOf('month').format('YYYY-MM-DD')
endTime = this.$moment().endOf('month').format('YYYY-MM-DD')
}
this.getData(startTime, endTime)
this.$emit('timeChange', {startTime, endTime})
},
getData(startTime, endTime) {
this.loading = true
let params = {
level: this.$store.state.chooseArea.chooseName.level,
orgId: this.$store.state.chooseArea.chooseName.orgId,
startTime,
endTime
}
@ -144,7 +149,7 @@ export default {
}
let legendName = ['省满意度调查\n各项不满意人数', '社区满意度自查\n各项不满意人数']
let series = [{
name: this.resultType === 2?'12345热线\n事件上报人数':"省满意度调查\n各项不满意人数",
name: this.resultType === 2 ? '12345热线\n事件上报人数' : "省满意度调查\n各项不满意人数",
type: "radar",
symbol: "circle",
symbolSize: 7,

28
src/views/dataBoard/satisfactionEval/potentialPeople/details/sjwjj.vue

@ -158,7 +158,7 @@
<div class="detail">
<div class="detail-field">办结时限</div>
<div class="detail-value">
{{ formTimeLimit(item.timeLimit) }}
{{ item.timeLimit}}
</div>
</div>
</template>
@ -289,34 +289,14 @@ export default {
<style lang="scss" scoped>
@import "@/assets/scss/modules/shequzhili/event-info.scss";
/deep/ .el-dialog {
background: url(~@/assets/images/manyidu/dialog-bg.png);
background-size: 100% 100%;
width: 1118px;
height: 822px;
}
/deep/ .el-dialog__body {
padding: 0 20px 30px;
}
/deep/ .el-dialog__header {
border: 0 !important;
}
/deep/ .el-dialog__headerbtn {
top: 24px;
right: 32px;
.el-dialog__close {
color: #ffffff;
font-weight: 600;
}
}
@import "@/assets/scss/dataBoard/dialog.scss";
@mixin fontStyle {
color: #fff !important;
font-size: 14px !important;
}
.eventWrap {
width: 1094px;
height: 798px;
//width: 1094px;
//height: 798px;
overflow-y: auto;
overflow-x: hidden;
padding: 24px;

27
src/views/dataBoard/satisfactionEval/potentialPeople/details/xqwmz.vue

@ -260,31 +260,8 @@ export default {
<style lang="scss" scoped>
@import "@/assets/scss/modules/shequzhili/event-info.scss";
@import "@/assets/scss/dataBoard/dialog.scss";
/deep/ .el-dialog {
background: url(~@/assets/images/manyidu/dialog-bg.png);
background-size: 100% 100%;
width: 1118px;
height: 822px;
}
/deep/ .el-dialog__body {
padding: 0 20px 30px;
}
/deep/ .el-dialog__header {
border: 0 !important;
}
/deep/ .el-dialog__headerbtn {
top: 24px;
right: 32px;
.el-dialog__close {
color: #ffffff;
font-weight: 600;
}
}
@mixin fontStyle {
color: #fff !important;
@ -293,7 +270,7 @@ export default {
.eventWrap {
width: 1094px;
height: 798px;
//height: 798px;
overflow-y: auto;
overflow-x: hidden;
padding: 24px;

23
src/views/dataBoard/satisfactionEval/potentialPeople/details/yxwxfw.vue

@ -164,34 +164,15 @@ export default {
<style lang="scss" scoped>
@import "@/assets/scss/modules/shequzhili/event-info.scss";
@import "@/assets/scss/dataBoard/dialog.scss";
/deep/ .el-dialog {
background: url(~@/assets/images/manyidu/dialog-bg.png);
background-size: 100% 100%;
width: 1118px;
height: 822px;
}
/deep/ .el-dialog__body {
padding: 0 20px 30px;
}
/deep/ .el-dialog__header {
border: 0 !important;
}
/deep/ .el-dialog__headerbtn {
top: 24px;
right: 32px;
.el-dialog__close {
color: #ffffff;
font-weight: 600;
}
}
@mixin fontStyle {
color: #fff !important;
font-size: 14px !important;
}
.eventWrap {
width: 1094px;
height: 798px;
//height: 798px;
overflow-y: auto;
overflow-x: hidden;
padding: 24px;

4
src/views/dataBoard/satisfactionEval/potentialPeople/index.vue

@ -6,8 +6,8 @@
<el-select popper-class="selectPopClass" v-model="queryParams.agencyId" size="small" placeholder="按组织">
<el-option v-for="item in orgOptions" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
<el-input v-model="queryParams.name" clearable size="small" placeholder="按姓名"></el-input>
<el-input v-model="queryParams.mobile" clearable size="small" placeholder="按电话"></el-input>
<el-input v-model.trim="queryParams.name" clearable size="small" placeholder="按姓名"></el-input>
<el-input v-model.trim="queryParams.mobile" clearable size="small" placeholder="按电话"></el-input>
<el-button size="small" class="btn" type="primary" @click="search">查询</el-button>
</el-form>
</div>

Loading…
Cancel
Save