riku
2024-11-11 d205764a3ebe073b8302e8faf9345b74ae3350df
src/components/map/MapScene.vue
@@ -56,6 +56,14 @@
      sceneMap: new Map()
    };
  },
  watch: {
    // 当切换区县时,清空所有选项
    districtCode(nV, oV) {
      if (nV != oV) {
        this.handelCheckAllChange(false);
      }
    }
  },
  methods: {
    fetchScene(sceneType) {
      return sceneInfoApi
@@ -84,13 +92,14 @@
      // 根据选项,将未打开的图层开启
      types.forEach((t) => {
        if (!lableMarkMap.has(t)) {
        const key = this.districtCode + t;
        if (!lableMarkMap.has(key)) {
          this.fetchScene(t).then((res) => {
            const layer = marks.createLabelMarks(sceneIcon(t), res);
            lableMarkMap.set(t, { show: true, layer });
            lableMarkMap.set(key, { show: true, layer });
          });
        } else {
          const m = lableMarkMap.get(t);
          const m = lableMarkMap.get(key);
          if (!m.show) {
            MapUtil.addViews(m.layer);
            m.show = true;
@@ -100,7 +109,7 @@
      // 根据选项,将开启中的未选中图层关闭
      for (const [key, value] of lableMarkMap) {
        if (!types.includes(key)) {
        if (!types.map((t) => this.districtCode + t).includes(key)) {
          if (value.show) {
            MapUtil.removeViews(value.layer);
            value.show = false;