|
|
@@ -144,7 +144,7 @@
|
|
|
import "./map/mockFarmLayer";
|
|
|
import StaticMapLayers from "@/components/static_map_change/Layers.js";
|
|
|
import StaticMapPointLayers from "@/components/static_map_change/pointLayer.js";
|
|
|
-import { onMounted, onUnmounted, ref, reactive } from "vue";
|
|
|
+import { onMounted, onUnmounted, ref, reactive, watch } from "vue";
|
|
|
import fnHeader from "@/components/fnHeader.vue";
|
|
|
import WarningMap from "./warningMap";
|
|
|
import AlarmLayer from "./map/alarmLayer";
|
|
|
@@ -285,8 +285,6 @@ onMounted(() => {
|
|
|
staticMapLayers = new StaticMapLayers(warningMap.kmap);
|
|
|
staticMapPointLayers = new StaticMapPointLayers(warningMap.kmap);
|
|
|
distributionLayer = new DistributionLayer(warningMap.kmap);
|
|
|
- // 添加 10 个测试点位(从 warningMap 中调用)
|
|
|
- warningMap.addTestPointsAroundCenter();
|
|
|
// setTimeout(() => {
|
|
|
// staticMapLayers.show("testpng")
|
|
|
// },2000)
|
|
|
@@ -298,9 +296,19 @@ onMounted(() => {
|
|
|
warningLayers.value = data;
|
|
|
});
|
|
|
|
|
|
+ // 预警分布图层联动:仅在“预警分布”tab 显示时,才在地图上显示对应图层
|
|
|
eventBus.on("alarmList:changeMapLayer", ({ name, legendUrl }) => {
|
|
|
+ // 47 行:只在 activeBaseTab === '预警分布' 时显示预警列表
|
|
|
+ // 这里保持一致:只有在该 tab 下才显示地图图层,否则直接隐藏
|
|
|
+ if (activeBaseTab.value !== "预警分布") {
|
|
|
+ staticMapLayers && staticMapLayers.hideAll();
|
|
|
+ legendImg.value = "";
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
if (legendUrl) {
|
|
|
legendImg.value = legendUrl;
|
|
|
+ staticMapLayers && staticMapLayers.showSingle(name, true);
|
|
|
} else {
|
|
|
legendImg.value = warningLayers.value[`${name}图例`];
|
|
|
let text = "";
|
|
|
@@ -312,9 +320,9 @@ onMounted(() => {
|
|
|
text = "从化地块水分";
|
|
|
}
|
|
|
if (text !== "") {
|
|
|
- staticMapLayers.showSingle(text, true);
|
|
|
+ staticMapLayers && staticMapLayers.showSingle(text, true);
|
|
|
} else {
|
|
|
- staticMapLayers.hideAll();
|
|
|
+ staticMapLayers && staticMapLayers.hideAll();
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
@@ -323,6 +331,21 @@ onMounted(() => {
|
|
|
eventBus.off("chat:showMapLayer", handleMapLayer);
|
|
|
eventBus.on("chat:showMapLayer", handleMapLayer);
|
|
|
});
|
|
|
+
|
|
|
+// 监听顶部基础 tab:
|
|
|
+// - 进入“预警分布”时,让预警列表默认选中第一个因子并联动地图
|
|
|
+// - 离开“预警分布”时,强制关闭地图上的预警图层并清空选中
|
|
|
+watch(activeBaseTab, (val) => {
|
|
|
+ if (val === "预警分布") {
|
|
|
+ // 通知预警列表组件默认选中第一个(因子)项
|
|
|
+ eventBus.emit("warningHome:activeFirstAlarmFactor");
|
|
|
+ } else {
|
|
|
+ legendImg.value = "";
|
|
|
+ staticMapLayers && staticMapLayers.hideAll();
|
|
|
+ // 通知预警列表组件清空默认选中项
|
|
|
+ eventBus.emit("warningHome:clearAlarm");
|
|
|
+ }
|
|
|
+});
|
|
|
sessionStorage.removeItem("farmId");
|
|
|
|
|
|
onUnmounted(() => {
|