管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2023-03-14 41f62003bf2a7c77d412e9f585746ccd2ca15370
src/views/Tools/LayerTree.vue
@@ -17,6 +17,7 @@
      @check-change="handleCheckChange"
      :default-checked-keys="handleTreeCheck"
      :expand-on-click-node="false"
      :filter-node-method="filterNode"
    >
      <span
        class="slot-t-node"
@@ -74,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;属性
@@ -82,7 +83,7 @@
      <div
        class="edit"
        @click="positioning()"
        v-show="showlocal"
        v-if="showlocal"
      >
        <i class="el-icon-tickets"></i>&nbsp;&nbsp;定位
      </div>
@@ -93,6 +94,13 @@
      >
        <i class="el-icon-tickets"></i>&nbsp;&nbsp;钻孔柱状图
      </div>
      <!-- <div
        class="edit"
        v-show="showModelAttach"
        @click="modelAttach()"
      >
        <i class="el-icon-tickets"></i>&nbsp;&nbsp;模型属性
      </div> -->
      <!-- <div
        class="edit"
        @click="menuMoveF( 'up')"
@@ -196,6 +204,7 @@
      rightClickMenuStyle: {},
      handleTreeCheck: [],
      dialogVisible: false,
      showModelAttach: false,
      addFormServer: {
        opacity: 100,
        serveType: "WMS",
@@ -225,6 +234,7 @@
    };
  },
  methods: {
    //转孔柱状图
    async histogram() {
      this.menuVisible = false
@@ -247,6 +257,13 @@
          },
        });
    },
    modelAttach() {
      this.menuVisible = false;
      this.$store.state.attachinfo = this.currentData;
      this.$store.state.attachModel = true;
    },
    NodeBlur(Node, data) {
      if (data.label.length === 0) {
        this.$message.error("菜单名不可为空!");
@@ -260,11 +277,7 @@
        });
      }
    },
    // 查询
    filterNode(value, data) {
      if (!value) return true;
      return data.label.indexOf(value) !== -1;
    },
    allowDrop(draggingNode, dropNode, type) {
      if (dropNode.data.label === "二级 3-1") {
@@ -280,6 +293,12 @@
    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;
      } else {
        this.showModelAttach = false;
      }
      if (this.currentData.enName == "s_explorationpoint") {
        this.shwoHistogram = true;
      } else {
@@ -513,10 +532,10 @@
      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;
@@ -525,13 +544,6 @@
            const img_layer = window.Viewer.imageryLayers._layers[i];
            img_layer.show = checked;
          }
        }
        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") {
@@ -552,7 +564,7 @@
          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(res.id);
              Viewer.flyTo(Viewer.scene.primitives._primitives[i]);
            }
          }
@@ -560,14 +572,24 @@
      }
      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); //显示图层
        }
      }
      // 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") {
@@ -647,7 +669,6 @@
        });
        window.map.addLayer(vectorLayer);
      } else if (res.serveType == "Tileset") {
        var tileset = Viewer.scene.primitives.add(
          new Cesium.Cesium3DTileset({
            name: res.cnName,
@@ -658,16 +679,13 @@
            skipLevelOfDetail: true, // 在遍历时候跳过详情:false
          })
        );
        tileset.readyPromise.then((tileset0) => {
        tileset.readyPromise.then((tileset) => {
          tileset.id = res.cnName;
          tileset.layerId = res.id;
          this.tileSet(tileset, parseFloat(res.elev))
          Viewer.flyTo(tileset);
        });
        window.model = tileset
      }
    },
@@ -788,6 +806,12 @@
      }
      this.$refs.tree.setCheckedKeys(std);
    },
    // 查询
    filterNode(value, data) {
      if (!value) return true;
      return data.cnName.indexOf(value) !== -1;
    },
  },
  watch: {
    filterText(val) {