From 81f54040c2cb65537c6c6e1db8358a39a57dea0d Mon Sep 17 00:00:00 2001
From: mayisheng <admin>
Date: Mon, 15 Aug 2022 16:14:01 +0800
Subject: [PATCH] 1

---
 src/components/arcNavBar/index.vue |  166 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 121 insertions(+), 45 deletions(-)

diff --git a/src/components/arcNavBar/index.vue b/src/components/arcNavBar/index.vue
index a20fda2..9c49b89 100644
--- a/src/components/arcNavBar/index.vue
+++ b/src/components/arcNavBar/index.vue
@@ -3,15 +3,15 @@
         <template slot="public-box-header">
             <div class="title">
                 <img class="icon deblurring" src="/img/icon/xyjz.png" alt />
-                <span>{{arcNavBarTitle}}</span>
+                <span>{{ arcNavBarTitle }}</span>
             </div>
-            <img class="close" src="/img/navicon/close.png" alt @click="closeModel" />
+            <img class="close deblurring" src="/img/navicon/close.png" alt @click="closeModel" />
         </template>
         <template slot="public-box-content">
             <div class="tab" v-show="false">
                 <ul>
                     <li
-                        :class="{'on': item.flag}"
+                        :class="{ on: item.flag }"
                         v-for="(item, index) in titleList"
                         :key="index"
                         @click="topNavClick(item, index)"
@@ -21,7 +21,7 @@
             <ul>
                 <li v-for="(item, index) in itemNavList" :key="index" @click="mapPopup(item)">
                     <img :src="item.icon" alt />
-                    <span>{{item.navTitle}}</span>
+                    <span>{{ item.navTitle }}</span>
                 </li>
             </ul>
         </template>
@@ -30,23 +30,23 @@
 
 <script>
 import { mapGetters } from 'vuex'
-import { getList, getChildNavList, getChildNavDetail } from '@/api/pc/public/arc'
+import {
+    getList,
+    getChildNavList,
+    getChildNavDetail
+} from '@/api/pc/public/arc'
 
 export default {
     name: 'ArcNavBar',
     data () {
         return {
             itemNavList: [],
-            titleList: [],
-            DC: null
+            titleList: []
         }
     },
-    props: {
-
-    },
+    props: {},
     computed: {
         ...mapGetters([
-            'viewer',
             'popupBgUrl',
             'pupupQRUrl',
             // 点信息
@@ -60,23 +60,25 @@
             // 全景地址
             'panoramaUrl',
             'arcNavBarTitle',
-            'arcNavBarCode'
+            'arcNavBarCode',
+            'twoOrThree'
         ])
     },
     created () {
-        this.DC = global.DC
     },
-    mounted () {
-
-    },
+    mounted () { },
     watch: {
         arcNavBarCode: {
             immediate: true,
             handler (newCode, oldCode) {
                 this.titleList = []
-                getList().then(res => {
-                    res.data.data.forEach(item => {
-                        this.titleList.push({ title: item.dictValue, flag: false, key: item.dictKey })
+                getList().then((res) => {
+                    res.data.data.forEach((item) => {
+                        this.titleList.push({
+                            title: item.dictValue,
+                            flag: false,
+                            key: item.dictKey
+                        })
                     })
 
                     this.titleList[0].flag = true
@@ -87,8 +89,18 @@
         }
     },
     methods: {
+
+        coordinate (item) {
+            const arr = item.split(',')
+
+            return {
+                lng: arr[0],
+                lat: arr[1]
+            }
+        },
+
         topNavClick (item, index) {
-            this.titleList.forEach(item => {
+            this.titleList.forEach((item) => {
                 item.flag = false
             })
 
@@ -100,27 +112,32 @@
         getChilsNavs (campus) {
             this.itemNavList = []
 
-            getChildNavList({ campus: campus, type: this.arcNavBarCode }).then(res => {
-                res.data.data.forEach(item => {
-                    this.itemNavList.push({
-                        navTitle: item.mechanismname,
-                        icon: '/img/navicon/tag.png',
-                        id: item.id
+            getChildNavList({ campus: campus, type: this.arcNavBarCode }).then(
+                (res) => {
+                    res.data.data.forEach((item) => {
+                        this.itemNavList.push({
+                            navTitle: item.mechanismname,
+                            icon: '/img/navicon/tag.png',
+                            id: item.id
+                        })
                     })
-                })
-            })
+                }
+            )
         },
 
         mapPopup (param) {
-            getChildNavDetail({ id: param.id }).then(res => {
+            getChildNavDetail({ id: param.id }).then((res) => {
                 var result = res.data.data[0].list
+
                 this.$store.commit('CLEAR_ALL', null)
 
                 var imgArr = result.tpurl.split(',')
 
+                const position = this.coordinate(result.x)
+
                 this.$store.commit('SET_POPUPBGURL', imgArr[0])
                 this.$store.commit('SET_POPUPQRURL', result.codeurl)
-                this.$store.commit('SET_POINTPOSITION', [Number(result.jd), Number(result.wd), Number(result.gd), Number(result.heading), Number(result.pitch), Number(result.roll)])
+
                 this.$store.commit('SET_STATENAME', result.mechanismname)
                 this.$store.commit('SET_SITENAME', result.address)
                 this.$store.commit('SET_TELEPHONE', result.telephone)
@@ -144,24 +161,80 @@
                     this.$store.commit('SET_LIVELIST', [])
                 }
 
-                this.newPopup(result)
-                this.viewer.flyToPosition(
-                    new this.DC.Position(Number(result.jd), Number(result.wd), 300, Number(result.heading), Number(result.pitch), Number(result.roll)),
-                    function () {
-                    },
-                    3
-                )
+                this.newPopup(result, position)
+
+                if (this.twoOrThree == '三 维') {
+                    this.$store.commit('SET_POINTPOSITION', [
+                        Number(position.lng),
+                        Number(position.lat),
+                        Number(result.gd),
+                        Number(result.heading),
+                        Number(result.pitch),
+                        Number(result.roll)
+                    ])
+
+                    global.viewer.flyToPosition(
+                        new global.DC.Position(
+                            Number(position.lng),
+                            Number(position.lat),
+                            300,
+                            Number(result.heading),
+                            Number(result.pitch),
+                            Number(result.roll)
+                        ),
+                        function () { },
+                        3
+                    )
+                } else {
+                    this.$store.commit('SET_POINTPOSITION', [
+                        Number(result.jd),
+                        Number(result.wd),
+                        Number(result.gd),
+                        Number(result.heading),
+                        Number(result.pitch),
+                        Number(result.roll)
+                    ])
+
+                    global.viewer.flyToPosition(
+                        new global.DC.Position(
+                            Number(result.jd),
+                            Number(result.wd),
+                            300,
+                            Number(result.heading),
+                            Number(result.pitch),
+                            Number(result.roll)
+                        ),
+                        function () { },
+                        3
+                    )
+                }
             })
         },
 
-        newPopup (item) {
-            const position = this.DC.Transform.transformWGS84ToCartesian(new this.DC.Position(Number(item.jd), Number(item.wd), Number(item.gd)))
+        newPopup (item, positionArr) {
+            let position
+            if (this.twoOrThree == '三 维') {
+                position = global.DC.Transform.transformWGS84ToCartesian(
+                    new global.DC.Position(
+                        Number(positionArr.lng),
+                        Number(positionArr.lat),
+                        Number(item.alt)
+                    )
+                )
+            } else {
+                position = global.DC.Transform.transformWGS84ToCartesian(
+                    new global.DC.Position(
+                        Number(item.jd),
+                        Number(item.wd),
+                        Number(50)
+                    )
+                )
+            }
+
             // eslint-disable-next-line no-unused-vars
-            var popup = new this.DC.DivForms(this.viewer, {
+            var popup = new global.DC.DivForms(global.viewer, {
                 domId: 'divFormsDomBox',
-                position: [
-                    position
-                ]
+                position: [position]
             })
 
             this.$store.commit('SET_PANORAMAPOPUP', false)
@@ -179,10 +252,13 @@
             this.$store.commit('SET_ARCNAVBARTITLE', '')
             this.$store.commit('SET_ARCNAVBARCODE', '')
             this.$store.commit('SET_ARCNAVBARFLAG', false)
+
+            this.$store.commit('SET_DETAILSPOPUP', false)
+            this.$store.commit('SET_PANORAMAPOPUP', false)
+            this.$store.commit('SET_MONITORPOPUP', false)
         }
     }
 }
 </script>
 
-<style scoped lang='scss'>
-</style>
+<style scoped lang="scss"></style>

--
Gitblit v1.9.3