From 3d7cb6aa38722ecf35f29ed880fdcc7efecbf323 Mon Sep 17 00:00:00 2001
From: 徐旺旺 <11530253@qq.com>
Date: 星期三, 14 四月 2021 09:34:26 +0800
Subject: [PATCH] 点击定位
---
src/components/LayerController/service/LayerFactory.js | 21 ++++++++++
src/components/panel/topicSearch/SewersSearch.vue | 81 ++++++++++++++++------------------------
2 files changed, 52 insertions(+), 50 deletions(-)
diff --git a/src/components/LayerController/service/LayerFactory.js b/src/components/LayerController/service/LayerFactory.js
index fef724f..593b5fd 100644
--- a/src/components/LayerController/service/LayerFactory.js
+++ b/src/components/LayerController/service/LayerFactory.js
@@ -12,7 +12,7 @@
init (layerConfig) {
// 1. 閬嶅巻layer config
if (layerConfig) {
- for (var i = 0, l = layerConfig.length; i < l; i++) {
+ for (var i = 0; i < layerConfig.length; i++) {
var config = layerConfig[i]
var layers = config.layers
var childLayer = config.childLayer
@@ -112,6 +112,25 @@
}
+ flyByLayerId (layerId, bound) {
+ for (var k in this.layers) {
+ var layerGroup = this.layers[k]
+ var layers = layerGroup.getLayers()
+ if (layers) {
+ for (var m = 0; m < layers.length; m++) {
+ var layer = layers[m]
+ console.log(layer.toGeoJSON())
+ /* var feature = layer.feature
+ if (feature.id === layerId) {
+ this.map.flyToBounds(bound)
+ return layer
+ } */
+ }
+ }
+ }
+ return null
+ }
+
/**
* todo 杩欓噷鏃犳晥锛岃矊浼兼槸鍥犱负geojson鍔犺浇鍒板湴鍥句篃鏄釜layergroup
*
diff --git a/src/components/panel/topicSearch/SewersSearch.vue b/src/components/panel/topicSearch/SewersSearch.vue
index 4e7cb11..146a06e 100644
--- a/src/components/panel/topicSearch/SewersSearch.vue
+++ b/src/components/panel/topicSearch/SewersSearch.vue
@@ -6,24 +6,22 @@
<div class="search-panel ">
<el-form ref="form" :model="form" label-width="90px" class="search-form">
<el-form-item label="璁炬柦绫诲瀷锛�" size="mini" class="search-panel-item">
- <el-select style="width: 100%" v-model="form.pipelineType" @change="handlePipelineType"
- :popper-class="'select-down'">
+ <el-select style="width: 100%" v-model="form.pipelineType" @change="handlePipelineType" :popper-class="'select-down'">
<el-option
- v-for="item in pipelineTypeOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value">
+ v-for="item in items"
+ :key="item.code"
+ :label="item.name"
+ :value="item.name">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="form.pipelineType+'锛�'" size="mini">
- <el-select style="width: 100%" v-model="form.dataType" @change="handleDataType"
- :popper-class="'select-down'">
+ <el-select style="width: 100%" v-model="form.dataType" @change="handleDataType" :popper-class="'select-down'">
<el-option
- v-for="item in dataTypeOptions"
- :key="item.value"
- :label="item.label"
- :value="item.value">
+ v-for="item in subItems"
+ :key="item.code"
+ :label="item.name"
+ :value="item.name">
</el-option>
</el-select>
</el-form-item>
@@ -69,7 +67,11 @@
</template>
<script>
-import { PipelineTypeOptions } from '@/conf/layers/LayerSewers'
+import { LayerPipeLines } from '@src/conf/layers/LayerPipeLines'
+import { LayerFsss } from '@src/conf/layers/LayerFsss'
+import { LayerHbss } from '@src/conf/layers/LayerHbss'
+import { LayerPk } from '@src/conf/layers/LayerPk'
+import { LayerArea } from '@src/conf/layers/LayerArea'
import WfsHelper from '@components/helpers/WfsHelper'
import AjaxUtils from '@utils/AjaxUtils'
@@ -87,18 +89,13 @@
activeName: 'first',
gdVisible: true,
list: [],
- labelList: PipelineTypeOptions[0].labelList,
+ items: [LayerPipeLines, LayerFsss, LayerHbss, LayerPk, LayerArea],
+ subItems: LayerPipeLines.layers,
total: 0,
- pipelineTypeOptions: PipelineTypeOptions,
- dataTypeOptions: PipelineTypeOptions[0].options,
form: {
- pipelineType: PipelineTypeOptions[0].label,
- dataType: PipelineTypeOptions[0].options[0].label,
- query: PipelineTypeOptions[0].options[0],
- keyword: '鐮旂┒闄�01璺痀S000001'
- // ,
- // size: 10,
- // current: 1
+ pipelineType: '绠$綉',
+ dataType: '',
+ keyword: ''
},
// pageSize: 10,
// current: 1,
@@ -112,32 +109,19 @@
console.log(tab, event)
},
handlePipelineType (val) {
- this.pipelineTypeOptions.forEach((itm) => {
- if (val === itm.value) {
- this.dataTypeOptions = itm.options
- this.form.pipelineType = itm.label
- this.form.labelList = itm.labelList
+ for (var i = 0; i < this.items.length; i++) {
+ const item = this.items[i]
+ if (val === item.name) {
+ this.subItems = item.layers
+ return
}
- })
- this.form.dataType = this.dataTypeOptions[0].label
- this.form.key = this.dataTypeOptions[0].key
- },
- handleDataType (val) {
- this.dataTypeOptions.forEach((itm) => {
- if (val === itm.value) {
- this.form.query = itm
- }
- })
+ }
},
async handleSearch () {
- const param = {
- pipelineType: this.form.pipelineType,
- dataType: this.form.dataType
- }
- console.log(param)
var wfsHelper = new WfsHelper()
- wfsHelper.addTypeName(this.form.query.layerName)
- wfsHelper.addLike(this.form.query.key, this.form.keyword)
+ // todo 鐜板湪绠$綉杩樻病鍖哄垎寮�绫诲瀷锛屽悗闈㈡敼
+ wfsHelper.addTypeName('绠$綉')
+ wfsHelper.addLike('name', this.form.keyword)
// const _this = this
const res = await AjaxUtils.GetDataAsynByUrl(wfsHelper.getUrl(), {})
if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) {
@@ -145,11 +129,10 @@
}
},
handleLocation (val) {
- console.log(val)
const bound = this.L.geoJSON([val], {}).getBounds()
- var layer = window.serviceLayerHelper.getByLayerId(val.id)
- layer && layer.openPopup()
- this.$store.state.map.map.flyToBounds(bound)
+ // var layer = window.layerFactory.flyByLayerId(val.id, bound)
+ window.map.flyToBounds(bound)
+ // layer && layer.openPopup()
}
}
}
--
Gitblit v1.8.0