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