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