管道基础大数据平台系统开发-【前端】-新系統界面
1
Surpriseplus
2022-12-21 ec3342e1b34dd02f33dae9bed2db16a14ae8096d
src/views/Tools/LayerTree.vue
@@ -94,6 +94,8 @@
</template>
<script>
import ImageWMS from 'ol/source/ImageWMS';
import Image from 'ol/layer/Image';
export default {
  name: 'tree',
  data() {
@@ -158,14 +160,12 @@
  },
  methods: {
    NodeBlur(Node, data) {
      console.log(Node, data);
      if (data.label.length === 0) {
        this.$message.error('菜单名不可为空!');
        return false;
      } else {
        if (data.isEdit) {
          this.$set(data, 'isEdit', false);
          console.log(data.isEdit);
        }
        this.$nextTick(() => {
          this.$refs['slotTreeInput' + data.id].$refs.input.focus();
@@ -297,36 +297,48 @@
    handleCheckChange(data, checked, indeterminate) {
      if (data.children != null) return;
      var std = [];
      if (checked == true) {
        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.label) {
            std.push(data.label);
          }
        }
        if (std.length == 0) {
          let layerWMS = new Cesium.WebMapServiceImageryProvider({
            url: geoServerURl,
            layers: data.resource,
            parameters: {
              transparent: true,
              format: 'image/png',
            },
          });
          layerWMS.name = data.label;
          window.Viewer.imageryLayers.addImageryProvider(layerWMS);
        }
      } else {
        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.label) {
            const img_layer = window.Viewer.imageryLayers._layers[i];
            window.Viewer.imageryLayers.remove(img_layer);
          }
      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.label) {
          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.label) {
          layerOl.setVisible(checked); //显示图层
        }
      }
    },
    setAddLayers(res) {
      let layerWMS = new Cesium.WebMapServiceImageryProvider({
        url: geoServerURl,
        layers: res.resource,
        parameters: {
          transparent: true,
          format: 'image/png',
        },
      });
      layerWMS.name = res.label;
      window.Viewer.imageryLayers.addImageryProvider(layerWMS);
      var layer2 = new Image({
        name: res.label,
        source: new ImageWMS({
          crossOrigin: 'anonymous',
          url: geoServerURl,
          params: {
            FORMAT: 'image/png',
            VERSION: '1.1.1',
            LAYERS: res.resource,
          },
        }),
      });
      window.map.addLayer(layer2);
    },
  },
  watch: {
@@ -337,14 +349,26 @@
  mounted() {
    var std = [];
    var val = this.treeData[0].children;
    for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) {
      var val_id = window.Viewer.imageryLayers._layers[i].imageryProvider.name;
    if (this.$store.state.showAllLayers == true) {
      for (var j = 0; j < val.length; j++) {
        if (val_id == val[j].label) {
          std.push(val[j].id);
        std.push(val[j].id);
        this.setAddLayers(val[j]);
      }
      this.$store.state.showAllLayers = false;
    } else {
      for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) {
        var val_id = window.Viewer.imageryLayers._layers[i];
        if (val_id.show == true) {
          for (var j = 0; j < val.length; j++) {
            if (val_id.imageryProvider.name == val[j].label) {
              std.push(val[j].id);
            }
          }
        }
      }
    }
    this.$refs.tree.setCheckedKeys(std);
  },
};