From f373e0c0797e1800bf066fdfbb748bb9242230f6 Mon Sep 17 00:00:00 2001 From: wangjuncheng <1> Date: 星期二, 08 七月 2025 17:46:02 +0800 Subject: [PATCH] 泥位计 --- src/components/menu/TimeLine.vue | 52 +++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 43 insertions(+), 9 deletions(-) diff --git a/src/components/menu/TimeLine.vue b/src/components/menu/TimeLine.vue index b92ddbe..649f970 100644 --- a/src/components/menu/TimeLine.vue +++ b/src/components/menu/TimeLine.vue @@ -153,7 +153,9 @@ import { useSimStore } from "@/store/simulation"; import { storeToRefs } from "pinia"; const simStore = useSimStore(); -const { selectedScheme, frameNum, layerDate } = storeToRefs(simStore); +const { selectedScheme, frameNum, layerDate, schemWaterInfo } = + storeToRefs(simStore); +import { clearAllPoints } from "@/utils/map"; const emit = defineEmits([ "timeUpdate", @@ -319,7 +321,8 @@ // 鏂板缓鏂规涓殑瀹炴椂妯℃嫙涓嶈兘鍊嶉�� if (selectedScheme.value.type === 2 && simStore.rePlayList.length == 0) { - // 绫诲瀷涓� 2锛氭瘡 5 绉掕烦鍔ㄤ竴娆� + console.log("鏂板缓鏂规瀹炴椂妯℃嫙浜旂涓�璺�"); + // 瀹炴椂妯℃嫙锛氭瘡 5 绉掕烦鍔ㄤ竴娆� playInterval = setInterval(() => { const fiveSeconds = 5; const totalDuration = duration.value; // 鎬绘椂闀匡紙绉掞級 @@ -364,6 +367,7 @@ currentTime.value = duration.value; stopPlayback(); isPlaying.value = false; + finishPlay.value = true; emit("isPlaying", false); emit("playbackFinished", true); return; @@ -379,7 +383,9 @@ } const progress = currentTime.value / duration.value; - emit("timeUpdate", progress * 100); + if (selectedScheme.value.type !== 2) { + emit("timeUpdate", progress * 100); + } }, 1000 / playbackRate.value); } }; @@ -387,6 +393,7 @@ // 闄嶉洦鏁版嵁鐩稿叧鍙橀噺 let rainFallValues = ref([]); // 瀛樺偍鍘熷闄嶉洦閲忔暟鎹� let minRainValue = ref(Infinity); +let averageRainIntensity = ref(); let maxRainValue = ref(-Infinity); // 鑾峰彇闄嶉洦鏁版嵁 function getRainfallData() { @@ -467,6 +474,19 @@ // 鎻愬彇 intensity 鍊� rainFallValues.value = hourlyRainfallList.map((r) => r.intensity); + // 璁$畻骞冲潎闆ㄥ己 + if (rainFallValues.value.length > 0) { + const sumIntensity = rainFallValues.value.reduce( + (sum, val) => sum + val, + 0 + ); + averageRainIntensity.value = sumIntensity / rainFallValues.value.length; + } else { + averageRainIntensity.value = 0; // 鎴栬�� null 琛ㄧず鏃犳暟鎹� + } + + console.log("骞冲潎闆ㄥ己涓猴細", averageRainIntensity.value); + minRainValue.value = Math.min(...rainFallValues.value); maxRainValue.value = Math.max(...rainFallValues.value); @@ -731,9 +751,15 @@ // 鎵撳嵃淇℃伅 // console.log("========================================"); // console.log(`銆愭椂闂存埑銆�: ${new Date(currentTimeMs).toLocaleString()}`); - console.log(`銆愮疮璁¢檷闆ㄩ噺 R銆�: ${currentTotal !== null ? currentTotal.toFixed(2) : '鏈煡'} mm`); + console.log( + `銆愮疮璁¢檷闆ㄩ噺 R銆�: ${ + currentTotal !== null ? currentTotal.toFixed(2) : "鏈煡" + } mm` + ); // console.log(`銆愬綋鍓嶉樁娈点��: 绗� ${currentStage} 闃舵`); - console.log(`銆愰鑹� HEX銆�: ${colorState.colorStages[currentStage]?.color || '鏈畾涔�'}`); + console.log( + `銆愰鑹� HEX銆�: ${colorState.colorStages[currentStage]?.color || "鏈畾涔�"}` + ); // console.log(`銆愰�忔槑搴� Alpha銆�: ${colorState.colorStages[currentStage]?.alpha || '鏈畾涔�'}`); // console.log("========================================"); // 搴旂敤棰滆壊 @@ -1000,7 +1026,12 @@ watersMaxHeight, watersMinHeight ); - + const waterInfoArr = [ + watersMaxHeight, + maxRainValue.value, + averageRainIntensity.value, + ]; + schemWaterInfo.value = waterInfoArr; // 鏇存柊鏃堕棿杞寸浉鍏虫暟鎹� if (timestamps) { frameNum.value = timestamps.length; @@ -1022,7 +1053,6 @@ }); } } - // 鎾斁瀹屾垚鍚庣殑鍥炶皟 function handlePlayFinished() { if (selectedScheme.value.type !== 2) return; @@ -1030,8 +1060,6 @@ currentReplayIndex.value++; if (currentReplayIndex.value < simStore.rePlayList.length) { - console.log(currentReplayIndex.value); - // 鑷姩鎾斁涓嬩竴涓� initializeSimulationData(simStore.rePlayList[currentReplayIndex.value]); togglePlay(); @@ -1040,6 +1068,7 @@ // 鎵�鏈夐」鐩挱鏀惧畬鎴� currentReplayIndex.value = 0; // 閲嶇疆绱㈠紩 isPlaying.value = false; // 鍋滄鎾斁 + emit("timeUpdate", 100); // 鍦ㄦ墍鏈夐」鐩挱鏀惧畬姣曞悗瑙﹀彂 } } @@ -1122,6 +1151,11 @@ } async function endSimulation() { + clearAllPoints(); + simStore.openDia = true; + // 缁撴潫妯℃嫙涔嬪悗娓呴櫎layer鍒楄〃 + simStore.rePlayList = []; + console.log(simStore.rePlayList, "缁撴潫妯℃嫙娓呴櫎rePlayListrePlayList鍒楄〃"); EventBus.emit("close-time"); endSimulate(); isWaterPrimitiveCreated.value = false; -- Gitblit v1.9.3