From e24f70ababdee2b4fdce71c6b80a9bc928fa0331 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Mon, 08 May 2023 14:45:08 +0800
Subject: [PATCH] 警情排行调整

---
 src/views/home/components/leftContainer.vue |  618 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 430 insertions(+), 188 deletions(-)

diff --git a/src/views/home/components/leftContainer.vue b/src/views/home/components/leftContainer.vue
index e1117b3..ba47308 100644
--- a/src/views/home/components/leftContainer.vue
+++ b/src/views/home/components/leftContainer.vue
@@ -6,36 +6,33 @@
                     <div class="title-tab">
                         <span :class="{ choosed: peopletype == 0 }">现有人员</span>
                     </div>
-                    <!-- <div class="title-num">
-                        共
-                        <span :class="{ choosed: peopletype == 0 }">100</span>人
-                        <span :class="{ choosed: peopletype == 1 }">1</span>人
-                    </div>-->
                 </div>
-                <div class="sub-tab" v-show="peopletype == 0">
-                    <div class="tab" :class="{ 'select-on-tab': tabType == 0 }" @click="personTabClick(0)">
-                        <div class="tab-title-small">户籍人口:</div>
-                        <div class="tab-title-small">
-                            {{
-                                personAll.total ? personAll.total : 0
-                            }}人
+                <el-main v-loading="personEchartsLoading" element-loading-text="拼命加载中"
+                    element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.5)"
+                    style="height: calc(100% - 17.6%);">
+                    <div class="sub-tab" v-show="peopletype == 0">
+                        <div class="tab" :class="{ 'select-on-tab': tabType == 0 }" @click="personTabClick(0)">
+                            <div class="tab-title-small">人口总数:</div>
+                            <div class="tab-title-small">
+                                {{
+                                    personAll.total ? personAll.total : 0
+                                }}人
+                            </div>
+                        </div>
+                        <div class="tab" :class="{ 'select-on-tab': tabType == 1 }" @click="personTabClick(1)">
+                            <div class="tab-title-small">重点人员:</div>
+                            <div class="tab-title-small">
+                                {{
+                                    personAll.emphasisNum ? personAll.emphasisNum : 0
+                                }}人
+                            </div>
                         </div>
                     </div>
-                    <div class="tab" :class="{ 'select-on-tab': tabType == 1 }" @click="personTabClick(1)">
-                        <div class="tab-title-small">重点人员:</div>
-                        <div class="tab-title-small">
-                            {{
-                                personAll.emphasisNum ? personAll.emphasisNum : 0
-                            }}人
-                        </div>
+
+                    <div class="echarts-box" style="overflow-y: auto;" ref="REFPERSONECHARTS">
+                        <div id="PersonEcharts" :style="{ height: personEchartsHeight }"></div>
                     </div>
-                    <!-- <div class="tab3" :class="{ 'select-on-tab': tabType == 2 }" @click="personTabClick(2)">
-                        <div class="num">91995人</div>
-                        <div class="type">境外人口</div>
-                    </div>-->
-                </div>
-                <div id="PersonEcharts" class="echarts-box">
-                </div>
+                </el-main>
 
                 <div class="back" title="返回上一级" v-show="dataDeep == 2 && peopletype == 0 && showBack" @click="backBegin">
                 </div>
@@ -45,11 +42,10 @@
                 <defs>
                     <path id="border-box-8-path-974b4d7cfafa444396861ca1d1173c8c"
                         d="M0.27,0.03c52.66,0,105.34,0,158,0c1.67,2,3.33,4,5,6c1,0.33,2,0.67,3,1c1.33,1.67,2.67,3.33,4,5
-                                                                                                                                                                                                                                                                                                                                                            c16,0,32,0,48,0c53.66,0,107.34,0,161,0c1.13,1.72,0.63,1.36,3,2c0,0.67,0,1.33,0,2c0.67,0,1.33,0,2,0
-                                                                                                                                                                                                                                                                                                                                                            c0.01,104.58,0.01,206.44,0,309c-1.43,0.78-4.01,2.77-5,4c-12,0-24,0-36,0c-2.67-3.33-5.33-6.67-8-10c-21,0-42,0-63,0
-                                                                                                                                                                                                                                                                                                                                                            c-1.08,2.32-2.35,4.25-4,6c-0.67,0.33-1.33,0.67-2,1c-0.33,1-0.67,2-1,3c-20,0-40,0-60,0c-66.66,0-133.34,0-200,0
-                                                                                                                                                                                                                                                                                                                                                            c-1.28-1.57-2.76-2.25-4-4c-0.33,0-0.67,0-1,0c0-8.67,0-17.33,0-26c0-19.66,0-39.34,0-59C0.27,160.04,0.27,80.02,0.27,0.03z"
-                        fill="transparent" />
+                        c16,0,32,0,48,0c53.66,0,107.34,0,161,0c1.13,1.72,0.63,1.36,3,2c0,0.67,0,1.33,0,2c0.67,0,1.33,0,2,0
+                        c0.01,104.58,0.01,206.44,0,309c-1.43,0.78-4.01,2.77-5,4c-12,0-24,0-36,0c-2.67-3.33-5.33-6.67-8-10c-21,0-42,0-63,0
+                        c-1.08,2.32-2.35,4.25-4,6c-0.67,0.33-1.33,0.67-2,1c-0.33,1-0.67,2-1,3c-20,0-40,0-60,0c-66.66,0-133.34,0-200,0
+                        c-1.28-1.57-2.76-2.25-4-4c-0.33,0-0.67,0-1,0c0-8.67,0-17.33,0-26c0-19.66,0-39.34,0-59C0.27,160.04,0.27,80.02,0.27,0.03z" fill="transparent" />
                     <radialGradient id="border-box-8-gradient-974b4d7cfafa444396861ca1d1173c8c" cx="50%" cy="50%" r="50%">
                         <stop offset="0%" stop-color="#fff" stop-opacity="1" />
                         <stop offset="100%" stop-color="#fff" stop-opacity="0" />
@@ -58,10 +54,10 @@
                         <circle cx="0" cy="0" r="150" fill="url(#border-box-8-gradient-974b4d7cfafa444396861ca1d1173c8c)">
                             <animateMotion dur="8s"
                                 path="M0.27,0.03c52.66,0,105.34,0,158,0c1.67,2,3.33,4,5,6c1,0.33,2,0.67,3,1c1.33,1.67,2.67,3.33,4,5
-                                                                                                                                                                                                   c16,0,32,0,48,0c53.66,0,107.34,0,161,0c1.13,1.72,0.63,1.36,3,2c0,0.67,0,1.33,0,2c0.67,0,1.33,0,2,0
-                                                                                                                                                                                                   c0.01,104.58,0.01,206.44,0,309c-1.43,0.78-4.01,2.77-5,4c-12,0-24,0-36,0c-2.67-3.33-5.33-6.67-8-10c-21,0-42,0-63,0
-                                                                                                                                                                                                   c-1.08,2.32-2.35,4.25-4,6c-0.67,0.33-1.33,0.67-2,1c-0.33,1-0.67,2-1,3c-20,0-40,0-60,0c-66.66,0-133.34,0-200,0
-                                                                                                                                                                                                   c-1.28-1.57-2.76-2.25-4-4c-0.33,0-0.67,0-1,0c0-8.67,0-17.33,0-26c0-19.66,0-39.34,0-59C0.27,160.04,0.27,80.02,0.27,0.03z"
+                                c16,0,32,0,48,0c53.66,0,107.34,0,161,0c1.13,1.72,0.63,1.36,3,2c0,0.67,0,1.33,0,2c0.67,0,1.33,0,2,0
+                                c0.01,104.58,0.01,206.44,0,309c-1.43,0.78-4.01,2.77-5,4c-12,0-24,0-36,0c-2.67-3.33-5.33-6.67-8-10c-21,0-42,0-63,0
+                                c-1.08,2.32-2.35,4.25-4,6c-0.67,0.33-1.33,0.67-2,1c-0.33,1-0.67,2-1,3c-20,0-40,0-60,0c-66.66,0-133.34,0-200,0
+                                c-1.28-1.57-2.76-2.25-4-4c-0.33,0-0.67,0-1,0c0-8.67,0-17.33,0-26c0-19.66,0-39.34,0-59C0.27,160.04,0.27,80.02,0.27,0.03z"
                                 rotate="auto" repeatCount="indefinite" />
                         </circle>
                     </mask>
@@ -77,17 +73,20 @@
         <div class="house-box" style="position: relative;">
             <div class="box">
                 <div class="title">现有住宅</div>
-                <div class="sub-tab">
-                    <div class="tab" :class="{ 'select-on-tab': tabTypeTwo == 0 }" @click="houseTabClick(0)">
-                        <div class="tab-title-small">实有楼栋:</div>
-                        <div class="tab-title-small">{{ realHouseNum ? realHouseNum : 0 }}栋</div>
+                <el-main v-loading="houseEchartsLoading" element-loading-text="拼命加载中"
+                    element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.5)">
+                    <div class="sub-tab">
+                        <div class="tab" :class="{ 'select-on-tab': tabTypeTwo == 0 }" @click="houseTabClick(0)">
+                            <div class="tab-title-small">实有楼栋:</div>
+                            <div class="tab-title-small">{{ realHouseNum ? realHouseNum : 0 }}栋</div>
+                        </div>
+                        <div class="tab" :class="{ 'select-on-tab': tabTypeTwo == 1 }" @click="houseTabClick(1)">
+                            <div class="tab-title-small">关注场所:</div>
+                            <div class="tab-title-small">{{ keyPlaceNum ? keyPlaceNum : 0 }}栋</div>
+                        </div>
                     </div>
-                    <div class="tab" :class="{ 'select-on-tab': tabTypeTwo == 1 }" @click="houseTabClick(1)">
-                        <div class="tab-title-small">关注场所:</div>
-                        <div class="tab-title-small">{{ keyPlaceNum ? keyPlaceNum : 0 }}栋</div>
-                    </div>
-                </div>
-                <div id="houseEcharts" class="echarts-box"></div>
+                    <div id="houseEcharts" class="echarts-box"></div>
+                </el-main>
             </div>
 
             <svg class="border-svg">
@@ -101,24 +100,26 @@
         <div class="land-box" style="position: relative;">
             <div class="box">
                 <div class="title">现有小区</div>
-                <div class="sub-tab" v-show="isAllPoliceStation">
-                    <div class="tab" :class="{ 'select-on-tab': tabTypeThree == 0 }" @click="landTabClick(0)">
-                        <div class="tab-title-small">小区:</div>
-                        <div class="tab-title-small">{{ villageNum ? villageNum : 0 }}个</div>
+                <el-main v-loading="landEchartsLoading" element-loading-text="拼命加载中"
+                    element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.5)">
+                    <div class="sub-tab" v-show="isAllPoliceStation">
+                        <div class="tab" :class="{ 'select-on-tab': tabTypeThree == 0 }" @click="landTabClick(0)">
+                            <div class="tab-title-small">小区:</div>
+                            <div class="tab-title-small">{{ villageNum ? villageNum : 0 }}个</div>
+                        </div>
+                        <div class="tab" :class="{ 'select-on-tab': tabTypeThree == 1 }" @click="landTabClick(1)">
+                            <div class="tab-title-small">责任区:</div>
+                            <div class="tab-title-small">{{ areaNum ? areaNum : 0 }}个</div>
+                        </div>
                     </div>
-                    <div class="tab" :class="{ 'select-on-tab': tabTypeThree == 1 }" @click="landTabClick(1)">
-                        <div class="tab-title-small">责任区:</div>
-                        <div class="tab-title-small">{{ areaNum ? areaNum : 0 }}个</div>
+                    <div class="sub-tab" v-show="!isAllPoliceStation">
+                        <div class="tab1 select-on-tab">
+                            <div class="tab-title-small">小区:</div>
+                            <div class="tab-title-small">{{ villageNum ? villageNum : 0 }}个</div>
+                        </div>
                     </div>
-                </div>
-                <div class="sub-tab" v-show="!isAllPoliceStation">
-                    <div class="tab1 select-on-tab">
-                        <div class="tab-title-small">小区:</div>
-                        <div class="tab-title-small">{{ villageNum ? villageNum : 0 }}个</div>
-                    </div>
-                </div>
-
-                <div id="landEcharts" class="echarts-box"></div>
+                    <div id="landEcharts" class="echarts-box"></div>
+                </el-main>
             </div>
 
             <svg class="border-svg">
@@ -136,14 +137,27 @@
 import { fontSize } from '@/utils/fontSize.js'
 import { getAreaStatisticInfo } from "@/api/home/index.js"
 import { schoolJSON } from '../homeleft/school'
+import { hospitalJSON } from '../homeleft/hospital'
+import { hotelJSON } from '../homeleft/hotel'
+import { digitalJSON } from '../homeleft/digital'
+import { housingJSON } from '../homeleft/housing'
+import { wholesaleJSON } from '../homeleft/wholesale'
+import { retailJSON } from '../homeleft/retail'
+import { antiTerroristJSON } from '../homeleft/antiTerrorist'
+import { dExplosionJSON } from '../homeleft/dExplosion'
+import { serviceObjJSON } from '../homeleft/serviceObj'
+
 import { getVillagePersonStatisticInfo, getVillagePersonStatisticInfoByPoliceStationId, getPersonInfo, getPersonInfoPage, getHouseStatisticInfo } from "@/api/dept"
 
 let homePersonmyChart = null
 let keyPersonmyChart = null
 let houseMyChart
 let landMyChart
+let timer
+let curSubofficeData
 
 let leftTiming = null
+let keyPeopleDataLength = 0
 
 let myColor = ['#00e9db', '#00c0e9', '#0096f3', '#33CCFF', '#33FFCC', '#eb2100', '#eb3600', '#d0570e', '#d0a00e', '#34da62']
 
@@ -155,6 +169,9 @@
     data () {
         return {
             tabType: 0,
+            personEchartsLoading: false,
+            houseEchartsLoading: false,
+            landEchartsLoading: false,
             peopletype: 0,
             tabTypeTwo: 0,
             tabTypeThree: 0,
@@ -176,6 +193,7 @@
             // 记录当前选中派出所的ID
             policeStaionID: '',
             peopleLoading: false,
+            personEchartsHeight: '100%'
         }
     },
 
@@ -198,6 +216,78 @@
     },
 
     methods: {
+        // 设备饼图轮播
+        keyPeopleEchartsCarousel () {
+            let curIndex = 0
+            if (timer) {
+                clearInterval(timer)
+            }
+
+            timer = setInterval(() => {
+                keyPersonmyChart.dispatchAction({
+                    type: "downplay",
+                    seriesIndex: 0,
+                    dataIndex: curIndex,
+                })
+                curIndex = (curIndex + 1) % keyPeopleDataLength
+                keyPersonmyChart.dispatchAction({
+                    type: "highlight",
+                    seriesIndex: 0,
+                    dataIndex: curIndex,
+                })
+                keyPersonmyChart.dispatchAction({
+                    type: "showTip",
+                    seriesIndex: 0,
+                    dataIndex: curIndex,
+                })
+            }, 1000)
+
+            keyPersonmyChart.on("mouseover", function (param) {
+                clearInterval(timer)
+                keyPersonmyChart.dispatchAction({
+                    type: "downplay",
+                    seriesIndex: 0,
+                    dataIndex: curIndex,
+                })
+                keyPersonmyChart.dispatchAction({
+                    type: "highlight",
+                    seriesIndex: 0,
+                    dataIndex: param.dataIndex,
+                })
+                keyPersonmyChart.dispatchAction({
+                    type: "showTip",
+                    seriesIndex: 0,
+                    dataIndex: curIndex,
+                })
+                curIndex = param.dataIndex
+            })
+
+            keyPersonmyChart.on("mouseout", function (param) {
+                curIndex = param.dataIndex
+                if (timer) {
+                    clearInterval(timer)
+                }
+                timer = setInterval(() => {
+                    keyPersonmyChart.dispatchAction({
+                        type: "downplay",
+                        seriesIndex: 0,
+                        dataIndex: curIndex,
+                    })
+                    curIndex = (curIndex + 1) % keyPeopleDataLength
+                    keyPersonmyChart.dispatchAction({
+                        type: "highlight",
+                        seriesIndex: 0,
+                        dataIndex: curIndex,
+                    })
+                    keyPersonmyChart.dispatchAction({
+                        type: "showTip",
+                        seriesIndex: 0,
+                        dataIndex: curIndex,
+                    })
+                }, 1000)
+            })
+        },
+
         /**
          * @description: 获取首页的所有数据
          * @return {*}
@@ -243,27 +333,24 @@
         personTabClick (type) {
             this.tabType = type
             this.dataDeep = 1
+            this.personEchartsLoading = true
 
             this.disposeEchart()
 
             if (type == 0) {
+                this.personEchartsHeight = '100%'
+
                 if (this.userInfo.dept_id == '1123598813738675201' && this.policeStaionID == '') {
 
                     this.getPoliceStationInfo()
 
                 } else {
                     this.getVillagePersonStatisticInfoByPoliceStationId(this.policeStaionID != '' ? this.policeStaionID : this.userInfo.dept_id)
-
                 }
 
-
             } else if (type == 1) {
-
                 this.initkeyPersonEcharts()
-
             }
-
-
         },
 
         /**
@@ -274,18 +361,21 @@
             getVillagePersonStatisticInfo().then(res => {
                 if (res.data.code == 200) {
                     this.disposeEchart()
-
+                    curSubofficeData = res.data.data
                     this.personAll = res.data.data
-
-                    if (this.userInfo.dept_id == '1596020515064381442') {
-                        this.personAll.emphasisNum = 17
-                    }
-
+                    console.log('getPoliceStationInfo', res.data.data)
                     this.policeStationPersonInfo = res.data.data
                     //异步,因此放进接口方法内部
                     this.initPersonEcharts()
                     this.clickPeopleChart()
+                    setTimeout(() => {
+                        this.personEchartsLoading = false
+                    }, 500)
                 }
+            }).catch(res => {
+                setTimeout(() => {
+                    this.personEchartsLoading = false
+                }, 500)
             })
         },
 
@@ -298,40 +388,49 @@
         getVillagePersonStatisticInfoByPoliceStationId (policeStationId, name) {
             getVillagePersonStatisticInfoByPoliceStationId(policeStationId, name).then(res => {
                 if (res.data.code == 200) {
+                    console.log(res, 'getVillagePersonStatisticInfoByPoliceStationId')
                     this.disposeEchart()
                     var chartDom = document.getElementById('PersonEcharts')
                     homePersonmyChart = this.$echarts.init(chartDom)
                     this.personAll = res.data.data
+
+                    if (this.userInfo.dept_id == '1596020515064381442') {
+                        this.personAll.emphasisNum = 23
+                    }
+
+
                     this.villagePersonStatisticInfoList = res.data.data
-                    var xDate = [], yDate = [], colors = ['#ccf9d0', '#f9d888', '#f7857e']
+                    var xDate = [], yDate1 = [], yDate2 = [], colors1 = ['#f1ce0d', '#eea827', '#e87a4a'], colors2 = ['#8ce070', '#4fd690', '#1bcdaf']
 
                     if (this.villagePersonStatisticInfoList.data.length > 0) {
                         this.villagePersonStatisticInfoList.data.forEach(e => {
                             xDate.push(e.name.replace('居民委员会', ''))
-                            yDate.push({
-                                value: e.num,
+                            yDate1.push({
+                                value: e.hjnum,
+                                name: e.name,
+                                id: e.id
+                            })
+                            yDate2.push({
+                                value: e.synum,
                                 name: e.name,
                                 id: e.id
                             })
                         })
                     }
 
-                    homePersonmyChart.showLoading({
-                        text: '拼命加载中',
-                        color: '#c23531',
-                        textColor: '#FFF',
-                        maskColor: 'rgba(0, 0, 0, 0.2)',
-                        zlevel: 0,
-                    })
-                    setTimeout(() => {
-                        homePersonmyChart.hideLoading()
-                        homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate, colors), true)
-                    }, 500)
+                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate1, yDate2, colors1, colors2), true)
                     this.clickPeopleChart()
 
-                    setTimeout(() => { this.dataDeep = 2 }, 1000)
+                    setTimeout(() => {
+                        this.dataDeep = 2
+                        this.personEchartsLoading = false
+                    }, 1000)
 
                 }
+            }).catch(res => {
+                setTimeout(() => {
+                    this.personEchartsLoading = false
+                }, 500)
             })
         },
 
@@ -343,14 +442,20 @@
             var chartDom = document.getElementById('PersonEcharts')
             homePersonmyChart = this.$echarts.init(chartDom)
 
-            var xDate = [], yDate = []
+            var xDate = [], yDate1 = [], yDate2 = []
             //传入x,y轴数据
 
             if (this.policeStationPersonInfo.data.length > 0) {
                 this.policeStationPersonInfo.data.forEach(e => {
                     xDate.push(e.name.replace('派出', ''))
-                    yDate.push({
-                        value: e.num,
+                    yDate1.push({
+                        value: e.hjnum,
+                        id: e.id,
+                        type: 'policeStation',
+                        name: e.name
+                    })
+                    yDate2.push({
+                        value: e.synum,
                         id: e.id,
                         type: 'policeStation',
                         name: e.name
@@ -358,17 +463,7 @@
                 })
             }
 
-            homePersonmyChart.showLoading({
-                text: '拼命加载中',
-                color: '#c23531',
-                textColor: '#FFF',
-                maskColor: 'rgba(0, 0, 0, 0.2)',
-                zlevel: 0,
-            })
-            setTimeout(() => {
-                homePersonmyChart.hideLoading()
-                homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate, ['#06B5D7', '#44C0C1', '#71C8B1']))
-            }, 500)
+            homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate1, yDate2, ['#53eefe'], ['#8b25c1', '#b81fee', '#421784']))
         },
 
         /**
@@ -378,13 +473,13 @@
          * @param {*} colors
          * @return {*}
          */
-        initPersonOptions (xDate, yDate, colors) {
+        initPersonOptions (xDate, yDate1, yDate2, colors1, colors2) {
             let options
 
             if (xDate.length == 0) {
                 options = {
                     title: {
-                        text: '暂无数据',
+                        text: '暂无数据1',
                         x: 'center',
                         y: 'center',
                         textStyle: {
@@ -433,42 +528,94 @@
                             fontSize: fontSize(12)
                         }
                     },
+                    legend: {
+                        itemWidth: 15,
+                        itemHeight: 15,
+                        data: ['户籍人口', '实有人口'],
+                        textStyle: {
+                            color: '#fff'
+                        }
+                    },
                     series: [
                         {
-                            data: yDate,
+                            name: '户籍人口',
+                            data: yDate1,
                             type: 'bar',
                             barWidth: '40%',
+                            stack: true,
                             emphasis: {
                                 disabled: true,
                                 focus: 'none'
                             },
                             itemStyle: {
                                 normal: {
-                                    color: function (params) {
-                                        return new global.echarts.graphic.LinearGradient(
-                                            0, 0, 0, 1,
-                                            [
-                                                { offset: 0, color: colors[0] },
-                                                { offset: 0.5, color: colors[1] },
-                                                { offset: 1, color: colors[2] },
-                                            ]
-                                        )
-                                    }
+                                    color: colors1[0]
+                                    // color: function (params) {
+                                    //     return new global.echarts.graphic.LinearGradient(
+                                    //         0, 0, 0, 1,
+                                    //         [
+                                    //             { offset: 0, color: colors1[0] },
+                                    //             { offset: 0.5, color: colors1[1] },
+                                    //             { offset: 1, color: colors1[2] },
+                                    //         ]
+                                    //     )
+                                    // }
                                 },
                                 emphasis: {
-                                    color: function (params) {
-                                        return new global.echarts.graphic.LinearGradient(
-                                            0, 0, 0, 1,
-                                            [
-                                                { offset: 0, color: colors[2] },
-                                                { offset: 0.7, color: colors[1] },
-                                                { offset: 1, color: colors[0] }
-                                            ]
-                                        )
-                                    }
+                                    color: colors1[0]
+                                    // color: function (params) {
+                                    //     return new global.echarts.graphic.LinearGradient(
+                                    //         0, 0, 0, 1,
+                                    //         [
+                                    //             { offset: 0, color: colors1[2] },
+                                    //             { offset: 0.7, color: colors1[1] },
+                                    //             { offset: 1, color: colors1[0] }
+                                    //         ]
+                                    //     )
+                                    // }
                                 }
                             },
-                        }
+                        },
+                        {
+                            name: '实有人口',
+                            data: yDate2,
+                            type: 'bar',
+                            barWidth: '40%',
+                            stack: true,
+                            emphasis: {
+                                disabled: true,
+                                focus: 'none'
+                            },
+                            itemStyle: {
+                                normal: {
+                                    color: colors2[0]
+                                    // color: function (params) {
+                                    //     return new global.echarts.graphic.LinearGradient(
+                                    //         0, 0, 0, 1,
+                                    //         [
+                                    //             { offset: 0, color: colors2[2] },
+                                    //             { offset: 0.5, color: colors2[1] },
+                                    //             { offset: 1, color: colors2[0] },
+                                    //         ]
+                                    //     )
+                                    // }
+                                },
+                                emphasis: {
+                                    color: colors2[0]
+                                    // color: function (params) {
+                                    //     return new global.echarts.graphic.LinearGradient(
+                                    //         0, 0, 0, 1,
+                                    //         [
+                                    //             { offset: 0, color: colors2[0] },
+                                    //             { offset: 0.7, color: colors2[1] },
+                                    //             { offset: 1, color: colors2[2] }
+                                    //         ]
+                                    //     )
+                                    // }
+                                }
+                            },
+                        },
+
                     ],
                     grid: {
                         top: '4%',
@@ -489,6 +636,7 @@
          * @return {*}
          */
         backBegin () {
+            this.personAll = curSubofficeData
             this.dataDeep = 1
             this.initPersonEcharts()
             this.$parent.getAllPoliceStationCenter()
@@ -519,38 +667,37 @@
                     this.keyPlaceNum = 28
                     this.realHouseNum = 205
                     if (isFollow == 2) {
-                        xDate = ['学校', '医院', '党政机关', '宾馆酒店', '零售业', '数字经济', '批发业', '装修及建筑业', '租赁业', '房地产业', '商务服务业', '餐饮业']
-                        yDate = [36, 1, 3, 34, 16, 25, 30, 33, 2, 7, 6, 2]
+                        xDate = ['学校', '医院', '宾馆酒店', '房屋建筑业', '数字经济', '批发业', '零售业']
+                        yDate = [34, 2, 33, 11, 22, 30, 14]
                         this.inithouseEcharts(xDate, yDate)
                     } else {
-                        xDate = ['反恐重点目标', '危爆品单位']
-                        yDate = [14, 14]
+                        xDate = ['反恐重点目标', '危爆品', '重点服务对象']
+                        yDate = [14, 13, 10]
                         this.inithouseEcharts(xDate, yDate)
                     }
+
+                    this.clickHouseChart()
                 } else {
                     this.inithouseEcharts(xDate, yDate)
                 }
-                this.clickHouseChart()
+                setTimeout(() => {
+                    this.houseEchartsLoading = false
+                }, 500)
+            }).catch(res => {
+                setTimeout(() => {
+                    this.houseEchartsLoading = false
+                }, 500)
             })
         },
 
         inithouseEcharts (xDate, yDate) {
             var chartDom = document.getElementById('houseEcharts')
             houseMyChart = this.$echarts.init(chartDom)
-            houseMyChart.showLoading({
-                text: '拼命加载中',
-                color: '#c23531',
-                textColor: '#FFF',
-                maskColor: 'rgba(0, 0, 0, 0.2)',
-                zlevel: 0,
-            })
-            setTimeout(() => {
-                houseMyChart.hideLoading()
-                houseMyChart.setOption(this.initHouseOptions(xDate, yDate))
-            }, 500)
+            houseMyChart.setOption(this.initHouseOptions(xDate, yDate))
         },
 
         initHouseOptions (xDate, y1Date, y2Date) {
+            const that = this
             return {
                 tooltip: {
                     trigger: 'item',
@@ -609,7 +756,7 @@
                         // barWidth: '10%',
                         barCategoryGap: '80%',
                         zlevel: 2,
-                        cursor: this.userInfo.dept_id != '1596020515064381442' ? 'default' : 'pointer',
+                        cursor: that.userInfo.dept_id != '1596020515064381442' ? 'default' : 'pointer',
                         itemStyle: {
                             normal: {
                                 // barBorderRadius: [0, 30, 30, 0],
@@ -687,6 +834,8 @@
 
         houseTabClick (type) {
             this.tabTypeTwo = type
+
+            this.houseEchartsLoading = true
 
             this.disposeHouseEchart()
             if (type == 0) {
@@ -796,6 +945,7 @@
                         siteJd: center[0],
                         siteWd: center[1]
                     })
+                    this.personEchartsLoading = true
                     this.getVillagePersonStatisticInfoByPoliceStationId(params.data.id)
                 } else {
                     this.$emit('showpeopledetail', params.data.id, params.data.name)
@@ -805,7 +955,8 @@
 
         clickHouseChart () {
             houseMyChart.on('click', params => {
-                console.log('clickHouseChart', params)
+                this.$parent.architectureTitle = params.name
+
                 if (params.name == '学校') {
                     this.$parent.xxPopupShow = true
                     this.$parent.houseArr = []
@@ -814,7 +965,77 @@
                         this.$parent.houseLoading = false
                         this.$parent.houseArr = schoolJSON
                     }, 1000)
+                } else {
+                    this.$parent.architectureShow = true
+                    this.$parent.architectureTable = []
+                    this.$parent.architectureLoad = true
+
+                    if (params.name == '医院') {
+                        setTimeout(() => {
+                            this.$parent.architectureLoad = false
+                            this.$parent.architectureTable = hospitalJSON
+                        }, 1000)
+                    }
+
+                    if (params.name == '宾馆酒店') {
+                        setTimeout(() => {
+                            this.$parent.architectureLoad = false
+                            this.$parent.architectureTable = hotelJSON
+                        }, 1000)
+                    }
+
+                    if (params.name == '数字经济') {
+                        setTimeout(() => {
+                            this.$parent.architectureLoad = false
+                            this.$parent.architectureTable = digitalJSON
+                        }, 1000)
+                    }
+
+                    if (params.name == '房屋建筑业') {
+                        setTimeout(() => {
+                            this.$parent.architectureLoad = false
+                            this.$parent.architectureTable = housingJSON
+                        }, 1000)
+                    }
+
+                    if (params.name == '批发业') {
+                        setTimeout(() => {
+                            this.$parent.architectureLoad = false
+                            this.$parent.architectureTable = wholesaleJSON
+                        }, 1000)
+                    }
+
+                    if (params.name == '零售业') {
+                        setTimeout(() => {
+                            this.$parent.architectureLoad = false
+                            this.$parent.architectureTable = retailJSON
+                        }, 1000)
+                    }
+
+                    if (params.name == '反恐重点目标') {
+                        setTimeout(() => {
+                            this.$parent.architectureLoad = false
+                            this.$parent.architectureTable = antiTerroristJSON
+                        }, 1000)
+                    }
+
+                    if (params.name == '危爆品') {
+                        setTimeout(() => {
+                            this.$parent.architectureLoad = false
+                            this.$parent.architectureTable = dExplosionJSON
+                        }, 1000)
+                    }
+
+                    if (params.name == '重点服务对象') {
+                        setTimeout(() => {
+                            this.$parent.architectureLoad = false
+                            this.$parent.architectureTable = serviceObjJSON
+                        }, 1000)
+                    }
+
                 }
+
+
             })
         },
 
@@ -825,29 +1046,46 @@
         async initkeyPersonEcharts () {
             this.disposeEchart()
 
-            var chartDom = document.getElementById('PersonEcharts')
-            keyPersonmyChart = this.$echarts.init(chartDom)
-
             let personInfo = await this.getPersonInfo()
 
+            keyPeopleDataLength = personInfo.length
             if (this.userInfo.dept_id == '1596020515064381442') {
-                personInfo = [{ count: 8, name: '征地拆迁群体', value: 8 }, { count: 4, name: '非涉法涉诉重点个访人员', value: 4 }, { count: 4, name: '涉法涉诉重点个访人员', value: 4 }, { count: 1, name: '楼盘业主维权群体', value: 1 }]
-
+                personInfo = [
+                    { count: 3, name: '非涉法涉诉重点个访人员', value: 7 },
+                    { count: 1, name: '楼盘业主维权群体', value: 1 },
+                    { count: 1, name: '欠薪讨债群体', value: 1 },
+                    { count: 4, name: '涉法涉诉重点个访人员', value: 4 },
+                    { count: 11, name: '征地拆迁群体', value: 11 },
+                ]
             }
 
-            keyPersonmyChart.showLoading({
-                text: '拼命加载中',
-                color: '#c23531',
-                textColor: '#FFF',
-                maskColor: 'rgba(0, 0, 0, 0.2)',
-                zlevel: 0,
-            })
-            setTimeout(() => {
-                keyPersonmyChart.hideLoading()
-                keyPersonmyChart.setOption(this.initkeyPersonOption(personInfo))
-            }, 500)
+            const high = this.$refs.REFPERSONECHARTS.offsetHeight
 
-            this.clickkeyPersonChart()
+            if (personInfo.length * (high / 7) > high) {
+                this.personEchartsHeight = personInfo.length * (high / 7) + 'px'
+            } else {
+                this.personEchartsHeight = '100%'
+            }
+
+            this.$nextTick(() => {
+                var chartDom = document.getElementById('PersonEcharts')
+                keyPersonmyChart = this.$echarts.init(chartDom)
+                keyPersonmyChart.setOption(this.initkeyPersonOption(personInfo))
+
+                this.clickkeyPersonChart()
+                if (personInfo.length > 1) {
+                    this.keyPeopleEchartsCarousel()
+                } else {
+                    clearInterval(timer)
+                    keyPersonmyChart.off("mouseover")
+                    keyPersonmyChart.off("mouseout")
+                }
+            })
+
+
+            setTimeout(() => {
+                this.personEchartsLoading = false
+            }, 500)
         },
 
         /**
@@ -883,7 +1121,7 @@
             if (dataArr.length == 0) {
                 options = {
                     title: {
-                        text: '暂无数据',
+                        text: '暂无重点人员数据',
                         x: 'center',
                         y: 'center',
                         textStyle: {
@@ -904,26 +1142,26 @@
                             } else {
                                 msg = params.value + '人'
                             }
-
-                            msg = `<div style="color: #000;">${params.marker} ${params.name}:<strong style="margin-left:10px">${msg}</strong></div>`
+                            msg = `<div style="color: #FFF;">${params.marker} ${params.name}:<strong style="margin-left:10px">${msg}</strong></div>`
                             return msg
                         },
+                        backgroundColor: "rgba(8, 56, 185, 0.9)",
+                        borderColor: "rgba(8, 56, 185, 0.9)",
                         textStyle: {
-                            color: '#fff',
                             fontSize: fontSize(12)
                         },
                         confine: true
                     },
                     legend: {
-                        type: 'scroll',
                         orient: 'vertical',
                         top: 'middle',
-                        left: '45%',
+                        right: '2%',
                         y: '1%',
-                        itemGap: 20,
+                        itemGap: 15,
                         textStyle: {
                             color: '#fff'
                         },
+                        align: 'left',
                         formatter: function (name) {
                             let data = dataArr
                             let tarValue
@@ -933,15 +1171,16 @@
                                 }
                             }
                             let v = tarValue
-                            return `${name}     ${v} 人    `
+                            return `${name}  ${v} 人    `
                         },
                     },
                     series: [
                         {
-                            name: '',
+                            top: 110,
+                            left: 60,
                             type: 'pie',
-                            radius: ['30%', '60%'],
-                            center: ['22%', '55%'],
+                            radius: [20, 50],
+                            center: [0, 0],
                             avoidLabelOverlap: false,
                             label: {
                                 show: false,
@@ -982,6 +1221,7 @@
          */
         landTabClick (type) {
             this.tabTypeThree = type
+            this.landEchartsLoading = true
 
             this.disposeLandEchart()
             if (type == 0) {
@@ -1023,8 +1263,15 @@
                     })
                     landData = [nameArr, countArr]
                 }
+                setTimeout(() => {
+                    this.landEchartsLoading = false
+                }, 500)
 
                 this.initLandEcharts(landData)
+            }).catch(res => {
+                setTimeout(() => {
+                    this.landEchartsLoading = false
+                }, 500)
             })
         },
 
@@ -1039,17 +1286,7 @@
 
             landMyChart = this.$echarts.init(chartDom)
 
-            landMyChart.showLoading({
-                text: '拼命加载中',
-                color: '#c23531',
-                textColor: '#FFF',
-                maskColor: 'rgba(0, 0, 0, 0.2)',
-                zlevel: 0,
-            })
-            setTimeout(() => {
-                landMyChart.hideLoading()
-                landMyChart.setOption(this.initLandOptions(landData[0], landData[1]))
-            }, 500)
+            landMyChart.setOption(this.initLandOptions(landData[0], landData[1]))
 
             this.clickLandChart()
         },
@@ -1244,11 +1481,11 @@
             }
         }
 
-        .sub-title {
-            display: flex;
-            justify-content: space-between;
-            height: 36px;
-        }
+        // .sub-title {
+        //     display: flex;
+        //     justify-content: space-between;
+        //     height: 36px;
+        // }
 
         .sub-tab {
             padding: 10px;
@@ -1294,11 +1531,16 @@
             }
         }
 
+        :deep(.el-main) {
+            padding: 0;
+        }
+
         .echarts-box {
             padding: 12px;
             padding-top: 0;
             flex: 1;
             width: 100%;
+            // height: 100%;
         }
     }
 

--
Gitblit v1.9.3