管道基础大数据平台系统开发-【前端】-新系統界面
src/views/Tools/LayerTree.vue
@@ -75,7 +75,7 @@
      <div
        class="edit"
        @click="showLayerAttribute()"
        v-if="!showlocal"
        v-if="!showlocal && !shwoHistogram"
        v-show="!firstLevel"
      >
        <i class="el-icon-tickets"></i>&nbsp;&nbsp;属性
@@ -83,7 +83,7 @@
      <div
        class="edit"
        @click="positioning()"
        v-show="showlocal"
        v-if="showlocal"
      >
        <i class="el-icon-tickets"></i>&nbsp;&nbsp;定位
      </div>
@@ -168,7 +168,7 @@
        >确 定</el-button>
      </span>
    </el-dialog>
    <queryinfo ref="queryinfo" />
  </div>
</template>
@@ -241,21 +241,7 @@
      var layer = this.currentData.enName.replaceAll("_", "");
      this.$store.state.mapSpaceQueryLayer = layer;
      this.$store.state.mapPopBoxFlag = "2";
      this.$refs && this.$refs.queryinfo && this.$refs.queryinfo.close();
      this.$refs &&
        this.$refs.queryinfo &&
        this.$refs.queryinfo.open("属性", null, {
          close: () => {
            if (this.$store.state.primitLayer != null) {
              sgworld.Creator.DeleteObject(this.$store.state.primitLayer);
              this.$store.state.primitLayer = null;
            }
            if (window.Viewer.scene.primitives.length != 0) {
              window.Viewer.scene.primitives.removeAll();
            }
          },
        });
      this.$store.state.showPopBoxFlag = true;
    },
    modelAttach() {
      this.menuVisible = false;
@@ -293,6 +279,7 @@
    rightClick(event, object, Node, element) {
      this.currentData = object;
      this.currentNode = Node;
      this.$store.state.propertiesName = this.currentData;
      if (this.currentData.serveType == "Tileset") {
        this.showModelAttach = true;
@@ -386,16 +373,10 @@
      this.menuVisible = false
      var label = this.currentNode.data.cnName;
      if (this.currentNode.data.serveType == "WMS") {
        for (var i in window.Viewer.imageryLayers._layers) {
          if (
            window.Viewer.imageryLayers._layers[i].imageryProvider.name ===
            label
          ) {
            window.Viewer.imageryLayers.remove(
              window.Viewer.imageryLayers._layers[i]
            );
          }
        }
        var value = this.$refs.tree.getCheckedNodes();
        this.$bus.$emit("showMenuLayer", value);
      } else if (this.currentNode.data.serveType == "WFS") {
        for (var i in window.Viewer.dataSources._dataSources) {
          if (window.Viewer.dataSources._dataSources[i].name == label) {
@@ -431,23 +412,10 @@
      this.currentData = data ? data : this.currentData;
      var layer = this.currentData.enName.replaceAll("_", "");
      this.$store.state.mapSpaceQueryLayer = layer;
      this.$store.state.showPopBoxFlag = true;
      this.$store.state.mapPopBoxFlag = "2";
      this.$refs && this.$refs.queryinfo && this.$refs.queryinfo.close();
      this.$refs &&
        this.$refs.queryinfo &&
        this.$refs.queryinfo.open("属性", null, {
          close: () => {
            if (this.$store.state.primitLayer != null) {
              sgworld.Creator.DeleteObject(this.$store.state.primitLayer);
              this.$store.state.primitLayer = null;
            }
            if (window.Viewer.scene.primitives.length != 0) {
              window.Viewer.scene.primitives.removeAll();
            }
          },
        });
    },
    //模型定位
    positioning() {
@@ -532,28 +500,15 @@
      console.log("tree drop: ", dropNode.label, dropType);
    },
    handleCheckChange(data, checked, indeterminate) {
      if (data.type != 2) return;
      var std = [];
      if (data.serveType == "WMS") {
        var layers_ol = window.map.getAllLayers();
        for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) {
          var val_id =
            window.Viewer.imageryLayers._layers[i].imageryProvider.name;
          if (val_id == data.cnName) {
            std.push(data.label);
      var value = this.$refs.tree.getCheckedNodes();
            const img_layer = window.Viewer.imageryLayers._layers[i];
            img_layer.show = checked;
          }
        }
      this.$bus.$emit("showMenuLayer", value);
        for (var i in layers_ol) {
          var layerOl = layers_ol[i];
          if (layerOl.values_.name == data.cnName) {
            layerOl.setVisible(checked); //显示图层
          }
        }
      } else if (data.serveType == "WFS") {
      if (data.serveType == "WFS") {
        if (window.Viewer.dataSources._dataSources.length == 0) {
          this.setAddLayers(data);
        } else {
@@ -565,28 +520,41 @@
          }
        }
      } else if (data.serveType == "Tileset") {
        if (Viewer.scene.primitives._primitives.length == 0) {
          this.setAddLayers(data);
        } else {
          var std = [];
          for (var i in Viewer.scene.primitives._primitives) {
            Viewer.scene.primitives._primitives[i].show = checked;
            if (Viewer.scene.primitives._primitives[i].id == data.cnName) {
              std.push(res.id);
              std.push(data.id);
              Viewer.flyTo(Viewer.scene.primitives._primitives[i]);
            }
          }
        }
      }
      if (std.length == 0 && checked == true) {
        this.setAddLayers(data);
      }
      var layers_ol = window.map.getAllLayers();
      for (var i in layers_ol) {
        var layerOl = layers_ol[i];
        if (layerOl.values_.name == data.label) {
          layerOl.setVisible(checked); //显示图层
        if (std.length == 0 && checked == true) {
          this.setAddLayers(data);
        } else {
          window.map.getLayers().getArray().forEach(item => {
            if (item.get("name") == data.cnName) {
              item.setVisible(checked);
            }
          });
        }
      }
      // var layers_ol = window.map.getAllLayers();
      // for (var i in layers_ol) {
      //   var layerOl = layers_ol[i];
      //   if (layerOl.values_.name == data.label) {
      //     layerOl.setVisible(checked); //显示图层
      //   }
      // }
    },
    setAddLayers(res) {
      if (res.serveType == "WMS") {
@@ -666,7 +634,6 @@
        });
        window.map.addLayer(vectorLayer);
      } else if (res.serveType == "Tileset") {
        var tileset = Viewer.scene.primitives.add(
          new Cesium.Cesium3DTileset({
            name: res.cnName,
@@ -677,13 +644,13 @@
            skipLevelOfDetail: true, // 在遍历时候跳过详情:false
          })
        );
        tileset.readyPromise.then((tileset) => {
          tileset.id = res.cnName;
          tileset.layerId = res.id;
          this.tileSet(tileset, parseFloat(res.elev))
          Viewer.flyTo(tileset);
        });
        // window.model = tileset
      }
    },
@@ -720,6 +687,7 @@
      var std = data.result;
      var that = this;
      var checkKey = [];
      let checkedLayers = [];
      var val = std.filter((str) => {
        if (str.type == 1) {
          return str;
@@ -728,11 +696,16 @@
          if (str.isShow == 1) {
            checkKey.push(str.id);
            that.setAddLayers(str);
            if (str.serveType == "WMS" && str.url) {
              checkedLayers.push(str);
            }
          }
          return str;
        }
      });
      //存储选中图层
      sessionStorage.setItem("checkedLayers", JSON.stringify(checkedLayers));
      var res = this.setTreeData(val);
      for (var i in res) {