From fd855df19dfadabf14c34ba91e8dfc2421227bf1 Mon Sep 17 00:00:00 2001
From: wangjuncheng <1>
Date: 星期五, 06 六月 2025 09:34:12 +0800
Subject: [PATCH] 1

---
 src/views/left/KGSim.vue |  103 +++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 75 insertions(+), 28 deletions(-)

diff --git a/src/views/left/KGSim.vue b/src/views/left/KGSim.vue
index 40380d5..31302c0 100644
--- a/src/views/left/KGSim.vue
+++ b/src/views/left/KGSim.vue
@@ -3,29 +3,21 @@
     <!-- 妯℃嫙鍖哄煙 -->
     <div class="simulation-area">
       <p>妯℃嫙鍖哄煙</p>
-      <el-select
-        v-model="selectedArea"
-        placeholder="璇烽�夋嫨"
-        style="max-width: 600px"
-        popper-class="mySelectStyle"
-        filterable
-        :filter-method="filterOptions"
-        @change="handleSelectChange"
-      >
-        <el-option
-          v-for="item in filteredOptions"
-          :key="item.value"
-          :label="item.label"
-          :value="item"
-        />
+      <el-select v-model="selectedArea" placeholder="璇烽�夋嫨" style="max-width: 600px" popper-class="mySelectStyle"
+        filterable :filter-method="filterOptions" @change="handleSelectChange">
+        <el-option v-for="item in filteredOptions" :key="item.value" :label="item.label" :value="item" />
       </el-select>
     </div>
 
     <!-- 娌荤悊宸ョ▼鏍囩粯 -->
     <div class="engineering-buttons">
       <p>娌荤悊宸ョ▼鏍囩粯</p>
-      <el-button type="primary" @click="handleStart">寮�娌�</el-button>
-      <el-button type="success" @click="handleAdd">鍔犲潩</el-button>
+      <el-button type="primary" @click="toggleDitch">
+        {{ ditchingActive ? "鍏抽棴寮�娌�" : "寮�鍚紑娌�" }}
+      </el-button>
+      <el-button type="primary" @click="toggleDam">
+        {{ damActive ? "鍏抽棴鍔犲潩" : "寮�鍚姞鍧�" }}
+        </el-button>
     </div>
 
     <!-- 鍘嗗彶妯℃嫙 -->
@@ -36,7 +28,6 @@
         <el-radio label="棰勬祴妯℃嫙">棰勬祴妯℃嫙</el-radio>
       </el-radio-group>
       <div v-if="selectedSimulation === '鍘嗗彶妯℃嫙'">
-        <!-- <HistorySimulation :selectedArea="selectedArea" /> -->
         <CitySim :selectedArea="selectedArea" />
       </div>
       <div v-if="selectedSimulation === '瀹炴椂妯℃嫙'">
@@ -46,6 +37,8 @@
         <PredictiveSimulation :selectedArea="selectedArea" />
       </div>
     </div>
+    <Ditching v-show="ditchingShow" class="ditchingPosition" @update-excavation-data="handleUpdateExcavationData"></Ditching>
+    <Dam v-show="damShow" class="ditchingPosition"></Dam>
   </div>
 </template>
 
@@ -53,6 +46,8 @@
 import { ref, computed, onMounted, reactive } from "vue";
 import HistorySimulation from "./KGSimOption/HistorySimulation.vue";
 import CitySim from './CitySim.vue'
+import Ditching from "@/components/tools/Ditching.vue";
+import Dam from "@/components/tools/Dam.vue";
 import PredictiveSimulation from "./KGSimOption/PredictiveSimulation.vue";
 import RealTimeSimulation from "./KGSimOption/RealTimeSimulation.vue";
 import { getRegionData } from "@/api/trApi";
@@ -62,6 +57,10 @@
 const selectedArea = ref(); // 閫変腑鐨勫尯鍩�
 // 閲嶇偣娌熸暟鎹�
 const importGOptions = reactive([]);
+let ditchingShow = ref(false);
+let damShow = ref(false);
+let ditchingActive = ref(false);
+let damActive = ref(false);
 
 onMounted(() => {
   // 鑾峰彇閲嶇偣娌熸暟鎹�
@@ -86,6 +85,10 @@
   );
 });
 
+const handleUpdateExcavationData = (data) => {
+  console.log('鎺ユ敹鍒板瓙缁勪欢鐨勬暟鎹�:', data);
+  // 姝ゅ鍙繘琛屽悗缁搷浣滐紝濡備繚瀛樸�佺粯鍥剧瓑
+};
 // 鑷畾涔夎繃婊ゆ柟娉�
 const filterOptions = (query) => {
   searchQuery.value = query;
@@ -101,8 +104,35 @@
   ); // 鎵撳嵃瀹屾暣鐨勯�変腑鏁版嵁
 };
 
-const handleStart = () => {
-  console.log("寮�濮嬫寜閽鐐瑰嚮");
+// 鍒囨崲寮�娌熺姸鎬�
+const toggleDitch = () => {
+  ditchingActive.value = !ditchingActive.value;
+  ditchingShow.value = ditchingActive.value;
+
+  if (ditchingActive.value) {
+    console.log("寮�鍚寜閽鐐瑰嚮");
+  } else {
+    console.log("鍏抽棴鎸夐挳琚偣鍑�");
+    cloesDitch();
+  }
+};
+// 鍒囨崲鍔犲潩鐘舵��
+const toggleDam = () => {
+  damActive.value = !damActive.value;
+  damShow.value = damActive.value;
+
+  if (damActive.value) {
+    console.log("寮�鍚寜閽鐐瑰嚮");
+  } else {
+    console.log("鍏抽棴鎸夐挳琚偣鍑�");
+    cloesDam();
+  }
+};
+const cloesDitch = () => {
+  ditchingShow.value = false;
+};
+const cloesDam = () => {
+  damShow.value = false;
 };
 
 const handleAdd = () => {
@@ -111,6 +141,12 @@
 </script>
 
 <style scoped>
+.ditchingPosition {
+  position: fixed;
+  left: 18%;
+  top: 20%;
+}
+
 .simulation-module {
   color: #61f7d4;
   font-size: 14px;
@@ -130,25 +166,36 @@
 
 .history-simulation-wrapper {
   margin-bottom: 20px;
-  height: 100%; /* 鍥哄畾楂樺害 */
+  height: 100%;
+  /* 鍥哄畾楂樺害 */
   overflow: auto;
 }
+
 /* 鑷畾涔夊崟閫夋鏍峰紡 */
 :deep(.el-radio__input.is-checked .el-radio__inner) {
-  background-color: #009688; /* 閫変腑鏃剁殑鑳屾櫙棰滆壊 */
-  border-color: #009688; /* 閫変腑鏃剁殑杈规棰滆壊 */
+  background-color: #009688;
+  /* 閫変腑鏃剁殑鑳屾櫙棰滆壊 */
+  border-color: #009688;
+  /* 閫変腑鏃剁殑杈规棰滆壊 */
 }
 
 :deep(.el-radio__input.is-checked + .el-radio__label) {
-  color: inherit; /* 璁╂枃瀛楅鑹茶窡闅忕埗绾� */
+  color: inherit;
+  /* 璁╂枃瀛楅鑹茶窡闅忕埗绾� */
 }
+
 :deep(.el-select__placeholder) {
-  color: #fff; /* 璁╂枃瀛楅鑹茶窡闅忕埗绾� */
+  color: #fff;
+  /* 璁╂枃瀛楅鑹茶窡闅忕埗绾� */
 }
+
 :deep(.el-radio) {
-  color: #fff; /* 璁╂枃瀛楅鑹茶窡闅忕埗绾� */
+  color: #fff;
+  /* 璁╂枃瀛楅鑹茶窡闅忕埗绾� */
 }
+
 :deep(.el-input__inner) {
-  color: #fff; /* 璁╂枃瀛楅鑹茶窡闅忕埗绾� */
+  color: #fff;
+  /* 璁╂枃瀛楅鑹茶窡闅忕埗绾� */
 }
-</style>
+</style>
\ No newline at end of file

--
Gitblit v1.9.3