From 2a803059365f15f350a9c088d3a4a5c1ac234fde Mon Sep 17 00:00:00 2001 From: YANGDL <114714267@qq.com> Date: 星期二, 02 三月 2021 16:19:49 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- /dev/null | 78 ------------------- src/conf/Constants.js | 6 + src/conf/MapConfig.js | 4 src/assets/css/map/map-elem-ui.less | 8 ++ src/components/helpers/ServiceLayerHelper.js | 2 src/components/helpers/WfsHelper.js | 77 +++++++++++++++++++ src/views/popup/Popup.vue | 19 ++-- src/components/LayerController/modules/LcServiceLayer.vue | 17 ++- 8 files changed, 114 insertions(+), 97 deletions(-) diff --git a/src/assets/css/map/map-elem-ui.less b/src/assets/css/map/map-elem-ui.less index 0c2c609..daf4784 100644 --- a/src/assets/css/map/map-elem-ui.less +++ b/src/assets/css/map/map-elem-ui.less @@ -5,6 +5,14 @@ border-color: @color; } +.el-tabs{ + .el-tabs__item{ + padding: 0 10px; + text-align: center; + height: 20px; + line-height: 20px; + } +} .select-down { border: none !important; background-color: @background-color !important; diff --git a/src/components/LayerController/modules/LcServiceLayer.vue b/src/components/LayerController/modules/LcServiceLayer.vue index 9833b42..de69136 100644 --- a/src/components/LayerController/modules/LcServiceLayer.vue +++ b/src/components/LayerController/modules/LcServiceLayer.vue @@ -4,7 +4,8 @@ <div v-for="item in serviceLayers" :key="item.code" class="layerbox"> <div><input type="checkbox" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code" @change="swAllLayers(item)"/>{{ item.name }} <span @click="swFilter(item)" - class="btn-filter">杩囨护</span> + class="btn-filter">杩囨护</span><span @click="loadWfs()" + class="btn-filter">娴嬭瘯</span> </div> <div class="layerbox-item"> <div class="basemap-layer-item" v-for="itm in item.layers" :key="itm.code"><input type="checkbox" @@ -22,9 +23,9 @@ </template> <script> -import WmsHelper from '../../helpers/WmsHelper' -import AjaxUtils from '@/utils/AjaxUtils' +import WfsHelper from '../../helpers/WfsHelper' import LcServiceLayerFilter from '@components/LayerController/modules/LcServiceLayerFilter' +import AjaxUtils from '../../../utils/AjaxUtils' export default { name: 'LcServiceLayer', @@ -53,8 +54,12 @@ this.updateWms() }, loadWfs () { - AjaxUtils.GetDataAsynByUrl('http://xearth.cn:6289/server/ogcserver/PipeLineTest/wfs?version=1.0.0&TYPENAME=pipeline&REQUEST=getfeature&OUTPUTFORMAT=json&maxFeatures=20000', {}, (res) => { - window.L.geoJSON(res).addTo(window.map) + var wfsHelper = new WfsHelper() + wfsHelper.addTypeName('绠$嚎鐐�') + wfsHelper.addEquals('pipename', '鐮旂┒闄�01璺痀S000001') + + AjaxUtils.GetDataAsynByUrl(wfsHelper.getUrl(), {}, (res) => { + console.log(res) }) }, swWmsLayer (url, itm) { @@ -74,7 +79,7 @@ }, updateWms () { var mapConfig = this.mapConfig - var wmsHelper = new WmsHelper() + var wmsHelper = new WfsHelper() wmsHelper.initMapConfig(mapConfig) var wmsLayersMap = wmsHelper.getWmsLayersMap() for (var k in wmsLayersMap) { diff --git a/src/components/helpers/ServiceLayerHelper.js b/src/components/helpers/ServiceLayerHelper.js index 60325fb..e3a1af7 100644 --- a/src/components/helpers/ServiceLayerHelper.js +++ b/src/components/helpers/ServiceLayerHelper.js @@ -118,7 +118,7 @@ }) } }).bindPopup(function (layer) { - that.popupComp.setDatas(layer.feature) + that.popupComp.setDatas(layer) that.popupComp.setShow() return that.popupComp.$el }, { diff --git a/src/components/helpers/WfsHelper.js b/src/components/helpers/WfsHelper.js new file mode 100644 index 0000000..3208ca8 --- /dev/null +++ b/src/components/helpers/WfsHelper.js @@ -0,0 +1,77 @@ +/** + * 鍔犺浇WMS,鎷兼帴FILTER,LAYERS鍙傛暟绛� + */ +import MapConfig from '../../conf/MapConfig' +function WfsHelper () { + this.filters = [] + this.typeNames = [] + this.url = MapConfig.BLUEMAP_HOST + '/server/ogcserver/PipeLine/wfs' + this.params = { + REQUEST: 'getfeature', + OUTPUTFORMAT: 'JSON', + maxFeatures: 20000, + version: '1.0.0' + } + + this.addTypeName = (typeName) => { + this.typeNames.push(typeName) + } + + this.addEquals = (property, literal) => { + var filter = '<PropertyIsEqualTo><PropertyName>' + property + '</PropertyName><Literal>' + literal + '</Literal></PropertyIsEqualTo>' + this.filters.push(filter) + } + + this.addLike = (property, literal) => { + var filter = '<PropertyIsLike><PropertyName>' + property + '</PropertyName><Literal>' + literal + '</Literal></PropertyIsLike>' + this.filters.push(filter) + } + + /** + * 寰楀埌filter鍙傛暟鍊� + * @returns {string|null} + */ + this.getFilterParams = () => { + var head = '<Filter xmlns="http://www.opengis.net/ogc">' + var end = '</Filter>' + var filter = '' + if (this.filters.length > 0) { + for (var i = 0; i < this.filters.length; i++) { + filter += this.filters[i] + } + // 褰撴潯浠舵暟 > 1鏃讹紝闇�瑕佺敤and鏍囩鍖呰9 + if (this.filters.length > 1) { + return ('FILTER=' + head + '<And>' + filter + '</And>' + end) + } + return ('FILTER=' + head + filter + end) + } + return null + } + + this.getUrlParams = () => { + var params = '' + for (var p in this.params) { + params += (p + '=' + this.params[p] + '&') + } + // 鎷兼帴typename鍙傛暟 + params += 'typename=' + this.typeNames.join(',') + // 鎷兼帴filter鍙傛暟 + var filterParam = this.getFilterParams() + if (filterParam) { + params += '&' + filterParam + } + return encodeURI(params) + } + + this.getUrl = () => { + var url = this.url + if (url.indexOf('?') > 0) { + url += '&' + } else { + url += '?' + } + return url + this.getUrlParams() + } +} + +export default WfsHelper diff --git a/src/components/helpers/WmsHelper.js b/src/components/helpers/WmsHelper.js deleted file mode 100644 index af18c6c..0000000 --- a/src/components/helpers/WmsHelper.js +++ /dev/null @@ -1,78 +0,0 @@ -/** - * 鍔犺浇WMS,鎷兼帴FILTER,LAYERS鍙傛暟绛� - */ -function WmsHelper () { - this.filters = {} - this.wmsLayersMap = {} - - this.initMapConfig = (mapConfig) => { - var serviceLayers = mapConfig.ServiceLayers - for (var i = 0; i < serviceLayers.length; i++) { - var service = serviceLayers[i] - var checked = service.checked - if (!checked) { - break - } - var filtersGroup = service.filtersGroup - if (filtersGroup) { - this.initLayer(service.code, filtersGroup) - } - } - } - this.initLayer = (wms, layersGroup) => { - for (var i = 0; i < layersGroup.length; i++) { - var filters = layersGroup[i].filters - for (var j = 0; j < filters.length; j++) { - var layer = filters[j] - var checked = layer.checked - // var code = layer.code - var code = layer.name - if (checked) { - this.addLayer(wms, code) - } - } - } - } - this.initFilter = () => { - /* for (var i = 0; i < filters.length; i++) { - var filter = filters[i] - this.addFilter() - } */ - } - this.addLayer = (wms, layer) => { - var wmsLayer = this.wmsLayersMap[wms] - if (wmsLayer) { - wmsLayer[wmsLayer.length] = layer - } else { - this.wmsLayersMap[wms] = [layer] - } - } - this.addFilter = (condition) => { - // var filter = this.filters[layer] - // if (filter) { - this.filters[this.filters.length] = condition - // } else { - // this.filters[layer] = [condition] - // } - } - this.getWmsLayersMap = () => { - return this.wmsLayersMap - } - this.getFilterURL = () => { - var filterURL = '' - var conditions = '' - for (var f in this.filters) { - var filters = this.filters[f] - for (var i = 0; i < filters.length; i++) { - conditions += filters[i] - if (i < filters.length) { - conditions += ',' - } - } - filterURL += f + '.(' + conditions + ');' - } - return filterURL.substr(0, filterURL.length - 1) - } -} - -export default WmsHelper diff --git a/src/conf/Constants.js b/src/conf/Constants.js index 9e89a92..72bb8f0 100644 --- a/src/conf/Constants.js +++ b/src/conf/Constants.js @@ -27,5 +27,9 @@ embeddingmode: '鍩嬭鏂瑰紡', pipetrenchtype: '绠℃矡绫诲瀷', datecollected: '鎺㈡祴鏃堕棿', - operationalstatus: '杩愯鐘舵��' + operationalstatus: '杩愯鐘舵��', + acquisitionpeople: '閲囬泦浜�', + acquisitiondate: '閲囬泦鏃ユ湡', + fourtype: '鍥涢�氱被鍨�', + fourm: '鍥涢�氭潗鏂�' } diff --git a/src/conf/MapConfig.js b/src/conf/MapConfig.js index fdaa00f..4512d66 100644 --- a/src/conf/MapConfig.js +++ b/src/conf/MapConfig.js @@ -7,8 +7,8 @@ const HOST_URL = curWwwPath.substring(0, pos) // service涓绘満閰嶇疆 -const APP_GIS_HOST = 'http://xearth.cn:6299' -// const APP_GIS_HOST_PIPELINE = 'http://xearth.cn:6289' +// const APP_GIS_HOST = 'http://xearth.cn:6299' +const APP_GIS_HOST = 'http://xearth.cn:6289' // 鑷畾涔変富鏈洪厤缃� const BLUEMAP_HOST = APP_GIS_HOST // 鍏徃鍙戝竷鐨勫湴鍥炬湇鍔★紝鐢ㄤ簬娴嬭瘯鐨勫湴鍧� diff --git a/src/views/popup/Popup.vue b/src/views/popup/Popup.vue index ac5d088..eece635 100644 --- a/src/views/popup/Popup.vue +++ b/src/views/popup/Popup.vue @@ -1,6 +1,6 @@ <template> <div id="popup" v-if="isShow" class="s-map-popup-panel"> - <el-tabs v-model="tabsValue" type="card" @edit="handleTabsEdit"> + <el-tabs v-model="tabsValue" type="card"> <el-tab-pane :key="item.name" v-for="(item) in tabs" @@ -8,8 +8,8 @@ :name="item.name" > <el-row v-for="(v,k) in filter" :key="k"> - <el-col :span="12">{{k}}</el-col> - <el-col :span="12">{{v}}</el-col> + <el-col :span="10"><B>{{k}}锛�</B></el-col> + <el-col :span="14">{{v}}</el-col> </el-row> </el-tab-pane> </el-tabs> @@ -25,10 +25,7 @@ data () { return { tabsValue: '1', - tabs: [{ - title: '姹¢洦姘�', - name: '1' - }], + tabs: [], tabIndex: 2, isShow: false, properties: {}, @@ -75,8 +72,12 @@ this.editableTabs = tabs.filter(tab => tab.name !== targetName) } }, - setDatas (feature) { - this.properties = feature.properties + setDatas (layer) { + this.tabs = [{ + title: layer.feature.id, + name: '1' + }] + this.properties = layer.feature.properties }, setShow () { // this.style.display='auto' -- Gitblit v1.8.0