|  |  | @ -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,14 +32,14 @@ | 
			
		
	
		
			
				
					|  |  |  |           <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-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> | 
			
		
	
	
		
			
				
					|  |  | @ -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,14 +66,15 @@ | 
			
		
	
		
			
				
					|  |  |  |           <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-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> | 
			
		
	
	
		
			
				
					|  |  | @ -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) | 
			
		
	
		
			
				
					|  |  |  |         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> | 
			
		
	
	
		
			
				
					|  |  | 
 |