Răsfoiți Sursa

Merge branch 'master' of http://114.244.114.158:8802/siwei/real3d-portalsite

maxiaoxiao 8 luni în urmă
părinte
comite
744e50ae06

+ 0 - 1
src/components/Combinations/LayerManage/LayerManage.vue

@@ -249,7 +249,6 @@ export default {
               item.name.indexOf("管线") > -1
             ) {
               item._baseUri.query = obj.id;
-              item.indexedDBSetting.isAttributesSave = true; //保存属性
             }
           });
           // store.state.tempLatData = layers[0];

+ 79 - 94
src/components/Query/clickQuery/clickQuery.vue

@@ -1,28 +1,14 @@
 <template>
-  <div
-    class="sm-panel sm-function-module-query"
-    v-show="PoinyQueryShow && vectorShow"
-    v-drag
-  >
+  <div class="sm-panel sm-function-module-query" v-show="PoinyQueryShow && vectorShow" v-drag>
     <div class="sm-panel-header">
       <span>{{ Resource.PoinyQuery }}</span>
       <span class="closeBtn" @click="toggleVisibility">&times;</span>
     </div>
     <!-- <div class="sm-function-module-content-btn"> -->
     <div class="btnList">
-      <span
-        v-for="(item, index) in actionOptions"
-        :key="index"
-        class="icon-span"
-        :title="item.lable"
-        :class="item.isSelect ? 'selected-icon' : ''"
-        @click="changleQueryItem(item)"
-      >
-        <i
-          class="iconfont iconSize"
-          :class="item.iconName"
-          style="margin-top: 0px"
-        ></i>
+      <span v-for="(item, index) in actionOptions" :key="index" class="icon-span" :title="item.lable"
+        :class="item.isSelect ? 'selected-icon' : ''" @click="changleQueryItem(item)">
+        <i class="iconfont iconSize" :class="item.iconName" style="margin-top: 0px"></i>
       </span>
       <!-- <el-button type="primary" size="small" @click.stop="mapLayerQuery"
         >点击</el-button
@@ -33,51 +19,28 @@
     </div>
     <div class="sm-function-module-content-tabs">
       <el-tabs @tab-click="handleTabClick" v-model="activeLayerId">
-        <el-tab-pane
-          :label="item.label"
-          :name="item.id"
-          v-for="(item, index) in layerList"
-          :key="index"
-        ></el-tab-pane>
+        <el-tab-pane :label="item.label" :name="item.id" v-for="(item, index) in layerList" :key="index"></el-tab-pane>
       </el-tabs>
     </div>
     <div class="sm-function-module-content-table">
-      <el-collapse
-        :value="activeNames"
-        @change="handleCollapseChange"
-        v-if="
-          activeLayerId &&
-          queryResults[activeLayerId] &&
-          queryResults[activeLayerId].length > 0
-        "
-      >
-        <el-collapse-item
-          :title="'查询结果' + (index + 1)"
-          :name="'查询结果' + (index + 1)"
-          v-for="(item, index) in queryResults[activeLayerId]"
-          :key="index"
-        >
+      <el-collapse :value="activeNames" @change="handleCollapseChange" v-if="
+        activeLayerId &&
+        queryResults[activeLayerId] &&
+        queryResults[activeLayerId].length > 0
+      ">
+        <el-collapse-item :title="'查询结果' + (index + 1)" :name="'查询结果' + (index + 1)"
+          v-for="(item, index) in queryResults[activeLayerId]" :key="index">
           <template slot="title">
             查询结果{{ index + 1
-            }}<i
-              title="定位"
-              class="header-icon el-icon-s-promotion flyBtn2"
-              @click.stop="flyTo(index)"
-            ></i>
+            }}<i title="定位" class="header-icon el-icon-s-promotion flyBtn2" @click.stop="flyTo(index)"></i>
           </template>
-          <el-table
-            :data="item"
-            :show-header="false"
-            border
-            style="width: 100%"
-            :header-cell-style="{
-              background: 'rgba(10, 25, 38, 0.6)',
-              color: '#66b1ff',
-              fontSize: '14px',
-              fontFamily: 'Microsoft YaHei',
-              fontWeight: '400',
-            }"
-          >
+          <el-table :data="item" :show-header="false" border style="width: 100%" :header-cell-style="{
+            background: 'rgba(10, 25, 38, 0.6)',
+            color: '#66b1ff',
+            fontSize: '14px',
+            fontFamily: 'Microsoft YaHei',
+            fontWeight: '400',
+          }">
             <el-table-column prop="name" label="字段" width="100">
             </el-table-column>
             <el-table-column prop="value" label="值" width="208">
@@ -106,7 +69,7 @@ import * as turf from "@turf/turf";
 let gwtype;
 let query_click = null;
 let manager_layer_png = null;
-let dataSourceLayer =null
+let dataSourceLayer = null;
 export default {
   name: "clickQuery",
   components: { CockpitVector, MultiLevelQuery },
@@ -182,7 +145,7 @@ export default {
         : true;
     },
   },
-  created() {},
+  created() { },
   watch: {
     activeLayerId(val) {
       if (val && val != "0") {
@@ -238,7 +201,7 @@ export default {
     },
     toggleVisibility() {
       this.removeMapLayerQuery();
-      this.remove_query_click()
+      this.remove_query_click();
       store.setToolBarAction(9);
       tdsy.remove(false);
       store.state.vectorData = [];
@@ -378,43 +341,65 @@ export default {
           eneityName.indexOf("雨水") > -1 ||
           eneityName.indexOf("管线") > -1
         ) {
-          let buildingLayer = scene.layers.find(eneityName);
-          if (buildingLayer.getSelection().length > 0) {
-            const selectedId = Number(buildingLayer.getSelection()[0]);
-            buildingLayer.getAttributesById([selectedId]).then(function (atts) {
-              if (atts) {
-                Pid = atts["管线段"] || atts["物探点"];
-                var length = Object.keys(atts).length;
-                var des;
-                for (var i = 0; i < length; i++) {
-                  var key = Object.keys(atts)[i];
-                  var value = atts[key];
-                  // console.log(key);
-                  // console.log(value);
-                  if (
-                    key.toLowerCase().indexOf("shape") < 0 &&
-                    key.toLowerCase().indexOf("sm") &&
-                    value != ""
-                  ) {
-                    tempArr.push({
-                      name: key,
-                      value: value,
-                    });
+          for (let i = 0; i < store.state.vectorlayerlist.length; i++) {
+            let obj = store.state.vectorlayerlist[i];
+            console.log(obj.url);
+            let str1 = eneityName.match(/@(\S*)#/)[1];
+            let str2 = eneityName.match(/(\S*)@/)[1];
+            let str3 = str1 + ":" + str2;
+            let url1 = obj.url.replace("3D-", "data-");
+            let url2 = url1.replace(
+              "realspace",
+              "data/featureResults.rjson?returnContent=true"
+            );
+            let queryByIDParameters = {
+              getFeatureMode: "ID",
+              datasetNames: [str3],
+              ids: [pickedFeature.id],
+            };
+            let e = await this.mapQuery(url2, queryByIDParameters);
+            if (e && e.totalCount > 0) {
+              that.layerList.push(store.state.vectorlayerlist[i]);
+              for (let u = 0; u < e.features.length; u++) {
+                let cur = [];
+                var linSAr = JSON.parse(JSON.stringify(e.features[u]));
+                if (e.features[u].fieldNames) {
+                  linSAr.fieldNames.forEach((fieldName, i) => {
+                    let v = linSAr.fieldValues[i];
+                    if (v != "" && !isNaN(parseFloat(v))) {
+                      v = Math.round(parseFloat(v) * 100) / 100;
+                    }
+
+                    // cur.push({ name: fieldName, value: v });
+                    if (
+                      fieldName.toLowerCase().indexOf("shape") < 0 &&
+                      fieldName.toLowerCase().indexOf("sm") &&
+                      v != ""
+                    ) {
+                      cur.push({ name: fieldName, value: v });
+                    }
+                  });
+
+                  //获取图层id的参数
+                  let substring = pickedFeature.primitive._baseUri.query;
+                  for (let p = 0; p < store.state.vectorlayerlist.length; i++) {
+                    if (store.state.vectorlayerlist[p].id == substring) {
+                      that.layerList.push(store.state.vectorlayerlist[p]);
+                      break;
+                    }
                   }
+                  that.queryResults[substring] = [cur];
+                  that.queryResultsGeom[substring] = [];
+                  that.activeLayerId = substring;
+                } else {
+                  that.$message({
+                    message: "查询结果为空!",
+                    type: "warning",
+                    customClass: "messageIndex",
+                  });
                 }
               }
-              //获取图层id的参数
-              let substring = pickedFeature.primitive._baseUri.query;
-              for (let p = 0; p < store.state.vectorlayerlist.length; i++) {
-                if (store.state.vectorlayerlist[p].id == substring) {
-                  that.layerList.push(store.state.vectorlayerlist[p]);
-                  break;
-                }
-              }
-              that.queryResults[substring] = [tempArr];
-              that.queryResultsGeom[substring] = [];
-              that.activeLayerId = substring;
-            });
+            }
           }
         }