管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2023-02-06 4e3d77dcbe421a4d6611ebcdd1ac3165cb36ad4b
src/views/Thematic/index.vue
@@ -287,7 +287,8 @@
var Viewer = null;
import mapsdk from '../../components/mapsdk.vue';
import { right_menu, right_list, image_layer } from './index.js';
import { right_menu, right_list, image_layer } from '../../assets/js/index.js';
import { perms_selectLayers } from '../../api/api.js';
import echart11 from '../../components/echart11.vue';
import echart12 from '../../components/echart12.vue';
import echart13 from '../../components/echart13.vue';
@@ -362,15 +363,19 @@
    };
  },
  mounted() {
    this.treeData = image_layer;
    this.rightList = right_list[0];
    this.rightMenu = right_menu;
    this.changeSelectli = this.rightList[0].id;
    this.changeSelectStyle = this.rightMenu[0].id;
    this.initMapView();
    this.addImageLayer();
  },
  created() { },
  created() {
  },
  methods: {
    setTopReturn() {
      this.$router.push('/Synthesis');
@@ -415,6 +420,7 @@
      } else if (vid.indexOf('c') != -1) {
        var url = geoserverWFSLine + '%27' + res.name + '%27';
        axios.get(url).then((res) => {
          if (res.status == 200) {
            if (res.data.features.length == 0) return;
            var std = [];
@@ -422,22 +428,38 @@
              var featurLayer = res.data.features[i];
              var path = featurLayer.geometry.coordinates[0];
              for (var j in path) {
                std.push(path[j][0], path[j][1], 50);
                // std.push(path[j][0], path[j][1], 50);
                std.push(path[j])
              }
            }
            this.showPathLine(std);
            var str = this.removeRepeat1(std);
            var val = [];
            for (var i in str) {
              val.push(str[i][0], str[i][1], 50);
            }
            this.showPathLine(val)
          }
        });
      }
    },
    removeRepeat1(arr) {
      const obj = {};
      return arr.filter(item => {
        if (!obj[item.toString()]) {
          obj[item.toString()] = item.toString();
          return item;
        }
      });
    },
    showPathLine(res) {
      window.sgworld.Creator.getFlyData(res, (data) => {
        data.showPoint = false;
        data.showLine = true;
        data.mode = 1;
        data.height = 1000;
        data.height = 2000;
        // 弹窗数据
        window.PathAnimationData = {
@@ -541,24 +563,67 @@
        Viewer.imageryLayers._layers[3].show = true;
      }
    },
    addImageLayer() {
      var val_layer = this.treeData[0].children;
    async addImageLayer() {
      const data = await perms_selectLayers();
      // var val_layer = this.treeData[0].children;
      // var std = [];
      // for (var i = 0; i < val_layer.length; i++) {
      //   if (val_layer[i].id != 13 && val_layer[i].id != 14) {
      //     let layerWMS = new Cesium.WebMapServiceImageryProvider({
      //       url: geoServerURl,
      //       layers: val_layer[i].resource,
      //       parameters: {
      //         transparent: true,
      //         format: 'image/png',
      //       },
      //     });
      //     layerWMS.name = val_layer[i].label;
      //     Viewer.imageryLayers.addImageryProvider(layerWMS);
      //     std.push(val_layer[i].id);
      //   }
      // }
      if (data.code != 200) {
        return this.$message.error("图层列表查询失败");
      }
      var std = [];
      for (var i = 0; i < val_layer.length; i++) {
        if (val_layer[i].id != 13 && val_layer[i].id != 14) {
          let layerWMS = new Cesium.WebMapServiceImageryProvider({
            url: geoServerURl,
            layers: val_layer[i].resource,
            parameters: {
              transparent: true,
              format: 'image/png',
            },
          });
          layerWMS.name = val_layer[i].label;
          Viewer.imageryLayers.addImageryProvider(layerWMS);
          std.push(val_layer[i].id);
      var layer_list = [];
      var layer_groups = [];
      for (var i in data.result) {
        if (data.result[i].type == 1) {
          layer_groups.push({
            id: data.result[i].id,
            label: data.result[i].cnName,
            type: data.result[i].type,
            isEdit: false,
            children: [],
          })
        } else if (data.result[i].type == 2) {
          if (data.result[i].url != null) {
            var layer_entity = {
              id: data.result[i].id,
              pid: data.result[i].pid,
              label: data.result[i].cnName,
              resource: data.result[i].url,
              type: data.result[i].type,
              isEdit: false,
            }
            layer_list.push(layer_entity)
            if (data.result[i].isShow == 1) {
              std.push(data.result[i].id);
            this.setAddImageLayer(layer_entity);
            }
          }
        }
      }
      for (var i in layer_list) {
        for (var j in layer_groups) {
          if (layer_list[i].pid === layer_groups[j].id) {
            layer_groups[j].children.push(layer_list[i])
          }
        }
      }
      this.treeData = layer_groups;
      this.$refs.tree.setCheckedKeys(std);
    },
    handleCheckChange(data, checked, indeterminate) {
@@ -580,7 +645,7 @@
    setAddImageLayer(res) {
      let layerWMS = new Cesium.WebMapServiceImageryProvider({
        url: geoServerURl,
        layers:res.resource,
        layers: res.resource,
        parameters: {
          transparent: true,
          format: 'image/png',
@@ -897,5 +962,15 @@
      }
    }
  }
  /deep/.el-tree .el-tree-node__content:hover {
    background-color: transparent !important;
  }
  /deep/.el-tree {
    color: white !important;
    background: transparent !important;
  }
  /deep/.el-tree-node:focus > .el-tree-node__content {
    background: transparent !important;
  }
}
</style>