wangjuncheng
2025-04-21 fcac9ebfb3a0a1a4f6d857b422768d6cbef7944d
change
已修改3个文件
40 ■■■■ 文件已修改
src/components/menu/TimeLine.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/monifangzhen/schemeCard.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/monifangzhen/schemeInfo.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/menu/TimeLine.vue
@@ -62,7 +62,7 @@
        </div>
      </div>
    </div>
    <el-button @click="endSimulate" style="margin-top: 26px;margin-left: 30px;margin-right: 10px;">结束模拟</el-button>
    <el-button @click="handleBack" style="margin-top: 26px;margin-left: 30px;margin-right: 10px;">结束模拟</el-button>
  </div>
</template>
@@ -80,6 +80,9 @@
import dayjs from "dayjs";
import { createWaterPrimitive, destoryWaterPrimitive } from "@/utils/water";
import { getRainfall } from "@/api/index";
import { EventBus } from "@/eventBus"; // 引入事件总线
import { ElMessage } from 'element-plus'
const props = defineProps({
  waterSimulateParams: {
@@ -301,6 +304,15 @@
  }, delay);
});
const { startSimulate, endSimulate } = inject("simulateActions");
// 返回按钮点击事件
function handleBack() {
  ElMessage({
    message: '模拟进程正在关闭中...',
    type: 'success',
  })
  endSimulate();
  EventBus.emit("hide-schemeInfo");
}
</script>
<style scoped>
src/components/monifangzhen/schemeCard.vue
@@ -22,25 +22,22 @@
        </div>
      </div>
    </el-card>
    <schemeInfo
      v-if="schemeInfoShow"
      :selectedScheme="currentScheme"
      @back="handleBack"
    />
    <schemeInfo v-if="schemeInfoShow" :selectedScheme="currentScheme" @back="handleBack" />
  </div>
  <Message @close="close" class="mess" v-show="messageShow" :mesData="mesData" />
</template>
<script setup>
import { onMounted, ref, watch ,defineEmits } from "vue";
import { EventBus } from "@/eventBus"; // 引入事件总线
import { onMounted, ref, watch, defineEmits, onUnmounted } from "vue";
import dayjs from "dayjs";
import { initeWaterPrimitiveView } from "@/utils/water";
import Message from "@/components/tools/Message.vue";
import { useSimStore } from "@/store/simulation.js";
import schemeInfo from "@/components/monifangzhen/schemeInfo.vue";
import { ElMessage, ElMessageBox } from "element-plus";
const emit = defineEmits(["start", "end", "reset","closeBtn"]);
const emit = defineEmits(["start", "end", "reset", "closeBtn"]);
const simStore = useSimStore();
// 选中的方案 ID
@@ -317,7 +314,7 @@
  //   alert("当前方案尚未完成,无法进入模拟!");
  //   return;
  // }
  currentScheme.value = item;
  currentScheme.value = item;
  schemeInfoShow.value = true
  emit("closeBtn", false);
  initeWaterPrimitiveView();
@@ -332,6 +329,14 @@
    emit("closeBtn", true);
  }
}
const handleHideSchemeInfo = () => {
  schemeInfoShow.value = false; // 隐藏 schemeInfo
  console.log("schemeInfoShow set to false");
};
// 注册事件监听器
EventBus.on("hide-schemeInfo", handleHideSchemeInfo);
//////////////////////////////////// 暴露选中的 ID 给父组件(接口版本删除)////////////////////////////////////
defineExpose({
  getSelectedId: () => selectedId.value,
@@ -391,6 +396,9 @@
//     });
// };
/////////////////////// 调用接口结束 ///////////////////////
onUnmounted(() => {
  EventBus.off("hide-schemeInfo", handleHideSchemeInfo);
});
</script>
<style lang="less" scoped>
src/components/monifangzhen/schemeInfo.vue
@@ -2,7 +2,7 @@
  <div class="listCard">
    <div class="left-top">
      <span>方案详情</span>
      <el-button class="clickable-text" @click="handleBack">结束模拟</el-button>
      <!-- <el-button class="clickable-text" @click="handleBack">结束模拟</el-button> -->
    </div>
    <div class="details">
      <div v-if="selectedScheme">