From bf58722dfd03ea1513f3acc7331d4d4403fca76e Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Fri, 18 Mar 2022 11:48:37 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/school-web

---
 src/store/modules/popupParams.js |  383 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 381 insertions(+), 2 deletions(-)

diff --git a/src/store/modules/popupParams.js b/src/store/modules/popupParams.js
index 7b1ccc1..c01f5ec 100644
--- a/src/store/modules/popupParams.js
+++ b/src/store/modules/popupParams.js
@@ -1,19 +1,398 @@
+import leftNavsData from './pc/leftNavsData'
+window.labelLayer = null;
+window.divIcon = null;
+
+
 const popupParams = {
     state: {
+        ...leftNavsData.state,
         popupBgUrl: null,
-        pupupQRUrl: null
+        pupupQRUrl: null,
+        terminus: null,
+        startingPoint: null,
+        pointPosition: null,
+        stateName: null,
+        siteName: null,
+        telephone: null,
+        introduceText: null,
+        detailsPopup: false,
+        panoramaUrl: null,
+        panoramaPopup: false,
+        monitorUrl: null,
+        monitorPopup: false,
+        // 图集
+        popupImgAtlas: [],
+        teachList: [],
+        liveList: [],
+        addTagPopup: false,
+        addTagPosition: null,
+
+        // labelLayer: null, // 自定义标签图层
+        addSignList: true,
+        myviewer: null,
+        nowlabelLayerData: {},
+        labelLayerDataShow: false,
+
+        closeMapClick: false // 关闭地图点击,防止新增标签误触
     },
     mutations: {
+        ...leftNavsData.mutations,
         SET_POPUPBGURL(state, popupBgUrl) {
+            // console.log(popupBgUrl, "see33333")
+            if (!popupBgUrl) {
+                return
+            }
             state.popupBgUrl = popupBgUrl
         },
         SET_POPUPQRURL(state, pupupQRUrl) {
             state.pupupQRUrl = pupupQRUrl
+        },
+        SET_TERMINUS(state, terminus) {
+            state.terminus = terminus
+        },
+        SET_STARTINGPOINT(state, startingPoint) {
+            state.startingPoint = startingPoint
+        },
+        SET_POINTPOSITION(state, pointPosition) {
+            state.pointPosition = pointPosition
+        },
+        SET_STATENAME(state, stateName) {
+            state.stateName = stateName
+        },
+        SET_SITENAME(state, siteName) {
+            state.siteName = siteName
+        },
+        SET_TELEPHONE(state, telephone) {
+            state.telephone = telephone
+        },
+        SET_INTRODUCETEXT(state, introduceText) {
+            state.introduceText = introduceText
+        },
+        SET_PANORAMAURL(state, panoramaUrl) {
+            state.panoramaUrl = panoramaUrl
+        },
+        SET_PANORAMAPOPUP(state, panoramaPopup) {
+            state.panoramaPopup = panoramaPopup
+        },
+        SET_MONITORURL(state, monitorUrl) {
+            state.monitorUrl = monitorUrl
+        },
+        SET_MONITORPOPUP(state, monitorPopup) {
+            state.monitorPopup = monitorPopup
+        },
+        SET_DETAILSPOPUP(state, detailsPopup) {
+            state.detailsPopup = detailsPopup
+        },
+        SET_POPUPIMGATLAS(state, popupImgAtlas) {
+            state.popupImgAtlas = popupImgAtlas
+        },
+        SET_TEACHLIST(state, teachList) {
+            state.teachList = teachList
+        },
+        SET_LIVELIST(state, liveList) {
+            state.liveList = liveList
+        },
+
+        SET_ADDTAGPOPUP(state, addTagPopup) {
+            state.addTagPopup = addTagPopup
+        },
+
+        SET_ADDTAGPOSITION(state, addTagPosition) {
+            state.addTagPosition = addTagPosition
+        },
+        initLabelLayer(state, val) {
+            if (!window.labelLayer) {
+                window.labelLayer = new global.DC.HtmlLayer('labelLayer')
+                val.addLayer(window.labelLayer)
+            }
+            state.myviewer = val
+        },
+
+        clearLabelLayerIcon(state, val) {
+            if (window.labelLayer) {
+                window.labelLayer.clear()
+            }
+        },
+        openLabelLayer(state, val) {
+            // console.log(val, "see")
+            if (val.show) {
+                state.nowlabelLayerData = val.data
+                state.labelLayerDataShow = true
+            } else {
+                state.nowlabelLayerData = {}
+                state.labelLayerDataShow = false
+            }
+        },
+        CLEAR_ALL(state, param) {
+            state.siteName = param
+            state.introduceText = param
+            state.telephone = param
+            state.panoramaUrl = param
+            state.monitorUrl = param
+            state.popupBgUrl = param
+            state.teachList = []
+            state.liveList = []
+        },
+        set_closeMapClick(state, val) {
+            state.closeMapClick = val
         }
     },
     actions: {
+        ...leftNavsData.actions,
+        openPopups({
+            state,
+            commit,
+            dispatch
+        }, value) {
+            //     //订阅事件
+            //   divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
+            //     console.log(item);
+            //     that.openPopups({
+            //       lng: e.overlay.position.lng,
+            //       lat: e.overlay.position.lat,
+            //       item: item,
+            //     });
+            //   });
+            new global.DC.DivForms(state.viewer, {
+                domId: 'divFormsDomBox',
+                position: [
+                    global.DC.Transform.transformWGS84ToCartesian(
+                        new global.DC.Position(
+                            Number(value.lng),
+                            Number(value.lat),
+                            Number(value.alt || 0)
+                        )
+                    )
+                ]
+            })
+            dispatch('setOurDataInPoput', value)
+            dispatch('pcFlyView', {
+                jd: value.lng,
+                wd: value.lat,
+                viewer: this.viewer
+            })
+        },
+        setOurDataInPoput({
+            state,
+            commit,
+            dispatch
+        }, value) {
+            // 弹窗使用方法
 
+            commit('CLEAR_ALL', null)
+            commit('SET_MONITORPOPUP', false)
+            commit('SET_PANORAMAPOPUP', false)
+            commit('SET_STATENAME', value.item.mechanismname)
+            commit('SET_PANORAMAURL', value.item.panoramaurl)
+            commit('SET_INTRODUCETEXT', value.item.introduce)
+            var imgArr = []
+            if (value.item.tpurl) {
+                imgArr = value.item.tpurl.split(',')
+            }
+            commit('SET_POPUPBGURL', imgArr[0])
+            commit('SET_POPUPIMGATLAS', imgArr)
+            commit('SET_POPUPQRURL', value.item.codeurl)
+            commit('SET_POINTPOSITION', [
+                Number(value.lng),
+                Number(value.lat),
+                Number(0),
+                Number(0),
+                Number(-90),
+                Number(0)
+            ])
+            commit('SET_DETAILSPOPUP', true)
+        },
+        pcMoveView({
+            state,
+            commit,
+            dispatch
+        }, val) {
+            global.viewer.camera.setView({
+                // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+                // fromDegrees()方法,将经纬度和高程转换为世界坐标
+                destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+                    +val.jd,
+                    +val.wd,
+                    400.0
+                ),
+                orientation: {
+                    // 指向
+                    heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                    // 视角
+                    pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+                    roll: 0.0
+                }
+            })
+        },
+        pcFlyView({
+            state,
+            commit,
+            dispatch
+        }, val) {
+            val.viewer.flyToPosition(
+                new global.DC.Position(Number(val.jd), Number(val.wd), Number(300), Number(0), Number(-90), Number(0)),
+                function () {},
+                2
+            )
+        },
+        addLabelLayerIcon({
+            state,
+            commit,
+            dispatch
+        }, val) {
+            const list = val.list
+            if (val.clear) {
+                //     window.labelLayer.remove();
+                window.labelLayer.clear()
+            }
+            if (val.add) { // 刷新列表
+                state.addSignList = !state.addSignList
+                return
+            }
+            for (const i in list) {
+                const divIcon = new global.DC.DivIcon(
+                    new global.DC.Position(
+                        Number(list[i].jd),
+                        Number(list[i].wd),
+                        0
+                    ),
+                    `
+                              <div class="tag-entitys-box">
+                                  <div class="tag-content">
+                                      ${list[i].name}
+                                  </div>
+                                  <div class="tag-angle-content">
+                                      <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
+                                  </div>
+                              </div>
+                          `
+                )
+                // 订阅事件
+                window.divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
+                    // console.log(e);
+                    // return;
+                    // 定制化窗体
+                    // const position = e.position
+                    const lntLat = [e.overlay._position._lng, e.overlay._position._lat]
+                    // console.log(position, lntLat, list[i], state.myviewer, "see")
+                    new global.DC.DivForms(global.viewer, {
+                        domId: 'labelLayerid',
+                        position: [
+                            global.DC.Transform.transformWGS84ToCartesian(
+                                new global.DC.Position(
+                                    Number(lntLat[0]),
+                                    Number(lntLat[1]),
+                                    Number(0)
+                                )
+                            )
+                        ]
+                    })
+                    global.viewer.camera.setView({
+                        // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+                        // fromDegrees()方法,将经纬度和高程转换为世界坐标
+                        destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+                            lntLat[0],
+                            lntLat[1],
+                            400.0
+                        ),
+                        orientation: {
+                            // 指向
+                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                            // 视角
+                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+                            roll: 0.0
+                        }
+                    })
+                    commit('openLabelLayer', {
+                        show: true,
+                        data: list[i]
+                    })
+                })
+                window.labelLayer.addOverlay(window.divIcon)
+            }
+        },
+        addLabelLayerIconMobelUse({
+            state,
+            commit,
+            dispatch
+        }, val) {
+            const list = val.list
+            if (!window.labelLayer) {
+                window.labelLayer = new global.DC.HtmlLayer('labelLayer')
+                global.viewer.addLayer(window.labelLayer)
+                // state.myviewer = val.mviewer
+            }
+            if (val.clear) {
+                //     window.labelLayer.remove();
+                window.labelLayer.clear()
+            }
+            if (val.add) { // 刷新列表
+                state.addSignList = !state.addSignList
+                return
+            }
+            for (let i in list) {
+                window.divIcon = new global.DC.DivIcon(
+                    new global.DC.Position(
+                        Number(list[i].jd),
+                        Number(list[i].wd),
+                        0
+                    ),
+                    `
+                              <div class="tag-entitys-box">
+                                  <div class="tag-content">
+                                      ${list[i].name}
+                                  </div>
+                                  <div class="tag-angle-content">
+                                      <img src="https://map.hit.edu.cn/images/tarrow_xq.png">
+                                  </div>
+                              </div>
+                          `
+                )
+                // 订阅事件
+                window.divIcon.on(global.DC.MouseEventType.CLICK, (e) => {
+                    // console.log(e);
+                    // return;
+                    // 定制化窗体
+                    // const position = e.position
+                    const lntLat = [e.overlay._position._lng, e.overlay._position._lat]
+                    // console.log(position, lntLat, list[i], state.myviewer, "see")
+                    new global.DC.DivForms(global.viewer, {
+                        domId: 'labelLayerid',
+                        position: [
+                            global.DC.Transform.transformWGS84ToCartesian(
+                                new global.DC.Position(
+                                    Number(lntLat[0]),
+                                    Number(lntLat[1]),
+                                    Number(0)
+                                )
+                            )
+                        ]
+                    })
+                    global.viewer.camera.setView({
+                        // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+                        // fromDegrees()方法,将经纬度和高程转换为世界坐标
+                        destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+                            lntLat[0],
+                            lntLat[1],
+                            400.0
+                        ),
+                        orientation: {
+                            // 指向
+                            heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+                            // 视角
+                            pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+                            roll: 0.0
+                        }
+                    })
+                    commit('openLabelLayer', {
+                        show: true,
+                        data: list[i]
+                    })
+                })
+                window.labelLayer.addOverlay(window.divIcon)
+            }
+        }
     }
 }
 
-export default popupParams
+export default popupParams
\ No newline at end of file

--
Gitblit v1.9.3