| 
					
				 | 
			
			
				@@ -1,162 +1,103 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <div class="modelBlock"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div class="model-title"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <div class="model-title-text">投诉建议类型分布</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            <el-select v-model="mixins_query.communityId" placeholder="全部社区" clearable class="saveColumn-select"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <div class="model-title-text">投诉建议类型</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-select v-model="mixins_query.communityId" placeholder="全部社区" clearable class="saveColumn-select" @change="getData"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <el-option v-for="(item, index) in communityList" :label="item.communityName" :value="item.id" :key="index"></el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-date-picker 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                value-format="yyyyMM" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                v-model="mixins_query.date" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                type="month" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                placeholder="选择月" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                class="saveColumn-select" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                @change="getData" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-date-picker> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div class="model-content"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <zz-echart :option="clientOptions" class="chart"></zz-echart> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <div class="totals"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                <span>65191</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <span>{{ total }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <span class="numbers">总人数</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { GradualChange, ringType } from './indexOptionChart'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            communityList: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             mixins_query: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                communityId: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                communityId: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                date: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            clientOptions: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                tooltip: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    trigger: 'item' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                legend: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    orient: 'vertical', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    right: 10, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    top: 80, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    itemGap: 10, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    itemWidth: 12, // 图例图形宽度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    itemHeight: 8, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    formatter: (v) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        return `{a|${v}} · · · · · · {b|555}`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    textStyle: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        rich: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            a: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                fontSize: 12, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                color: '#858892', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                padding: [0, 5, 0, 0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            b: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                fontSize: 14, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                color: '#fff', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                padding: [0, 0, 0, 5] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                series: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        type: 'pie', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        radius: ['40%', '50%'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        avoidLabelOverlap: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        center: ['20%', '50%'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        label: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            show: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            position: 'center' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        labelLine: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            show: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        data: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            { value: 1048, name: '业主' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            { value: 735, name: '亲属' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            total: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            clientOptions: ringType( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    GradualChange('#22D8FF', '#00B2FF'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    GradualChange('#F0646C', '#F4994E'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    GradualChange('#5EEDCC ', '#24C3F1'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    GradualChange('#7178FF', '#D2A4FF'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    GradualChange('#884DD2', '#DF63CC') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { value: 0, name: '扰民投诉' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { value: 0, name: '物业投诉' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { value: 0, name: '公共卫生' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { value: 0, name: '安全建议' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { value: 0, name: '其他' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    computed: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        communityList() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return this.$store.getters['getAreaSelect']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        communityNameList() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.$http.get('/sc-community/assets/community/list').then(({ data, msg, status }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        getData() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.$http.get('/sc-community/statisticComplaint', this.mixins_query).then(({ data, msg, status }) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (status == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    this.communityList = data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    this.clientOptions = ringType( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            GradualChange('#22D8FF', '#00B2FF'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            GradualChange('#F0646C', '#F4994E'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            GradualChange('#5EEDCC ', '#24C3F1'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            GradualChange('#7178FF', '#D2A4FF'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            GradualChange('#884DD2', '#DF63CC') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        this.eachartObj(data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        eachartObj(data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.total = data.total; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let typeName = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                1: '扰民投诉', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                2: '物业投诉', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                3: '公共卫生', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                4: '安全建议', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                5: '其他' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let newData = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (let a in data.datas) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                newData.push({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    value: data.datas[a], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    name: typeName[a] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return newData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     created() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.communityNameList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // this.mixins_dataUrl = '/sc-community/assets/garage/page'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // this.mixins_query = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // this.mixins_search(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.getData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <style lang="scss" scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@import '@assets/css/public-style.scss'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.modelBlock { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    height: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    padding: rem(15) rem(20) rem(20); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    background: #171f32; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    .model-title { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        line-height: rem(30); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        justify-content: space-between; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        padding-bottom: rem(15); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        border-bottom: 1px solid rgba(224, 225, 227, 0.2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        .saveColumn-select { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            width: rem(120); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            margin-left: rem(20); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            /deep/ .el-input__inner { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                background: transparent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                color: white; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                border-color: rgba(255, 255, 255, 0.2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        .model-title-text { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            color: white; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        .buttons { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            width: rem(120); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            padding-left: rem(10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            box-sizing: border-box; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            background: rgba(0, 0, 0, 0.1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            border-radius: 4px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            border: 1px solid rgba(255, 255, 255, 0.2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            cursor: pointer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            span.triangle { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                margin-top: rem(10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                float: right; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                margin-right: rem(5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                border: 4px solid transparent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                border-left: 4px solid rgba(255, 255, 255, 0.5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    .model-content { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        height: calc(100% - #{rem(45)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        justify-content: space-between; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        font-size: 12px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        position: relative; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        .totals { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            position: absolute; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            right: rem(10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            top: rem(26); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            width: rem(120); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            height: rem(40); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            background: linear-gradient(90deg, rgba(14, 174, 255, 0.5) 0%, rgba(14, 174, 255, 0) 100%); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            border-radius: 5px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            font-size: 20px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            padding: rem(8) rem(10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            display: flex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            justify-content: space-between; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            .numbers { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                font-size: 12px; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                opacity: 0.5; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                line-height: rem(32); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@import './style.scss'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </style> 
			 |