From c62099b5f8753bee49c3fca630e9757b7682a6c1 Mon Sep 17 00:00:00 2001
From: guonan <guonan201020@163.com>
Date: 星期二, 15 四月 2025 10:14:19 +0800
Subject: [PATCH] 使用依赖注入

---
 src/views/left/KGSim.vue                         |   21 +++++-----
 src/views/left/KGSimOption/HistorySimulation.vue |   14 ++++---
 src/views/mnfz.vue                               |    8 +++
 src/views/left/CitySim.vue                       |   15 ++++---
 src/views/left/Simulation.vue                    |   31 ++++++++-------
 5 files changed, 52 insertions(+), 37 deletions(-)

diff --git a/src/views/left/CitySim.vue b/src/views/left/CitySim.vue
index 7b7a347..788cb29 100644
--- a/src/views/left/CitySim.vue
+++ b/src/views/left/CitySim.vue
@@ -92,17 +92,20 @@
   </div>
 </template>
 <script setup>
-import { reactive, ref, watch } from "vue";
+import { reactive, ref, watch, inject } from "vue";
 import { initeWaterPrimitiveView } from "@/utils/water";
 
-const emit = defineEmits(["start", "end"]);
-function endPlay() {
-  emit("end");
-}
+// 娉ㄥ叆鐖剁粍浠舵彁渚涚殑鏂规硶
+const { startSimulate, endSimulate } = inject("simulateActions");
+
+// const emit = defineEmits(["start", "end"]);
+// function endPlay() {
+//   emit("end");
+// }
 
 function startPlay() {
   initeWaterPrimitiveView();
-  emit("start");
+  startSimulate();
 }
 
 const value = ref("");
diff --git a/src/views/left/KGSim.vue b/src/views/left/KGSim.vue
index 59b684f..6a5d2db 100644
--- a/src/views/left/KGSim.vue
+++ b/src/views/left/KGSim.vue
@@ -35,11 +35,12 @@
         <el-radio label="棰勬祴妯℃嫙">棰勬祴妯℃嫙</el-radio>
       </el-radio-group>
       <div v-if="selectedSimulation === '鍘嗗彶妯℃嫙'">
-        <HistorySimulation
+        <!-- <HistorySimulation
           :selectedArea="selectedArea"
           @start="start"
           @end="end"
-        />
+        /> -->
+        <HistorySimulation :selectedArea="selectedArea" />
       </div>
       <div v-if="selectedSimulation === '瀹炴椂妯℃嫙'">
         <RealTimeSimulation :selectedArea="selectedArea" />
@@ -57,16 +58,16 @@
 import PredictiveSimulation from "./KGSimOption/PredictiveSimulation.vue";
 import RealTimeSimulation from "./KGSimOption/RealTimeSimulation.vue";
 
-const emit = defineEmits(["start", "end"]);
+// const emit = defineEmits(["start", "end"]);
 
-function end() {
-  emit("end");
-}
+// function end() {
+//   emit("end");
+// }
 
-function start() {
-  // initeWaterPrimitiveView();
-  emit("start");
-}
+// function start() {
+//   // initeWaterPrimitiveView();
+//   emit("start");
+// }
 
 const selectedSimulation = ref("鍘嗗彶妯℃嫙");
 const selectedArea = ref("瀛欒儭娌�");
diff --git a/src/views/left/KGSimOption/HistorySimulation.vue b/src/views/left/KGSimOption/HistorySimulation.vue
index bc2b332..1388db7 100644
--- a/src/views/left/KGSimOption/HistorySimulation.vue
+++ b/src/views/left/KGSimOption/HistorySimulation.vue
@@ -90,18 +90,20 @@
 </template>
 
 <script setup>
-import { ref, computed } from "vue";
+import { ref, computed, inject } from "vue";
 import { ElMessage } from "element-plus";
 import { initeWaterPrimitiveView } from "@/utils/water";
-const emit = defineEmits(["start", "end"]);
+// const emit = defineEmits(["start", "end"]);
+const { startSimulate, endSimulate } = inject("simulateActions");
 
-function endPlay() {
-  emit("end");
-}
+// function endPlay() {
+//   emit("end");
+// }
 
 function startPlay() {
   initeWaterPrimitiveView();
-  emit("start");
+  // emit("start");
+  startSimulate();
 }
 // 瀹氫箟 Props
 const props = defineProps({
diff --git a/src/views/left/Simulation.vue b/src/views/left/Simulation.vue
index 004ce79..d3238f9 100644
--- a/src/views/left/Simulation.vue
+++ b/src/views/left/Simulation.vue
@@ -7,13 +7,16 @@
     @tab-click="handleClick"
   >
     <el-tab-pane label="琛屾斂鍖哄垝浠跨湡" name="first"
-      ><city-sim :clickValue="clickValue" @start="start" @end="end"
-    /></el-tab-pane>
-    <el-tab-pane label="閲嶇偣鍖哄煙浠跨湡" name="second"
-      ><city-sim :clickValue="clickValue" @start="start" @end="end"
-    /></el-tab-pane>
+      ><city-sim :clickValue="clickValue" />
+      <!-- ><city-sim :clickValue="clickValue" @start="start" @end="end"/> -->
+    </el-tab-pane>
+    <el-tab-pane label="閲嶇偣鍖哄煙浠跨湡" name="second">
+      <city-sim :clickValue="clickValue" />
+      <!-- <city-sim :clickValue="clickValue" @start="start" @end="end"/> -->
+    </el-tab-pane>
     <el-tab-pane label="閲嶇偣娌熶豢鐪�" name="third">
-      <kg-sim :clickValue="clickValue" @start="start" @end="end" />
+      <!-- <kg-sim :clickValue="clickValue" @start="start" @end="end" /> -->
+      <kg-sim :clickValue="clickValue" />
     </el-tab-pane>
   </el-tabs>
 </template>
@@ -31,15 +34,15 @@
   clickValue.value = tab.props.label;
   console.log(clickValue.value);
 };
-const emits = defineEmits(["start", "end"]);
+// const emits = defineEmits(["start", "end"]);
 
-function start() {
-  emits("start");
-  console.log("寮�濮嬫ā鎷�");
-}
-function end() {
-  emits("end");
-}
+// function start() {
+//   emits("start");
+//   console.log("寮�濮嬫ā鎷�");
+// }
+// function end() {
+//   emits("end");
+// }
 </script>
 
 <style lang="less" scoped>
diff --git a/src/views/mnfz.vue b/src/views/mnfz.vue
index 14940d4..d09fec0 100644
--- a/src/views/mnfz.vue
+++ b/src/views/mnfz.vue
@@ -17,7 +17,7 @@
 </template>
 
 <script setup>
-import { ref, onMounted, onUnmounted } from "vue";
+import { ref, onMounted, onUnmounted, provide } from "vue";
 import TimeLine from "@/components/menu/TimeLine.vue";
 import Left from "./left/Left.vue";
 import echartInfo from "@/components/monifangzhen/echartInfo.vue";
@@ -34,6 +34,12 @@
 const isDynamicMode = ref(false);
 const isFinish = ref(true);
 
+// 鎻愪緵鏂规硶缁欐墍鏈夊瓙缁勪欢
+provide("simulateActions", {
+  startSimulate,
+  endSimulate,
+});
+
 function startSimulate(form) {
   // console.log("form", form);
   showWaterSimulate.value = true;

--
Gitblit v1.9.3