gushoubang 3 місяців тому
батько
коміт
f277cb5e5e

+ 2 - 1
config/index.js

@@ -28,7 +28,8 @@ module.exports = {
          */
 
         // https://webpack.js.org/configuration/devtool/#development
-        devtool: 'cheap-module-eval-source-map',
+        // devtool: 'cheap-module-eval-source-map',
+        devtool: 'source-map',
 
         // If you have problems debugging vue-files in devtools,
         // set this to false - it *may* help

Різницю між файлами не показано, бо вона завелика
+ 170 - 434
package-lock.json


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

@@ -282,7 +282,7 @@ export default {
             }
             if (
               item.name.indexOf("雨水") > -1 ||
-              item.name.indexOf("管线") > -1
+              item.name.indexOf("管线") > -1||item.name.indexOf("单体") > -1
             ) {
               item._baseUri.query = obj.id;
             }

+ 101 - 63
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">
@@ -204,7 +167,7 @@ export default {
         : true;
     },
   },
-  created() {},
+  created() { },
   watch: {
     activeLayerId(val) {
       if (val && val != "0") {
@@ -340,11 +303,16 @@ export default {
       that.layersData = [];
       this.remove_query_click();
       let scene = viewer.scene;
+
+      console.log("scene", "scene");
+      console.log("scene", scene);
+
       viewer.entities.removeAll();
       dataSourceLayer.entities.removeAll();
       removeGeoJSON("geoserver");
       //拾取模型
       let pickedFeature = scene.pick(movement.position);
+      console.log("pickedFeature", pickedFeature);
       if (
         scene.pickPositionSupported &&
         Cesium.defined(pickedFeature) &&
@@ -455,8 +423,79 @@ export default {
       let eneityName = pickedFeature.primitive.name;
       let Pid = "";
       var tempArr = [];
-      // "ResultNetWork@管线#1"///"ResultNetWork_Node@管线#1"
-      if (eneityName.indexOf("雨水") > -1 || eneityName.indexOf("管线") > -1) {
+      // ##############################################
+      if (eneityName.indexOf("单体") > -1) {
+        console.log("eneityName", eneityName);
+        let buildingLayer = scene.layers.find(eneityName);
+        buildingLayer.indexedDBSetting.isAttributesSave = true; //保存属性
+        if (buildingLayer.getSelection().length > 0) {
+          const selectedId = Number(buildingLayer.getSelection()[0]);
+          buildingLayer.getAttributesById([selectedId]).then(async function (atts) {
+            debugger
+            console.log("atts", atts);
+            const ModelName = atts["ModelName"];
+            let obj = store.state.vectorlayerlist.find((i) => {
+              return eneityName == i.title;
+            });
+            let url1 = obj.url.replace("3D-", "data-");
+            let url2 = url1.replace(
+              "realspace",
+              "data/featureResults.rjson?returnContent=true"
+            );
+            console.log(url2, "url2");
+            let queryByIDParameters = {
+              getFeatureMode: "SQL",
+              datasetNames: [eneityName+":"+eneityName],
+              queryParameter: {"attributeFilter":"ModelName="+ModelName},
+            };
+            let e = await mapQuery(url2, queryByIDParameters);
+            if (e && e.totalCount > 0) {
+              // that.layerList.push(store.state.vectorlayerlist[i]);
+              that.layerList.push(obj);
+              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; p++) {
+                    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",
+                  });
+                }
+              }
+            }
+
+          });
+        }
+      } else if (eneityName.indexOf("雨水") > -1 || eneityName.indexOf("管线") > -1) {
         // for (let i = 0; i < store.state.vectorlayerlist.length; i++) {
         // let obj = store.state.vectorlayerlist[i];
 
@@ -619,9 +658,8 @@ export default {
         typeName: `${obj.fwgzkj}:${obj.fwmc}`,
         outputFormat: "application/json",
         srsName: "EPSG:4326",
-        filter: `<Filter xmlns='http://www.opengis.net/ogc' xmlns:gml='http://www.opengis.net/gml'><Intersects><PropertyName>geom</PropertyName> ${
-          xy.lng ? pointml : polygonml
-        }</Intersects></Filter>`,
+        filter: `<Filter xmlns='http://www.opengis.net/ogc' xmlns:gml='http://www.opengis.net/gml'><Intersects><PropertyName>geom</PropertyName> ${xy.lng ? pointml : polygonml
+          }</Intersects></Filter>`,
       };
       console.log("----", params);
       let res = await axios.get(url, { params });

+ 1 - 0
src/utils/MapHelper/MapHelper.js

@@ -1,4 +1,5 @@
 import proj4 from "proj4";
+import axios from "axios";
 import { Notification, MessageBox, Message, Loading } from "element-ui";
 import { tansParams, blobValidate } from "@/utils/ruoyi";
 const CTservice = axios.create({

+ 2 - 2
static/Config/config.js

@@ -1,6 +1,6 @@
 //后台地址配置
-// window.axiosURI = "http://192.168.60.2:8080";
-window.axiosURI = "http://192.168.60.88:8080";//小谷
+window.axiosURI = "http://192.168.60.2:8080";
+// window.axiosURI = "http://192.168.60.88:8080";//小谷
 window.ZTaxiosURI = "http://localhost:9300";
 window.aiURI = "http://192.168.60.2:4000";
 //倾斜模型高度配置

Деякі файли не було показано, через те що забагато файлів було змінено