wangjuncheng
2025-07-08 66032f62b4a3b6a649fc02b392ae41278399b58b
src/views/left/Left.vue
@@ -4,35 +4,17 @@
      <span>仿真推演方案</span>
    </div>
    <div class="left-content">
      <div
        style="
      <div style="
          display: flex;
          justify-content: space-around;
          justify-content: space-evenly;
          padding: 8px 8px 8px 0px;
        "
      >
        <el-button @click="handleClick">新建仿真方案</el-button>
        <!-- <el-button @click="deleteSelectedScheme">删除仿真方案</el-button> -->
        <el-button>删除仿真方案</el-button>
        " v-if="btnShow">
        <el-button style="width: 45%" @click="handleClick">新建仿真方案</el-button>
        <el-button style="width: 45%" @click="deleteSelectedScheme">删除仿真方案</el-button>
      </div>
      <!-- <div class="mock">
        <div
          class="mock-item"
          :class="item.name == currentMock ? 'active' : ''"
          v-for="item in mockList"
          :key="item.id"
          @click="handleClick(item)"
        >
          <div class="mock-item-text">{{ item.name }}</div>
        </div>
      </div> -->
      <!-- <RiverLevel v-show="currentMock === '删除仿真方案'" />
      <listInfo
        v-show="currentMock === '新建仿真方案'"
        @start="start"
        @end="end"
      /> -->
      <schemeCard ref="schemeCardRef" @start="start" @end="end" />
      <!-- <schemeCard ref="schemeCardRef" @start="start" @end="end" @reset="reset" @closeBtn="handleBackFromParent" /> -->
      <schemeCard ref="schemeCardRef" @start="start" @end="end" @reset="reset" :deleteSim="deleteSim"
        :showAddIns="showAddIns" @closeBtn="handleBackFromParent" />
    </div>
  </div>
  <div class="left" v-show="showAddIns">
@@ -50,17 +32,9 @@
// import RiverLevel from "@/components/monifangzhen/RiverLevel.vue";
import { createPoint, removeEntities } from "@/utils/map";
// import { deviceDictList, getDictName } from "@/constant/dict.js";
import { getDeviceData } from "@/api/index";
const emits = defineEmits(["start", "end"]);
// const currentMock = ref("新建仿真方案");
// const mockList = ref([
//   {
//     name: "删除仿真方案",
//   },
//   {
//     name: "新建仿真方案",
//   },
// ]);
const list = [
  {
    alias: "孙胡沟主沟断面1",
@@ -303,13 +277,20 @@
];
const simStore = useSimStore();
const showAddIns = ref(false);
const btnShow = ref(true);
let divPointList = [];
function handleClick() {
  // currentMock.value = mock.name;
  showAddIns.value = true;
}
function handleBack(value) {
  showAddIns.value = false; // 隐藏子组件
}
function handleBackFromParent(value) {
  if (value === false) {
    btnShow.value = false;
  } else btnShow.value = true;
}
function initDevicePoint() {
  list.forEach((item) => {
@@ -354,11 +335,7 @@
    // createPoint(item)
  });
}
function getData() {
  getDeviceData().then((res) => {
    devicetList.value = res.data;
  });
}
function createLabel(item) {
  const { name, x, y, showBillboard = false } = item;
  let position = Cesium.Cartesian3.for(x, y);
@@ -410,29 +387,7 @@
  // entities.push(entity)
}
const schemeCardRef = ref(null);
function deleteSelectedScheme() {
  const selectedId = schemeCardRef.value.getSelectedId();
  const selectedScheme = simStore.schemCard.find(item => item.id === selectedId);
  if (!selectedId) {
    ElMessage.warning("请先选择一个方案!");
    return;
  }
  ElMessageBox.confirm(
    `确定要删除  "${selectedScheme.name}" 方案吗?`,
    "删除确认",
    {
      confirmButtonText: "确定",
      cancelButtonText: "取消",
      type: "warning",
    }
  )
    .then(() => {
      simStore.removeSchemCardItem(selectedId);
      ElMessage.success(`方案 "${selectedScheme.name}" 删除成功!`);
    })
    .catch(() => {
    });
}
function start(form) {
  emits("start", form);
}
@@ -440,7 +395,6 @@
  emits("end");
}
onMounted(() => {
  // getData()
  // initDevicePoint()
});
@@ -451,9 +405,19 @@
  });
  divPointList = [];
});
///////////////////////////删除仿真方案///////////////////////////
const deleteSim = ref(false);
function reset() {
  deleteSim.value = false; // 重置标志位
}
function deleteSelectedScheme() {
  deleteSim.value = true;
}
///////////////////////////删除仿真方案///////////////////////////
</script>
<style lang="less" scoped>
@import url("../../assets/css/left.css");
.mock {
  padding-top: 10px;
  padding-right: 10px;