From bf0eb543e2deab8a1629dd2a46f8e1cd191531e1 Mon Sep 17 00:00:00 2001
From: wangjuncheng <1>
Date: 星期四, 17 七月 2025 15:22:01 +0800
Subject: [PATCH] Merge branch 'master' of http://103.135.160.14:9034/r/NslWeb

---
 src/store/simulation.js |  193 ++++++++++++++++++++++++++++++++---------------
 1 files changed, 130 insertions(+), 63 deletions(-)

diff --git a/src/store/simulation.js b/src/store/simulation.js
index d99e4d2..e810802 100644
--- a/src/store/simulation.js
+++ b/src/store/simulation.js
@@ -1,10 +1,29 @@
 // stores/ui.js
 import { defineStore } from 'pinia'
 import { ref } from 'vue'
-import { createSimData } from '@/api/trApi';
-
-export const useSimStore = defineStore('ui', () => {
-    // 鎵�鏈塙I鐘舵��
+import { showDeviceDetail } from "@/store";
+export const useSimStore = defineStore('simulation', () => {
+    // 鏂潰鏁版嵁
+    const crossSection = ref([])
+    const openDia = ref(true)
+    // 鍘嗗彶鍥炴斁鍒楄〃
+    const rePlayList = ref([])
+    // 鍖椾含甯傛墍鏈夋潙鐨刢ode
+    const townCodeAll = ref([])
+    // 瀹炴椂妯℃嫙鏈�鏂扮殑layer
+    const layerDate = ref("")
+    // 甯ф暟
+    const frameNum = ref(0)
+    // 鐩綍鏍戦�変腑
+    const userSelectedLayers = ref([])
+    // 闅愭偅鐐瑰垪琛�
+    const DeviceShowSwitch = ref(false)
+    const DangerShowSwitch = ref(false)
+    const DangerPoint = ref([])
+    // 娉ヤ綅璁�
+    const selectNWJ = ref()
+    // 鐩戞祴璁惧鍒楄〃
+    const devices = ref([])
     const navigationShow = ref(true)
     const leftShow = ref(false)
     const rightShow = ref(false)
@@ -21,13 +40,43 @@
     const weatherShow = ref(false)
     const barShow = ref(false)
     const deviceShow = ref(false)
-    const showResultAssess = ref(false)
     const showLayerTree = ref(true)
-    const showDangerAssess = ref(false)
     const schemCard = ref([])
-    const selectTab = ref("琛屾斂鍖哄垝浠跨湡")
+    const backToHome = ref(false)
+    const selectedScheme = ref(null)
+    // 褰撳墠妯℃嫙缁忕含搴�
+    const currentInfo = ref({})
+    // 鍥句緥
+    const waterLegendData = ref([])
+    // 妯℃嫙浠跨湡鍥句緥
+    const isShowEarth = ref(false)
+    // 闄嶉洦鏁版嵁鍒楄〃
+    const rainFalls = ref()
+    // 闄嶉洦鍗曚綅
+    const intensityUnit = ref()
+    // 鏂规涓嬫按娣辨祦閫熺瓑鏁版嵁
+    let schemWaterInfo = ref([])
+    const setSelectedScheme = (scheme) => {
+        selectedScheme.value = scheme;
 
-    // 鍒濆鍖栨柟娉�
+        try {
+            const parsedData = JSON.parse(scheme.data);
+
+            // 鍙湁褰� rainfalls 鍜� intensityUnit 瀛樺湪涓旈潪绌烘椂鎵嶈祴鍊�
+            if (parsedData.rainfalls && parsedData.intensityUnit) {
+                rainFalls.value = parsedData.rainfalls;
+                intensityUnit.value = parsedData.intensityUnit;
+            } else {
+                console.warn("缂哄皯蹇呰鐨� rainfalls 鎴� intensityUnit 瀛楁");
+            }
+        } catch (error) {
+            console.error("瑙f瀽 scheme.data 鍑洪敊", error);
+        }
+    };
+    const clearSelectedScheme = () => {
+        selectedScheme.value = null
+    }
+
     const init = () => {
         navigationShow.value = true
         leftShow.value = false
@@ -39,66 +88,25 @@
         locationShow.value = false
         tableShow.value = false
         flowShow.value = false
+        backToHome.value = false
         rightRiverShow.value = false
         showPreview.value = false
         deviceShow.value = false
-        showResultAssess.value = false
-        showDangerAssess.value = false
         schemCard.value = []
-        selectTab.value = "琛屾斂鍖哄垝浠跨湡"
-
     }
 
-    const handleClickTab = (data) => {
-        selectTab.value = data
-    }
-
-    // 鏂板缓鏂规
-    const createSimulation = async (forms) => {
-        const getAreaType = (tabName) => {
-            switch (tabName) {
-                case '琛屾斂鍖哄垝浠跨湡':
-                    return 1
-                case '閲嶇偣鍖哄煙浠跨湡':
-                    return 2
-                case '閲嶇偣娌熶豢鐪�':
-                    return 3
-                default:
-                    return 0 // 鑷畾涔�
-            }
-        }
-        const params = {
-            areaType: getAreaType(selectTab),
-            createTime: Date.now(),
-            name: forms.name,
-            // 1涓洪娴嬫ā鎷燂紝2涓哄疄鏃舵ā鎷燂紝3涓哄巻鍙叉ā鎷�
-            type: 1,
-            // 0涓哄垱寤轰豢鐪燂紝1涓洪澶勭悊锛�2涓哄垎鏋愪腑锛�10涓哄畬鎴愶紝20涓哄嚭閿�
-            status: 0,
-        }
-        try {
-            await createSimData(params)
-        } catch (error) {
-            console.error('鍒涘缓浠跨湡澶辫触:', error)
-        }
-    }
-
-    // 鏂规鐩稿叧
     const setSchemCard = (data) => {
         schemCard.value = data
     }
 
-    // 娣诲姞鍗曚釜鏂规鏁版嵁
     const addSchemCard = (item) => {
         schemCard.value.unshift(item)
     }
 
-    // 鍒犻櫎鎸囧畾鏂规鏁版嵁
     const removeSchemCardItem = (id) => {
         schemCard.value = schemCard.value.filter(item => item.id !== id)
     }
 
-    // 鏇存柊鎸囧畾鏂规鏁版嵁
     const updateSchemCardItem = (id, newData) => {
         const index = schemCard.value.findIndex(item => item.id === id)
         if (index !== -1) {
@@ -106,32 +114,59 @@
         }
     }
 
+    const flyToHomeView = () => {
+        const view = {
+            destination: {
+                x: -2355432.569004413,
+                y: 4687573.191838412,
+                z: 4098726.315265574,
+            },
+            orientation: {
+                pitch: -0.9541030830183503,
+                roll: 0.00031421159527500464,
+                heading: 6.140424766644804,
+            },
+        };
+        viewer.scene.camera.flyTo(view);
+    }
 
     const startYHGL = () => {
         init()
+        flyToHomeView()
         locationShow.value = true
+        isShowEarth.value = true
+
     }
 
     const startZHJC = () => {
         init()
+        flyToHomeView()
         functionShow.value = true
         deviceShow.value = true
+        isShowEarth.value = true
+
     }
 
     const startMNFZ = () => {
         init()
+        flyToHomeView()
         leftShow.value = true
-        rightRiverShow.value = true
+        isShowEarth.value = false
+
     }
 
     const startMNPG = () => {
         init()
-        // showResultAssess.value = true
-        // showDangerAssess.value = true
+        isShowEarth.value = false
+    }
+
+    const setBackToHome = (value) => {
+        backToHome.value = value
     }
 
     // 瀵艰埅鐐瑰嚮
     const handleNavClick = (index) => {
+        showDeviceDetail.value = false;
         switch (index) {
             case 1:
                 startYHGL()
@@ -147,7 +182,15 @@
                 break
         }
     }
+
+    const updateSelectedLayers = (keys) => {
+        userSelectedLayers.value = keys;
+    }
+
+
+
     return {
+        // UI 鐘舵��
         navigationShow,
         leftShow,
         rightShow,
@@ -164,22 +207,46 @@
         weatherShow,
         barShow,
         deviceShow,
-        showResultAssess,
         showLayerTree,
-        showDangerAssess,
         schemCard,
-        selectTab,
-        handleNavClick,
+        backToHome,
+        rainFalls,
+        intensityUnit,
+        DangerPoint,
+        DeviceShowSwitch,
+        DangerShowSwitch,
+        waterLegendData,
+        currentInfo,
+        isShowEarth,
+        userSelectedLayers,
+        devices,
+        frameNum,
+        schemWaterInfo,
+        layerDate,
+        rePlayList,
+        selectNWJ,
+        openDia,
+        crossSection,
+
+        // 鏂规鐩稿叧鏂规硶
+        setSchemCard,
+        addSchemCard,
+        removeSchemCardItem,
+        updateSchemCardItem,
+        setBackToHome,
+
+        // 鉁� 鏆撮湶 selectedScheme 鍙婂叾鏂规硶
+        selectedScheme,          // 鍝嶅簲寮忓紩鐢�
+        setSelectedScheme,      // 鏂规硶
+        clearSelectedScheme,    // 鏂规硶
+
+        // 鎺у埗閫昏緫
         init,
         startYHGL,
         startZHJC,
         startMNFZ,
         startMNPG,
-        setSchemCard,
-        addSchemCard,
-        removeSchemCardItem,
-        updateSchemCardItem,
-        handleClickTab,
-        createSimulation,
+        handleNavClick,
+        updateSelectedLayers
     }
 })
\ No newline at end of file

--
Gitblit v1.9.3