guanqb
2022-10-26 001a01f364854d1034edd4f1ced5f55998873dfd
首页模块剥离
5 files modified
3 files added
2301 ■■■■ changed files
src/router/page/index.js 1 ●●●● patch | view | raw | blame | history
src/styles/base/index.css 4 ●●●● patch | view | raw | blame | history
src/styles/base/index.min.css 2 ●●● patch | view | raw | blame | history
src/styles/base/index.scss 4 ●●●● patch | view | raw | blame | history
src/views/home/components/bottomContainer.vue 171 ●●●●● patch | view | raw | blame | history
src/views/home/components/leftContainer.vue 581 ●●●●● patch | view | raw | blame | history
src/views/home/components/rightContainer.vue 412 ●●●●● patch | view | raw | blame | history
src/views/home/index.vue 1126 ●●●●● patch | view | raw | blame | history
src/router/page/index.js
@@ -64,6 +64,7 @@
                },
                component: activity
            }
        ]
    },
    // {
src/styles/base/index.css
@@ -116,8 +116,8 @@
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  width: 520px;
  height: 560px;
  width: 750px;
  height: 580px;
  top: 50%;
  left: 50% !important;
  transform: translate(-50%, -50%);
src/styles/base/index.min.css
@@ -1 +1 @@
*{margin:0;padding:0;box-sizing:border-box;scrollbar-color:rgba(7,22,37,0.8) rgba(216,216,216,0.2);scrollbar-width:thin}html,body{width:100%;height:100%}ul li{list-style:none}.deblurring{image-rendering:-moz-crisp-edges;image-rendering:-o-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;-ms-interpolation-mode:nearest-neighbor}::-webkit-scrollbar{width:6px;height:6px;background-color:none}::-webkit-scrollbar-thumb{border-radius:6px;background-color:rgba(7,22,37,0.8);padding-left:2px;padding-right:2px}::-webkit-scrollbar-track{background-color:rgba(216,216,216,0.2)}::-webkit-scrollbar-thumb:window-inactive{background-color:rgba(7,22,37,0.8)}:not(select)::-webkit-scrollbar{background-color:rgba(216,216,216,0.2)}::-webkit-scrollbar-thumb:hover{background-color:rgba(7,22,37,0.8)}.car-video-box .el-dialog{margin:0 !important;display:flex;flex-direction:column;width:720px;height:480px;top:50%;left:50% !important;transform:translate(-50%, -50%)}.car-video-box .el-dialog .el-dialog__body{flex:1}.police-affairs-details-box .el-dialog{margin:0 !important;display:flex;flex-direction:column;width:540px;height:420px;top:50%;left:50% !important;transform:translate(-50%, -50%)}.police-affairs-details-box .el-dialog .el-dialog__body{flex:1}.resident-details-box .el-dialog{margin:0 !important;display:flex;flex-direction:column;width:320px;top:50%;left:50% !important;transform:translate(-50%, -50%)}.resident-details-box .el-dialog .el-dialog__body{flex:1}.phone-details-box .el-dialog{margin:0 !important;display:flex;flex-direction:column;width:320px;height:220px;top:50%;left:50% !important;transform:translate(-50%, -50%)}.phone-details-box .el-dialog .el-dialog__body{flex:1}.equiment-details-box .el-dialog{margin:0 !important;display:flex;flex-direction:column;width:520px;height:560px;top:50%;left:50% !important;transform:translate(-50%, -50%)}.equiment-details-box .el-dialog .el-dialog__body{flex:1}.land-details-box .el-dialog{margin:0 !important;display:flex;flex-direction:column;width:630px;height:300px;top:50%;left:50% !important;transform:translate(-50%, -50%)}.land-details-box .el-dialog .el-dialog__body{flex:1}
*{margin:0;padding:0;box-sizing:border-box;scrollbar-color:rgba(7,22,37,0.8) rgba(216,216,216,0.2);scrollbar-width:thin}html,body{width:100%;height:100%}ul li{list-style:none}.deblurring{image-rendering:-moz-crisp-edges;image-rendering:-o-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;-ms-interpolation-mode:nearest-neighbor}::-webkit-scrollbar{width:6px;height:6px;background-color:none}::-webkit-scrollbar-thumb{border-radius:6px;background-color:rgba(7,22,37,0.8);padding-left:2px;padding-right:2px}::-webkit-scrollbar-track{background-color:rgba(216,216,216,0.2)}::-webkit-scrollbar-thumb:window-inactive{background-color:rgba(7,22,37,0.8)}:not(select)::-webkit-scrollbar{background-color:rgba(216,216,216,0.2)}::-webkit-scrollbar-thumb:hover{background-color:rgba(7,22,37,0.8)}.car-video-box .el-dialog{margin:0 !important;display:flex;flex-direction:column;width:720px;height:480px;top:50%;left:50% !important;transform:translate(-50%, -50%)}.car-video-box .el-dialog .el-dialog__body{flex:1}.police-affairs-details-box .el-dialog{margin:0 !important;display:flex;flex-direction:column;width:540px;height:420px;top:50%;left:50% !important;transform:translate(-50%, -50%)}.police-affairs-details-box .el-dialog .el-dialog__body{flex:1}.resident-details-box .el-dialog{margin:0 !important;display:flex;flex-direction:column;width:320px;top:50%;left:50% !important;transform:translate(-50%, -50%)}.resident-details-box .el-dialog .el-dialog__body{flex:1}.phone-details-box .el-dialog{margin:0 !important;display:flex;flex-direction:column;width:320px;height:220px;top:50%;left:50% !important;transform:translate(-50%, -50%)}.phone-details-box .el-dialog .el-dialog__body{flex:1}.equiment-details-box .el-dialog{margin:0 !important;display:flex;flex-direction:column;width:750px;height:580px;top:50%;left:50% !important;transform:translate(-50%, -50%)}.equiment-details-box .el-dialog .el-dialog__body{flex:1}.land-details-box .el-dialog{margin:0 !important;display:flex;flex-direction:column;width:630px;height:300px;top:50%;left:50% !important;transform:translate(-50%, -50%)}.land-details-box .el-dialog .el-dialog__body{flex:1}
src/styles/base/index.scss
@@ -128,8 +128,8 @@
            margin: 0 !important;
            display: flex;
            flex-direction: column;
            width: 520px;
            height: 560px;
            width: 750px;
            height: 580px;
            top: 50%;
            left: 50% !important;
            transform: translate(-50%, -50%);
src/views/home/components/bottomContainer.vue
New file
@@ -0,0 +1,171 @@
<template>
    <div class="container">
        <div class="header">
            <div class="bottomTitle">
                <div class="leftBor"></div>
                <div class="topName">警情动态</div>
                <div class="rightBor"></div>
            </div>
            <div class="timeTab">
                <span class="beforetime" :class="{choosed:timetype==0}" @click="timeTabClick(0)">近一周</span>
                <span>/</span>
                <span class="beforetime" :class="{choosed:timetype==1}" @click="timeTabClick(1)">近一月</span>
            </div>
        </div>
        <div class="body" ref="tableBox">
            <el-table
                :data="timetype == 0 ? pliceSituationWeekArr : pliceSituationMouthArr"
                style="width: 100%"
                :header-cell-style="{'text-align':'center','background-color':'#203c60','borderColor':'#324e75'}"
                :cell-style="{'text-align':'center','borderColor':'#324e75'}"
                :row-class-name="tableRowClassName"
                :height="currentTableHeight"
            >
                <el-table-column prop="num" label="序号"></el-table-column>
                <el-table-column prop="type" label="警情类别"></el-table-column>
                <el-table-column prop="comingPhone" label="报警电话"></el-table-column>
                <el-table-column prop="dealTime" label="接警时间"></el-table-column>
                <el-table-column prop="dealPolice" label="经办民警"></el-table-column>
                <el-table-column prop="callPeople" label="报警人"></el-table-column>
                <el-table-column prop="callPhone" label="报警人联系人"></el-table-column>
                <el-table-column prop="callContent" label="报警内容"></el-table-column>
            </el-table>
        </div>
    </div>
</template>
<script>
let interTime
export default {
    data () {
        return {
            timetype: 0,
            pliceSituationWeekArr: [
                { 'num': '1', 'type': '民事纠纷', 'comingPhone': '15511112222', 'dealTime': '12H', 'dealPolice': '刘警官', 'callPeople': '张某某', 'callPhone': '13466669999', 'callContent': '他先动的手' },
                { 'num': '2', 'type': '民事纠纷', 'comingPhone': '15511112222', 'dealTime': '12H', 'dealPolice': '刘警官', 'callPeople': '张某某', 'callPhone': '13466669999', 'callContent': '他先动的手' },
                { 'num': '3', 'type': '民事纠纷', 'comingPhone': '15511112222', 'dealTime': '12H', 'dealPolice': '刘警官', 'callPeople': '张某某', 'callPhone': '13466669999', 'callContent': '他先动的手' },
                { 'num': '4', 'type': '民事纠纷', 'comingPhone': '15511112222', 'dealTime': '12H', 'dealPolice': '刘警官', 'callPeople': '张某某', 'callPhone': '13466669999', 'callContent': '他先动的手' },
                { 'num': '5', 'type': '民事纠纷', 'comingPhone': '15511112222', 'dealTime': '12H', 'dealPolice': '刘警官', 'callPeople': '张某某', 'callPhone': '13466669999', 'callContent': '他先动的手' },
            ],
            pliceSituationMouthArr: [
                { 'num': '1', 'type': '聚众斗殴', 'comingPhone': '13466669999', 'dealTime': '15H', 'dealPolice': '王警官', 'callPeople': '张某三', 'callPhone': '15511112222', 'callContent': '他们先动的手' },
                { 'num': '2', 'type': '聚众斗殴', 'comingPhone': '13466669999', 'dealTime': '15H', 'dealPolice': '王警官', 'callPeople': '张某三', 'callPhone': '15511112222', 'callContent': '他们先动的手' },
                { 'num': '3', 'type': '聚众斗殴', 'comingPhone': '13466669999', 'dealTime': '15H', 'dealPolice': '王警官', 'callPeople': '张某三', 'callPhone': '15511112222', 'callContent': '他们先动的手' },
                { 'num': '4', 'type': '聚众斗殴', 'comingPhone': '13466669999', 'dealTime': '15H', 'dealPolice': '王警官', 'callPeople': '张某三', 'callPhone': '15511112222', 'callContent': '他们先动的手' },
                { 'num': '5', 'type': '聚众斗殴', 'comingPhone': '13466669999', 'dealTime': '15H', 'dealPolice': '王警官', 'callPeople': '张某三', 'callPhone': '15511112222', 'callContent': '他们先动的手' },
            ],
            currentTableHeight: 0,
        }
    },
    mounted () {
        this.$nextTick(() => {
            this.tableScroll()
            this.setDomStyle()
        })
        window.addEventListener('resize', this.setDomStyle)
    },
    methods: {
        timeTabClick (type) {
            this.timetype = type
        },
        setDomStyle () {
            this.currentTableHeight = this.$refs.tableBox.offsetHeight
        },
        tableScroll () {
            // 拿到表格挂载后的真实DOM
            const divData = this.$refs.tableBox.querySelector('.el-table__body-wrapper')
            // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
            interTime = setInterval(() => {
                // 元素自增距离顶部1像素
                divData.scrollTop += 1
                // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
                if (divData.clientHeight + divData.scrollTop + 1 > divData.scrollHeight) {
                    // 重置table距离顶部距离
                    divData.scrollTop = 0
                }
            }, 100)
        },
    },
    destroyed () {
        window.addEventListener('resize', this.setDomStyle)
        clearInterval(interTime)
    }
}
</script>
<style scoped lang="scss">
.container {
    position: relative;
    height: 100%;
    width: 100%;
    .header {
        width: 100%;
        height: 36px;
        .bottomTitle {
            display: flex;
            float: left;
            width: 34%;
            margin-left: 33%;
            height: 36px;
            line-height: 36px;
            color: #fff;
            text-align: center;
            .leftBor {
                width: 0px;
                height: 0px;
                border: 18px solid #3366e2;
                border-bottom-color: transparent;
                border-left-color: transparent;
            }
            .rightBor {
                width: 0px;
                height: 0px;
                border: 18px solid #3366e2;
                border-bottom-color: transparent;
                border-right-color: transparent;
            }
            .topName {
                width: calc(100% - 48px);
                background-color: #3366e2;
                letter-spacing: 2px;
            }
        }
        .timeTab {
            float: right;
            width: 20%;
            height: 36px;
            line-height: 36px;
            .beforetime {
                color: rgb(98, 95, 95);
                cursor: pointer;
            }
            .beforetime:hover {
                text-decoration: underline;
            }
            .choosed {
                color: #fff;
            }
        }
    }
    .body {
        margin: 10px;
        width: calc(100% - 20px);
        height: calc(100% - 56px);
        /* 解决自定义滚动条 x 轴显示问题 */
    }
}
</style>
src/views/home/components/leftContainer.vue
New file
@@ -0,0 +1,581 @@
<template>
    <div class="container">
        <div class="person-box">
            <div class="title">
                <i></i>
                <span
                    class="peopleTap"
                    :class="{choosed:peopletype == 0}"
                    @click="peopleTabClick(0)"
                >现有人员</span>
                <span>/</span>
                <span
                    class="peopleTap"
                    :class="{choosed:peopletype == 1}"
                    @click="peopleTabClick(1)"
                >重点人员</span>
                <span class="word before">共</span>
                <span class="peopleNum" :class="{choosed:peopletype == 0}">100</span>
                <span class="word">/</span>
                <span class="peopleNum" :class="{choosed:peopletype == 1}">1</span>
                <span class="word">人</span>
            </div>
            <div class="sub-tab" v-show="peopletype == 0">
                <div class="tab" :class="{on:tabType==0}" @click="personTabClick(0)">
                    <div class="num">164.57万人</div>
                    <div class="type">户籍人口</div>
                </div>
                <div class="tab" :class="{on:tabType==1}" @click="personTabClick(1)">
                    <div class="num">17.52万人</div>
                    <div class="type">流动人口</div>
                </div>
                <div class="tab" :class="{on:tabType==2}" @click="personTabClick(2)">
                    <div class="num">91995人</div>
                    <div class="type">境外人口</div>
                </div>
            </div>
            <div id="PersonEcharts" class="echarts-box" v-show="peopletype == 0"></div>
            <div class="peopleTable" v-show="peopletype == 1">
                <el-table
                    :data="peopleArr"
                    style="width: 100%"
                    :header-cell-style="{'text-align':'center','background-color':'#203c60','borderColor':'#324e75'}"
                    :cell-style="{'text-align':'center','borderColor':'#324e75'}"
                    :row-class-name="tableRowClassName"
                >
                    <el-table-column prop="name" label="姓名" width="100"></el-table-column>
                    <el-table-column prop="sex" label="性别" width="50"></el-table-column>
                    <el-table-column prop="age" label="年龄" width="50"></el-table-column>
                    <el-table-column prop="address" label="地址"></el-table-column>
                </el-table>
            </div>
        </div>
        <div class="house-box">
            <div class="title">
                <i></i> 现有房屋
            </div>
            <div class="sub-tab">
                <div class="tab" :class="{on:tabTypeTwo==0}" @click="houseTabClick(0)">
                    <div class="num">1822603户</div>
                    <div class="num">实有房屋</div>
                </div>
                <div class="tab" :class="{on:tabTypeTwo==1}" @click="houseTabClick(1)">
                    <div class="num">634个</div>
                    <div class="num">关注场所</div>
                </div>
            </div>
            <div id="houseEcharts" class="echarts-box"></div>
        </div>
        <div class="land-box">
            <div class="title">
                <i></i> 现有地
            </div>
            <div class="sub-tab">
                <div class="tab" :class="{on:tabTypeThree==0}" @click="landTabClick(0)">
                    <div class="num">634个</div>
                    <div class="num">小区</div>
                </div>
                <div class="tab" :class="{on:tabTypeThree==1}" @click="landTabClick(1)">
                    <div class="num">634个</div>
                    <div class="num">责任区</div>
                </div>
            </div>
            <div id="landEcharts" class="echarts-box"></div>
        </div>
    </div>
</template>
<script>
let homePersonmyChart
let houseMyChart
let landMyChart
export default {
    data () {
        return {
            tabType: 0,
            peopletype: 0,
            tabTypeTwo: 0,
            tabTypeThree: 0,
            peopleArr: [
                { 'name': '黄XX', 'sex': '男', 'age': '34', 'address': 'XXXXXXXXX' },
                { 'name': '李某某', 'sex': '女', 'age': '34', 'address': 'XXXXXXXXX' },
                { 'name': '刘AA', 'sex': '女', 'age': '34', 'address': 'XXXXXXXXX' },
                { 'name': '张三', 'sex': '男', 'age': '34', 'address': 'XXXXXXXXX' }
            ],
            peopleTitle: '',
            peopleVisible: false,
            landDetailArr1: [
                { 'housingEastate': '阳光小区', 'location': 'XXXXXXXX', 'area': '2122亩', 'superintendent': '王大壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '美丽小区', 'location': 'XXXXXXXX', 'area': '1335亩', 'superintendent': '王二壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '快乐小区', 'location': 'XXXXXXXX', 'area': '4122亩', 'superintendent': '王三壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '健康小区', 'location': 'XXXXXXXX', 'area': '2555亩', 'superintendent': '王四壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '斯哒地小区', 'location': 'XXXXXX', 'area': '1922亩', 'superintendent': '王美丽', 'phone': '154XXXX6666' },
            ],
            landDetailArr2: [
                { 'housingEastate': '责任区1', 'location': 'XXXXXXXX', 'area': '2122亩', 'superintendent': '王大壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '责任区2', 'location': 'XXXXXXXX', 'area': '1335亩', 'superintendent': '王二壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '责任区3', 'location': 'XXXXXXXX', 'area': '4122亩', 'superintendent': '王三壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '责任区4', 'location': 'XXXXXXXX', 'area': '2555亩', 'superintendent': '王四壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '责任区5', 'location': 'XXXXXX', 'area': '1922亩', 'superintendent': '王美丽', 'phone': '154XXXX6666' },
            ],
        }
    },
    mounted () {
        this.initLandEcharts()
        this.initPersonEcharts()
        this.inithouseEcharts()
        this.clickPeopleChart()
        this.clickLandChart()
    },
    methods: {
        initPersonEcharts () {
            var chartDom = document.getElementById('PersonEcharts')
            homePersonmyChart = this.$echarts.init(chartDom)
            homePersonmyChart.setOption(this.initPersonOptions(['车站派出所', '沙溪派出所', '灵溪派出所', '北门派出所', '江光派出所'], [881, 2211, 6414, 4321, 1232]))
            window.addEventListener("resize", function () {
                homePersonmyChart.resize()
            })
        },
        initPersonOptions (xDate, yDate) {
            return {
                xAxis: {
                    type: 'category',
                    data: xDate,
                    axisLabel: {
                        color: "#fff",
                        interval: 0,
                    },
                    axisLine: {
                        lineStyle: {
                            color: "#fff"
                        }
                    }
                },
                yAxis: {
                    type: 'value',
                    splitLine: {
                        show: false
                    },
                    axisLabel: {
                        color: "#fff"
                    }
                },
                series: [
                    {
                        data: yDate,
                        type: 'bar',
                        itemStyle: {
                            normal: {
                                label: {
                                    show: true,
                                    position: 'top',
                                    textStyle: {
                                        color: '#1a94a8',
                                        fontSize: 16
                                    }
                                }
                            }
                        }
                    }
                ],
                grid: {
                    x: 40,
                    y: 10,
                    x2: 20,
                    y2: 20
                },
            }
        },
        personTabClick (type) {
            this.tabType = type
            let xDate, yDate
            if (type == 0) {
                xDate = ['车站派出所', '沙溪派出所', '灵溪派出所', '北门派出所', '江光派出所']
                yDate = [881, 2211, 6414, 4321, 1232]
            } else if (type == 1) {
                xDate = ['湖北', '上海', '北京', '广东', '浙江']
                yDate = [6414, 4231, 2211, 1231, 881]
            } else if (type == 2) {
                xDate = ['日本', '美国', '俄罗斯', '英国', '印度']
                yDate = [881, 1231, 2211, 4321, 6414]
            }
            homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
        },
        inithouseEcharts () {
            var chartDom = document.getElementById('houseEcharts')
            houseMyChart = this.$echarts.init(chartDom)
            houseMyChart.setOption(this.initHouseOptions(['商业房屋', '居民住宅', '公共用房', '文化场所', '政府建筑'], [88188, 1222211, 464104, 43201, 12302], [{ 'value': 1222211, 'realValue': 88188 }, { 'value': 1222211, 'realValue': 1222211 }, { 'value': 1222211, 'realValue': 464104 }, { 'value': 1222211, 'realValue': 43201 }, { 'value': 1222211, 'realValue': 12302 }]))
            window.addEventListener("resize", function () {
                houseMyChart.resize()
            })
        },
        initHouseOptions (xDate, y1Date, y2Date) {
            return {
                color: ['#2967c4', '#112d54'],
                xAxis: {
                    type: 'value',
                    splitLine: {
                        show: false
                    },
                    axisLine: {
                        show: false
                    },
                    axisLabel: {
                        show: false,
                    },
                    axisTick: {
                        show: false
                    },
                },
                yAxis: {
                    type: 'category',
                    data: xDate,
                    axisLine: {
                        show: false
                    },
                    axisLabel: {
                        color: "#fff"
                    },
                    axisTick: {
                        show: false
                    },
                },
                series: [
                    {
                        data: y1Date,
                        type: 'bar',
                        zlevel: 2,
                    },
                    {
                        data: y2Date,
                        type: 'bar',
                        barGap: '-100%',
                        label: {
                            show: true,
                            color: '#fff',
                            position: 'right', // 标签右对齐
                            distance: 0,// 标签距离柱条的距离
                            formatter: params => {
                                return params.data.realValue + '个'
                            }
                        }
                    }
                ],
                grid: {
                    x: 70,
                    y: 10,
                    x2: 10,
                    y2: 20
                },
            }
        },
        houseTabClick (type) {
            this.tabTypeTwo = type
            let xDate, y1Date, y2Date
            if (type == 0) {
                xDate = ['商业房屋', '居民住宅', '公共用房', '文化场所', '政府建筑']
                y1Date = [88188, 1222211, 464104, 43201, 12302]
                y2Date = [{ 'value': 1222211, 'realValue': 88188 }, { 'value': 1222211, 'realValue': 1222211 }, { 'value': 1222211, 'realValue': 464104 }, { 'value': 1222211, 'realValue': 43201 }, { 'value': 1222211, 'realValue': 12302 }]
            } else {
                xDate = ['公共场所', '学校教培', '机动车维修', '娱乐场所', '寄递业']
                y1Date = [54, 77, 97, 141, 191]
                y2Date = [{ 'value': 191, 'realValue': 54 }, { 'value': 191, 'realValue': 77 }, { 'value': 191, 'realValue': 97 }, { 'value': 191, 'realValue': 141 }, { 'value': 191, 'realValue': 191 }]
            }
            houseMyChart.setOption(this.initHouseOptions(xDate, y1Date, y2Date), true)
        },
        initLandEcharts () {
            var chartDom = document.getElementById('landEcharts')
            landMyChart = this.$echarts.init(chartDom)
            landMyChart.setOption(this.initLandOptions(['车站派出所', '沙溪派出所', '灵溪派出所', '北门派出所', '江光派出所'], [6414, 2211, 4321, 1232, 881]))
            window.addEventListener("resize", function () {
                landMyChart.resize()
            })
        },
        initLandOptions (xDate, yDate) {
            return {
                xAxis: {
                    type: 'category',
                    data: xDate,
                    axisLabel: {
                        color: "#fff",
                        interval: 0,
                    },
                    axisLine: {
                        lineStyle: {
                            color: "#fff"
                        }
                    }
                },
                yAxis: {
                    type: 'value',
                    splitLine: {
                        show: false
                    },
                    axisLabel: {
                        color: "#fff"
                    }
                },
                series: [
                    {
                        data: yDate,
                        type: 'bar',
                        itemStyle: {
                            normal: {
                                label: {
                                    show: true,
                                    position: 'top',
                                    textStyle: {
                                        color: '#1a94a8',
                                        fontSize: 16
                                    }
                                }
                            }
                        }
                    }
                ],
                grid: {
                    x: 40,
                    y: 10,
                    x2: 20,
                    y2: 20
                },
            }
        },
        landTabClick (type) {
            this.tabTypeThree = type
            let xDate, yDate
            if (type == 0) {
                xDate = ['车站派出所', '沙溪派出所', '灵溪派出所', '北门派出所', '江光派出所']
                yDate = [6414, 2211, 4321, 1232, 881]
            } else if (type == 1) {
                xDate = ['车站派出所', '沙溪派出所', '灵溪派出所', '北门派出所', '江光派出所']
                yDate = [881, 2211, 6414, 4321, 1232]
            }
            landMyChart.setOption(this.initPersonOptions(xDate, yDate), true)
        },
        peopleTabClick (type) {
            this.peopletype = type
        },
        clickPeopleChart () {
            homePersonmyChart.on('click', params => {
                let xDate, yDate
                //户籍人口
                if (params.name == '车站派出所') {
                    xDate = ['责任区1', '责任区2', '责任区3', '责任区4', '责任区5']
                    yDate = [88, 221, 641, 432, 123]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '沙溪派出所') {
                    xDate = ['责任区1', '责任区2', '责任区3', '责任区4', '责任区5']
                    yDate = [641, 423, 221, 123, 88]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '灵溪派出所') {
                    xDate = ['责任区1', '责任区2', '责任区3', '责任区4', '责任区5']
                    yDate = [111, 531, 211, 431, 64]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '北门派出所') {
                    xDate = ['责任区1', '责任区2', '责任区3', '责任区4', '责任区5']
                    yDate = [887, 234, 452, 321, 154]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '江光派出所') {
                    xDate = ['责任区1', '责任区2', '责任区3', '责任区4', '责任区5']
                    yDate = [400, 500, 200, 450, 245]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '湖北') {
                    xDate = ['武汉市', '黄石市', '宜昌市', '鄂州市', '荆门市']
                    yDate = [88, 221, 641, 432, 123]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '上海') {
                    xDate = ['黄浦区', '长宁区', '静安区', '虹口区', '闵行区']
                    yDate = [641, 423, 221, 123, 88]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '北京') {
                    xDate = ['东城区', '西城区', '海淀区', '昌平区', '大兴区']
                    yDate = [111, 531, 211, 431, 64]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '广东') {
                    xDate = ['珠海市', '东菀市', '佛山市', '中山市', '惠州市']
                    yDate = [887, 234, 452, 321, 154]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '浙江') {
                    xDate = ['杭州市', '舟山市', '宁波市', '嘉兴市', '绍兴市']
                    yDate = [400, 300, 200, 450, 245]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '日本') {
                    xDate = ['东京都', '北海道', '大阪府', '京都府', '43县']
                    yDate = [88, 221, 641, 432, 123]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '美国') {
                    xDate = ['加利福尼亚州', '德克萨斯州', '纽约州', '俄亥俄州']
                    yDate = [641, 423, 221, 123, 88]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '俄罗斯') {
                    xDate = ['西北联邦', '中央联邦', '南方联邦', '伏尔加联邦']
                    yDate = [111, 531, 211, 431, 64]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '英国') {
                    xDate = ['英格兰', '威尔士', '苏格兰', '北爱尔兰']
                    yDate = [887, 234, 452, 321, 154]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '印度') {
                    xDate = ['德里', '哈里亚纳邦', '旁遮普邦', '喜马偕尔邦', '北方邦']
                    yDate = [400, 300, 200, 450, 245]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else {
                    this.$emit('showpeopledetail', params.name)
                }
            })
        },
        clickLandChart () {
            landMyChart.on('click', params => {
                this.landVisible = true
                this.landTitle = params.name
                if (this.tabTypeThree == 0) {
                    this.$emit('showlanddetail', params.name, this.landDetailArr1)
                } else {
                    this.$emit('showlanddetail', params.name, this.landDetailArr2)
                }
            })
        },
    }
}
</script>
<style scoped lang="scss">
.container {
    position: relative;
    width: 100%;
    height: 100%;
    .person-box {
        height: 35%;
        .peopleTap {
            color: rgb(98, 95, 95);
            cursor: pointer;
        }
        .peopleTap:hover {
            text-decoration: underline;
        }
        .choosed {
            color: #fff;
        }
        .peopleNum {
            color: rgb(98, 95, 95);
            font-size: 14px;
        }
        .word {
            color: #fff;
            font-size: 14px;
        }
        .before {
            margin-left: 108px;
        }
        .peopleTable {
            height: calc(100% - 40px);
            overflow: hidden;
        }
    }
    .house-box {
        height: 30%;
    }
    .land-box {
        height: 35%;
    }
    .person-box,
    .house-box,
    .land-box {
        .title {
            padding: 0 18px;
            position: relative;
            text-align: left;
            height: 40px;
            line-height: 40px;
            font-size: 20px;
            i {
                position: absolute;
                top: 6px;
                left: 0;
                width: 8px;
                height: 28px;
                border-radius: 4px;
                background: #43bafe;
                box-shadow: 0px 0px 8px 2px #43bafe;
            }
            .choosed {
                color: #fff;
            }
        }
        .sub-title {
            display: flex;
            justify-content: space-between;
            height: 36px;
        }
        .sub-tab {
            display: flex;
            .tab {
                margin: 0 10px;
                flex: 1;
                background: rgba(29, 38, 105, 1);
                border: 1px solid rgba(20, 50, 123, 1);
                cursor: pointer;
                & > div {
                    height: 26px;
                    line-height: 26px;
                }
            }
            .tab.on {
                border: 1px solid rgb(3, 108, 255);
            }
        }
        .echarts-box {
            flex: 1;
            width: 100%;
            height: calc(100% - 104px);
        }
        .sub-tab + .echarts-box {
            margin-top: 10px;
        }
    }
    :deep(.el-table__body-wrapper) {
        overflow-x: hidden !important;
    }
}
</style>
src/views/home/components/rightContainer.vue
New file
@@ -0,0 +1,412 @@
<template>
    <div class="container">
        <div class="case-box">
            <div class="title">
                <i></i> 案件统计
                <div class="timer">
                    <el-date-picker
                        v-model="eventTime"
                        type="daterange"
                        align="right"
                        unlink-panels
                        range-separator="至"
                        start-placeholder="开始日期"
                        end-placeholder="结束日期"
                        :picker-options="pickerOptions"
                    ></el-date-picker>
                </div>
            </div>
            <div id="EventChangeEcharts" class="echarts-box"></div>
        </div>
        <div class="alert-box">
            <div class="title">
                <i></i>
                <span style="margin-right:130px">安保活动</span>
                <span class="activity" :class="{choosed:acttype==0}" @click="actTabClick(0)">正在进行</span>
                <span>/</span>
                <span class="activity" :class="{choosed:acttype==1}" @click="actTabClick(1)">历史活动</span>
            </div>
            <div id="peopleList" class="echarts-box">
                <el-table
                    :data="acttype == 0 ? underwayArr : historyArr"
                    style="width: 100%"
                    :header-cell-style="{'text-align':'center','background-color':'#203c60','borderColor':'#324e75'}"
                    :cell-style="{'text-align':'center','borderColor':'#324e75'}"
                    :row-class-name="tableRowClassName"
                >
                    <el-table-column prop="activityName" label="活动名称" width="100"></el-table-column>
                    <el-table-column prop="startTime" label="开始时间" width="100"></el-table-column>
                    <el-table-column prop="endTime" label="结束时间" width="100"></el-table-column>
                    <el-table-column prop="scale" label="规模"></el-table-column>
                </el-table>
            </div>
        </div>
        <div class="crowd-box">
            <div class="title">
                <i></i> 现有设备
                <span class="regionTotal">{{regionTotal}}个</span>
            </div>
            <div id="EquipmentEcharts" class="echarts-box"></div>
        </div>
    </div>
</template>
<script>
let equipmentmyChart
export default {
    data () {
        return {
            eventTime: '',
            pickerOptions: {
                shortcuts: [{
                    text: '最近一周',
                    onClick (picker) {
                        const end = new Date()
                        const start = new Date()
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
                        picker.$emit('pick', [start, end])
                    }
                }, {
                    text: '最近一个月',
                    onClick (picker) {
                        const end = new Date()
                        const start = new Date()
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
                        picker.$emit('pick', [start, end])
                    }
                }, {
                    text: '最近三个月',
                    onClick (picker) {
                        const end = new Date()
                        const start = new Date()
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
                        picker.$emit('pick', [start, end])
                    }
                }]
            },
            regionTotal: 0,
            acttype: 0,
            timetype: 0,
            underwayArr: [
                { 'activityName': '进行活动1', 'startTime': '2022-10-01', 'endTime': '2022-10-02', 'scale': '1000' },
                { 'activityName': '进行活动2', 'startTime': '2022-10-03', 'endTime': '2022-10-04', 'scale': '1000' },
                { 'activityName': '进行活动3', 'startTime': '2022-10-05', 'endTime': '2022-10-06', 'scale': '1000' },
                { 'activityName': '进行活动4', 'startTime': '2022-10-07', 'endTime': '2022-10-08', 'scale': '1000' },
                { 'activityName': '进行活动5', 'startTime': '2022-10-09', 'endTime': '2022-10-10', 'scale': '1000' }
            ],
            historyArr: [
                { 'activityName': '历史活动1', 'startTime': '2021-10-01', 'endTime': '2021-10-02', 'scale': '2000' },
                { 'activityName': '历史活动2', 'startTime': '2021-10-03', 'endTime': '2021-10-04', 'scale': '2000' },
                { 'activityName': '历史活动3', 'startTime': '2021-10-05', 'endTime': '2021-10-06', 'scale': '2000' },
                { 'activityName': '历史活动4', 'startTime': '2021-10-07', 'endTime': '2021-10-08', 'scale': '2000' },
                { 'activityName': '历史活动5', 'startTime': '2021-10-09', 'endTime': '2021-10-10', 'scale': '2000' }
            ],
            carArr: [
                { 'carID': '#11111', 'carType': '大众', 'policeStation': '车站派出所', 'area': '责任区1' },
                { 'carID': '#22222', 'carType': '宝马', 'policeStation': '车站派出所', 'area': '责任区1' },
                { 'carID': '#33333', 'carType': '奔驰', 'policeStation': '车站派出所', 'area': '责任区2' },
                { 'carID': '#44444', 'carType': '红旗', 'policeStation': '车站派出所', 'area': '责任区2' },
                { 'carID': '#55555', 'carType': '大众', 'policeStation': '沙溪派出所', 'area': '责任区1' },
                { 'carID': '#66666', 'carType': '宝马', 'policeStation': '沙溪派出所', 'area': '责任区1' },
                { 'carID': '#77777', 'carType': '奔驰', 'policeStation': '沙溪派出所', 'area': '责任区2' },
                { 'carID': '#88888', 'carType': '红旗', 'policeStation': '沙溪派出所', 'area': '责任区2' }
            ],
            phoneArr: [
                { 'phoneID': '188XXX11111', 'phoneType': '魅族', 'policeStation': '车站派出所', 'area': '责任区1' },
                { 'phoneID': '188XXX22222', 'phoneType': '华为', 'policeStation': '车站派出所', 'area': '责任区1' },
                { 'phoneID': '188XXX33333', 'phoneType': '一加', 'policeStation': '车站派出所', 'area': '责任区2' },
                { 'phoneID': '188XXX44444', 'phoneType': '华为', 'policeStation': '车站派出所', 'area': '责任区2' },
                { 'phoneID': '188XXX55555', 'phoneType': '三星', 'policeStation': '沙溪派出所', 'area': '责任区1' },
                { 'phoneID': '188XXX66666', 'phoneType': '华为', 'policeStation': '沙溪派出所', 'area': '责任区1' },
                { 'phoneID': '188XXX77777', 'phoneType': '小米', 'policeStation': '沙溪派出所', 'area': '责任区2' },
                { 'phoneID': '188XXX88888', 'phoneType': '华为', 'policeStation': '沙溪派出所', 'area': '责任区2' }
            ],
            recorderArr: [
                { 'recorderID': 'ABC111', 'recorderType': '爱国者', 'policeStation': '车站派出所', 'area': '责任区1' },
                { 'recorderID': 'ABC222', 'recorderType': '百步通', 'policeStation': '车站派出所', 'area': '责任区1' },
                { 'recorderID': 'ABC333', 'recorderType': '飞利浦', 'policeStation': '车站派出所', 'area': '责任区2' },
                { 'recorderID': 'ABC444', 'recorderType': '途强', 'policeStation': '车站派出所', 'area': '责任区2' },
                { 'recorderID': 'ABC555', 'recorderType': '执法鹰眼', 'policeStation': '沙溪派出所', 'area': '责任区1' },
                { 'recorderID': 'ABC666', 'recorderType': '致业', 'policeStation': '沙溪派出所', 'area': '责任区1' },
                { 'recorderID': 'ABC777', 'recorderType': '联想', 'policeStation': '沙溪派出所', 'area': '责任区2' },
                { 'recorderID': 'ABC888', 'recorderType': '高新兴', 'policeStation': '沙溪派出所', 'area': '责任区2' }
            ],
        }
    },
    mounted () {
        this.initEquipmentEcharts()
        this.initEventChangeEcharts()
        this.clickEquimentChart()
    },
    methods: {
        actTabClick (type) {
            this.acttype = type
        },
        initEquipmentEcharts () {
            var chartDom = document.getElementById('EquipmentEcharts')
            equipmentmyChart = this.$echarts.init(chartDom)
            var option
            let dataArr = [
                { value: 4664, name: '车辆' },
                { value: 310, name: '摄像头' },
                { value: 279, name: '执法记录仪' },
                { value: 241, name: '手台' },
            ]
            for (let i = 0; i < dataArr.length; i++) {
                this.regionTotal += dataArr[i].value
            }
            option = {
                tooltip: {
                    trigger: 'item'
                },
                legend: {
                    left: '60%',
                    y: '25%',
                    itemGap: 20,
                    textStyle: {
                        color: '#fff'
                    },
                    formatter: function (name) {
                        let data = option.series[0].data
                        let tarValue
                        for (let i = 0; i < data.length; i++) {
                            if (data[i].name == name) {
                                tarValue = data[i].value
                            }
                        }
                        let v = tarValue
                        return `${name}     ${v} 个    `
                    },
                },
                series: [
                    {
                        name: '',
                        type: 'pie',
                        radius: ['40%', '70%'],
                        center: ['27%', '57%'],
                        avoidLabelOverlap: false,
                        label: {
                            show: false,
                            position: 'center'
                        },
                        labelLine: {
                            show: false
                        },
                        data: dataArr
                    }
                ],
                grid: {
                    x: 10,
                    y: 10,
                    x2: 10,
                    y2: 20
                },
            }
            option && equipmentmyChart.setOption(option)
        },
        initEventChangeEcharts () {
            var chartDom = document.getElementById('EventChangeEcharts')
            var myChart = this.$echarts.init(chartDom)
            var option
            option = {
                xAxis: {
                    type: 'category',
                    data: ['3-26', '3-27', '3-28', '3-29', '3-30', '3-31', '4-1'],
                    axisLabel: {
                        color: "#fff"
                    },
                    axisLine: {
                        lineStyle: {
                            color: "#fff"
                        }
                    }
                },
                yAxis: {
                    type: 'value',
                    splitLine: {
                        show: false
                    },
                    axisLabel: {
                        color: "#fff"
                    },
                    axisLine: {
                        lineStyle: {
                            color: "#fff"
                        }
                    }
                },
                series: [
                    {
                        data: [10, 9, 12, 6, 4, 14, 8],
                        type: 'line'
                    }
                ],
                grid: {
                    x: 30,
                    y: 40,
                    x2: 10,
                    y2: 20
                },
            }
            option && myChart.setOption(option)
        },
        clickEquimentChart () {
            equipmentmyChart.on('click', params => {
                // this.monitorContent = false
                // this.othersContent = true
                // this.$emit('showequimentdetail', params.name, this.monitorContent, this.othersContent,showBooleanArr,showArr)
                this.$emit('showequimentdetail', params.name, false, true, [false, false, false], [])
                // this.equimentTitle = params.name
                // this.equimentVisible = true
                if (params.name == '摄像头') {
                    // this.othersContent = false
                    // this.monitorContent = true
                    this.$emit('showequimentdetail', params.name, true, false, [false, false, false], [])
                } else if (params.name == '手台') {
                    // this.recorderArrShow = false
                    // this.carArrShow = false
                    // this.phoneArrShow = true
                    // this.saveArr = this.phoneArr
                    // this.showArr = this.saveArr
                    this.$emit('showequimentdetail', params.name, false, true, [false, false, true], this.phoneArr)
                } else if (params.name == '车辆') {
                    // this.recorderArrShow = false
                    // this.carArrShow = true
                    // this.phoneArrShow = false
                    // this.saveArr = this.carArr
                    // this.showArr = this.saveArr
                    this.$emit('showequimentdetail', params.name, false, true, [false, true, false], this.carArr)
                } else if (params.name == '执法记录仪') {
                    // this.recorderArrShow = true
                    // this.carArrShow = false
                    // this.phoneArrShow = false
                    // this.saveArr = this.recorderArr
                    // this.showArr = this.saveArr
                    this.$emit('showequimentdetail', params.name, false, true, [true, false, false], this.recorderArr)
                }
            })
        },
    }
}
</script>
<style scoped lang="scss">
.container {
    position: relative;
    height: 100%;
    width: 100%;
    .case-box {
        height: 30%;
    }
    .alert-box,
    .crowd-box {
        height: 35%;
        .echarts-box {
            overflow-x: hidden;
            overflow-y: auto;
        }
    }
    .case-box,
    .alert-box,
    .crowd-box {
        display: flex;
        flex-direction: column;
        padding: 0 10px;
        .title {
            padding: 0 18px;
            position: relative;
            text-align: left;
            height: 40px;
            line-height: 40px;
            font-size: 20px;
            i {
                position: absolute;
                top: 6px;
                left: 0;
                width: 8px;
                height: 28px;
                border-radius: 4px;
                background: #43bafe;
                box-shadow: 0px 0px 8px 2px #43bafe;
            }
            .timer {
                width: 250px;
                height: 30px;
                float: right;
            }
            .regionTotal {
                color: #fff;
                font-size: 22px;
                font-weight: 700;
                margin-left: 50%;
                letter-spacing: 1px;
            }
            .activity {
                font-size: 16px;
                color: rgb(98, 95, 95);
                cursor: pointer;
            }
            .activity:hover {
                text-decoration: underline;
            }
            .choosed {
                color: #fff;
            }
        }
        .sub-title {
            display: flex;
            justify-content: space-between;
            height: 36px;
        }
        .sub-tab {
            display: flex;
            .tab {
                margin: 0 10px;
                flex: 1;
                background: rgba(29, 38, 105, 1);
                border: 1px solid rgba(20, 50, 123, 1);
                cursor: pointer;
                & > div {
                    height: 26px;
                    line-height: 26px;
                }
            }
            .tab.on {
                border: 1px solid rgb(3, 108, 255);
            }
        }
        .echarts-box {
            flex: 1;
        }
        .sub-tab + .echarts-box {
            margin-top: 10px;
        }
        #peopleList {
            height: 100%;
        }
    }
}
</style>
src/views/home/index.vue
@@ -12,155 +12,10 @@
<template>
    <div class="container">
        <div class="left-container">
            <div class="person-box">
                <div class="title">
                    <i></i>
                    <span
                        class="peopleTap"
                        :class="{choosed:peopletype == 0}"
                        @click="peopleTabClick(0)"
                    >现有人员</span>
                    <span>/</span>
                    <span
                        class="peopleTap"
                        :class="{choosed:peopletype == 1}"
                        @click="peopleTabClick(1)"
                    >重点人员</span>
                    <span class="word before">共</span>
                    <span class="peopleNum" :class="{choosed:peopletype == 0}">100</span>
                    <span class="word">/</span>
                    <span class="peopleNum" :class="{choosed:peopletype == 1}">1</span>
                    <span class="word">人</span>
                </div>
                <div class="sub-tab" v-show="peopletype == 0">
                    <div class="tab" :class="{on:tabType==0}" @click="personTabClick(0)">
                        <div class="num">164.57万人</div>
                        <div class="type">户籍人口</div>
                    </div>
                    <div class="tab" :class="{on:tabType==1}" @click="personTabClick(1)">
                        <div class="num">17.52万人</div>
                        <div class="type">流动人口</div>
                    </div>
                    <div class="tab" :class="{on:tabType==2}" @click="personTabClick(2)">
                        <div class="num">91995人</div>
                        <div class="type">境外人口</div>
                    </div>
                </div>
                <div id="PersonEcharts" class="echarts-box" v-show="peopletype == 0"></div>
                <div class="peopleTable" v-show="peopletype == 1">
                    <el-table
                        :data="peopleArr"
                        style="width: 100%"
                        :header-cell-style="{'text-align':'center','background-color':'#203c60','borderColor':'#324e75'}"
                        :cell-style="{'text-align':'center','borderColor':'#324e75'}"
                        :row-class-name="tableRowClassName"
                    >
                        <el-table-column prop="name" label="姓名" width="100"></el-table-column>
                        <el-table-column prop="sex" label="性别" width="50"></el-table-column>
                        <el-table-column prop="age" label="年龄" width="50"></el-table-column>
                        <el-table-column prop="address" label="地址"></el-table-column>
                    </el-table>
                </div>
            </div>
            <div class="house-box">
                <div class="title">
                    <i></i> 现有房屋
                </div>
                <div class="sub-tab">
                    <div class="tab" :class="{on:tabTypeTwo==0}" @click="houseTabClick(0)">
                        <div class="num">1822603户</div>
                        <div class="num">实有房屋</div>
                    </div>
                    <div class="tab" :class="{on:tabTypeTwo==1}" @click="houseTabClick(1)">
                        <div class="num">634个</div>
                        <div class="num">关注场所</div>
                    </div>
                </div>
                <div id="houseEcharts" class="echarts-box"></div>
            </div>
            <div class="land-box">
                <div class="title">
                    <i></i> 现有地
                </div>
                <div class="sub-tab">
                    <div class="tab" :class="{on:tabTypeThree==0}" @click="landTabClick(0)">
                        <div class="num">634个</div>
                        <div class="num">小区</div>
                    </div>
                    <div class="tab" :class="{on:tabTypeThree==1}" @click="landTabClick(1)">
                        <div class="num">634个</div>
                        <div class="num">责任区</div>
                    </div>
                </div>
                <div id="landEcharts" class="echarts-box"></div>
                <!-- <div id="EquipmentEcharts" class="echarts-box"></div> -->
            </div>
            <left-container @showpeopledetail="showpeopledetail" @showlanddetail="showlanddetail"></left-container>
        </div>
        <div class="right-container">
            <div class="case-box">
                <div class="title">
                    <i></i> 案件统计
                    <div class="timer">
                        <el-date-picker
                            v-model="eventTime"
                            type="daterange"
                            align="right"
                            unlink-panels
                            range-separator="至"
                            start-placeholder="开始日期"
                            end-placeholder="结束日期"
                            :picker-options="pickerOptions"
                        ></el-date-picker>
                    </div>
                </div>
                <div id="EventChangeEcharts" class="echarts-box"></div>
            </div>
            <div class="alert-box">
                <div class="title">
                    <i></i>
                    <span style="margin-right:130px">安保活动</span>
                    <span
                        class="activity"
                        :class="{choosed:acttype==0}"
                        @click="actTabClick(0)"
                    >正在进行</span>
                    <span>/</span>
                    <span
                        class="activity"
                        :class="{choosed:acttype==1}"
                        @click="actTabClick(1)"
                    >历史活动</span>
                </div>
                <!-- <div id="EventCountEcharts" class="echarts-box"></div> -->
                <div id="peopleList" class="echarts-box">
                    <el-table
                        :data="acttype == 0 ? underwayArr : historyArr"
                        style="width: 100%"
                        :header-cell-style="{'text-align':'center','background-color':'#203c60','borderColor':'#324e75'}"
                        :cell-style="{'text-align':'center','borderColor':'#324e75'}"
                        :row-class-name="tableRowClassName"
                    >
                        <el-table-column prop="activityName" label="活动名称" width="100"></el-table-column>
                        <el-table-column prop="startTime" label="开始时间" width="100"></el-table-column>
                        <el-table-column prop="endTime" label="结束时间" width="100"></el-table-column>
                        <el-table-column prop="scale" label="规模"></el-table-column>
                    </el-table>
                </div>
            </div>
            <div class="crowd-box">
                <div class="title">
                    <i></i> 现有设备
                    <span class="regionTotal">{{regionTotal}}个</span>
                </div>
                <div id="EquipmentEcharts" class="echarts-box"></div>
            </div>
            <right-container @showequimentdetail="showequimentdetail"></right-container>
        </div>
        <div class="center-container">
@@ -185,46 +40,7 @@
        </div>
        <div class="bottom-container">
            <div class="header">
                <div class="bottomTitle">
                    <div class="leftBor"></div>
                    <div class="topName">警情动态</div>
                    <div class="rightBor"></div>
                </div>
                <div class="timeTab">
                    <span
                        class="beforetime"
                        :class="{choosed:timetype==0}"
                        @click="timeTabClick(0)"
                    >近一周</span>
                    <span>/</span>
                    <span
                        class="beforetime"
                        :class="{choosed:timetype==1}"
                        @click="timeTabClick(1)"
                    >近一月</span>
                </div>
            </div>
            <div class="body" ref="tableBox">
                <el-table
                    :data="timetype == 0 ? pliceSituationWeekArr : pliceSituationMouthArr"
                    style="width: 100%"
                    :header-cell-style="{'text-align':'center','background-color':'#203c60','borderColor':'#324e75'}"
                    :cell-style="{'text-align':'center','borderColor':'#324e75'}"
                    :row-class-name="tableRowClassName"
                    :height="currentTableHeight"
                >
                    <el-table-column prop="num" label="序号"></el-table-column>
                    <el-table-column prop="type" label="警情类别"></el-table-column>
                    <el-table-column prop="comingPhone" label="报警电话"></el-table-column>
                    <el-table-column prop="dealTime" label="接警时间"></el-table-column>
                    <el-table-column prop="dealPolice" label="经办民警"></el-table-column>
                    <el-table-column prop="callPeople" label="报警人"></el-table-column>
                    <el-table-column prop="callPhone" label="报警人联系人"></el-table-column>
                    <el-table-column prop="callContent" label="报警内容"></el-table-column>
                </el-table>
            </div>
            <bottom-container></bottom-container>
        </div>
        <div ref="RegionSelect" style="left: 0;" class="region-select">
@@ -493,7 +309,6 @@
                style="width: 100%"
                :header-cell-style="{'text-align':'center','background-color':'#203c60','borderColor':'#324e75'}"
                :cell-style="{'text-align':'center','borderColor':'#324e75', 'cursor':'pointer'}"
                :height="currentTableHeight"
            >
                <el-table-column prop="housingEastate" label="小区名称" width="100"></el-table-column>
                <el-table-column prop="location" label="位置" width="140"></el-table-column>
@@ -506,13 +321,7 @@
</template>
<script>
let cylinderLayer = null
let homePersonmyChart
let houseMyChart
let landMyChart
let equipmentmyChart
let interTime
import axios from "axios"
import carList from '@/assets/data/car.js'
@@ -522,14 +331,13 @@
import areaOptionData from '@/assets/data/JurisdictionData/areaOptionData.js'
import policeStationOptions from '@/assets/data/JurisdictionData/policeStationOptions.js'
import housingDate from '@/assets/data/JurisdictionData/housingDate.js'
import leftContainer from './components/leftContainer'
import rightContainer from './components/rightContainer'
import bottomContainer from './components/bottomContainer'
export default {
    data () {
        return {
            navType: 0,
            tabType: 0,
            tabTypeTwo: 0,
            tabTypeThree: 0,
            houseLayerShow: true,
            carLayerShow: false,
            phoneLayerShow: false,
@@ -569,40 +377,6 @@
                alt: 100,
                url: '/img/icon/activity.png'
            }],
            underwayArr: [
                { 'activityName': '进行活动1', 'startTime': '2022-10-01', 'endTime': '2022-10-02', 'scale': '1000' },
                { 'activityName': '进行活动2', 'startTime': '2022-10-03', 'endTime': '2022-10-04', 'scale': '1000' },
                { 'activityName': '进行活动3', 'startTime': '2022-10-05', 'endTime': '2022-10-06', 'scale': '1000' },
                { 'activityName': '进行活动4', 'startTime': '2022-10-07', 'endTime': '2022-10-08', 'scale': '1000' },
                { 'activityName': '进行活动5', 'startTime': '2022-10-09', 'endTime': '2022-10-10', 'scale': '1000' }
            ],
            historyArr: [
                { 'activityName': '历史活动1', 'startTime': '2021-10-01', 'endTime': '2021-10-02', 'scale': '2000' },
                { 'activityName': '历史活动2', 'startTime': '2021-10-03', 'endTime': '2021-10-04', 'scale': '2000' },
                { 'activityName': '历史活动3', 'startTime': '2021-10-05', 'endTime': '2021-10-06', 'scale': '2000' },
                { 'activityName': '历史活动4', 'startTime': '2021-10-07', 'endTime': '2021-10-08', 'scale': '2000' },
                { 'activityName': '历史活动5', 'startTime': '2021-10-09', 'endTime': '2021-10-10', 'scale': '2000' }
            ],
            pliceSituationWeekArr: [
                { 'num': '1', 'type': '民事纠纷', 'comingPhone': '15511112222', 'dealTime': '12H', 'dealPolice': '刘警官', 'callPeople': '张某某', 'callPhone': '13466669999', 'callContent': '他先动的手' },
                { 'num': '2', 'type': '民事纠纷', 'comingPhone': '15511112222', 'dealTime': '12H', 'dealPolice': '刘警官', 'callPeople': '张某某', 'callPhone': '13466669999', 'callContent': '他先动的手' },
                { 'num': '3', 'type': '民事纠纷', 'comingPhone': '15511112222', 'dealTime': '12H', 'dealPolice': '刘警官', 'callPeople': '张某某', 'callPhone': '13466669999', 'callContent': '他先动的手' },
                { 'num': '4', 'type': '民事纠纷', 'comingPhone': '15511112222', 'dealTime': '12H', 'dealPolice': '刘警官', 'callPeople': '张某某', 'callPhone': '13466669999', 'callContent': '他先动的手' },
                { 'num': '5', 'type': '民事纠纷', 'comingPhone': '15511112222', 'dealTime': '12H', 'dealPolice': '刘警官', 'callPeople': '张某某', 'callPhone': '13466669999', 'callContent': '他先动的手' },
            ],
            pliceSituationMouthArr: [
                { 'num': '1', 'type': '聚众斗殴', 'comingPhone': '13466669999', 'dealTime': '15H', 'dealPolice': '王警官', 'callPeople': '张某三', 'callPhone': '15511112222', 'callContent': '他们先动的手' },
                { 'num': '2', 'type': '聚众斗殴', 'comingPhone': '13466669999', 'dealTime': '15H', 'dealPolice': '王警官', 'callPeople': '张某三', 'callPhone': '15511112222', 'callContent': '他们先动的手' },
                { 'num': '3', 'type': '聚众斗殴', 'comingPhone': '13466669999', 'dealTime': '15H', 'dealPolice': '王警官', 'callPeople': '张某三', 'callPhone': '15511112222', 'callContent': '他们先动的手' },
                { 'num': '4', 'type': '聚众斗殴', 'comingPhone': '13466669999', 'dealTime': '15H', 'dealPolice': '王警官', 'callPeople': '张某三', 'callPhone': '15511112222', 'callContent': '他们先动的手' },
                { 'num': '5', 'type': '聚众斗殴', 'comingPhone': '13466669999', 'dealTime': '15H', 'dealPolice': '王警官', 'callPeople': '张某三', 'callPhone': '15511112222', 'callContent': '他们先动的手' },
            ],
            peopleArr: [
                { 'name': '黄XX', 'sex': '男', 'age': '34', 'address': 'XXXXXXXXX' },
                { 'name': '李某某', 'sex': '女', 'age': '34', 'address': 'XXXXXXXXX' },
                { 'name': '刘AA', 'sex': '女', 'age': '34', 'address': 'XXXXXXXXX' },
                { 'name': '张三', 'sex': '男', 'age': '34', 'address': 'XXXXXXXXX' }
            ],
            policeStationCheckValue: '请选择派出所',
            areaOptionData: [],
            areaCheckValue: '请选择责任区',
@@ -642,39 +416,6 @@
                    100
                ),
            ],
            regionTotal: 0,
            acttype: 0,
            timetype: 0,
            peopletype: 0,
            pickerOptions: {
                shortcuts: [{
                    text: '最近一周',
                    onClick (picker) {
                        const end = new Date()
                        const start = new Date()
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
                        picker.$emit('pick', [start, end])
                    }
                }, {
                    text: '最近一个月',
                    onClick (picker) {
                        const end = new Date()
                        const start = new Date()
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
                        picker.$emit('pick', [start, end])
                    }
                }, {
                    text: '最近三个月',
                    onClick (picker) {
                        const end = new Date()
                        const start = new Date()
                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
                        picker.$emit('pick', [start, end])
                    }
                }]
            },
            eventTime: '',
            currentTableHeight: 0,
            jurisdictionData: [{
                label: '全部',
                id: '1',
@@ -706,36 +447,6 @@
            },
            monitorContent: false,
            othersContent: false,
            carArr: [
                { 'carID': '#11111', 'carType': '大众', 'policeStation': '车站派出所', 'area': '责任区1' },
                { 'carID': '#22222', 'carType': '宝马', 'policeStation': '车站派出所', 'area': '责任区1' },
                { 'carID': '#33333', 'carType': '奔驰', 'policeStation': '车站派出所', 'area': '责任区2' },
                { 'carID': '#44444', 'carType': '红旗', 'policeStation': '车站派出所', 'area': '责任区2' },
                { 'carID': '#55555', 'carType': '大众', 'policeStation': '沙溪派出所', 'area': '责任区1' },
                { 'carID': '#66666', 'carType': '宝马', 'policeStation': '沙溪派出所', 'area': '责任区1' },
                { 'carID': '#77777', 'carType': '奔驰', 'policeStation': '沙溪派出所', 'area': '责任区2' },
                { 'carID': '#88888', 'carType': '红旗', 'policeStation': '沙溪派出所', 'area': '责任区2' }
            ],
            phoneArr: [
                { 'phoneID': '188XXX11111', 'phoneType': '魅族', 'policeStation': '车站派出所', 'area': '责任区1' },
                { 'phoneID': '188XXX22222', 'phoneType': '华为', 'policeStation': '车站派出所', 'area': '责任区1' },
                { 'phoneID': '188XXX33333', 'phoneType': '一加', 'policeStation': '车站派出所', 'area': '责任区2' },
                { 'phoneID': '188XXX44444', 'phoneType': '华为', 'policeStation': '车站派出所', 'area': '责任区2' },
                { 'phoneID': '188XXX55555', 'phoneType': '三星', 'policeStation': '沙溪派出所', 'area': '责任区1' },
                { 'phoneID': '188XXX66666', 'phoneType': '华为', 'policeStation': '沙溪派出所', 'area': '责任区1' },
                { 'phoneID': '188XXX77777', 'phoneType': '小米', 'policeStation': '沙溪派出所', 'area': '责任区2' },
                { 'phoneID': '188XXX88888', 'phoneType': '华为', 'policeStation': '沙溪派出所', 'area': '责任区2' }
            ],
            recorderArr: [
                { 'recorderID': 'ABC111', 'recorderType': '爱国者', 'policeStation': '车站派出所', 'area': '责任区1' },
                { 'recorderID': 'ABC222', 'recorderType': '百步通', 'policeStation': '车站派出所', 'area': '责任区1' },
                { 'recorderID': 'ABC333', 'recorderType': '飞利浦', 'policeStation': '车站派出所', 'area': '责任区2' },
                { 'recorderID': 'ABC444', 'recorderType': '途强', 'policeStation': '车站派出所', 'area': '责任区2' },
                { 'recorderID': 'ABC555', 'recorderType': '执法鹰眼', 'policeStation': '沙溪派出所', 'area': '责任区1' },
                { 'recorderID': 'ABC666', 'recorderType': '致业', 'policeStation': '沙溪派出所', 'area': '责任区1' },
                { 'recorderID': 'ABC777', 'recorderType': '联想', 'policeStation': '沙溪派出所', 'area': '责任区2' },
                { 'recorderID': 'ABC888', 'recorderType': '高新兴', 'policeStation': '沙溪派出所', 'area': '责任区2' }
            ],
            showArr: [],
            saveArr: [],
            carArrShow: false,
@@ -744,23 +455,10 @@
            currentPage: 1,
            pagesize: 9,
            landDetailArr: [],
            landDetailArr1: [
                { 'housingEastate': '阳光小区', 'location': 'XXXXXXXX', 'area': '2122亩', 'superintendent': '王大壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '美丽小区', 'location': 'XXXXXXXX', 'area': '1335亩', 'superintendent': '王二壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '快乐小区', 'location': 'XXXXXXXX', 'area': '4122亩', 'superintendent': '王三壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '健康小区', 'location': 'XXXXXXXX', 'area': '2555亩', 'superintendent': '王四壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '斯哒地小区', 'location': 'XXXXXX', 'area': '1922亩', 'superintendent': '王美丽', 'phone': '154XXXX6666' },
            ],
            landDetailArr2: [
                { 'housingEastate': '责任区1', 'location': 'XXXXXXXX', 'area': '2122亩', 'superintendent': '王大壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '责任区2', 'location': 'XXXXXXXX', 'area': '1335亩', 'superintendent': '王二壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '责任区3', 'location': 'XXXXXXXX', 'area': '4122亩', 'superintendent': '王三壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '责任区4', 'location': 'XXXXXXXX', 'area': '2555亩', 'superintendent': '王四壮', 'phone': '154XXXX6666' },
                { 'housingEastate': '责任区5', 'location': 'XXXXXX', 'area': '1922亩', 'superintendent': '王美丽', 'phone': '154XXXX6666' },
            ],
            timetype: 0,
        }
    },
    components: { leftContainer, rightContainer, bottomContainer },
    created () {
        this.carList = carList
@@ -773,13 +471,6 @@
    },
    mounted () {
        this.initEquipmentEcharts()
        this.initEventChangeEcharts()
        // this.initEventCountEcharts()
        this.initLandEcharts()
        this.initPersonEcharts()
        this.inithouseEcharts()
        this.$nextTick(() => {
            this.initPoliceStationLayer()
@@ -788,18 +479,11 @@
            document.querySelector('.screen-full-btn').classList.add('homebottom')
            this.setDomStyle()
            this.tableScroll()
        })
        // axios.get('/user/getUserList').then((res) => {
        //     console.log(res, 999)
        // })
        this.clickPeopleChart()
        this.clickEquimentChart()
        this.clickLandChart()
        window.addEventListener('resize', this.setDomStyle)
    },
@@ -865,423 +549,6 @@
            let polygon = this.$turf.polygon([positions])
            let center = this.$turf.centroid(polygon)
            return [center.geometry.coordinates[0], center.geometry.coordinates[1]]
        },
        navClick (e) {
            this.navType = e.target.dataset.type
        },
        initPersonEcharts () {
            var chartDom = document.getElementById('PersonEcharts')
            homePersonmyChart = this.$echarts.init(chartDom)
            homePersonmyChart.setOption(this.initPersonOptions(['车站派出所', '沙溪派出所', '灵溪派出所', '北门派出所', '江光派出所'], [881, 2211, 6414, 4321, 1232]))
            window.addEventListener("resize", function () {
                homePersonmyChart.resize()
            })
        },
        initPersonOptions (xDate, yDate) {
            return {
                xAxis: {
                    type: 'category',
                    data: xDate,
                    axisLabel: {
                        color: "#fff",
                        interval: 0,
                    },
                    axisLine: {
                        lineStyle: {
                            color: "#fff"
                        }
                    }
                },
                yAxis: {
                    type: 'value',
                    splitLine: {
                        show: false
                    },
                    axisLabel: {
                        color: "#fff"
                    }
                },
                series: [
                    {
                        data: yDate,
                        type: 'bar',
                        itemStyle: {
                            normal: {
                                label: {
                                    show: true,
                                    position: 'top',
                                    textStyle: {
                                        color: '#1a94a8',
                                        fontSize: 16
                                    }
                                }
                            }
                        }
                    }
                ],
                grid: {
                    x: 40,
                    y: 10,
                    x2: 20,
                    y2: 20
                },
            }
        },
        personTabClick (type) {
            this.tabType = type
            let xDate, yDate
            if (type == 0) {
                xDate = ['车站派出所', '沙溪派出所', '灵溪派出所', '北门派出所', '江光派出所']
                yDate = [881, 2211, 6414, 4321, 1232]
            } else if (type == 1) {
                xDate = ['湖北', '上海', '北京', '广东', '浙江']
                yDate = [6414, 4231, 2211, 1231, 881]
            } else if (type == 2) {
                xDate = ['日本', '美国', '俄罗斯', '英国', '印度']
                yDate = [881, 1231, 2211, 4321, 6414]
            }
            homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
        },
        inithouseEcharts () {
            var chartDom = document.getElementById('houseEcharts')
            houseMyChart = this.$echarts.init(chartDom)
            houseMyChart.setOption(this.initHouseOptions(['商业房屋', '居民住宅', '公共用房', '文化场所', '政府建筑'], [88188, 1222211, 464104, 43201, 12302], [{ 'value': 1222211, 'realValue': 88188 }, { 'value': 1222211, 'realValue': 1222211 }, { 'value': 1222211, 'realValue': 464104 }, { 'value': 1222211, 'realValue': 43201 }, { 'value': 1222211, 'realValue': 12302 }]))
            window.addEventListener("resize", function () {
                houseMyChart.resize()
            })
        },
        initHouseOptions (xDate, y1Date, y2Date) {
            return {
                color: ['#2967c4', '#112d54'],
                xAxis: {
                    type: 'value',
                    splitLine: {
                        show: false
                    },
                    axisLine: {
                        show: false
                    },
                    axisLabel: {
                        show: false,
                    },
                    axisTick: {
                        show: false
                    },
                },
                yAxis: {
                    type: 'category',
                    data: xDate,
                    axisLine: {
                        show: false
                    },
                    axisLabel: {
                        color: "#fff"
                    },
                    axisTick: {
                        show: false
                    },
                },
                series: [
                    {
                        data: y1Date,
                        type: 'bar',
                        zlevel: 2,
                    },
                    {
                        data: y2Date,
                        type: 'bar',
                        barGap: '-100%',
                        label: {
                            show: true,
                            color: '#fff',
                            position: 'right', // 标签右对齐
                            distance: 0,// 标签距离柱条的距离
                            formatter: params => {
                                return params.data.realValue + '个'
                            }
                        }
                    }
                ],
                grid: {
                    x: 70,
                    y: 10,
                    x2: 10,
                    y2: 20
                },
            }
        },
        houseTabClick (type) {
            this.tabTypeTwo = type
            let xDate, y1Date, y2Date
            if (type == 0) {
                xDate = ['商业房屋', '居民住宅', '公共用房', '文化场所', '政府建筑']
                y1Date = [88188, 1222211, 464104, 43201, 12302]
                y2Date = [{ 'value': 1222211, 'realValue': 88188 }, { 'value': 1222211, 'realValue': 1222211 }, { 'value': 1222211, 'realValue': 464104 }, { 'value': 1222211, 'realValue': 43201 }, { 'value': 1222211, 'realValue': 12302 }]
            } else {
                xDate = ['公共场所', '学校教培', '机动车维修', '娱乐场所', '寄递业']
                y1Date = [54, 77, 97, 141, 191]
                y2Date = [{ 'value': 191, 'realValue': 54 }, { 'value': 191, 'realValue': 77 }, { 'value': 191, 'realValue': 97 }, { 'value': 191, 'realValue': 141 }, { 'value': 191, 'realValue': 191 }]
            }
            houseMyChart.setOption(this.initHouseOptions(xDate, y1Date, y2Date), true)
        },
        initLandEcharts () {
            var chartDom = document.getElementById('landEcharts')
            landMyChart = this.$echarts.init(chartDom)
            landMyChart.setOption(this.initLandOptions(['车站派出所', '沙溪派出所', '灵溪派出所', '北门派出所', '江光派出所'], [6414, 2211, 4321, 1232, 881]))
            window.addEventListener("resize", function () {
                landMyChart.resize()
            })
        },
        initLandOptions (xDate, yDate) {
            return {
                xAxis: {
                    type: 'category',
                    data: xDate,
                    axisLabel: {
                        color: "#fff",
                        interval: 0,
                    },
                    axisLine: {
                        lineStyle: {
                            color: "#fff"
                        }
                    }
                },
                yAxis: {
                    type: 'value',
                    splitLine: {
                        show: false
                    },
                    axisLabel: {
                        color: "#fff"
                    }
                },
                series: [
                    {
                        data: yDate,
                        type: 'bar',
                        itemStyle: {
                            normal: {
                                label: {
                                    show: true,
                                    position: 'top',
                                    textStyle: {
                                        color: '#1a94a8',
                                        fontSize: 16
                                    }
                                }
                            }
                        }
                    }
                ],
                grid: {
                    x: 40,
                    y: 10,
                    x2: 20,
                    y2: 20
                },
            }
        },
        landTabClick (type) {
            this.tabTypeThree = type
            let xDate, yDate
            if (type == 0) {
                xDate = ['车站派出所', '沙溪派出所', '灵溪派出所', '北门派出所', '江光派出所']
                yDate = [6414, 2211, 4321, 1232, 881]
            } else if (type == 1) {
                xDate = ['车站派出所', '沙溪派出所', '灵溪派出所', '北门派出所', '江光派出所']
                yDate = [881, 2211, 6414, 4321, 1232]
            }
            landMyChart.setOption(this.initPersonOptions(xDate, yDate), true)
        },
        initEquipmentEcharts () {
            var chartDom = document.getElementById('EquipmentEcharts')
            equipmentmyChart = this.$echarts.init(chartDom)
            var option
            let dataArr = [
                { value: 4664, name: '车辆' },
                { value: 310, name: '摄像头' },
                { value: 279, name: '执法记录仪' },
                { value: 241, name: '手台' },
            ]
            for (let i = 0; i < dataArr.length; i++) {
                this.regionTotal += dataArr[i].value
            }
            option = {
                tooltip: {
                    trigger: 'item'
                },
                legend: {
                    left: '60%',
                    y: '25%',
                    itemGap: 20,
                    textStyle: {
                        color: '#fff'
                    },
                    formatter: function (name) {
                        let data = option.series[0].data
                        let tarValue
                        for (let i = 0; i < data.length; i++) {
                            if (data[i].name == name) {
                                tarValue = data[i].value
                            }
                        }
                        let v = tarValue
                        return `${name}     ${v} 个    `
                    },
                },
                series: [
                    {
                        name: '',
                        type: 'pie',
                        radius: ['40%', '70%'],
                        center: ['27%', '57%'],
                        avoidLabelOverlap: false,
                        label: {
                            show: false,
                            position: 'center'
                        },
                        labelLine: {
                            show: false
                        },
                        data: dataArr
                    }
                ],
                grid: {
                    x: 10,
                    y: 10,
                    x2: 10,
                    y2: 20
                },
            }
            option && equipmentmyChart.setOption(option)
        },
        initEventChangeEcharts () {
            var chartDom = document.getElementById('EventChangeEcharts')
            var myChart = this.$echarts.init(chartDom)
            var option
            option = {
                xAxis: {
                    type: 'category',
                    data: ['3-26', '3-27', '3-28', '3-29', '3-30', '3-31', '4-1'],
                    axisLabel: {
                        color: "#fff"
                    },
                    axisLine: {
                        lineStyle: {
                            color: "#fff"
                        }
                    }
                },
                yAxis: {
                    type: 'value',
                    splitLine: {
                        show: false
                    },
                    axisLabel: {
                        color: "#fff"
                    },
                    axisLine: {
                        lineStyle: {
                            color: "#fff"
                        }
                    }
                },
                series: [
                    {
                        data: [10, 9, 12, 6, 4, 14, 8],
                        type: 'line'
                    }
                ],
                grid: {
                    x: 30,
                    y: 40,
                    x2: 10,
                    y2: 20
                },
            }
            option && myChart.setOption(option)
        },
        initEventCountEcharts () {
            var chartDom = document.getElementById('EventCountEcharts')
            var myChart = this.$echarts.init(chartDom)
            var option
            option = {
                tooltip: {
                    trigger: 'item'
                },
                legend: {
                    left: '75%',
                    y: '10%',
                    itemGap: 25,
                    textStyle: {
                        color: '#fff'          // 图例文字颜色
                    }
                },
                series: [
                    {
                        name: '',
                        type: 'pie',
                        radius: ['40%', '70%'],
                        center: ['40%', '60%'],
                        avoidLabelOverlap: false,
                        label: {
                            show: false,
                            position: 'center'
                        },
                        labelLine: {
                            show: false
                        },
                        data: [
                            { value: 4659154, name: '入室盗窃' },
                            { value: 916685, name: '抢劫抢夺' },
                            { value: 916685, name: '汽车被盗' },
                            { value: 916685, name: '交通事故' },
                            { value: 916685, name: '打架斗殴' },
                            { value: 916685, name: '走失人口' }
                        ]
                    }
                ],
                grid: {
                    x: 10,
                    y: 10,
                    x2: 10,
                    y2: 20
                },
            }
            option && myChart.setOption(option)
        },
        houseChange (e) {
@@ -1652,155 +919,11 @@
            return center
        },
        clickPeopleChart () {
            homePersonmyChart.on('click', params => {
                let xDate, yDate
                //户籍人口
                if (params.name == '车站派出所') {
                    xDate = ['责任区1', '责任区2', '责任区3', '责任区4', '责任区5']
                    yDate = [88, 221, 641, 432, 123]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '沙溪派出所') {
                    xDate = ['责任区1', '责任区2', '责任区3', '责任区4', '责任区5']
                    yDate = [641, 423, 221, 123, 88]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '灵溪派出所') {
                    xDate = ['责任区1', '责任区2', '责任区3', '责任区4', '责任区5']
                    yDate = [111, 531, 211, 431, 64]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '北门派出所') {
                    xDate = ['责任区1', '责任区2', '责任区3', '责任区4', '责任区5']
                    yDate = [887, 234, 452, 321, 154]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '江光派出所') {
                    xDate = ['责任区1', '责任区2', '责任区3', '责任区4', '责任区5']
                    yDate = [400, 500, 200, 450, 245]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '湖北') {
                    xDate = ['武汉市', '黄石市', '宜昌市', '鄂州市', '荆门市']
                    yDate = [88, 221, 641, 432, 123]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '上海') {
                    xDate = ['黄浦区', '长宁区', '静安区', '虹口区', '闵行区']
                    yDate = [641, 423, 221, 123, 88]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '北京') {
                    xDate = ['东城区', '西城区', '海淀区', '昌平区', '大兴区']
                    yDate = [111, 531, 211, 431, 64]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '广东') {
                    xDate = ['珠海市', '东菀市', '佛山市', '中山市', '惠州市']
                    yDate = [887, 234, 452, 321, 154]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '浙江') {
                    xDate = ['杭州市', '舟山市', '宁波市', '嘉兴市', '绍兴市']
                    yDate = [400, 300, 200, 450, 245]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '日本') {
                    xDate = ['东京都', '北海道', '大阪府', '京都府', '43县']
                    yDate = [88, 221, 641, 432, 123]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '美国') {
                    xDate = ['加利福尼亚州', '德克萨斯州', '纽约州', '俄亥俄州']
                    yDate = [641, 423, 221, 123, 88]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '俄罗斯') {
                    xDate = ['西北联邦', '中央联邦', '南方联邦', '伏尔加联邦']
                    yDate = [111, 531, 211, 431, 64]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '英国') {
                    xDate = ['英格兰', '威尔士', '苏格兰', '北爱尔兰']
                    yDate = [887, 234, 452, 321, 154]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else if (params.name == '印度') {
                    xDate = ['德里', '哈里亚纳邦', '旁遮普邦', '喜马偕尔邦', '北方邦']
                    yDate = [400, 300, 200, 450, 245]
                    homePersonmyChart.setOption(this.initPersonOptions(xDate, yDate), true)
                } else {
                    this.peopleTitle = params.name
                    this.peopleVisible = true
                }
            })
        },
        clickEquimentChart () {
            equipmentmyChart.on('click', params => {
                this.equimentVisible = true
                this.equimentTitle = params.name
                this.monitorContent = false
                this.othersContent = true
                if (params.name == '摄像头') {
                    this.othersContent = false
                    this.monitorContent = true
                } else if (params.name == '手台') {
                    this.recorderArrShow = false
                    this.carArrShow = false
                    this.phoneArrShow = true
                    this.saveArr = this.phoneArr
                    this.showArr = this.saveArr
                } else if (params.name == '车辆') {
                    this.recorderArrShow = false
                    this.carArrShow = true
                    this.phoneArrShow = false
                    this.saveArr = this.carArr
                    this.showArr = this.saveArr
                } else if (params.name == '执法记录仪') {
                    this.recorderArrShow = true
                    this.carArrShow = false
                    this.phoneArrShow = false
                    this.saveArr = this.recorderArr
                    this.showArr = this.saveArr
                }
            })
        },
        clickLandChart () {
            landMyChart.on('click', params => {
                console.log(params.name)
                this.landVisible = true
                this.landTitle = params.name
                if (this.tabTypeThree == 0) {
                    this.landDetailArr = this.landDetailArr1
                } else {
                    this.landDetailArr = this.landDetailArr2
                }
            })
        },
        actTabClick (type) {
            this.acttype = type
        },
        timeTabClick (type) {
            this.timetype = type
        },
        peopleTabClick (type) {
            this.peopletype = type
        },
        // 修改下拉容器的left
        setDomStyle () {
            const bodyWidth = document.body.clientWidth
            const domWidth = this.$refs.RegionSelect.offsetWidth
            this.$refs.RegionSelect.style.left = (bodyWidth - domWidth) / 2 + 'px'
            this.currentTableHeight = this.$refs.tableBox.offsetHeight
        },
        tableScroll () {
            // 拿到表格挂载后的真实DOM
            const divData = this.$refs.tableBox.querySelector('.el-table__body-wrapper')
            // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果(此配置为每100毫秒移动1像素)
            interTime = setInterval(() => {
                // 元素自增距离顶部1像素
                divData.scrollTop += 1
                // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
                if (divData.clientHeight + divData.scrollTop + 1 > divData.scrollHeight) {
                    // 重置table距离顶部距离
                    divData.scrollTop = 0
                }
            }, 100)
        },
        jurisdictionNodeClick (nodeObj, node, nodeSelf) {
@@ -1861,6 +984,29 @@
            this.currentPage = currentPage
        },
        showpeopledetail (name) {
            this.peopleTitle = name
            this.peopleVisible = true
        },
        showlanddetail (name, arr) {
            this.landVisible = true
            this.landTitle = name
            this.landDetailArr = arr
        },
        showequimentdetail (name, monitor, others, booleans, arr) {
            this.equimentVisible = true
            this.equimentTitle = name
            this.monitorContent = monitor
            this.othersContent = others
            this.recorderArrShow = booleans[0]
            this.carArrShow = booleans[1]
            this.phoneArrShow = booleans[2]
            this.saveArr = arr
            this.showArr = arr
        }
    },
    watch: {},
@@ -1907,7 +1053,6 @@
        document.querySelector('.dc-container .dc-location-bar').classList.remove('homebottom')
        document.querySelector('.screen-full-btn').classList.remove('homebottom')
        window.removeEventListener('resize', this.setDomStyle)
        clearInterval(interTime)
    },
}
</script>
@@ -1928,42 +1073,6 @@
        width: 21%;
        height: calc(100% - 80px);
        background: $bg-color;
        .person-box {
            height: 35%;
            .peopleTap {
                color: rgb(98, 95, 95);
                cursor: pointer;
            }
            .peopleTap:hover {
                text-decoration: underline;
            }
            .choosed {
                color: #fff;
            }
            .peopleNum {
                color: rgb(98, 95, 95);
                font-size: 14px;
            }
            .word {
                color: #fff;
                font-size: 14px;
            }
            .before {
                margin-left: 108px;
            }
            .peopleTable {
                height: 100%;
                overflow: hidden;
            }
        }
        .house-box {
            height: 30%;
        }
        .land-box {
            height: 35%;
        }
    }
    .right-container {
@@ -1973,117 +1082,7 @@
        width: 21%;
        height: calc(100% - 80px);
        background: $bg-color;
        .case-box {
            height: 30%;
        }
        .alert-box,
        .crowd-box {
            height: 35%;
            .echarts-box {
                overflow-x: hidden;
                overflow-y: auto;
            }
        }
    }
    .left-container,
    .right-container {
        .person-box,
        .house-box,
        .land-box,
        .case-box,
        .alert-box,
        .crowd-box {
            display: flex;
            flex-direction: column;
            padding: 0 10px;
            .title {
                padding: 0 18px;
                position: relative;
                text-align: left;
                height: 40px;
                line-height: 40px;
                font-size: 20px;
                i {
                    position: absolute;
                    top: 6px;
                    left: 0;
                    width: 8px;
                    height: 28px;
                    border-radius: 4px;
                    background: #43bafe;
                    box-shadow: 0px 0px 8px 2px #43bafe;
                }
                .timer {
                    width: 250px;
                    height: 30px;
                    float: right;
                }
                .regionTotal {
                    color: #fff;
                    font-size: 22px;
                    font-weight: 700;
                    margin-left: 50%;
                    letter-spacing: 1px;
                }
                .activity {
                    font-size: 16px;
                    color: rgb(98, 95, 95);
                    cursor: pointer;
                }
                .activity:hover {
                    text-decoration: underline;
                }
                .choosed {
                    color: #fff;
                }
            }
            .sub-title {
                display: flex;
                justify-content: space-between;
                height: 36px;
            }
            .sub-tab {
                display: flex;
                .tab {
                    margin: 0 10px;
                    flex: 1;
                    background: rgba(29, 38, 105, 1);
                    border: 1px solid rgba(20, 50, 123, 1);
                    cursor: pointer;
                    & > div {
                        height: 26px;
                        line-height: 26px;
                    }
                }
                .tab.on {
                    border: 1px solid rgb(3, 108, 255);
                }
            }
            .echarts-box {
                flex: 1;
            }
            .sub-tab + .echarts-box {
                margin-top: 10px;
            }
            #peopleList {
                height: 100%;
            }
        }
    }
    .center-container {
        display: flex;
        position: fixed;
@@ -2199,69 +1198,6 @@
        width: 58%;
        background-color: $bg-color;
        box-sizing: border-box;
        .header {
            width: 100%;
            height: 36px;
            .bottomTitle {
                display: flex;
                float: left;
                width: 34%;
                margin-left: 33%;
                height: 36px;
                line-height: 36px;
                color: #fff;
                text-align: center;
                .leftBor {
                    width: 0px;
                    height: 0px;
                    border: 18px solid #3366e2;
                    border-bottom-color: transparent;
                    border-left-color: transparent;
                }
                .rightBor {
                    width: 0px;
                    height: 0px;
                    border: 18px solid #3366e2;
                    border-bottom-color: transparent;
                    border-right-color: transparent;
                }
                .topName {
                    width: calc(100% - 48px);
                    background-color: #3366e2;
                    letter-spacing: 2px;
                }
            }
            .timeTab {
                float: right;
                width: 20%;
                height: 36px;
                line-height: 36px;
                .beforetime {
                    color: rgb(98, 95, 95);
                    cursor: pointer;
                }
                .beforetime:hover {
                    text-decoration: underline;
                }
                .choosed {
                    color: #fff;
                }
            }
        }
        .body {
            margin: 10px;
            width: calc(100% - 20px);
            height: calc(100% - 56px);
            /* 解决自定义滚动条 x 轴显示问题 */
        }
    }
    .region-select {