|
|
@ -2,8 +2,8 @@ |
|
|
|
<div style="padding: 20px 10px;"> |
|
|
|
<title-small text="同地点同类型事件重复投诉问题"> |
|
|
|
<template v-slot:time> |
|
|
|
<el-select v-model="typeCondition" class="select" placeholder="请选择" popper-class="selectPopClass" |
|
|
|
@change="timeChange"> |
|
|
|
<el-select v-model="typeCondition1" class="select" placeholder="请选择" popper-class="selectPopClass" |
|
|
|
@change="value=> timeChange(value,1)"> |
|
|
|
<el-option v-for="item in typeConditionList" :key="item.value" :label="item.label" |
|
|
|
:value="item.value"></el-option> |
|
|
|
</el-select> |
|
|
@ -19,7 +19,7 @@ |
|
|
|
<div>类型</div> |
|
|
|
<div>投诉次数</div> |
|
|
|
</div> |
|
|
|
<div class="list-con" > |
|
|
|
<div v-if="list.length > 0" class="list-con" > |
|
|
|
<div |
|
|
|
v-if="list.length > 0" |
|
|
|
v-for="(item, index) in list" |
|
|
@ -32,15 +32,15 @@ |
|
|
|
<div>{{ item.categoryName }}</div> |
|
|
|
<div>{{ item.amount }}</div> |
|
|
|
</div> |
|
|
|
<NoData v-else size="80"/> |
|
|
|
</div> |
|
|
|
<NoData v-else size="80" /> |
|
|
|
</div> |
|
|
|
|
|
|
|
<title-small text="同一人员重复投诉问题"> |
|
|
|
<template v-slot:time> |
|
|
|
<el-select v-model="typeCondition" class="select" placeholder="请选择" popper-class="selectPopClass" |
|
|
|
@change="timeChange"> |
|
|
|
<el-option v-for="item in typeConditionList" :key="item.value" :label="item.label" |
|
|
|
<el-select v-model="typeCondition2" class="select" placeholder="请选择" popper-class="selectPopClass" |
|
|
|
@change="value=> timeChange(value,2)"> |
|
|
|
<el-option v-for="item in typeConditionList" :key="item.value" :label="item.label" |
|
|
|
:value="item.value"></el-option> |
|
|
|
</el-select> |
|
|
|
</template> |
|
|
@ -54,7 +54,7 @@ |
|
|
|
<div>联系方式</div> |
|
|
|
<div>投诉次数</div> |
|
|
|
</div> |
|
|
|
<div class="list-con"> |
|
|
|
<div v-if="list2.length > 0" class="list-con"> |
|
|
|
<div |
|
|
|
v-for="(item, index) in list2" |
|
|
|
:key="index" |
|
|
@ -66,15 +66,16 @@ |
|
|
|
<div>{{ item.mobile }}</div> |
|
|
|
<div>{{ item.amount }}</div> |
|
|
|
</div> |
|
|
|
<NoData v-else size="80"/> |
|
|
|
</div> |
|
|
|
<NoData v-else size="80" /> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<title-small text="同一区域不同类型投诉问题"> |
|
|
|
<template v-slot:time> |
|
|
|
<el-select v-model="typeCondition" class="select" placeholder="请选择" popper-class="selectPopClass" |
|
|
|
@change="timeChange"> |
|
|
|
<el-option v-for="item in typeConditionList" :key="item.value" :label="item.label" |
|
|
|
<el-select v-model="typeCondition3" class="select" placeholder="请选择" popper-class="selectPopClass" |
|
|
|
@change="value=> timeChange(value,3)"> |
|
|
|
<el-option v-for="item in typeConditionList" :key="item.value" :label="item.label" |
|
|
|
:value="item.value"></el-option> |
|
|
|
</el-select> |
|
|
|
</template> |
|
|
@ -92,6 +93,9 @@ |
|
|
|
<el-table-column label="地点" prop="address"></el-table-column> |
|
|
|
<el-table-column label="类型" prop="categoryName"></el-table-column> |
|
|
|
<el-table-column label="投诉次数" prop="amount" width="120"></el-table-column> |
|
|
|
<template #empty> |
|
|
|
<NoData size="80" /> |
|
|
|
</template> |
|
|
|
</el-table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@ -99,14 +103,18 @@ |
|
|
|
|
|
|
|
<script> |
|
|
|
import titleSmall from "@/views/dataBoard/satisfactionEval/components/Title/titleSmall.vue"; |
|
|
|
import NoData from "@/views/dataBoard/cpts/NoData"; |
|
|
|
|
|
|
|
export default { |
|
|
|
components: { |
|
|
|
titleSmall |
|
|
|
titleSmall, |
|
|
|
NoData |
|
|
|
}, |
|
|
|
data() { |
|
|
|
return { |
|
|
|
typeCondition: 5, |
|
|
|
typeCondition1: 5, |
|
|
|
typeCondition2: 5, |
|
|
|
typeCondition3: 5, |
|
|
|
startTime: '', |
|
|
|
endTime: '', |
|
|
|
list: [], |
|
|
@ -143,12 +151,20 @@ export default { |
|
|
|
spanArr: [], |
|
|
|
}; |
|
|
|
}, |
|
|
|
watch: {}, |
|
|
|
created() { |
|
|
|
}, |
|
|
|
watch: { |
|
|
|
"$store.state.chooseArea.chooseName"(val) { |
|
|
|
if (val.orgId) { |
|
|
|
this.timeChange(5,'') |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
this.timeChange() |
|
|
|
this.getList() |
|
|
|
if (this.$store.state.chooseArea.chooseName.orgId) { |
|
|
|
this.timeChange(5,'') |
|
|
|
} |
|
|
|
}, |
|
|
|
computed: {}, |
|
|
|
methods: { |
|
|
@ -175,26 +191,26 @@ export default { |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
timeChange() { |
|
|
|
timeChange(typeCondition,type) { |
|
|
|
let startTime = "", |
|
|
|
endTime = ""; |
|
|
|
if (this.typeCondition === 1) { |
|
|
|
if (typeCondition === 1) { |
|
|
|
startTime = this.$moment().startOf("month").format("YYYY-MM-DD"); |
|
|
|
} |
|
|
|
if (this.typeCondition === 2) { |
|
|
|
if (typeCondition === 2) { |
|
|
|
startTime = this.$moment().subtract(1, "months").startOf("month").format("YYYY-MM-DD"); |
|
|
|
} |
|
|
|
if (this.typeCondition === 3) { |
|
|
|
if (typeCondition === 3) { |
|
|
|
startTime = this.$moment().subtract(2, "months").startOf("month").format("YYYY-MM-DD"); |
|
|
|
} |
|
|
|
if (this.typeCondition === 4) { |
|
|
|
if (typeCondition === 4) { |
|
|
|
startTime = this.$moment().subtract(5, "months").startOf("month").format("YYYY-MM-DD"); |
|
|
|
} |
|
|
|
if (this.typeCondition === 5) { |
|
|
|
if (typeCondition === 5) { |
|
|
|
startTime = this.$moment().subtract(11, "months").startOf("month").format("YYYY-MM-DD"); |
|
|
|
} |
|
|
|
|
|
|
|
if (this.typeCondition === 2) { |
|
|
|
if (typeCondition === 2) { |
|
|
|
endTime = this.$moment().subtract(1, "months").endOf("month").format("YYYY-MM-DD"); |
|
|
|
} else { |
|
|
|
endTime = this.$moment().endOf("month").format("YYYY-MM-DD"); |
|
|
@ -202,17 +218,23 @@ export default { |
|
|
|
this.startTime = startTime; |
|
|
|
this.endTime = endTime; |
|
|
|
// this.getData(); |
|
|
|
this.getList() |
|
|
|
this.getList(type) |
|
|
|
}, |
|
|
|
getList() { |
|
|
|
getList(type) { |
|
|
|
this.$http.post('/governance/dwdEvent/report', { |
|
|
|
"queryDateStart": this.startTime, |
|
|
|
"queryDateEnd": this.endTime |
|
|
|
}).then(({data: {data}}) => { |
|
|
|
console.log(data) |
|
|
|
this.list = data?data.addressMobileEvents: [] || [] |
|
|
|
this.list2 = data?data.mobileEvent: [] || [] |
|
|
|
this.data = data?data.addressEvent: [] || [] |
|
|
|
if(type === ''|| type === 1) { |
|
|
|
this.list = data?data.addressMobileEvents: [] || [] |
|
|
|
} |
|
|
|
if(type === ''|| type === 2) { |
|
|
|
this.list2 = data?data.mobileEvent: [] || [] |
|
|
|
} |
|
|
|
if(type === ''|| type === 3) { |
|
|
|
this.data = data?data.addressEvent: [] || [] |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
@ -262,19 +284,12 @@ export default { |
|
|
|
margin-top: 15px; |
|
|
|
} |
|
|
|
|
|
|
|
.no-data { |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: center; |
|
|
|
opacity: .6; |
|
|
|
color: #fff; |
|
|
|
} |
|
|
|
|
|
|
|
.t-list { |
|
|
|
position: relative; |
|
|
|
flex: 1; |
|
|
|
width: 100%; |
|
|
|
margin-bottom: 20px; |
|
|
|
margin-top: 15px; |
|
|
|
|
|
|
|
.item { |
|
|
|
display: flex; |
|
|
@ -334,4 +349,13 @@ export default { |
|
|
|
overflow: auto; |
|
|
|
height: 200px; |
|
|
|
} |
|
|
|
.no-data { |
|
|
|
height: 200px; |
|
|
|
} |
|
|
|
.select { |
|
|
|
width: 100px; |
|
|
|
} |
|
|
|
.table { |
|
|
|
margin-top: 10px; |
|
|
|
} |
|
|
|
</style> |
|
|
|