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 | 155 ++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 132 insertions(+), 23 deletions(-) diff --git a/src/store/simulation.js b/src/store/simulation.js index 44797b3..e810802 100644 --- a/src/store/simulation.js +++ b/src/store/simulation.js @@ -1,9 +1,29 @@ // stores/ui.js import { defineStore } from 'pinia' import { ref } from 'vue' - -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) @@ -20,12 +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 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 @@ -37,29 +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 = [] } - // 鏂规鐩稿叧 + 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) { @@ -67,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() @@ -108,7 +182,15 @@ break } } + + const updateSelectedLayers = (keys) => { + userSelectedLayers.value = keys; + } + + + return { + // UI 鐘舵�� navigationShow, leftShow, rightShow, @@ -125,19 +207,46 @@ weatherShow, barShow, deviceShow, - showResultAssess, showLayerTree, - showDangerAssess, - handleNavClick, + schemCard, + 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, - schemCard, - setSchemCard, - addSchemCard, - removeSchemCardItem, - updateSchemCardItem, + handleNavClick, + updateSelectedLayers } }) \ No newline at end of file -- Gitblit v1.9.3