|
@@ -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">×</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 });
|