管道基础大数据平台系统开发-【前端】-新系統界面
1
Surpriseplus
2023-02-14 adba628772067ff547396522c245d1fcfe6d9f7e
src/views/Tools/LayerTree.vue
@@ -15,7 +15,8 @@
      @node-contextmenu="rightClick"
      @check-change="handleCheckChange"
      :default-checked-keys="handleTreeCheck"
      ref="tree"     >
      ref="tree"
    >
      <span
        class="slot-t-node"
        slot-scope="{ node, data }"
@@ -38,7 +39,7 @@
          ></el-input>
        </span>
      </span>
    </el-tree>
    <el-card
@@ -143,6 +144,14 @@
import { image_layer } from '../../assets/js/index.js';
import ImageWMS from 'ol/source/ImageWMS';
import Image from 'ol/layer/Image';
import GeoJSON from 'ol/format/GeoJSON.js';
import Map from 'ol/Map.js';
import {   Vector as VectorSource } from "ol/source";
import { Vector as VectorLayer,  } from "ol/layer";
import View from 'ol/View.js';
import { Fill, Stroke, Style } from 'ol/style.js';
import { perms_selectLayers } from '../../api/api.js'
export default {
  name: 'tree',
@@ -317,41 +326,41 @@
    menuMoveF(type) {
        // 将变动之前的node备份
        var node= this.currentNode;
        var data = this.currentData;
        let copyNode = this.currentNode
        debugger
        // copyNode.previousSibling = {...node. }
        // copyNode.nextSibling = {...node.nextSibling}
        // window.sessionStorage.setItem('menuNode',CircularJSON.stringify(copyNode))
        let nodeData = {}
        if (type==='up') {
           // 上移
          if (node.previousSibling) {
            // 删除原先的node
            this.$refs.tree.remove(node.data)
            // 拿到copy的node
            // nodeData = CircularJSON.parse(window.sessionStorage.getItem('menuNode'))
            // // 复制该node到指定位置(参数:1. 要增加的节点的 data 2. 要增加的节点的后一个节点的 data、key 或者 node)
            // this.$refs.tree.insertBefore(nodeData.data,nodeData.previousSibling.data)
            window.sessionStorage.removeItem('menuNode')
          } else {
            this.$message.warning('该菜单已经是当前层最上级')
          }
      // 将变动之前的node备份
      var node = this.currentNode;
      var data = this.currentData;
      let copyNode = this.currentNode
      debugger
      // copyNode.previousSibling = {...node. }
      // copyNode.nextSibling = {...node.nextSibling}
      // window.sessionStorage.setItem('menuNode',CircularJSON.stringify(copyNode))
      let nodeData = {}
      if (type === 'up') {
        // 上移
        if (node.previousSibling) {
          // 删除原先的node
          this.$refs.tree.remove(node.data)
          // 拿到copy的node
          // nodeData = CircularJSON.parse(window.sessionStorage.getItem('menuNode'))
          // // 复制该node到指定位置(参数:1. 要增加的节点的 data 2. 要增加的节点的后一个节点的 data、key 或者 node)
          // this.$refs.tree.insertBefore(nodeData.data,nodeData.previousSibling.data)
          window.sessionStorage.removeItem('menuNode')
        } else {
          // 下移
          if (node.nextSibling) {
            this.$refs.tree.remove(node.data)
            nodeData = CircularJSON.parse(window.sessionStorage.getItem('menuNode'))
            // 参数:1. 要增加的节点的 data 2. 要增加的节点的前一个节点的 data、key 或者 node
            this.$refs.tree.insertAfter(nodeData.data,nodeData.nextSibling.data)
            window.sessionStorage.removeItem('menuNode')
          } else {
            this.$message.warning('该菜单已经是当前层最下级')
          }
          this.$message.warning('该菜单已经是当前层最上级')
        }
      },
      } else {
        // 下移
        if (node.nextSibling) {
          this.$refs.tree.remove(node.data)
          nodeData = CircularJSON.parse(window.sessionStorage.getItem('menuNode'))
          // 参数:1. 要增加的节点的 data 2. 要增加的节点的前一个节点的 data、key 或者 node
          this.$refs.tree.insertAfter(nodeData.data, nodeData.nextSibling.data)
          window.sessionStorage.removeItem('menuNode')
        } else {
          this.$message.warning('该菜单已经是当前层最下级')
        }
      }
    },
    handleDragStart(node, ev) {
@@ -411,7 +420,13 @@
      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); //显示图层
        }
      }
    },
    setAddLayers(res) {
@@ -430,6 +445,20 @@
        });
        layerWMS.name = res.label;
        window.Viewer.imageryLayers.addImageryProvider(layerWMS);
        var layer2 = new Image({
          name: res.label,
          source: new ImageWMS({
            crossOrigin: 'anonymous',
            url: url,
            params: {
              FORMAT: 'image/png',
              VERSION: '1.1.1',
              LAYERS: res.resource,
            },
          }),
        });
        window.map.addLayer(layer2);
      } else if (res.layerType == 'WFS') {
        var url = res.url + "?service=WFS&version=1.0.0&request=GetFeature&typeName=" + res.resource + "&outputFormat=application%2Fjson"
@@ -454,6 +483,18 @@
            console.log("error");
          }
        });
        var vectorLayer = new VectorLayer({
          source: new VectorSource({
            url: url,
            format: new GeoJSON(),
          }),
        });
        window.map.addLayer(vectorLayer);
      }