管道基础大数据平台系统开发-【前端】-新系統界面
1
Surpriseplus
2022-12-19 9c803f20cc05395bac2d3386accfe230210c07dc
src/views/Tools/LayerTree.vue
@@ -20,6 +20,8 @@
      @node-drop="handleDrop"
      @node-contextmenu="rightClick"
      :filter-node-method="filterNode"
      @check-change="handleCheckChange"
      :default-checked-keys="handleTreeCheck"
      draggable
      :allow-drop="allowDrop"
      :allow-drag="allowDrag"
@@ -106,32 +108,46 @@
      appendNodetitle: '',
      maxexpandId: 4,
      rightClickMenuStyle: {},
      handleTreeCheck: [],
      dialogVisible: false,
      addFormServer: {},
      layerId: [
        'm_pipeline',
        'th_strategic_channel',
        'bs_project',
        'm_sitepoint',
      ],
      treeData: [
        {
          id: 1,
          label: '影像',
          label: 'LF',
          isEdit: false,
          children: [],
        },
        {
          id: 2,
          label: '地形',
          isEdit: false,
          children: [],
        },
        {
          id: 3,
          label: '模型',
          isEdit: false,
          children: [],
        },
        {
          id: 4,
          label: '矢量',
          isEdit: false,
          children: [],
          children: [
            {
              id: 11,
              label: '管道中心线',
              resource: 'LF:m_pipeline',
              isEdit: false,
            },
            {
              id: 12,
              label: '战略通道',
              resource: 'LF:th_strategic_channel',
              isEdit: false,
            },
            {
              id: 13,
              label: '项目',
              resource: 'LF:bs_project',
              isEdit: false,
            },
            {
              id: 14,
              label: '站场',
              resource: 'LF:m_sitepoint',
              isEdit: false,
            },
          ],
        },
      ],
      defaultProps: {
@@ -190,6 +206,15 @@
    // 鼠标左击事件
    handleLeftclick(data, node) {
      this.foo();
      if (node.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) {
            const img_layer = window.Viewer.imageryLayers._layers[i];
          }
        }
      }
    },
    //  取消鼠标监听事件 菜单栏
    foo() {
@@ -223,7 +248,6 @@
      this.addFormServer = {};
    },
    setAddServer() {
      debugger;
      var data = this.addFormServer;
      data.id = Math.ceil(Math.random() * 100);
      this.$refs.tree.append(data, this.currentNode);
@@ -270,13 +294,59 @@
    handleDrop(draggingNode, dropNode, dropType, ev) {
      console.log('tree drop: ', dropNode.label, dropType);
    },
    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);
          }
        }
      }
    },
  },
  watch: {
    filterText(val) {
      this.$refs.tree.filter(val);
    },
  },
  mounted() {},
  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;
      for (var j = 0; j < val.length; j++) {
        if (val_id == val[j].label) {
          std.push(val[j].id);
        }
      }
    }
    this.$refs.tree.setCheckedKeys(std);
  },
};
</script>
<style scoped lang="less">