管道基础大数据平台系统开发-【前端】-新系統界面
584911253@qq.com
2023-03-09 f80f19a0bd6c7bb360cc6bad8852ac65546a6a48
src/components/mapsdk.vue
@@ -345,14 +345,22 @@
          </div>
        </el-card>
      </div>
      <!--属性信息弹窗-->
      <div
        class="propertiesPop"
        v-if="$store.state.propertiesFlag == '1'"
      >
        <el-card class="box-card">
          <div slot="header">
            <span>{{$store.state.propertiesName.tabDesc || '属性信息'}}</span>
            <span>属性信息</span>
            <div style="float: right; cursor: pointer">
              <el-link
                  v-if="$store.state.propertiesName.tabDesc == '勘察工点'"
                  type="primary"
                  :underline="false"
                  @click="getPointInfo"
                  style="margin-right: 10px"
              >勘察信息表</el-link>
              <el-link
                type="primary"
                :underline="false"
@@ -383,6 +391,38 @@
          </div>
        </el-card>
      </div>
      <!--勘察信息弹窗-->
      <div
          class="attributionPop"
          v-if="showAttribute"
      >
        <el-card class="box-card">
          <div slot="header">
            <span>勘察信息</span>
            <div style="float: right; cursor: pointer">
              <i
                  class="el-icon-close"
                  @click="showAttribute=false"
              ></i>
            </div>
          </div>
          <div
              class="pointInfoBoxContext"
              style="height:250px;overflow-y: auto"
          >
            <div
                style="line-height: 20px"
                v-for="(item, index) in attributeList"
                :key="index"
            >
              <span
                  style="font-size: 14px;font-weight: bold;margin-right: 5px"
              >{{item.alias}}:</span>
              <span>{{item.value ? item.value :'暂无数据'}}</span>
            </div>
          </div>
        </el-card>
      </div>
      <div
        class="propertiesPop"
@@ -404,6 +444,7 @@
        </el-card>
      </div>
      <!--附件列表弹窗-->
      <el-dialog
        title="附件列表"
@@ -507,8 +548,8 @@
  select_Comprehensive_ByPageAndCount,
  select_Comprehensive_SelectWktById,
  comprehensive_selectRoute,
  dataLib_selectFiles
} from "../api/api";
  dataLib_selectFiles, dataQuery_selectFields, dataQuery_selectDomains, dataQuery_selectByPage
} from '../api/api'
import { getToken } from '@/utils/auth'
export default {
@@ -611,7 +652,9 @@
        isPdf: false,
        isJpg: false,
        src: ''
      }
      },
      showAttribute: false,
      attributeList: [],
    };
  },
  mounted() {
@@ -622,8 +665,37 @@
    this.$bus.$on('changemapType', (e) => {
      this.show2DMap = e;
    });
    //模型捕捉
    this.catchmodel()
  },
  methods: {
    catchmodel() {
      var that = this;
      window.pickedFeature;
      window.pickedColor;
      window.modeCatchHandler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas);
      window.modeCatchHandler.setInputAction((event) => {
        window.pickedFeature && (window.pickedFeature.color = window.pickedColor);
        window.pickedFeature = sgworld.Viewer.scene.pick(event.position);
        if (Cesium.defined(window.pickedFeature)) {
          if (window.pickedFeature.primitive instanceof Cesium.Cesium3DTileset) {
            if (window.pickedFeature && window.pickedFeature.getProperty) {
              window.pickedColor = window.pickedFeature.color
              window.pickedFeature.color = Cesium.Color.RED.withAlpha(0.3);
              this.$store.state.catModel = true;
              this.$store.state.catModelInfo = {
                id: pickedFeature.getProperty("id"),
                name: pickedFeature.getProperty("name"),
                layerId: pickedFeature.primitive.layerId,
                layerName: pickedFeature.primitive.id
              };
            }
          }
        }
      }, Cesium.ScreenSpaceEventType.LEFT_CLICK)
    },
    drawTerrainLevel() {
      this.clearTerrainLevel()
      var deep = parseFloat(this.terrainFrom.height)
@@ -680,13 +752,13 @@
          url: gaoDeBaseUrl[1].url,
        })
      );
      this.layer3 = Viewer.imageryLayers.addImageryProvider(
        new Cesium.UrlTemplateImageryProvider({
          url: gaoDeBaseUrl[2].url,
        })
      );
      // this.layer3 = Viewer.imageryLayers.addImageryProvider(
      //   new Cesium.UrlTemplateImageryProvider({
      //     url: gaoDeBaseUrl[2].url,
      //   })
      // );
      window.ImageLayer3 = this.layer3;
      // window.ImageLayer3 = this.layer3;
      // for (var i in gaoDeBaseUrl) {
      //   sgworld.Creator.createUrlTemplateImageryProvider(
@@ -755,18 +827,18 @@
    },
    setLayerVisible() {
      if (this.isActive == true) {
        // Viewer.imageryLayers._layers[1].show = true
        // Viewer.imageryLayers._layers[2].show = false
        Viewer.imageryLayers._layers[1].show = true
        Viewer.imageryLayers._layers[2].show = false
        // Viewer.imageryLayers._layers[3].show = false
        Viewer.imageryLayers.lower(this.layer2);
        Viewer.imageryLayers.lower(this.layer3);
        // Viewer.imageryLayers.lower(this.layer2);
        // Viewer.imageryLayers.lower(this.layer3);
      } else {
        Viewer.imageryLayers.raise(this.layer3);
        Viewer.imageryLayers.raise(this.layer2);
        // Viewer.imageryLayers.raise(this.layer3);
        // Viewer.imageryLayers.raise(this.layer2);
        // Viewer.imageryLayers._layers[1].show = false
        // Viewer.imageryLayers._layers[2].show = true
        Viewer.imageryLayers._layers[1].show = false
        Viewer.imageryLayers._layers[2].show = true
        // Viewer.imageryLayers._layers[3].show = true
      }
    },
@@ -904,6 +976,7 @@
          break;
        case 6:
          this.$store.state.propertiesFlag = null;
          this.showAttribute = false;
          break;
      }
    },
@@ -1200,8 +1273,12 @@
    },
    //获取附件列表
    async getAttatchList() {
      if (this.$store.state.propertiesName == null) {
        return
      }
      let tabName = this.$store.state.propertiesName.ns + '.' + this.$store.state.propertiesName.tab;
      let eventid = this.$store.state.propertiesInfo.eventid;
      var obj = {
        eventid: eventid,
        tabName: tabName,
@@ -1278,7 +1355,92 @@
    add0(m) {
      return m < 10 ? '0' + m : m;
    },
    //勘察信息表
    getPointInfo(){
      this.showAttribute = !this.showAttribute;
      if (this.showAttribute){
        let attrbuteOption = workSite;
        var name = attrbuteOption[0].table.replaceAll("_", "");
        this.getAttributeDomFiled(name);
      }
    },
    //获取每个表字段名称及阈值
    async getAttributeDomFiled(res) {
      //查询字段信息;
      const fileds = await dataQuery_selectFields({
        name: res,
      });
      if (fileds.code != 200) {
        this.$message.error("调用列表失败,请联系工作人员!");
        return;
      }
      //查询阈值信息;
      const domains = await dataQuery_selectDomains({
        name: res,
      });
      if (domains.code != 200) {
        this.$message.error("调用列表失败,请联系工作人员!");
        return;
      }
      var data1 = fileds.result;
      var data2 = domains.result;
      var std = [];
      this.filedsOption = [];
      for (var i in data1) {
        if (data1[i].type != 'geometry' && data1[i].type) {
          this.filedsOption.push(data1[i]);
        }
        if (data1[i].showtype == 1) {
          if (data1[i].domainNa != null) {
            data1[i].domainNa = this.getDomainNaFild(data1[i].domainNa, data2);
          }
          std.push(data1[i]);
        }
      }
      this.getAttributeTableData(std, res,this.$store.state.propertiesInfo.工点名称,data1)
    },
    //获取表格信息
    async getAttributeTableData(res, name,title,list) {
      let attributeFild = res;
      let parmams = {
        name:name,
        pageIndex:1,
        pageSize:10,
        count:0,
        title:title,
        filter : "workname = " + "'" + title + "'",
      }
      const data = await dataQuery_selectByPage(parmams);
      if (data.code != 200) {
        this.$message.error("调用列表失败,请联系工作人员!");
        return;
      }
      var res_val = attributeFild;
      for (var i in data.result) {
        let val_Data = data.result[i];
        for (var j in res_val) {
          if (res_val[j].domainNa != null && res_val[j].domainNa != undefined) {
            val_Data[res_val[j].field] = res_val[j].domainNa;
          }
        }
      }
      let info = data.result.length >0 ? data.result[0] : '';
      if (info){
        let keys = Object.keys(info);
        keys.forEach((obj) => {
          list.forEach((item) => {
            if (item.field == obj){
              item.value = info[obj];
            }
          })
        })
        this.attributeList = list;
      }
    },
  },
  destroyed() {
    this.showAttribute = false
  }
};
</script>
@@ -1332,6 +1494,21 @@
        padding: 10px 20px;
      }
    }
    .attributionPop{
      width: 350px;
      height: 370px;
      z-index: 40;
      position: absolute;
      right: 38%;
      bottom: 1%;
      /deep/ .el-card__header {
        padding: 10px 20px;
      }
      /deep/ .el-card__body {
        padding: 10px 20px;
      }
    }
    .terrainLevelBox {
      width: 350px;
      height: 370px;
@@ -1339,14 +1516,6 @@
      position: absolute;
      right: 8%;
      bottom: -11%;
    }
    .pathAnalysisBox {
      width: 412px;
      z-index: 40;
      position: absolute;
      right: 8%;
      bottom: 1%;
    }
    .box-card {