shuishen
2022-03-18 bf58722dfd03ea1513f3acc7331d4d4403fca76e
src/components/leftNav/index.vue
@@ -22,11 +22,22 @@
    getTagList
} from '@/api/pc/leftNav/index'
import { mapGetters } from 'vuex'
const LeftNavLayer = {
    leftTagLayer: null,
    leftWayLayer: null,
    leftSceneLayer: null,
    leftMonitorLayer: null,
    leftActivityLayer: null,
    leftAedLayer: null,
    leftParkLayer: null,
    leftComeLayer: null
}
export default {
    name: 'leftNav',
    computed: {
        ...mapGetters([
            'viewer',
            'closeMapClick', // 关闭地图点击,防止新增标签误触
            'addIconsLayerIconPopup' // 传送关闭编辑窗口,刷新标签数据
        ])
@@ -40,7 +51,7 @@
                    img: '/img/leftnav/tag-checked.png',
                    normal: '/img/leftnav/tag.png',
                    checked: '/img/leftnav/tag-checked.png',
                    layer: 'tagLayer'
                    layer: 'leftTagLayer'
                },
                {
                    flag: false,
@@ -48,7 +59,7 @@
                    img: '/img/leftnav/way.png',
                    normal: '/img/leftnav/way.png',
                    checked: '/img/leftnav/way-checked.png',
                    layer: 'wayLayer'
                    layer: 'leftWayLayer'
                },
                {
                    flag: false,
@@ -56,7 +67,7 @@
                    img: '/img/leftnav/scene.png',
                    normal: '/img/leftnav/scene.png',
                    checked: '/img/leftnav/scene-checked.png',
                    layer: 'sceneLayer'
                    layer: 'leftSceneLayer'
                },
                {
                    flag: false,
@@ -64,7 +75,7 @@
                    img: '/img/leftnav/monitor.png',
                    normal: '/img/leftnav/monitor.png',
                    checked: '/img/leftnav/monitor-checked.png',
                    layer: 'monitorLayer'
                    layer: 'leftMonitorLayer'
                },
                // {
                //     flag: false,
@@ -72,7 +83,7 @@
                //     img: '/img/leftnav/activity.png',
                //     normal: '/img/leftnav/activity.png',
                //     checked: '/img/leftnav/activity-checked.png',
                //     layer: 'activityLayer'
                //     layer: 'leftActivityLayer'
                // },
                // {
                //     flag: false,
@@ -80,7 +91,7 @@
                //     img: '/img/leftnav/aed.png',
                //     normal: '/img/leftnav/aed.png',
                //     checked: '/img/leftnav/aed-checked.png',
                //     layer: 'aedLayer'
                //     layer: 'leftAedLayer'
                // },
                {
                    flag: false,
@@ -88,7 +99,7 @@
                    img: '/img/leftnav/park.png',
                    normal: '/img/leftnav/park.png',
                    checked: '/img/leftnav/park-checked.png',
                    layer: 'parkLayer'
                    layer: 'leftParkLayer'
                },
                {
                    flag: false,
@@ -96,25 +107,16 @@
                    img: '/img/leftnav/come.png',
                    normal: '/img/leftnav/come.png',
                    checked: '/img/leftnav/come-checked.png',
                    layer: 'comeLayer'
                    layer: 'leftComeLayer'
                }
            ],
            viewer: null,
            tagLayer: null,
            wayLayer: null,
            sceneLayer: null,
            monitorLayer: null,
            activityLayer: null,
            aedLayer: null,
            parkLayer: null,
            comeLayer: null
            ]
        }
    },
    created () {
    },
    mounted () {
        // 初始化新增标签图层
        // this.$store.commit("createAddIconsLayerIconLayer", { viewer: this.viewer });
        // this.$store.commit("createAddIconsLayerIconLayer", { viewer: global.viewer });
    },
    watch: {
        addIconsLayerIconPopup () {
@@ -126,8 +128,8 @@
    methods: {
        reself () {
            const that = this
            if (this.tagLayer) {
                this.tagLayer.clear()
            if (LeftNavLayer.leftTagLayer) {
                LeftNavLayer.leftTagLayer.clear()
            }
            getTagList().then((res) => {
                res.data.data.forEach((item) => {
@@ -155,9 +157,9 @@
                            item: item
                        })
                    })
                    this.tagLayer.addOverlay(divIcon)
                    LeftNavLayer.leftTagLayer.addOverlay(divIcon)
                    if (!this.leftNavData[0].flag) {
                        this.tagLayer.show = false
                        LeftNavLayer.leftTagLayer.show = false
                    }
                })
            })
@@ -170,13 +172,13 @@
            // 加标签
            this.$store.dispatch('chouseAddIconsLayerIcon', {
                // 新增标签 选定位置
                viewer: this.viewer,
                viewer: global.viewer,
                fn: (lnglat) => {
                    // 返回选定坐标
                    // 添加空白标签
                    this.$store.dispatch('addIconsLayerIcon', {
                        lnglat: lnglat,
                        viewer: this.viewer
                        viewer: global.viewer
                    })
                }
            })
@@ -194,30 +196,36 @@
            item.flag = !item.flag
            if (item.flag == true) {
                item.img = item.checked
                this[item.layer].show = true
                LeftNavLayer[item.layer].show = true
            } else {
                item.img = item.normal
                this[item.layer].show = false
                LeftNavLayer[item.layer].show = false
            }
        },
        initialize (viewer) {
        initialize () {
            var that = this
            viewer.scene.globe.depthTestAgainstTerrain = false
            this.viewer = viewer
            this.tagLayer = new global.DC.HtmlLayer('tagLayer')
            viewer.addLayer(this.tagLayer)
            this.wayLayer = new global.DC.HtmlLayer('wayLayer')
            viewer.addLayer(this.wayLayer)
            this.sceneLayer = new global.DC.HtmlLayer('sceneLayer')
            viewer.addLayer(this.sceneLayer)
            this.monitorLayer = new global.DC.HtmlLayer('monitorLayer')
            viewer.addLayer(this.monitorLayer)
            this.aedLayer = new global.DC.VectorLayer('aedLayer')
            viewer.addLayer(this.aedLayer)
            this.parkLayer = new global.DC.HtmlLayer('parkLayer')
            viewer.addLayer(this.parkLayer)
            this.comeLayer = new global.DC.VectorLayer('comeLayer')
            viewer.addLayer(this.comeLayer)
            global.viewer.scene.globe.depthTestAgainstTerrain = false
            LeftNavLayer.leftTagLayer = new global.DC.HtmlLayer('leftTagLayer')
            global.viewer.addLayer(LeftNavLayer.leftTagLayer)
            LeftNavLayer.leftWayLayer = new global.DC.HtmlLayer('leftWayLayer')
            global.viewer.addLayer(LeftNavLayer.leftWayLayer)
            LeftNavLayer.leftSceneLayer = new global.DC.HtmlLayer('leftSceneLayer')
            global.viewer.addLayer(LeftNavLayer.leftSceneLayer)
            LeftNavLayer.leftMonitorLayer = new global.DC.HtmlLayer('leftMonitorLayer')
            global.viewer.addLayer(LeftNavLayer.leftMonitorLayer)
            LeftNavLayer.leftAedLayer = new global.DC.VectorLayer('leftAedLayer')
            global.viewer.addLayer(LeftNavLayer.leftAedLayer)
            LeftNavLayer.leftParkLayer = new global.DC.HtmlLayer('leftParkLayer')
            global.viewer.addLayer(LeftNavLayer.leftParkLayer)
            LeftNavLayer.leftComeLayer = new global.DC.VectorLayer('leftComeLayer')
            global.viewer.addLayer(LeftNavLayer.leftComeLayer)
            getTagList().then((res) => {
                res.data.data.forEach((item) => {
@@ -246,9 +254,9 @@
                            item: item
                        })
                    })
                    this.tagLayer.addOverlay(divIcon)
                    LeftNavLayer.leftTagLayer.addOverlay(divIcon)
                })
                // this.tagLayer.show = false
                // LeftNavLayer.leftTagLayer.show = false
            })
            getWayList().then((res) => {
@@ -266,9 +274,9 @@
                        </div>
                    `
                    )
                    this.wayLayer.addOverlay(divIcon)
                    LeftNavLayer.leftWayLayer.addOverlay(divIcon)
                })
                this.wayLayer.show = false
                LeftNavLayer.leftWayLayer.show = false
            })
            getMonitorList().then((res) => {
@@ -283,10 +291,10 @@
                        `
                    )
                    divIcon.attrParams = item
                    this.monitorLayer.addOverlay(divIcon)
                    LeftNavLayer.leftMonitorLayer.addOverlay(divIcon)
                    divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
                        that.viewer.flyToPosition(
                        global.viewer.flyToPosition(
                            new global.DC.Position(Number(item.jd), Number(item.wd), Number(300), Number(0), Number(-90), Number(0)),
                            function () { },
                            2
@@ -311,9 +319,9 @@
                                0
                            ])
                        )
                        this.viewer.scene.globe.depthTestAgainstTerrain = false
                        global.viewer.scene.globe.depthTestAgainstTerrain = false
                        // eslint-disable-next-line no-unused-vars
                        var monitor = new global.DC.PanoramaBox(this.viewer, {
                        var monitor = new global.DC.PanoramaBox(global.viewer, {
                            domId: 'MonitorBox',
                            position: [positions]
                        })
@@ -322,7 +330,7 @@
                    })
                })
                this.monitorLayer.show = false
                LeftNavLayer.leftMonitorLayer.show = false
            })
            getSceneList().then((res) => {
@@ -337,10 +345,10 @@
                        `
                    )
                    divIcon.attrParams = item
                    this.sceneLayer.addOverlay(divIcon)
                    LeftNavLayer.leftSceneLayer.addOverlay(divIcon)
                    divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
                        that.viewer.flyToPosition(
                        global.viewer.flyToPosition(
                            new global.DC.Position(Number(item.jd), Number(item.wd), Number(300), Number(0), Number(-90), Number(0)),
                            function () { },
                            2
@@ -368,9 +376,9 @@
                                0
                            ])
                        )
                        this.viewer.scene.globe.depthTestAgainstTerrain = false
                        global.viewer.scene.globe.depthTestAgainstTerrain = false
                        // eslint-disable-next-line no-unused-vars
                        var panorama = new global.DC.PanoramaBox(this.viewer, {
                        var panorama = new global.DC.PanoramaBox(global.viewer, {
                            domId: 'PanoramaBox',
                            position: [positions]
                        })
@@ -379,7 +387,7 @@
                    })
                })
                this.sceneLayer.show = false
                LeftNavLayer.leftSceneLayer.show = false
            })
            getLifeList({ lifetype: 9 }).then((res) => {
@@ -396,7 +404,7 @@
                        font: '14px sans-serif',
                        pixelOffset: { x: 0, y: -24 }
                    })
                    this.aedLayer.addOverlay(label)
                    LeftNavLayer.leftAedLayer.addOverlay(label)
                    const billboard = new global.DC.Billboard(
                        new global.DC.Position(Number(item.jd), Number(item.wd), 0),
@@ -404,9 +412,9 @@
                    )
                    billboard.size = [20, 20]
                    this.aedLayer.addOverlay(billboard)
                    LeftNavLayer.leftAedLayer.addOverlay(billboard)
                })
                this.aedLayer.show = false
                LeftNavLayer.leftAedLayer.show = false
            })
            getLifeList({ lifetype: 11 }).then((res) => {
@@ -428,9 +436,9 @@
                        </div>
                    `
                    )
                    this.parkLayer.addOverlay(divIcon)
                    LeftNavLayer.leftParkLayer.addOverlay(divIcon)
                })
                this.parkLayer.show = false
                LeftNavLayer.leftParkLayer.show = false
            })
            getLifeList({ lifetype: 12 }).then((res) => {
@@ -447,7 +455,7 @@
                        font: '14px sans-serif',
                        pixelOffset: { x: 0, y: -40 }
                    })
                    that.comeLayer.addOverlay(label)
                    LeftNavLayer.leftComeLayer.addOverlay(label)
                    const billboard = new global.DC.Billboard(
                        new global.DC.Position(Number(item.jd), Number(item.wd), 0),
@@ -458,13 +466,13 @@
                        pixelOffset: { x: 0, y: -16 }
                    })
                    that.comeLayer.addOverlay(billboard)
                    LeftNavLayer.leftComeLayer.addOverlay(billboard)
                })
                this.comeLayer.show = false
                LeftNavLayer.leftComeLayer.show = false
            })
        },
        openPopups (value) {
            var popup = new global.DC.DivForms(this.viewer, {
            var popup = new global.DC.DivForms(global.viewer, {
                domId: 'divFormsDomBox',
                position: [
                    global.DC.Transform.transformWGS84ToCartesian(
@@ -481,7 +489,7 @@
            this.$store.dispatch('pcFlyView', {
                jd: value.lng,
                wd: value.lat,
                viewer: this.viewer
                viewer: global.viewer
            })
        }
    }