管道基础大数据平台系统开发-【前端】-新系統界面
src/components/Screen/ProjectTree.vue
@@ -1,5 +1,8 @@
<template>
  <div class="project_tree" :class="{ left_main_show: !leftMenuOpen }">
  <div
    class="project_tree"
    :class="{ left_main_show: !leftMenuOpen }"
  >
    <div class="project_tree__title">工程项目</div>
    <el-input
      style="width: 80%"
@@ -18,7 +21,7 @@
        :props="defaultProps"
        ref="tree"
        class="el-tree"
        @check-change="handleCheckChange"
        @check="handleCheckChange"
        :filter-node-method="filterNode"
      >
        <div
@@ -32,7 +35,11 @@
              style="color: yellow"
              class="el-icon-folder-opened"
            ></i>
            <i v-else style="color: skyblue" class="el-icon-folder-opened"></i>
            <i
              v-else
              style="color: skyblue"
              class="el-icon-folder-opened"
            ></i>
          </div>
          <!-- <div style="">
            <i
@@ -102,6 +109,9 @@
    this.changeSelectli = this.rightList[0].id
    this.changeSelectStyle = this.rightMenu[0].id
    this.addImageLayer()
    this.$bus.$on("changeProjectLayer", (res) => {
      this.setShowCheckedLayer();
    })
  },
  watch: {
    filterText(val) {
@@ -109,6 +119,18 @@
    },
  },
  methods: {
    setShowCheckedLayer() {
      var value = this.$refs.tree.getCheckedNodes();
      var std = [];
      for (var i in value) {
        std.push(value[i].id)
      }
      if (std.indexOf(3) == -1) {
        std.push(3);
        this.$refs.tree.setCheckedKeys(std)
      }
    },
    async addImageLayer() {
      const data = await perms_selectLayers()
      if (data.code != 200) {
@@ -117,6 +139,7 @@
      var std = []
      var layer_list = []
      var layer_groups = []
      var layerData = [];
      for (var i in data.result) {
        if (data.result[i].type == 1) {
          layer_groups.push({
@@ -139,7 +162,8 @@
            layer_list.push(layer_entity)
            if (data.result[i].isShow == 1) {
              std.push(data.result[i].id)
              this.setAddImageLayer(layer_entity)
              layerData.push(data.result[i])
              // this.setAddImageLayer(layer_entity)
            }
          }
        }
@@ -154,33 +178,71 @@
      this.treeData = layer_groups
      this.$refs.tree.setCheckedKeys(std)
      this.setShowImageLayer(layerData)
    },
    handleCheckChange(data, checked, indeterminate) {
      if (data.children != null) return
      var std = []
      for (var i = 0; i < Viewer.imageryLayers._layers.length; i++) {
        var val_id = Viewer.imageryLayers._layers[i].imageryProvider.name
        if (val_id == data.label) {
          std.push(data.label)
          const img_layer = Viewer.imageryLayers._layers[i]
          img_layer.show = checked
      // if (data.children != null) return
      // var std = []
      // for (var i = 0; i < Viewer.imageryLayers._layers.length; i++) {
      //   var val_id = Viewer.imageryLayers._layers[i].imageryProvider.name
      //   if (val_id == data.label) {
      //     std.push(data.label)
      //     const img_layer = Viewer.imageryLayers._layers[i]
      //     img_layer.show = checked
      //   }
      // }
      // if (std.length == 0 && checked == true) {
      //   this.setAddImageLayer(data)
      // }
      this.setClearWmsLayer()
      var value = this.$refs.tree.getCheckedNodes();
      var url = [];
      for (var i in value) {
        if (value[i].resource && value[i].type == 2) {
          url.push(value[i].resource)
        }
      }
      if (std.length == 0 && checked == true) {
        this.setAddImageLayer(data)
      url = url.reverse();
      this.setAddImageLayer(url)
    },
    setShowImageLayer(res) {
      this.setClearWmsLayer()
      var url = [];
      for (var i in res) {
        url.push(res[i].enName)
      }
      url = url.reverse();
      this.setAddImageLayer(url)
    },
    setClearWmsLayer() {
      for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) {
        var val_id = window.Viewer.imageryLayers._layers[i].imageryProvider.name;
        if (val_id == "Wms_Layer") {
          window.Viewer.imageryLayers.remove(
            window.Viewer.imageryLayers._layers[i]
          );
        }
      }
    },
    setAddImageLayer(res) {
      let layerWMS = new Cesium.WebMapServiceImageryProvider({
      var layerWMS = new Cesium.WebMapServiceImageryProvider({
        url: geoServerURl,
        layers: res.resource,
        layers: res.toString(),
        parameters: {
          transparent: true,
          format: "image/png",
          srs: "EPSG:4490",
          styles: "",
        },
      })
      layerWMS.name = res.label
      Viewer.imageryLayers.addImageryProvider(layerWMS)
        tileWidth: 512,
        tileHeight: 512,
      });
      layerWMS.name = "Wms_Layer";
      window.Viewer.scene.imageryLayers.addImageryProvider(layerWMS);
    },
    changeMenulayer() {
      this.isActive = !this.isActive
@@ -209,7 +271,7 @@
<style lang="scss" scoped>
.project_tree {
  margin: 0;
  width: 300px;
  width: 100%;
  height: 100%;
  transition: width 2s;
  background: url("~@/assets/img/Screen/prjectree.png") no-repeat center;