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