From 85fb13abbeadc1765d2c0056ba99c6c19aa35dfd Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Sun, 09 Apr 2023 03:44:49 +0800
Subject: [PATCH] 电子沙盘的调整

---
 src/views/activity/components/publicIndex.vue |   53 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 38 insertions(+), 15 deletions(-)

diff --git a/src/views/activity/components/publicIndex.vue b/src/views/activity/components/publicIndex.vue
index 576c20d..8a3f6e1 100644
--- a/src/views/activity/components/publicIndex.vue
+++ b/src/views/activity/components/publicIndex.vue
@@ -321,6 +321,7 @@
                 this.$parent.normalPeopleList = res.data.data.filter(item => item.type == 6)
                 this.$parent.protectedPeopleList = res.data.data.filter(item => item.type == 7)
                 this.$parent.dangerousPeopleList = res.data.data.filter(item => item.type == 8)
+                this.$parent.customList = res.data.data.filter(item => item.type == 11)
 
                 // 作战标绘
                 this.$parent.attackArrowList = res.data.data.filter(item => item.type == 1)
@@ -331,11 +332,11 @@
                 this.$parent.borkenList = res.data.data.filter(item => item.type == 10)
 
                 this.isHaveArrow = res.data.data.some(item => {
-                    return item.type != 6 && item.type != 7 && item.type != 8
+                    return item.type != 6 && item.type != 7 && item.type != 8 && item.type != 11
                 })
 
                 this.isHavePointDraw = res.data.data.some(item => {
-                    return item.type == 6 || item.type == 7 || item.type == 8
+                    return item.type == 6 || item.type == 7 || item.type == 8 || item.type == 11
                 })
 
                 let allData = res.data.data
@@ -363,13 +364,20 @@
                     } else if (item.type == 5) {
                         this.initLayersCoverage('Polygon', color, item, position, altitude)
                         continue
-                    } else if (item.type == 6 || item.type == 7 || item.type == 8) {
+                    } else if (item.type == 6 || item.type == 7 || item.type == 8 || item.type == 11) {
                         let iconImgName = item.type == 6 ? 'ptqz' : item.type == 7 ? 'bhdx' : 'wxrw'
+                        let icon = ''
+
+                        if (item.type == 11) {
+                            icon = item.iconUrl
+                        } else {
+                            icon = `/img/icon/${iconImgName}.png`
+                        }
 
                         const height = item.altitude.split(',')
                         position = position.split(';')[0].split(',')
 
-                        let chooseArrow = new global.DC.Billboard(new global.DC.Position(Number(position[0]), Number(position[1]), Number(height[0])), `/img/icon/${iconImgName}.png`)
+                        let chooseArrow = new global.DC.Billboard(new global.DC.Position(Number(position[0]), Number(position[1]), Number(height[0])), icon)
                         chooseArrow.customType = 'billboard'
                         chooseArrow.setStyle({
                             color: color.curColor,
@@ -377,6 +385,8 @@
                         chooseArrow.attrParams = { id: item.id, color: item.color, item }
                         chooseArrow.size = [32, 32]
                         chooseArrow.on(global.DC.MouseEventType.CLICK, this.reeditArrowClick)
+                        chooseArrow.on(global.DC.MouseEventType.MOUSE_OVER, this.pointMouseOver)
+                        chooseArrow.on(global.DC.MouseEventType.MOUSE_OUT, this.pointMouseOut)
                         pointCircleCarLayer.addOverlay(chooseArrow)
                     } else if (item.type == 10) {
                         this.initLayersCoverage('Polyline', color, item, position, altitude)
@@ -406,7 +416,7 @@
         },
 
         initLayersCoverage (type, color, params, position, altitude) {
-            if (altitude.length) position = position.split(';').map((item, index) => `${item},${altitude[index]}`).join(';')
+            if (altitude && altitude.length) position = position.split(';').map((item, index) => `${item},${altitude[index]}`).join(';')
             let coverage = new global.DC[type](position)
 
             if (type == 'Polygon') {
@@ -442,6 +452,7 @@
             }
             coverage.attrParams = { id: params.id, color: params.color, item: params }
             coverage.on(global.DC.MouseEventType.CLICK, this.reeditArrowClick)
+
             arrowsListLayer.addOverlay(coverage)
 
             return coverage
@@ -533,17 +544,29 @@
         pointMouseOver (e) {
             this.$store.commit('SET_ACTIVITYPOLICEPOPUP', true)
             let hoverData = {}
-            if ('carId' in e.overlay.attrParams.data) {
-                hoverData = policecarOption.filter(item => item.value == e.overlay.attrParams.data.carId)[0]
-                hoverData.policeData = { 'name': 'none' }
-                hoverData.policeStationName = 'none'
+
+            hoverData.billboard = false
+
+            if (e.overlay.attrParams.item.type == 6 || e.overlay.attrParams.item.type == 7 || e.overlay.attrParams.item.type == 8 || e.overlay.attrParams.item.type == 11) {
+                hoverData.billboard = true
             } else {
-                let policeArr = this.filterTree(this.policeTreeData)
-                hoverData.policeData = policeArr.filter(item => item.id == e.overlay.attrParams.data.policemanId)[0]
-                hoverData.policeStationName = policeArr.filter(item => item.id == policeArr.filter(item => item.id == e.overlay.attrParams.data.policemanId)[0].parentId)[0].name
-                hoverData.carType = 'none'
-                hoverData.label = 'none'
+                if ('carId' in e.overlay.attrParams.data) {
+                    hoverData = policecarOption.filter(item => item.value == e.overlay.attrParams.data.carId)[0]
+                    hoverData.policeData = { 'name': 'none' }
+                    hoverData.policeStationName = 'none'
+                } else {
+                    let policeArr = this.filterTree(this.policeTreeData)
+                    hoverData.policeData = policeArr.filter(item => item.id == e.overlay.attrParams.data.policemanId)[0]
+                    hoverData.policeStationName = policeArr.filter(item => item.id == policeArr.filter(item => item.id == e.overlay.attrParams.data.policemanId)[0].parentId)[0].name
+                    hoverData.carType = 'none'
+                    hoverData.label = 'none'
+                }
             }
+
+            hoverData.Data = e.overlay.attrParams
+
+            console.log(hoverData, 95999)
+
             this.$store.commit('SET_ACTIVITYPOLICEPOPUPDATA', hoverData)
 
             var popup = new global.DC.DivForms(global.viewer, {
@@ -760,7 +783,7 @@
             let positionArr = positionStr.split(" ")
             let positionObj = {}
             if (iconName == 'activity') {
-                positionObj = { lng: `${positionArr[0]}`, lat: `${positionArr[1]}`, alt: data.altitude, url: '/img/icon/activity.png' }
+                positionObj = { lng: `${positionArr[0]}`, lat: `${positionArr[1]}`, alt: data.altitude, url: '/img/icon/activity.png', data: data }
             } else if (iconName == 'policeman') {
                 positionObj = { lng: `${positionArr[0]}`, lat: `${positionArr[1]}`, alt: data.altitude, url: '/img/icon/police-people.png', data: data }
             } else if (iconName == 'policecar') {

--
Gitblit v1.9.3