From cb85033879c74f34925a303402c1ad3e4a8646f2 Mon Sep 17 00:00:00 2001 From: 徐旺旺 <11530253@qq.com> Date: 星期一, 10 五月 2021 17:03:54 +0800 Subject: [PATCH] 搜索更换为geoserver wfs,图层顺序,弹窗定位等 --- src/components/LayerController/service/WmsLayerService.js | 50 ++++---- src/conf/layers/LayerPipeLines.js | 77 +++++++----- src/components/layer/src/layer.vue | 14 ++ src/conf/layers/LayerFsss.js | 31 +++- src/conf/layers/LayerHbss.js | 11 + src/utils/List.js | 96 ++++++++++++++++ src/conf/Constants.js | 6 + src/components/LayerController/service/LayerFactory.js | 19 ++- src/components/panel/topicSearch/SewersSearch.vue | 7 src/components/helpers/WfsHelper.js | 39 ++++-- src/views/popup/Popup.vue | 2 src/components/layer/src/layer.js | 1 12 files changed, 259 insertions(+), 94 deletions(-) diff --git a/src/components/LayerController/service/LayerFactory.js b/src/components/LayerController/service/LayerFactory.js index f9810db..f781247 100644 --- a/src/components/LayerController/service/LayerFactory.js +++ b/src/components/LayerController/service/LayerFactory.js @@ -1,6 +1,6 @@ import WfsLayerService from './WfsLayerService' import { clone } from '../../../utils/utils' -import { logicMapper } from '../../../conf/Constants' +import { logicMapper, SERVICE_TYPE } from '../../../conf/Constants' import WmsLayerService from './WmsLayerService' /** @@ -65,8 +65,7 @@ loadLogic (config) { var code = config.code - var wfs = config.wfs - var wmsLayers = config.wmsLayers + var type = config.type const file = logicMapper[code] var logic = this.layersLogic[code] @@ -74,9 +73,9 @@ if (file) { var BusiLayer = require('../logic/' + file) logic = new BusiLayer() - } else if (wfs) { + } else if (type === SERVICE_TYPE.WFS) { logic = new WfsLayerService(config) - } else if (wmsLayers) { + } else if (type === SERVICE_TYPE.WMS) { var layer = {} layer[config.code] = config this.wmsLayers.push(layer) @@ -184,9 +183,17 @@ break case 'MultiLineString': var coordinates = feature.geometry.coordinates - point = coordinates[parseInt(coordinates.length / 2)][0] + var coordinate = coordinates[parseInt(coordinates.length / 2)][0] + if (coordinate.length > 2) { + point = [coordinate[0], coordinate[1]] + } + break + case 'LineString': + var lineString = feature.geometry.coordinates + point = lineString[parseInt(lineString.length / 2)][0] break } + console.log(point) window.map.flyTo(point.reverse(), 17) code && this.openPopup(code, feature.id) } diff --git a/src/components/LayerController/service/WmsLayerService.js b/src/components/LayerController/service/WmsLayerService.js index 8c0d5dc..36aba46 100644 --- a/src/components/LayerController/service/WmsLayerService.js +++ b/src/components/LayerController/service/WmsLayerService.js @@ -1,6 +1,7 @@ import AjaxUtils from '../../../utils/AjaxUtils' import { PIPELINE_WMS } from '../../../conf/Constants' import Popup from '@views/popup/Popup' +import List from '../../../utils/List' /** * todo 寰楄�冭檻涓�涓浘灞傞厤缃簡澶氫釜 wmsLayers鐨勬儏鍐� @@ -27,13 +28,12 @@ // 瀛樻斁getfeatureinfo鐨勫浘灞傜粍 this.featureGroup = this.L.featureGroup({}).addTo(this.map) - this.layers = [] + this.layers = new List() for (var i = 0; i < layersConfig.length; i++) { const config = layersConfig[i] - for (var k in config) { - if (k === 'wmsLayers') { - this.layers.push(config[k]) - } + const typeName = config.typeName + if (typeName) { + this.layers.add(config.index, typeName) } } } @@ -46,23 +46,18 @@ } add (config) { - const wmsLayers = config.wmsLayers - if (wmsLayers) { - if (this.layers.indexOf(wmsLayers) < 0) { - this.layers.push(config.wmsLayers) + const typeName = config.typeName + if (typeName) { + if (!this.layers.contains(typeName)) { + this.layers.add(config.index, typeName) this.wmsLayer.setParams({ layers: this.layers.join(',') }) } } } remove (config) { - const wmsLayers = config.wmsLayers - for (var i = 0; i < this.layers.length; i++) { - const layerName = this.layers[i] - if (wmsLayers === layerName) { - this.layers.splice(i, 1) - } - } + const typeName = config.typeName + this.layers.remove(typeName) this.wmsLayer.setParams({ layers: this.layers.join(',') }) } @@ -70,18 +65,19 @@ this.wmsLayer = this.L.tileLayer.wms(PIPELINE_WMS, { format: 'image/png', // 杩斿洖鐨勬暟鎹牸寮� transparent: true, - layers: layers.join(',') + layers: this.layers.join(',') }).addTo(this.map) } clickListener () { window.map.on('click', (e) => { + console.log(e) this.featureGroup.clearLayers() var point = this.map.latLngToContainerPoint(e.latlng, this.map.getZoom()) var size = this.map.getSize() // const bbox = this.L.latLngBounds(this.L.latLng(e.latlng.lng, e.latlng.lat)).toBBoxString() - if (this.layers && this.layers.length > 0) { + if (this.layers.length() > 0) { const params = Object.assign({ LAYERS: this.layers.join(','), QUERY_LAYERS: this.layers.join(','), @@ -94,13 +90,13 @@ AjaxUtils.get4JsonDataByUrl(PIPELINE_WMS, params, (res) => { const features = res.data.features /** - * { - * title: 'New Tab', - * name: newTabName, - * content: 'New Tab content' - * } - * @type {*[]} - */ + * { + * title: 'New Tab', + * name: newTabName, + * content: 'New Tab content' + * } + * @type {*[]} + */ const popupDatas = [] if (features) { for (var i = 0; i < features.length; i++) { @@ -140,7 +136,9 @@ datas: popupDatas } }, - title: '' // 鏍囬 + title: '', // 鏍囬 + left: e.originalEvent.clientX, + top: e.originalEvent.clientY }) } // this.popupComp.setDatas(popupDatas) diff --git a/src/components/helpers/WfsHelper.js b/src/components/helpers/WfsHelper.js index 20093e6..9f9b781 100644 --- a/src/components/helpers/WfsHelper.js +++ b/src/components/helpers/WfsHelper.js @@ -1,14 +1,14 @@ /** * 鍔犺浇WMS,鎷兼帴FILTER,LAYERS鍙傛暟绛� */ -import { PIPELINE_WFS } from '../../conf/Constants' +import { WFS_URL } from '../../conf/Constants' function WfsHelper () { this.filters = [] this.typeNames = [] - this.url = PIPELINE_WFS + this.url = WFS_URL this.params = { REQUEST: 'getfeature', - OUTPUTFORMAT: 'JSON', + OUTPUTFORMAT: 'application/json', maxFeatures: 20000, version: '1.0.0' } @@ -17,16 +17,19 @@ this.typeNames.push(typeName) } - this.addEquals = (property, literal) => { - var filter = '<PropertyIsEqualTo><PropertyName>' + property + '</PropertyName><Literal>' + literal + '</Literal></PropertyIsEqualTo>' + this.addEquals = (property, equals) => { + // var filter = '<PropertyIsEqualTo><PropertyName>' + property + '</PropertyName><Literal>' + literal + '</Literal></PropertyIsEqualTo>' + var filter = property + '=' + equals this.filters.push(filter) } this.addLike = (property, literal) => { - if (property && literal) { - var filter = '<PropertyIsLike><PropertyName>' + property + '</PropertyName><Literal>*' + literal + '*</Literal></PropertyIsLike>' - this.filters.push(filter) - } + // if (property && literal) { + // var filter = '<PropertyIsLike><PropertyName>' + property + '</PropertyName><Literal>*' + literal + '*</Literal></PropertyIsLike>' + // this.filters.push(filter) + // } + var filter = property + ' like \'%' + literal + '%\'' + this.filters.push(filter) } /** @@ -34,7 +37,7 @@ * @returns {string|null} */ this.getFilterParams = () => { - var head = '<Filter xmlns="http://www.opengis.net/ogc">' + /* var head = '<Filter xmlns="http://www.opengis.net/ogc">' var end = '</Filter>' var filter = '' if (this.filters.length > 0) { @@ -46,8 +49,19 @@ return ('FILTER=' + head + '<And>' + filter + '</And>' + end) } return ('FILTER=' + head + filter + end) + } */ + var filter = '' + if (this.filters.length > 0) { + filter = 'CQL_FILTER=' + for (var i = 0; i < this.filters.length; i++) { + filter += this.filters[i] + if (i !== this.filters.length - 1) { + filter += ' AND ' + } + } + return filter } - return null + return filter } this.getUrlParams = () => { @@ -62,7 +76,8 @@ if (filterParam) { params += '&' + filterParam } - return encodeURI(params) + // return encodeURI(params) + return params } this.getUrl = () => { diff --git a/src/components/layer/src/layer.js b/src/components/layer/src/layer.js index 5e2600b..b0581c1 100644 --- a/src/components/layer/src/layer.js +++ b/src/components/layer/src/layer.js @@ -20,6 +20,7 @@ * @return {[type]} [description] */ self.open = function (opt) { + console.log(opt) self.closeAll() var options = mergeJson(opt, defOptions) const id = `notification_${new Date().getTime()}_${seed++}` diff --git a/src/components/layer/src/layer.vue b/src/components/layer/src/layer.vue index 3b25a3a..3221a11 100644 --- a/src/components/layer/src/layer.vue +++ b/src/components/layer/src/layer.vue @@ -28,6 +28,18 @@ }, computed: {}, mounted () { + let left = this.left + let top = this.top + if (left > 0) { + left = left + 'px' + } + if (top > 0) { + top = top + 'px' + } + this.style = { + left: left || '25%', + top: top || '35%' + } }, methods: { close () { @@ -72,8 +84,6 @@ .public-bounced { z-index: 2000; position: absolute; - top: 35%; - left: 20%; .public-bounced-title { cursor: move; diff --git a/src/components/panel/topicSearch/SewersSearch.vue b/src/components/panel/topicSearch/SewersSearch.vue index 2213bef..6d8d19b 100644 --- a/src/components/panel/topicSearch/SewersSearch.vue +++ b/src/components/panel/topicSearch/SewersSearch.vue @@ -144,11 +144,12 @@ this.list = [] var wfsHelper = new WfsHelper() // todo 鐜板湪绠$綉杩樻病鍖哄垎寮�绫诲瀷锛屽悗闈㈡敼 - wfsHelper.addTypeName(this.form.dataType.sname) - wfsHelper.addLike('name', this.form.keyword) + wfsHelper.addTypeName(this.form.dataType.typeName) + if (this.form.keyword) { + wfsHelper.addLike('name', this.form.keyword) + } // const _this = this const res = await AjaxUtils.GetDataAsynByUrl(wfsHelper.getUrl(), {}) - console.log(res) if (res instanceof Object && Object.prototype.hasOwnProperty.call(res, 'features')) { this.list = res.features } diff --git a/src/conf/Constants.js b/src/conf/Constants.js index e7fcd49..867a58c 100644 --- a/src/conf/Constants.js +++ b/src/conf/Constants.js @@ -4,6 +4,12 @@ POLYGON: 'polygon' } +export const SERVICE_TYPE = { + WFS: 'wfs', + WMS: 'wms' +} + +export const WFS_URL = 'http://xearth.cn:6240/geoserver/sewer/ows?service=WFS' export const PIPELINE_WFS = 'http://xearth.cn:8088/server/ogcserver/PipeLine2/wfs' export const PIPELINE_WMS = 'http://xearth.cn:6240/geoserver/sewer/wms' diff --git a/src/conf/layers/LayerFsss.js b/src/conf/layers/LayerFsss.js index 86cc169..6cc183a 100644 --- a/src/conf/layers/LayerFsss.js +++ b/src/conf/layers/LayerFsss.js @@ -1,30 +1,32 @@ /** * 鍖哄煙 */ -import { PIPELINE_WFS } from '../Constants' +import { PIPELINE_WFS, SERVICE_TYPE } from '../Constants' const WFS_URL = PIPELINE_WFS export const LayerFsss = { code: 'sewersFsss', name: '闄勫睘璁炬柦', checked: false, // 榛樿閫変腑鐘舵�� layers: [ - { + /* { code: 'pipeSection', name: '绠℃', sname: '绠℃', checked: false, wmsLayers: 'sewer:pipesegment' // wfs: 'http://xearth.cn:6240/geoserver/sewer/wfs?typeName=sewer:pipesegment&maxFeatures=50&outputFormat=application%2Fjson&cql_filter=orgname=\'宸撮櫟鐭冲寲\'' - }, + }, */ { code: 'fourlink', name: '鍥涢��', sname: '鍥涢��', checked: true, minZoom: 16, - wmsLayers: 'sewer:fourlink', + type: SERVICE_TYPE.WMS, + typeName: 'sewer:fourlink', // wfs: WFS_URL + '?TYPENAME=鍥涢��', - icon: 'sewers/鍥涢��.png' + icon: 'sewers/鍥涢��.png', + index: 3 }, { code: 'tee', @@ -32,16 +34,19 @@ sname: '涓夐��', checked: false, minZoom: 16, - wmsLayers: 'sewer:tee', + typeName: 'sewer:tee', + type: SERVICE_TYPE.WMS, // wfs: WFS_URL + '?TYPENAME=涓夐��', - icon: 'sewers/涓夐��.png' + icon: 'sewers/涓夐��.png', + index: 3 }, { code: 'piperack', name: '绠℃灦(澧�)', sname: 'PipeRack', minZoom: 16, - wfs: WFS_URL + '?TYPENAME=绠℃灦', + type: SERVICE_TYPE.WMS, + typeName: WFS_URL + '?TYPENAME=绠℃灦', checked: false }, { @@ -49,13 +54,15 @@ name: '绠″粖(甯�)', sname: 'PipeGallery', minZoom: 16, - wfs: WFS_URL + '?TYPENAME=绠″粖', + type: SERVICE_TYPE.WMS, + typeName: '?TYPENAME=绠″粖', checked: false }, { code: 'pipesegment', name: '娴佸悜', sname: 'ywslx', + type: SERVICE_TYPE.WMS, checked: false }, { @@ -64,7 +71,8 @@ minZoom: 10, sname: '闃�闂�', checked: false, - wmsLayers: 'sewer:valve', + type: SERVICE_TYPE.WMS, + typeName: 'sewer:valve', // wfs: WFS_URL + '?TYPENAME=闃�闂�', icon: 'sewers/闃�闂�.png' }, @@ -74,7 +82,8 @@ sname: '寮ご', minZoom: 16, checked: false, - wmsLayers: 'sewer:elbow', + type: SERVICE_TYPE.WMS, + typeName: 'sewer:elbow', // wfs: WFS_URL + '?TYPENAME=寮ご', icon: 'sewers/寮ご.png' } diff --git a/src/conf/layers/LayerHbss.js b/src/conf/layers/LayerHbss.js index 97054d7..dafb46d 100644 --- a/src/conf/layers/LayerHbss.js +++ b/src/conf/layers/LayerHbss.js @@ -1,7 +1,7 @@ /** * 鍖哄煙 */ -import { PIPELINE_WFS } from '../Constants' +import { PIPELINE_WFS, SERVICE_TYPE } from '../Constants' const WFS_URL = PIPELINE_WFS export const LayerHbss = { code: 'sewersHbss', @@ -14,6 +14,7 @@ sname: '绐ㄤ簳', checked: false, minZoom: 16, + type: SERVICE_TYPE.WMS, wmsLayers: 'sewer:manhole', icon: 'sewers/绐ㄤ簳.png' }, @@ -23,7 +24,8 @@ sname: '闆ㄧ瀛�', checked: false, minZoom: 16, - wmsLayers: 'sewer:raingate', + type: SERVICE_TYPE.WMS, + typeName: 'sewer:raingate', // wfs: WFS_URL + '?TYPENAME=闆ㄧ瀛�', icon: 'sewers/闆ㄧ瀛�.png' }, @@ -32,6 +34,7 @@ name: '闃茬伀鍫�', sname: '闃茬伀鍫�', minZoom: 16, + type: SERVICE_TYPE.WMS, wfs: WFS_URL + '?TYPENAME=闃茬伀鍫�', checked: false }, @@ -42,12 +45,14 @@ minZoom: 16, wfs: WFS_URL + '?TYPENAME=闆嗘按姹�', checked: false, + type: SERVICE_TYPE.WMS, icon: 'sewers/闆嗘按姹�.png' }, { code: 'jlz', name: '鎴祦闂�', sname: '鎴祦闂�', + type: SERVICE_TYPE.WMS, wfs: WFS_URL + '?TYPENAME=鎴祦闂�', checked: false }, @@ -56,6 +61,7 @@ name: '婧㈡祦鍫�', sname: '婧㈡祦鍫�', minZoom: 16, + type: SERVICE_TYPE.WMS, wfs: WFS_URL + '?TYPENAME=婧㈡祦鍫�', checked: false }, @@ -65,6 +71,7 @@ sname: '闅旀补姹�', minZoom: 16, checked: false, + type: SERVICE_TYPE.WMS, wfs: WFS_URL + '?TYPENAME=闅旀补姹�', icon: 'sewers/闅旀补姹�.png' } diff --git a/src/conf/layers/LayerPipeLines.js b/src/conf/layers/LayerPipeLines.js index bb746d9..8dea07c 100644 --- a/src/conf/layers/LayerPipeLines.js +++ b/src/conf/layers/LayerPipeLines.js @@ -4,8 +4,7 @@ import { LayerHbss } from './LayerHbss' import { LayerFsss } from './LayerFsss' -import { PIPELINE_WFS } from '../Constants' -const WFS_URL = PIPELINE_WFS +import { SERVICE_TYPE } from '../Constants' export const LayerPipeLines = { code: 'sewersPipeLines', @@ -19,110 +18,126 @@ name: '闆ㄦ按绾�', sname: '绠$綉', checked: false, - type: 0, - wmsLayers: 'sewer:pipeline_rain', - // wfs: WFS_URL + '?TYPENAME=绠$綉&FILTER=<Filter xmlns="http://www.opengis.net/ogc"><PropertyIsEqualTo><PropertyName>mediumtype</PropertyName><Literal>闆ㄦ按绠$嚎</Literal></PropertyIsEqualTo></Filter>', + type: SERVICE_TYPE.WMS, + typeName: 'sewer:pipeline', icon: 'sewers/闆ㄦ按绾�.png', color: '#0070ff', minZoom: 13, styles: { COLOR: '#0070ff', FILL_COLOR: '#0070ff' - } + }, + filter: 'mediumtype = \'闆ㄦ按\'', + index: 1 }, { code: 'accidentline', name: '浜嬫晠姘�', sname: '浜嬫晠姘�', checked: false, - // wmsLayers: 'sewer:pipeline_accident', - type: 0, + type: SERVICE_TYPE.WMS, + typeName: 'sewer:pipeline', minZoom: 13, - wfs: WFS_URL + '?TYPENAME=浜嬫晠姘�' + filter: 'mediumtype = \'浜嬫晠姘碶'', + index: 1 }, { code: 'oilline', name: '鍚补姹℃按', sname: '鍚补姹℃按', checked: false, - type: 0, + type: SERVICE_TYPE.WMS, + typeName: 'sewer:pipeline', minZoom: 13, color: '#ffaa00', - wmsLayers: 'sewer:pipeline_sewer', - // wfs: 'http://xearth.cn:6240/geoserver/sewer/wfs?typeName=sewer:pipeline&maxFeatures=500&outputFormat=application%2Fjson&cql_filter=mediumtype=\'鍚补姹℃按\'', + filter: 'mediumtype = \'鍚补\'', styles: { COLOR: '#ffaa00', FILL_COLOR: '#ffaa00' - } + }, + index: 1 }, { code: 'saltline', name: '鍚洂姹℃按', sname: '鍚洂姹℃按', checked: false, - type: 0, + type: SERVICE_TYPE.WMS, + typeName: 'sewer:pipeline', minZoom: 13, - wfs: WFS_URL + '?TYPENAME=鍚洂姹℃按' + filter: 'mediumtype = \'鍚洂\'', + index: 1 }, { code: 'alkaliline', name: '鍚⒈姹℃按', sname: '鍚⒈姹℃按', checked: false, - type: 0, - wfs: WFS_URL + '?TYPENAME=鍚⒈姹℃按', - minZoom: 10 + type: SERVICE_TYPE.WMS, + typeName: 'sewer:pipeline', + filter: 'mediumtype = \'鍚⒈\'', + minZoom: 10, + index: 1 }, { code: 'sulfurline', name: '鍚~姹℃按', sname: '鍚~姹℃按', checked: false, - type: 0, - wmsLayers: 'sewer:pipeline_sulfur', - // wfs: WFS_URL + '?TYPENAME=鍚⒈姹℃按', - minZoom: 10 + type: SERVICE_TYPE.WMS, + typeName: 'sewer:pipeline', + filter: 'mediumtype = \'鍚~\'', + minZoom: 10, + index: 1 }, { code: 'lifeline', name: '鐢熸椿姹℃按', sname: '鐢熸椿姹℃按', checked: false, - type: 0, + type: SERVICE_TYPE.WMS, + typeName: 'sewer:pipeline', + filter: 'mediumtype = \'鐢熸椿姹℃按\'', minZoom: 13, - wfs: WFS_URL + '?TYPENAME=鐢熸椿姹℃按' + index: 1 }, { code: 'purifyline', name: '鍑�鍖栨按', sname: '鍑�鍖栨按', checked: false, - type: 0, + type: SERVICE_TYPE.WMS, + typeName: 'sewer:pipeline', + filter: 'mediumtype = \'鍑�鍖栨按\'', minZoom: 13, - wfs: WFS_URL + '?TYPENAME=鍑�鍖栨按' + index: 1 }, { code: 'loopline', name: '寰幆姘�', sname: '寰幆姘�', - type: 0, + type: SERVICE_TYPE.WMS, + typeName: 'sewer:pipeline', + filter: 'mediumtype = \'寰幆姘碶'', checked: false, minZoom: 13, - wfs: WFS_URL + '?TYPENAME=寰幆姘�' + index: 1 }, { code: 'buildline', name: '鐢熶骇姹℃按', sname: '鐢熶骇姹℃按', checked: false, - type: 0, + type: SERVICE_TYPE.WMS, + typeName: 'sewer:pipeline', + filter: 'mediumtype = \'鐢熶骇姹℃按\'', minZoom: 13, color: '#a8a800', - wfs: 'http://xearth.cn:6240/geoserver/sewer/wfs?typeName=sewer:pipeline&maxFeatures=500&outputFormat=application%2Fjson&cql_filter=mediumtype=\'鐢熶骇姹℃按\'', styles: { COLOR: '#a8a800', FILL_COLOR: '#a8a800' - } + }, + index: 1 } ] } diff --git a/src/utils/List.js b/src/utils/List.js new file mode 100644 index 0000000..178cdc7 --- /dev/null +++ b/src/utils/List.js @@ -0,0 +1,96 @@ +class List { + constructor () { + this.dataSouce = [] + } + + add (index, element) { + if (!index) { + this.addEnd(element) + } else if (index >= this.dataSouce.length) { + this.addEnd(element) + } else if (index === 1) { + this.addFront(element) + } else { + this._add(index, element) + } + } + + /** + * 鍦ㄥ垪琛ㄧ殑鏈熬娣诲姞鏂板厓绱� + * @param {*} element 瑕佹坊鍔犵殑鍏冪礌 + */ + addEnd (element) { + this.dataSouce[this.dataSouce.length] = element + } + + /** + * 鍦ㄥ垪琛ㄥご閮ㄦ坊鍔犳柊鍏冪礌 + * @param {*} element + * @param {*} after + */ + addFront (element) { + this._add(0, element) + } + + _add (index, element) { + const newArr = [] + for (var i = this.dataSouce.length - 1; i > index - 1; i--) { + newArr[i + 1] = this.dataSouce[i] + } + newArr[index] = element + this.dataSouce = newArr + } + + /** + * 鍦ㄥ垪琛ㄤ腑绉婚櫎涓�涓厓绱� + * @param {*} element 瑕佸垹闄ょ殑鍏冪礌 + */ + remove (element) { + // 鏌ユ壘褰撳墠鍏冪礌鐨勭储寮� + const index = this.dataSouce.indexOf(element) + if (index >= 0) { + this.dataSouce.splice(index, 1) + return true + } + return false + } + + /** + * 鍒ゆ柇缁欏畾鐨勫�兼槸鍚﹀湪鍒楄〃涓� + */ + contains (element) { + return this.dataSouce.indexOf(element) > -1 + } + + /** + * 娓呮鍒楄〃涓殑鍏冪礌 + */ + clear () { + delete this.dataSouce + this.dataSouce = [] + } + + /** + * 鍒楄〃鐨勯暱搴� + */ + length () { + return this.dataSouce.length + } + + join (comma) { + this.removeBlank() + return this.dataSouce.join(comma) + } + + removeBlank () { + const arr = this.dataSouce + console.log(arr) + for (const k in arr) { + if (!arr[k]) { + this.dataSouce.splice(k, 1) + } + } + } +} + +export default List diff --git a/src/views/popup/Popup.vue b/src/views/popup/Popup.vue index a67a49f..d29196c 100644 --- a/src/views/popup/Popup.vue +++ b/src/views/popup/Popup.vue @@ -1,6 +1,6 @@ <template> <div id="popup" class="s-map-popup-panel" style="min-width: 280px;max-width: 280px;padding: 0 10px"> - <el-tabs :value="0" type="card"> + <el-tabs value="0" type="card"> <el-tab-pane :key="item.name" v-for="(item,index) in datas" -- Gitblit v1.8.0