guanqb
2022-12-01 9c2a1e73d5183a6609477a7fc22271ba620835a2
活动线面警员添加刷新
3 files modified
454 ■■■■■ changed files
src/components/map/index.vue 15 ●●●●● patch | view | raw | blame | history
src/views/activity/index.vue 60 ●●●● patch | view | raw | blame | history
src/views/home/index.vue 379 ●●●●● patch | view | raw | blame | history
src/components/map/index.vue
@@ -292,14 +292,14 @@
        this.$EventBus.$on('layerPolygonAdd', (params) => {
            if ('polygonName' in params) {
                that.layerPolygonAdd(params.layerName, params.positions, params.material, params.distanceDisplayCondition, params.polygonName)
                that.layerPolygonAdd(params.layerName, params.positions, params.material, params.distanceDisplayCondition, params.polygonName, params.params, params.incident)
            } else {
                that.layerPolygonAdd(params.layerName, params.positions, params.material, params.distanceDisplayCondition, 'polygon')
                that.layerPolygonAdd(params.layerName, params.positions, params.material, params.distanceDisplayCondition, 'polygon', params.params, params.incident)
            }
        })
        this.$EventBus.$on('layerPolylineAdd', (params) => {
            that.layerPolylineAdd(params.layerName, params.positions, params.material, params.width)
            that.layerPolylineAdd(params.layerName, params.positions, params.material, params.width, params.params, params.incident)
        })
        this.$EventBus.$on('layerShow', (params) => {
@@ -512,7 +512,7 @@
         * @param {*} material 颜色
         * @param {*} distanceDisplayCondition 可见距离
         */
        layerPolygonAdd (layerName, positions, material, distanceDisplayCondition, polygonName) {
        layerPolygonAdd (layerName, positions, material, distanceDisplayCondition, polygonName, params, incident = (e) => { }) {
            if (!layersObjcect[layerName] || layersObjcect[layerName] == null) {
                this.mapAddLayer(layerName, 'VectorLayer')
@@ -528,6 +528,8 @@
                perPositionHeight: true,
            })
            // layersObjcect[layerName].addOverlay(polygon)
            polygonObj[polygonName].attrParams = params
            polygonObj[polygonName].on(global.DC.MouseEventType.CLICK, incident)
            layersObjcect[layerName].addOverlay(polygonObj[polygonName])
        },
@@ -538,7 +540,7 @@
         * @param {*} material 颜色
         * @param {*} width 宽度
         */
        layerPolylineAdd (layerName, positions, material, width) {
        layerPolylineAdd (layerName, positions, material, width, params, incident = (e) => { }) {
            if (!layersObjcect[layerName] || layersObjcect[layerName] == null) {
                this.mapAddLayer(layerName, 'VectorLayer')
@@ -552,6 +554,9 @@
                material: material,
                clampToGround: false
            })
            polyline.attrParams = params
            polyline.on(global.DC.MouseEventType.CLICK, incident)
            layersObjcect[layerName].addOverlay(polyline)
        },
src/views/activity/index.vue
@@ -512,11 +512,33 @@
            getSecurityPoliceList(securityId).then(res => {
                res.data.data.forEach(item => {
                    if (item.type == 1) {
                        console.log()
                        let positionNewArr = this.convertPolylineOrPolygonPositionDate(item.position, item.type)
                        this.$EventBus.$emit('layerPolylineAdd', {
                            layerName: 'newDrawLayers',
                            positions: positionNewArr,
                            material: global.DC.Color.RED,
                            width: 4,
                            params: {
                                id: item.id,
                                policemanId: item.policemanId
                            },
                            incident: this.overlayTypeClick
                        })
                    } else if (item.type == 2) {
                        console.log()
                        let positionNewArr = this.convertPolylineOrPolygonPositionDate(item.position, item.type)
                        this.$EventBus.$emit('layerPolygonAdd', {
                            layerName: 'polygonLayer',
                            positions: positionNewArr,
                            material: global.DC.Color.RED,
                            params: {
                                id: item.id,
                                policemanId: item.policemanId
                            },
                            incident: this.overlayTypeClick
                        })
                    } else if (item.type == 3) {
                        let positionObj = this.convertPositionDate(item.position, 'police', item.id, item.policemanId)
                        let positionObj = this.convertBillboardPositionDate(item.position, 'police', item.id, item.policemanId)
                        this.$EventBus.$emit('layerPointAdd', {
                            layerName: 'newDrawLayers',
                            type: 'billboard',
@@ -556,6 +578,8 @@
        // 修改活动警员
        updateActivityPolice (id, policemanId) {
            updateActivityPolice(id, policemanId).then(res => {
                console.log(id, policemanId, '触发了更新', res)
                this.getSecurityPoliceList(this.showingSecurityId)
            })
        },
@@ -570,7 +594,7 @@
        // 添加活动图标
        addActivityPoint () {
            this.activityList.forEach(item => {
                let positionObj = this.convertPositionDate(item.position, 'activity')
                let positionObj = this.convertBillboardPositionDate(item.position, 'activity')
                this.$EventBus.$emit('layerPointAdd', {
                    layerName: 'activityLayers',
                    type: "billboard",
@@ -588,8 +612,8 @@
            })
        },
        // 转换坐标数据
        convertPositionDate (data, iconName, plotId, policemanId) {
        // 转换 点 坐标数据
        convertBillboardPositionDate (data, iconName, plotId, policemanId) {
            let positionStr = data
            positionStr = data.slice(6, positionStr.length - 1)
            let positionArr = positionStr.split(" ")
@@ -600,6 +624,21 @@
                positionObj = { lng: `${positionArr[0]}`, lat: `${positionArr[1]}`, alt: 100, url: '/img/policeIcon.png', id: plotId, policemanId: policemanId }
            }
            return positionObj
        },
        // 转换 线面 坐标数据
        convertPolylineOrPolygonPositionDate (data, type) {
            let positionStr = data.slice(11, data.length - 1)
            let positionArr = positionStr.split(',')
            let positionNewArr = ''
            positionArr.forEach(item => {
                if (type == 1) {
                    positionNewArr += item.split(' ')[0] + ',' + item.split(' ')[1] + ';'
                } else {
                    positionNewArr += item.split(' ')[0] + ',' + item.split(' ')[1] + ',' + 0 + ';'
                }
            })
            return positionNewArr
        },
        // 树形控件选中事件
@@ -660,7 +699,7 @@
                analyseLayer.clear()
            }
            let positionObj = this.convertPositionDate(item.position, 'activity')
            let positionObj = this.convertBillboardPositionDate(item.position, 'activity')
            let point = new global.DC.Point(`${positionObj.lng}, ${positionObj.lat}`)
            analyseLayer.addOverlay(point)
@@ -818,18 +857,19 @@
            this.policeIconIsCreated = false
            this.policeChooseVisible = false
            this.overlayObj2 = {}
            this.removeAll()
        },
        // 选择警员关闭
        policeChooseBeforeClose () {
            this.policeChooseVisible = false
            this.policeIconIsCreated = false
            this.removeAll()
        },
        // 选择警员确认按钮
        determine () {
            if (!this.policeIconIsCreated) {
                console.log('第一次点击确定!')
                let type = ''
                let position = ''
                if (this.overlayObj.drawType == 'billboard') {
@@ -854,8 +894,6 @@
                this.policeChooseVisible = false
                this.policeIconIsCreated = false
            } else {
                console.log('第二+次点击确定!')
                console.log(this.policeIconId)
                this.updateActivityPolice(this.policeIconId, this.policeType)
                this.policeChooseVisible = false
                this.policeIconIsCreated = false
@@ -864,9 +902,11 @@
        // 地图绘制元素点击事件
        overlayTypeClick (e) {
            console.log('点击了元素', e.overlay.attrParams)
            this.policeIconIsCreated = true
            this.policeIconId = e.overlay.attrParams.id
            this.policeType = e.overlay.attrParams.policemanId
            console.log(this.policeIconId, this.policeType)
            this.policeChooseVisible = true
        }
    },
src/views/home/index.vue
@@ -11,18 +11,31 @@
<template>
    <div class="container">
        <left-container class="left-container" @showpeopledetail="showpeopledetail" @showlanddetail="showlanddetail"
            @showkeypersondetail="showkeypersondetail" ref="leftContainer"></left-container>
        <left-container
            class="left-container"
            @showpeopledetail="showpeopledetail"
            @showlanddetail="showlanddetail"
            @showkeypersondetail="showkeypersondetail"
            ref="leftContainer"
        ></left-container>
        <right-container class="right-container" @showequimentdetail="showequimentdetail"
            @selectPoliceChangeEventData="selectPoliceChangeEventData" @changeActivityType="changeActivityType"
            @activityChange="activityChange" ref="rightContainer"></right-container>
        <right-container
            class="right-container"
            @showequimentdetail="showequimentdetail"
            @selectPoliceChangeEventData="selectPoliceChangeEventData"
            @changeActivityType="changeActivityType"
            @activityChange="activityChange"
            ref="rightContainer"
        ></right-container>
        <bottom-container class="bottom-container" ref="bottomContainer"
        <bottom-container
            class="bottom-container"
            ref="bottomContainer"
            @changePoliceSituationHistoryType="changePoliceSituationHistoryType"
            @changePoliceSituationTimeType="changePoliceSituationTimeType"
            @policeSituationChange="policeSituationChange" @policeSituationSiteClick="policeSituationSiteClick">
        </bottom-container>
            @policeSituationChange="policeSituationChange"
            @policeSituationSiteClick="policeSituationSiteClick"
        ></bottom-container>
        <div class="center-container">
            <div class="layers-control-btn house">
@@ -49,30 +62,69 @@
        </div>
        <div ref="RegionSelect" style="left: 0;" class="region-select">
            <map-select class="map-select" @selectCheck="policeStationSelect" :checkValue="policeStationCheckValue"
                :options="policeStationOptions" :optionsName="'policeStationName'"></map-select>
            <map-select
                class="map-select"
                @selectCheck="policeStationSelect"
                :checkValue="policeStationCheckValue"
                :options="policeStationOptions"
                :optionsName="'policeStationName'"
            ></map-select>
            <map-select class="map-select" @selectCheck="areaSelect" :checkValue="areaCheckValue" :options="areaOptions"
                :optionsName="'areaCheckName'"></map-select>
            <map-select
                class="map-select"
                @selectCheck="areaSelect"
                :checkValue="areaCheckValue"
                :options="areaOptions"
                :optionsName="'areaCheckName'"
            ></map-select>
            <map-select class="map-select" @selectCheck="housingSelect" :checkValue="housingCheckValue"
                :options="housingOptions" :optionsName="'housingsName'"></map-select>
            <map-select
                class="map-select"
                @selectCheck="housingSelect"
                :checkValue="housingCheckValue"
                :options="housingOptions"
                :optionsName="'housingsName'"
            ></map-select>
        </div>
        <el-dialog :title="dialogTitle" :modal="true" :visible.sync="dialogVisible" :before-close="dialogBeforeClose"
            :close-on-click-modal="true">
            <video src="/video/sp.mp4" autoplay controls width="100%" height="100%" ref="videoElement"
                style="object-fit: fill"></video>
        <el-dialog
            :title="dialogTitle"
            :modal="true"
            :visible.sync="dialogVisible"
            :before-close="dialogBeforeClose"
            :close-on-click-modal="true"
        >
            <video
                src="/video/sp.mp4"
                autoplay
                controls
                width="100%"
                height="100%"
                ref="videoElement"
                style="object-fit: fill"
            ></video>
        </el-dialog>
        <el-dialog :title="panoramaTitle" :modal="true" :visible.sync="panoramaVisible"
            :before-close="panoramaBeforeClose" :close-on-click-modal="true" class="panorama-details-box">
<!--            <iframe src="http://vr.jxpskj.com/JXSFKZQJ/QJ/" style="width: 100%; height: 100%;" frameborder="0"></iframe>-->
          <iframe :src="panoramaVrUrl" style="width: 100%; height: 100%;" frameborder="0"/>
        <el-dialog
            :title="panoramaTitle"
            :modal="true"
            :visible.sync="panoramaVisible"
            :before-close="panoramaBeforeClose"
            :close-on-click-modal="true"
            class="panorama-details-box"
        >
            <!--            <iframe src="http://vr.jxpskj.com/JXSFKZQJ/QJ/" style="width: 100%; height: 100%;" frameborder="0"></iframe>-->
            <iframe :src="panoramaVrUrl" style="width: 100%; height: 100%;" frameborder="0" />
        </el-dialog>
        <el-dialog :title="activityTitle" :modal="true" :visible.sync="activityVisible"
            :before-close="activityBeforeClose" :close-on-click-modal="true" class="activity-details-box">
        <el-dialog
            :title="activityTitle"
            :modal="true"
            :visible.sync="activityVisible"
            :before-close="activityBeforeClose"
            :close-on-click-modal="true"
            class="activity-details-box"
        >
            <div class="item">
                <div>活动名称:</div>
                <div>{{ activityDetailArr.activityName }}</div>
@@ -107,8 +159,14 @@
            </div>
        </el-dialog>
        <el-dialog :title="phoneTitle" :modal="true" :visible.sync="phoneVisible" :before-close="phoneBeforeClose"
            :close-on-click-modal="true" class="phone-details-box">
        <el-dialog
            :title="phoneTitle"
            :modal="true"
            :visible.sync="phoneVisible"
            :before-close="phoneBeforeClose"
            :close-on-click-modal="true"
            class="phone-details-box"
        >
            <div class="item">
                <div>责任人:</div>
                <div>{{ phoneDetails.person }}</div>
@@ -127,8 +185,14 @@
            </div>
        </el-dialog>
        <el-dialog :title="peopleTitle" :modal="true" :visible.sync="peopleVisible" :before-close="peopleBeforeClose"
            :close-on-click-modal="true" class="area-details-box">
        <el-dialog
            :title="peopleTitle"
            :modal="true"
            :visible.sync="peopleVisible"
            :before-close="peopleBeforeClose"
            :close-on-click-modal="true"
            class="area-details-box"
        >
            <div class="item">
                <div>责任区负责人:</div>
                <div>王某某</div>
@@ -147,30 +211,58 @@
            </div>
        </el-dialog>
        <el-dialog :title="equimentTitle" :modal="true" :visible.sync="equimentVisible"
            :before-close="equimentBeforeClose" :close-on-click-modal="true" class="equiment-details-box">
        <el-dialog
            :title="equimentTitle"
            :modal="true"
            :visible.sync="equimentVisible"
            :before-close="equimentBeforeClose"
            :close-on-click-modal="true"
            class="equiment-details-box"
        >
            <div class="equiment-detail">
                <div class="left">
                    <el-tree :data="jurisdictionData" :props="defaultProps" @node-click="jurisdictionNodeClick"
                        ref="tree" node-key="id"></el-tree>
                    <el-tree
                        :data="jurisdictionData"
                        :props="defaultProps"
                        @node-click="jurisdictionNodeClick"
                        ref="tree"
                        node-key="id"
                    ></el-tree>
                </div>
                <div class="right">
                    <div class="monitor" v-if="monitorContent">
                        <video src="/video/sp.mp4" autoplay controls width="100%" height="100%" ref="videoElement"
                            style="object-fit: fill"></video>
                        <video
                            src="/video/sp.mp4"
                            autoplay
                            controls
                            width="100%"
                            height="100%"
                            ref="videoElement"
                            style="object-fit: fill"
                        ></video>
                    </div>
                    <div class="others" v-if="othersContent">
                        <el-table :data="showArr.slice((currentPage - 1) * pagesize, currentPage * pagesize)"
                        <el-table
                            :data="showArr.slice((currentPage - 1) * pagesize, currentPage * pagesize)"
                            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">
                            :row-class-name="tableRowClassName"
                        >
                            <el-table-column prop="carID" label="车牌号" v-if="carArrShow"></el-table-column>
                            <el-table-column prop="carType" label="车型" v-if="carArrShow"></el-table-column>
                            <el-table-column prop="phoneID" label="手台号" v-if="phoneArrShow"></el-table-column>
                            <el-table-column prop="phoneType" label="手台机型" v-if="phoneArrShow"></el-table-column>
                            <el-table-column prop="recorderID" label="执法记录仪号" v-if="recorderArrShow"></el-table-column>
                            <el-table-column prop="recorderType" label="记录仪机型" v-if="recorderArrShow"></el-table-column>
                            <el-table-column
                                prop="recorderID"
                                label="执法记录仪号"
                                v-if="recorderArrShow"
                            ></el-table-column>
                            <el-table-column
                                prop="recorderType"
                                label="记录仪机型"
                                v-if="recorderArrShow"
                            ></el-table-column>
                            <el-table-column prop="id" label="设备号" v-if="stateArrShow"></el-table-column>
                            <el-table-column prop="equimentType" label="设备类型" v-if="stateArrShow"></el-table-column>
                            <el-table-column prop="policeStation" label="所属派出所"></el-table-column>
@@ -178,20 +270,35 @@
                            <el-table-column prop="state" label="状态"></el-table-column>
                        </el-table>
                        <div class="pages">
                            <el-pagination background layout="prev, pager, next" :total="showArr.length"
                                :page-size="pagesize" pager-count="3" :current-page="currentPage"
                                @current-change="handleCurrentChange"></el-pagination>
                            <el-pagination
                                background
                                layout="prev, pager, next"
                                :total="showArr.length"
                                :page-size="pagesize"
                                pager-count="3"
                                :current-page="currentPage"
                                @current-change="handleCurrentChange"
                            ></el-pagination>
                        </div>
                    </div>
                </div>
            </div>
        </el-dialog>
        <el-dialog :title="landTitle" :modal="true" :visible.sync="landVisible" :before-close="landBeforeClose"
            :close-on-click-modal="true" class="land-details-box">
            <el-table :data="landDetailArr" style="width: 100%"
        <el-dialog
            :title="landTitle"
            :modal="true"
            :visible.sync="landVisible"
            :before-close="landBeforeClose"
            :close-on-click-modal="true"
            class="land-details-box"
        >
            <el-table
                :data="landDetailArr"
                style="width: 100%"
                :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }"
                :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75', 'cursor': 'pointer' }">
                :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75', 'cursor': 'pointer' }"
            >
                <el-table-column prop="housingEastate" label="小区名称" width="100"></el-table-column>
                <el-table-column prop="location" label="位置" width="140"></el-table-column>
                <el-table-column prop="area" label="面积" width="120"></el-table-column>
@@ -200,11 +307,20 @@
            </el-table>
        </el-dialog>
        <el-dialog :title="keyPersonTitle" :modal="true" :visible.sync="keyPersonVisible"
            :before-close="keyPersonBeforeClose" :close-on-click-modal="true" class="keyPerson-details-box">
            <el-table :data="keyPersonDetailArr" style="width: 100%"
        <el-dialog
            :title="keyPersonTitle"
            :modal="true"
            :visible.sync="keyPersonVisible"
            :before-close="keyPersonBeforeClose"
            :close-on-click-modal="true"
            class="keyPerson-details-box"
        >
            <el-table
                :data="keyPersonDetailArr"
                style="width: 100%"
                :header-cell-style="{ 'text-align': 'center', 'background-color': '#203c60', 'borderColor': '#324e75' }"
                :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75', 'cursor': 'pointer' }">
                :cell-style="{ 'text-align': 'center', 'borderColor': '#324e75', 'cursor': 'pointer' }"
            >
                <el-table-column prop="type" label="重点人员类型"></el-table-column>
                <el-table-column prop="name" label="姓名"></el-table-column>
                <el-table-column prop="sex" label="性别"></el-table-column>
@@ -215,8 +331,14 @@
            </el-table>
        </el-dialog>
        <el-dialog :title="policeSituationTitle" :modal="true" :visible.sync="policeSituationVisible"
            :before-close="policeSituationBeforeClose" :close-on-click-modal="true" class="policeSituation-details-box">
        <el-dialog
            :title="policeSituationTitle"
            :modal="true"
            :visible.sync="policeSituationVisible"
            :before-close="policeSituationBeforeClose"
            :close-on-click-modal="true"
            class="policeSituation-details-box"
        >
            <div class="item">
                <div>所属派出所:</div>
                <div>{{ policeSituationDetailArr.policeName }}</div>
@@ -258,7 +380,7 @@
</template>
<script>
import {getPanoramaList} from "@/api/panorama";
import { getPanoramaList } from "@/api/panorama"
let cylinderLayer = null
let circleLayer = null
@@ -371,8 +493,8 @@
import underwayArr from '@/assets/data/activitysData/underway.js'
import realtimeArr from '@/assets/data/policeSituationArr/realtimeArr.js'
import policeSituationHistoryArr from '@/assets/data/policeSituationArr/historyArr.js'
import {getPoliceStationList} from "@/api/dept";
import {convertStringToList} from "@/utils/geometryStringTool";
import { getPoliceStationList } from "@/api/dept"
import { convertStringToList } from "@/utils/geometryStringTool"
export default {
    data () {
@@ -387,7 +509,7 @@
            dialogTitle: '',
            dialogVisible: false,
            panoramaTitle: '',
            panoramaVrUrl:'',
            panoramaVrUrl: '',
            activityTitle: '',
            equimentTitle: '',
            keyPersonTitle: '',
@@ -527,11 +649,11 @@
        this.underwayArr = underwayArr
        this.policeSituationRealtimeArr = realtimeArr
        this.policeSituationHistoryArr = policeSituationHistoryArr
        this.getPanoramaList();
        this.getPanoramaList()
    },
    mounted () {
      this.$nextTick(() => {
        this.$nextTick(() => {
            this.initPoliceStationLayer()
            circleLayer = new global.DC.VectorLayer('circleLayer')
            global.viewer.addLayer(circleLayer)
@@ -550,28 +672,28 @@
        window.addEventListener('resize', this.setDomStyle)
    },
    watch:{
      "policeStationOptions":{
        handler(newVal){
          this.$nextTick(() => {
            this.initPoliceStationLayer()
            circleLayer = new global.DC.VectorLayer('circleLayer')
            global.viewer.addLayer(circleLayer)
    watch: {
        "policeStationOptions": {
            handler (newVal) {
                this.$nextTick(() => {
                    this.initPoliceStationLayer()
                    circleLayer = new global.DC.VectorLayer('circleLayer')
                    global.viewer.addLayer(circleLayer)
            document.querySelector('.dc-container .dc-zoom-controller').classList.add('homebottom')
            document.querySelector('.dc-container .dc-location-bar').classList.add('homebottom')
            document.querySelector('.screen-full-btn').classList.add('homebottom')
            document.querySelector('.image-switch-icon-btn').classList.add('iconbottom')
            document.querySelector('.image-switch-img-btn').classList.add('imgbottom')
            this.setDomStyle()
          })
          // axios.get('/user/getUserList').then((res) => {
          //     console.log(res, 999)
          // }}
                    document.querySelector('.dc-container .dc-zoom-controller').classList.add('homebottom')
                    document.querySelector('.dc-container .dc-location-bar').classList.add('homebottom')
                    document.querySelector('.screen-full-btn').classList.add('homebottom')
                    document.querySelector('.image-switch-icon-btn').classList.add('iconbottom')
                    document.querySelector('.image-switch-img-btn').classList.add('imgbottom')
                    this.setDomStyle()
                })
                // axios.get('/user/getUserList').then((res) => {
                //     console.log(res, 999)
                // }}
          window.addEventListener('resize', this.setDomStyle)
                window.addEventListener('resize', this.setDomStyle)
            }
        }
      }
    },
    methods: {
@@ -976,6 +1098,7 @@
                    item.position.forEach(it => {
                        str = str + `${it[0]},${it[1]},${it[2]};`
                    })
                    console.log('str', str)
                    this.$EventBus.$emit('layerPolygonAdd', {
                        layerName: 'polygonLayer',
                        positions: str,
@@ -1373,62 +1496,62 @@
        /**
         * 获取所有全景数据
         */
        getPanoramaList(){
          getPanoramaList().then(res=>{
            if (res.data.code == 200){
              let data = res.data.data
              data.forEach(e=>{
                e.lng = e.longitude
                e.lat = e.latitude
                e.alt = 100
                e.url = '/img/icon/map-panorama.png'
              })
              this.panoramaList = data
            }
          })
        getPanoramaList () {
            getPanoramaList().then(res => {
                if (res.data.code == 200) {
                    let data = res.data.data
                    data.forEach(e => {
                        e.lng = e.longitude
                        e.lat = e.latitude
                        e.alt = 100
                        e.url = '/img/icon/map-panorama.png'
                    })
                    this.panoramaList = data
                }
            })
        },
        /**
         * 获取派出所和责任区数据
         */
        getPoliceStationList(){
            getPoliceStationList().then(res=>{
              if (res.data.code == 200){
                let data = res.data.data
                data.forEach(policeStation=>{
                  //派出所数据匹配
                  policeStation.policeStationName= policeStation.deptName
                  policeStation.policeStationId =  policeStation.id
                  policeStation.position = convertStringToList(policeStation.positionString)
                  if (policeStation.children&&policeStation.children.length>0){
                    //责任区数据匹配
                    policeStation.areaCheckOptions = policeStation.children
                    policeStation.areaCheckOptions.forEach(child=>{
                      child.policeStationId = child.parentId
                      child.areaCheckId = child.id
                      child.areaCheckName = child.deptName
                      child.position = convertStringToList(child.positionString)
                      //小区数据匹配
                      if (child.housingArr && child.housingArr.length>0){
                        child.housingArr.forEach(community=>{
                          community.policeStationId =policeStation.id
                          community.areaCheckId = child.id
                          community.housingsId=community.id
                          community.housingsName = community.name
                          community.position = convertStringToList(community.position)
                        })
                        child.housingArr.unshift({housingsName: '全部'})
                      }
        getPoliceStationList () {
            getPoliceStationList().then(res => {
                if (res.data.code == 200) {
                    let data = res.data.data
                    data.forEach(policeStation => {
                        //派出所数据匹配
                        policeStation.policeStationName = policeStation.deptName
                        policeStation.policeStationId = policeStation.id
                        policeStation.position = convertStringToList(policeStation.positionString)
                        if (policeStation.children && policeStation.children.length > 0) {
                            //责任区数据匹配
                            policeStation.areaCheckOptions = policeStation.children
                            policeStation.areaCheckOptions.forEach(child => {
                                child.policeStationId = child.parentId
                                child.areaCheckId = child.id
                                child.areaCheckName = child.deptName
                                child.position = convertStringToList(child.positionString)
                                //小区数据匹配
                                if (child.housingArr && child.housingArr.length > 0) {
                                    child.housingArr.forEach(community => {
                                        community.policeStationId = policeStation.id
                                        community.areaCheckId = child.id
                                        community.housingsId = community.id
                                        community.housingsName = community.name
                                        community.position = convertStringToList(community.position)
                                    })
                                    child.housingArr.unshift({ housingsName: '全部' })
                                }
                            })
                            policeStation.areaCheckOptions.unshift({ areaCheckName: '全部' })
                            policeStation.areaOptionArr = policeStation.areaCheckOptions
                        }
                    })
                    policeStation.areaCheckOptions.unshift({areaCheckName: '全部'})
                    policeStation.areaOptionArr = policeStation.areaCheckOptions
                  }
                })
                data.unshift({policeStationName: '全部'})
                this.policeStationOptions = data
                this.areaOptionData = data
                this.housingDate = data
              }
                    data.unshift({ policeStationName: '全部' })
                    this.policeStationOptions = data
                    this.areaOptionData = data
                    this.housingDate = data
                }
            })
        }
@@ -1684,7 +1807,9 @@
                background-color: #66b1ff87;
            }
            :deep(.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content) {
            :deep(.el-tree--highlight-current
                    .el-tree-node.is-current
                    > .el-tree-node__content) {
                background: #454545;
            }