管道基础大数据平台系统开发-【前端】-新系統界面
584911253@qq.com
2023-03-09 f80f19a0bd6c7bb360cc6bad8852ac65546a6a48
src/components/mapsdk.vue
@@ -345,6 +345,7 @@
          </div>
        </el-card>
      </div>
      <!--属性信息弹窗-->
      <div
        class="propertiesPop"
        v-if="$store.state.propertiesFlag == '1'"
@@ -353,6 +354,13 @@
          <div slot="header">
            <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"
@@ -379,6 +387,38 @@
                style="font-size: 14px;font-weight: bold;margin-right: 5px"
              >{{key}}:</span>
              <span v-if="key != 'eventid'">{{value}}</span>
            </div>
          </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>
@@ -508,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 {
@@ -612,7 +652,9 @@
        isPdf: false,
        isJpg: false,
        src: ''
      }
      },
      showAttribute: false,
      attributeList: [],
    };
  },
  mounted() {
@@ -934,6 +976,7 @@
          break;
        case 6:
          this.$store.state.propertiesFlag = null;
          this.showAttribute = false;
          break;
      }
    },
@@ -1312,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>
@@ -1366,6 +1494,20 @@
        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;