src/views/left/KGSim.vue
@@ -10,12 +10,13 @@
        popper-class="mySelectStyle"
        filterable
        :filter-method="filterOptions"
        @change="handleSelectChange"
      >
        <el-option
          v-for="item in filteredOptions"
          :key="item.value"
          :label="item.label"
          :value="item.value"
          :value="item"
        />
      </el-select>
    </div>
@@ -29,44 +30,56 @@
    <!-- 历史模拟 -->
    <div class="history-simulation-wrapper">
      <el-radio-group v-model="selectedSimulation" style="margin-bottom: 10px;">
      <el-radio-group v-model="selectedSimulation" style="margin-bottom: 10px">
        <el-radio label="历史模拟">历史模拟</el-radio>
        <el-radio label="实时模拟">实时模拟</el-radio>
        <el-radio label="预测模拟">预测模拟</el-radio>
      </el-radio-group>
      <div v-if="selectedSimulation === '历史模拟'">
        <HistorySimulation :selectedArea="selectedArea"/>
        <HistorySimulation :selectedArea="selectedArea" />
      </div>
      <div v-if="selectedSimulation === '实时模拟'">
        <!-- <RealTimeSimulation :selectedArea="selectedArea" /> -->
        <RealTimeSimulation :selectedArea="selectedArea" />
      </div>
      <div v-if="selectedSimulation === '预测模拟'">
        <!-- <PredictiveSimulation :selectedArea="selectedArea"/> -->
        <PredictiveSimulation :selectedArea="selectedArea" />
      </div>
    </div>
  </div>
</template>
<script setup>
import { ref, computed } from 'vue';
import HistorySimulation from './KGSimOption/HistorySimulation.vue';
import PredictiveSimulation from './KGSimOption/PredictiveSimulation.vue';
import RealTimeSimulation from './KGSimOption/RealTimeSimulation.vue';
import { ref, computed, onMounted, reactive } from "vue";
import HistorySimulation from "./KGSimOption/HistorySimulation.vue";
import PredictiveSimulation from "./KGSimOption/PredictiveSimulation.vue";
import RealTimeSimulation from "./KGSimOption/RealTimeSimulation.vue";
import { getRegionData } from "@/api/trApi";
import { EventBus } from "@/eventBus"; // 引入事件总线
const selectedSimulation = ref('历史模拟');
const selectedArea = ref('孙胡沟'); // 默认选中“孙胡沟”
const earesOptions = [
  { value: "孙胡沟", label: "孙胡沟" },
  { value: "鱼水洞后沟", label: "鱼水洞后沟" },
  { value: "于家西沟", label: "于家西沟" },
  { value: "北河沟", label: "北河沟" },
  { value: "龙泉峪村", label: "龙泉峪村" },
];
const selectedSimulation = ref("历史模拟");
const selectedArea = ref(); // 选中的区域
// 重点沟数据
const importGOptions = reactive([]);
onMounted(() => {
  // 获取重点沟数据
  getRegionData({ type: 3 }).then((res) => {
    importGOptions.splice(
      0,
      importGOptions.length,
      ...res.data.map((item) => ({
        id: item.id,
        value: item.geom,
        label: item.name,
      }))
    );
  });
});
// 动态过滤选项
const searchQuery = ref('');
const searchQuery = ref("");
const filteredOptions = computed(() => {
  return earesOptions.filter(option =>
  return importGOptions.filter((option) =>
    option.label.toLowerCase().includes(searchQuery.value.toLowerCase())
  );
});
@@ -76,22 +89,31 @@
  searchQuery.value = query;
};
// 处理选项选择事件
const handleSelectChange = (value) => {
  EventBus.emit("select-geom", { geom: value.value, flyHeight: 8000 });
  console.log("选中的值:", value); // 打印选中的值
  console.log(
    "当前选中的完整数据:",
    importGOptions.find((item) => item.value === value)
  ); // 打印完整的选中数据
};
const handleStart = () => {
  console.log('开始按钮被点击');
  console.log("开始按钮被点击");
};
const handleAdd = () => {
  console.log('加载按钮被点击');
  console.log("加载按钮被点击");
};
</script>
<style scoped>
/* 样式保持不变 */
</style>
<style scoped>
.simulation-module {
  color: #61f7d4;
  color: #61f7d4;
  font-size: 14px;
  height: 100%;
  background: url("@/assets/img/screen/leftbg.png");
}
.simulation-area {
@@ -99,7 +121,7 @@
}
.engineering-buttons {
  .el-button{
  .el-button {
    width: 100px;
  }
}
@@ -107,7 +129,7 @@
.history-simulation-wrapper {
  margin-bottom: 20px;
  height: 100%; /* 固定高度 */
  overflow: auto; /* 如果内容超出,允许滚动 */
  overflow: auto;
}
/* 自定义单选框样式 */
:deep(.el-radio__input.is-checked .el-radio__inner) {
@@ -118,24 +140,13 @@
:deep(.el-radio__input.is-checked + .el-radio__label) {
  color: inherit; /* 让文字颜色跟随父级 */
}
:deep(.el-select__placeholder ) {
:deep(.el-select__placeholder) {
  color: #fff; /* 让文字颜色跟随父级 */
}
:deep(.el-radio ) {
:deep(.el-radio) {
  color: #fff; /* 让文字颜色跟随父级 */
}
:deep(.el-input__inner ) {
:deep(.el-input__inner) {
  color: #fff; /* 让文字颜色跟随父级 */
}
/* .mySelectStyle {
    .el-select-dropdown__item:hover {
        color: #009688 !important;
    }
    .el-select-dropdown__item {
      color: #fff !important;
    }
    .el-select-dropdown__item.selected {
        color: #009688 !important;
    }
} */
</style>
</style>