From f80f19a0bd6c7bb360cc6bad8852ac65546a6a48 Mon Sep 17 00:00:00 2001
From: 584911253@qq.com <584911253@qq.com>
Date: 星期四, 09 三月 2023 16:39:41 +0800
Subject: [PATCH] 勘察信息弹窗

---
 src/components/mapsdk.vue |  148 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 145 insertions(+), 3 deletions(-)

diff --git a/src/components/mapsdk.vue b/src/components/mapsdk.vue
index 0cc288b..8999209 100644
--- a/src/components/mapsdk.vue
+++ b/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;

--
Gitblit v1.9.3