From 3a1224b26d091fb6a2a08555054acb05592d357c Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 07 Nov 2024 19:25:43 +0800
Subject: [PATCH] 应急物资、救援队伍去除地图单页处理

---
 src/store/router.js                      |   14 ++++++-
 src/views/layout/index.vue               |   44 +++++++++++++++------
 src/hooks/initMap.js                     |   15 ++++++-
 src/views/layout/components/mainMenu.vue |    8 ++++
 4 files changed, 63 insertions(+), 18 deletions(-)

diff --git a/src/hooks/initMap.js b/src/hooks/initMap.js
index 5569c85..3d10d98 100644
--- a/src/hooks/initMap.js
+++ b/src/hooks/initMap.js
@@ -2,7 +2,7 @@
  * @Author: shuishen 1109946754@qq.com
  * @Date: 2024-10-25 15:09:55
  * @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-07 16:15:48
+ * @LastEditTime: 2024-11-07 19:24:27
  * @FilePath: \bigScreen\src\hooks\initMap.js
  * @Description: 
  * 
@@ -11,7 +11,7 @@
 let viewer = null
 const { VITE_APP_BASE } = import.meta.env
 import { useMap } from 'store/map'
-import { nextTick } from 'vue'
+import { nextTick, onMounted, onUnmounted } from 'vue'
 
 export function readyViewer () {
   const Cesium = DC.getLib('Cesium')
@@ -43,7 +43,16 @@
     })
   }
 
-  initMap()
+  onMounted(() => {
+    initMap()
+  })
+
+  onUnmounted(() => {
+    viewer.destroy()
+    viewer = null
+    delete window.$viewer
+    store.setLoadMap(false)
+  })
 
   return {
 
diff --git a/src/store/router.js b/src/store/router.js
index 3394630..3778575 100644
--- a/src/store/router.js
+++ b/src/store/router.js
@@ -2,7 +2,7 @@
  * @Author: shuishen 1109946754@qq.com
  * @Date: 2024-11-06 10:46:45
  * @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-06 10:56:14
+ * @LastEditTime: 2024-11-07 18:58:32
  * @FilePath: \bigScreen\src\store\router.js
  * @Description: 
  * 
@@ -14,7 +14,8 @@
 export const useRouterStore = defineStore('useRouterStore', {
   // 存储状态的地方,相当于 Vuex 的 state
   state: () => ({
-    loadSub: false
+    loadSub: false,
+    loadSingle: false,
   }),
 
   // 相当于 Vuex 的 getters,用于计算状态
@@ -27,6 +28,10 @@
     setLoadSub (flag) {
       this.loadSub = flag
     },
+
+    setLoadSingle (flag) {
+      this.loadSingle = flag
+    },
   },
 
   persist: {
@@ -37,6 +42,11 @@
         paths: ['loadSub'],
         storage: localStorage,
       },
+      {
+        key: 'loadSingle',
+        paths: ['loadSingle'],
+        storage: localStorage,
+      },
     ]
   }
 })
\ No newline at end of file
diff --git a/src/views/layout/components/mainMenu.vue b/src/views/layout/components/mainMenu.vue
index 93cfe9f..238d496 100644
--- a/src/views/layout/components/mainMenu.vue
+++ b/src/views/layout/components/mainMenu.vue
@@ -12,6 +12,8 @@
 import { useRouter, useRoute } from 'vue-router'
 import { Search } from '@element-plus/icons-vue'
 import { getTime } from '@/utils/getTime.js'
+import { useRouterStore } from 'store/router'
+const store = useRouterStore()
 let router = useRouter()
 let currentUrl = ref('statistics')
 
@@ -49,6 +51,12 @@
 
   if (params.path) {
     if (router.currentRoute.value.path == params.path) return
+
+    if (params.path == '/layout/supplies' || params.path == '/layout/rt') {
+      store.setLoadSingle(true)
+    } else {
+      store.setLoadSingle(false)
+    }
     router.push(params.path)
   } else {
     params.childrenFlag = !params.childrenFlag
diff --git a/src/views/layout/index.vue b/src/views/layout/index.vue
index fb8ecac..9407974 100644
--- a/src/views/layout/index.vue
+++ b/src/views/layout/index.vue
@@ -2,7 +2,7 @@
  * @Author: shuishen 1109946754@qq.com
  * @Date: 2022-08-18 16:18:24
  * @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2024-11-06 11:05:46
+ * @LastEditTime: 2024-11-07 19:24:45
  * @FilePath: \bigScreen\src\views\layout\index.vue
  * @Description:
  *
@@ -10,11 +10,35 @@
 -->
 <template>
   <div class="wrapper">
-    <map-container ref="MapContainer">
+    <div v-if="showSinglePage" class="main-content" id="MainContent">
+      <div class="w100 h100">
+        <div class="main-header">
+          <div class="title">吉水化工园区“一园一策一图”VR平台</div>
+
+          <div class="login-out" @click="signOut">
+            <img :src="loginOutBg" class="img" />
+            <span>退出</span>
+          </div>
+        </div>
+
+        <div class="main-container">
+          <!-- 地图区域 -->
+          <router-view></router-view>
+        </div>
+
+        <main-menu></main-menu>
+      </div>
+    </div>
+
+    <map-container v-if="!showSinglePage" ref="MapContainer">
       <template #content>
         <div v-if="showContent" class="main-content" id="MainContent">
           <main-search></main-search>
           <main-tool></main-tool>
+
+          <div v-if="showSubLayout" class="w100 h100">
+            <router-view></router-view>
+          </div>
 
           <div v-if="!showSubLayout" class="w100 h100">
             <div class="main-header">
@@ -32,10 +56,6 @@
             </div>
 
             <main-menu></main-menu>
-          </div>
-
-          <div v-if="showSubLayout" class="w100 h100">
-            <router-view></router-view>
           </div>
         </div>
       </template>
@@ -60,20 +80,18 @@
 const storeRouter = useRouterStore()
 const showContent = ref(false)
 const showSubLayout = ref(false)
-
+const showSinglePage = ref(false)
 // 监听createB的变化
 watch(
   [
     () => store.loadMap,
     () => storeRouter.loadSub,
+    () => storeRouter.loadSingle,
   ],
-  ([newLoadMap, newLoadSub]) => {
-    if (newLoadMap) {
-      showContent.value = true
-    }
-
-    console.log(newLoadSub, 5555)
+  ([newLoadMap, newLoadSub, newLoadSingle]) => {
+    showContent.value = newLoadMap
     showSubLayout.value = newLoadSub
+    showSinglePage.value = newLoadSingle
   },
   { immediate: true } // 设置immediate为true以便在组件挂载时立即检查createB的值
 )

--
Gitblit v1.9.3