From bacd67f317f8f3851f2f6e8b460d95f25bb5988e Mon Sep 17 00:00:00 2001 From: ChenZeping <chenzeping> Date: 星期一, 10 五月 2021 17:07:06 +0800 Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop --- src/conf/layers/LayerPipeLines.js | 77 ++- src/components/layer/src/layer.vue | 14 src/conf/layers/LayerFsss.js | 31 + src/components/LayerController/modules/LcServiceLayerFilter.vue | 7 src/components/LayerController/service/LayerFactory.js | 19 src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue | 435 ++++------------------- src/views/popup/Popup.vue | 2 src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Connectivity.vue | 103 +---- src/components/LayerController/service/WmsLayerService.js | 50 +- src/conf/layers/LayerHbss.js | 11 src/utils/List.js | 96 +++++ src/components/panel/topicSearch/SewersSelect/SewersHistory.vue | 2 src/conf/Constants.js | 6 src/components/panel/topicSearch/SewersSearch.vue | 149 ++++---- src/components/helpers/WfsHelper.js | 39 + src/components/layer/src/layer.js | 1 16 files changed, 434 insertions(+), 608 deletions(-) diff --git a/src/components/LayerController/modules/LcServiceLayerFilter.vue b/src/components/LayerController/modules/LcServiceLayerFilter.vue index 8f3bc8d..7b06da4 100644 --- a/src/components/LayerController/modules/LcServiceLayerFilter.vue +++ b/src/components/LayerController/modules/LcServiceLayerFilter.vue @@ -2,15 +2,12 @@ <div class="inner-panel"> <div class="filter-group"> <div v-for="item in layers" :key="item.code" class="filter-item"> - <div class="title"><input type="checkbox" :value="item.code" :checked="item.checked" - @change="swAllSubFilter(item)">{{item.name}} + <div class="title"><input type="checkbox" :value="item.code" :checked="item.checked" @change="swAllSubFilter(item)">{{item.name}} </div> <!-- <el-scrollbar style="height:100%"> --> <div class="content"> <div v-for="filter in item.layers" :key="filter.code"> - <input type="checkbox" :value="filter.code" :checked="filter.checked" - @change="swAllSubFilter(filter)"><label - :title="filter.name">{{filter.name}}</label> + <input type="checkbox" :value="filter.code" :checked="filter.checked" @change="swAllSubFilter(filter)"><label :title="filter.name">{{filter.name}}</label> </div> </div> <!-- </el-scrollbar> --> 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 ea9c7c6..99842ad 100644 --- a/src/components/panel/topicSearch/SewersSearch.vue +++ b/src/components/panel/topicSearch/SewersSearch.vue @@ -1,78 +1,72 @@ <template> - <div class="sewers-search" v-if="gdVisible"> - <div class="panel-title">{{ title }}</div> - <el-tabs v-model="activeName" @tab-click="handleClick"> - <el-tab-pane label="鏌ヨ" name="first"> - <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-option - 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" value-key="code" - :popper-class="'select-down'" @change="handleDataType"> - <el-option - v-for="item in subItems" - :key="item.code" - :label="item.name" - :value="item"> - </el-option> - </el-select> - </el-form-item> - <div class="rightButtonSearch"> - <el-input v-model="form.keyword" size="mini" placeholder="鍦ㄦ杈撳叆鍏抽敭瀛楁悳绱�"></el-input> - <el-button class="el-icon-search" @click="handleSearch"></el-button> - </div> - </el-form> - </div> - <el-scrollbar style="height:380.44px;"> - <div class="environmental-risk-list" v-for="(item,index) in list" :key="index" - :class="activeNum==index?'hover':''"> - <img class="state" :src="getImgSrc()" style="background: none"/> - <div> - <h3 @click="handleLocation(item,index)">{{ item.properties.pipename }}</h3> - <p>鎵�灞炰紒涓氾細<span>{{ item.properties.orgcode }}</span> - <p>璁炬柦绫诲瀷锛�<span>{{ item.properties.teetype }}</span> - <el-button v-if="fuShuSheShiShow" class="rt btn00fff6" size="mini" - style="margin-right: 0.04rem;" @click="btnAffiliatedFacilities(item,index)"> - 闄勫睘璁炬柦 - </el-button> - </p> - </div> - </div> - </el-scrollbar> - <el-card class="footer-page" v-if="total > 10"> - <el-pagination - small - @current-change="handlePage" - :page-size=pageSize - layout="prev, pager, next" - :total=total - :current-page=current - class="warnPagination" - > - </el-pagination> - </el-card> - </el-tab-pane> - <el-tab-pane label="鍒嗘瀽" name="second"> - <SewersAnalysis></SewersAnalysis> - </el-tab-pane> - <el-tab-pane label="鍘嗗彶" name="third"> - <SewersHistory></SewersHistory> - </el-tab-pane> - </el-tabs> - <!-- 闄勫睘璁炬柦闈㈡澘 --> - <affiliated-facilities :facilitiesParameter="facilitiesParameter" - v-if="fuShuSheShiShow"></affiliated-facilities> - </div> + <div class="sewers-search" v-if="gdVisible"> + <div class="panel-title">{{ title }}</div> + <el-tabs v-model="activeName" @tab-click="handleClick"> + <el-tab-pane label="鏌ヨ" name="first"> + <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-option + 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" value-key="code" :popper-class="'select-down'" @change="handleDataType" > + <el-option + v-for="item in subItems" + :key="item.code" + :label="item.name" + :value="item"> + </el-option> + </el-select> + </el-form-item> + <div class="rightButtonSearch"> + <el-input v-model="form.keyword" size="mini" placeholder="鍦ㄦ杈撳叆鍏抽敭瀛楁悳绱�"></el-input> + <el-button class="el-icon-search" @click="handleSearch"></el-button> + </div> + </el-form> + </div> + <el-scrollbar style="height:413px;"> + <div class="environmental-risk-list" v-for="(item,index) in list" :key="index" :class="activeNum==index?'hover':''"> + <img class="state" :src="getImgSrc()" style="background: none"/> + <div> + <h3 @click="handleLocation(item,index)">{{ item.properties.pipename }}</h3> + <p>鎵�灞炰紒涓氾細<span>{{ item.properties.orgcode }}</span> + <p>璁炬柦绫诲瀷锛�<span>{{ item.properties.teetype }}</span> + <el-button v-if="fuShuSheShiShow" class="rt btn00fff6" size="mini" style="margin-right: 0.04rem;" @click="btnAffiliatedFacilities(item,index)" >闄勫睘璁炬柦</el-button> + </p> + </div> + </div> + </el-scrollbar> + <el-card class="footer-page" v-if="total > 10"> + <el-pagination + small + @current-change="handlePage" + :page-size=pageSize + layout="prev, pager, next" + :total=total + :current-page=current + class="warnPagination" + > + </el-pagination> + </el-card> + </el-tab-pane> + <el-tab-pane label="鍒嗘瀽" name="second"> + <SewersAnalysis></SewersAnalysis> + </el-tab-pane> + <el-tab-pane label="鍘嗗彶" name="third"> + <SewersHistory></SewersHistory> + </el-tab-pane> + </el-tabs> + <!-- 闄勫睘璁炬柦闈㈡澘 --> + <affiliated-facilities :facilitiesParameter="facilitiesParameter" v-if="fuShuSheShiShow" ></affiliated-facilities> + </div> </template> <script> @@ -150,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/components/panel/topicSearch/SewersSelect/AnalysisChoose/Connectivity.vue b/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Connectivity.vue index 46fbf24..1588a23 100644 --- a/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Connectivity.vue +++ b/src/components/panel/topicSearch/SewersSelect/AnalysisChoose/Connectivity.vue @@ -9,99 +9,32 @@ <el-card class="box-card"> <el-scrollbar style="height:2rem"> <span class="clearfix">璧峰绠℃</span> - <el-table - ref="singleTable" - highlight-current-row - :data="startingSection" - max-height="200" - style="width: 100%" size="mini"> - <el-table-column - prop="lineloopna" - label="绠$嚎绫诲瀷" - > - </el-table-column> - <el-table-column - sortable - width="100" - prop="pipecode" - label="绠$嚎鍚嶇О" - > - </el-table-column> - <el-table-column - sortable - width="100" - prop="startpoint" - label="璧风偣缂栧彿" - > - </el-table-column> - <el-table-column - sortable - width="100" - prop="endpointnu" - label="缁堢偣缂栧彿" - > - </el-table-column> - <el-table-column - class-name="fixed-tablea" - fixed="right" - label="鎿嶄綔" - > + <el-table ref="singleTable" highlight-current-row :data="startingSection" max-height="200" style="width: 100%" size="mini"> + <el-table-column prop="lineloopna" label="绠$嚎绫诲瀷"></el-table-column> + <el-table-column sortable prop="pipecode" label="绠$嚎鍚嶇О"></el-table-column> + <el-table-column sortable prop="startpoint" label="璧风偣缂栧彿"></el-table-column> + <el-table-column sortable prop="endpointnu" label="缁堢偣缂栧彿"></el-table-column> + <el-table-column class-name="fixed-tablea" fixed="right" label="鎿嶄綔"> <template slot-scope="scope"> <el-button @click="linkSelectStart(scope.row)" type="text" size="small">閫夋嫨</el-button> </template> </el-table-column> </el-table> <span class="clearfix">缁撴潫绠℃</span> - <el-table - :data="tableData" - style="width: 100%"> - <el-table-column - prop="date" - label="绠$嚎绫诲瀷"> - </el-table-column> - <el-table-column - prop="name" - label="绠$嚎鍚嶇О"> - </el-table-column> - <el-table-column - prop="province" - label="璧风偣缂栧彿"> - </el-table-column> - <el-table-column - prop="city" - label="缁堢偣缂栧彿"> - </el-table-column> - <el-table-column - class-name="fixed-table" - fixed="right" - label="鎿嶄綔"> - </el-table-column> + <el-table :data="tableData" style="width: 100%"> + <el-table-column prop="date" label="绠$嚎绫诲瀷"></el-table-column> + <el-table-column prop="name" label="绠$嚎鍚嶇О"></el-table-column> + <el-table-column prop="province" label="璧风偣缂栧彿"></el-table-column> + <el-table-column prop="city" label="缁堢偣缂栧彿"></el-table-column> + <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔"></el-table-column> </el-table> <span class="clearfix">鍒嗘瀽缁撴灉</span> - <el-table - :data="tableData" - style="width: 100%"> - <el-table-column - prop="date" - label="绠$嚎绫诲瀷"> - </el-table-column> - <el-table-column - prop="name" - label="绠$嚎鍚嶇О"> - </el-table-column> - <el-table-column - prop="province" - label="璧风偣缂栧彿"> - </el-table-column> - <el-table-column - prop="city" - label="缁堢偣缂栧彿"> - </el-table-column> - <el-table-column - class-name="fixed-table" - fixed="right" - label="鎿嶄綔"> - </el-table-column> + <el-table :data="tableData" style="width: 100%"> + <el-table-column prop="date" label="绠$嚎绫诲瀷"></el-table-column> + <el-table-column prop="name" label="绠$嚎鍚嶇О"></el-table-column> + <el-table-column prop="province" label="璧风偣缂栧彿"></el-table-column> + <el-table-column prop="city" label="缁堢偣缂栧彿"></el-table-column> + <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔"></el-table-column> </el-table> </el-scrollbar> </el-card> diff --git a/src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue b/src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue index 4284d6f..d835318 100644 --- a/src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue +++ b/src/components/panel/topicSearch/SewersSelect/SewersAnalysis.vue @@ -4,153 +4,45 @@ <!--<el-card>--> <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick"> <el-tab-pane label="杩為�氭��" name="first"> - <el-button type="primary" @click="linkClickStart" size="mini" style="margin-bottom: 5px;" - title="鍦板浘涓婄偣鍑婚�夋嫨闇�瑕佽繘琛岃繛閫氬垎鏋愮殑绠℃">璧峰绠℃ - </el-button> - <el-button type="primary" @click="linkClickEnd" size="mini" style="margin-bottom: 5px;" - title="鍦板浘涓婄偣鍑讳笌鎵�閫夌娈佃繛閫氱娈�">缁撴潫绠℃ - </el-button> - <el-button type="primary" @click="linkQuery" size="mini" style="margin-bottom: 5px;" - title="鏍规嵁璧峰銆佺粨鏉熺娈佃繘琛岃繛閫氭�у垎鏋�">杩為�氭�у垎鏋� - </el-button> - <el-button type="primary" @click="handleClick" size="mini" style="margin-bottom: 5px;" - title="鏍规嵁璧峰銆佺粨鏉熺娈佃繘琛岃繛閫氭�у垎鏋�">娓呴櫎 - </el-button> + <div> + <el-button type="primary" @click="linkClickStart" size="mini" title="鍦板浘涓婄偣鍑婚�夋嫨闇�瑕佽繘琛岃繛閫氬垎鏋愮殑绠℃">璧峰绠℃</el-button> + <el-button type="primary" @click="linkClickEnd" size="mini" title="鍦板浘涓婄偣鍑讳笌鎵�閫夌娈佃繛閫氱娈�">缁撴潫绠℃</el-button> + <el-button type="primary" @click="linkQuery" size="mini" title="鏍规嵁璧峰銆佺粨鏉熺娈佃繘琛岃繛閫氭�у垎鏋�">杩為�氭�у垎鏋�</el-button> + <el-button type="primary" @click="handleClick" size="mini" title="鏍规嵁璧峰銆佺粨鏉熺娈佃繘琛岃繛閫氭�у垎鏋�">娓呴櫎</el-button> + </div> <!-- <el-scrollbar style="height:450px">--> <!-- <el-card shadow="hover">--> <span class="fixed-style">璧峰绠℃</span> - <el-table - class="tableBox" - height="100" - max-height="200" - :data="tableDataLinkStart" - @row-click="linkSelectStart" - highlight-current-row - style="width: 100%" size="mini"> - <el-table-column - prop="datasource" - label="绠℃绫诲瀷" - > - </el-table-column> - <el-table-column - :show-overflow-tooltip="true" - sortable - width="100" - prop="pipecode" - label="绠℃鍚嶇О" - > - </el-table-column> - <el-table-column - sortable - width="100" - prop="material" - label="璧风偣缂栧彿" - > - </el-table-column> - <el-table-column - sortable - width="100" - prop="material" - label="缁堢偣缂栧彿" - > - </el-table-column> - <el-table-column - fixed="right" - class-name="fixed-table" - label="鎿嶄綔" - > + <el-table class="tableBox" height="100" max-height="200" :data="tableDataLinkStart" @row-click="linkSelectStart" highlight-current-row style="width: 100%" size="mini"> + <el-table-column prop="datasource" label="绠℃绫诲瀷"></el-table-column> + <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="绠℃鍚嶇О"></el-table-column> + <el-table-column sortable width="100" prop="material" label="璧风偣缂栧彿"></el-table-column> + <el-table-column sortable width="100" prop="material" label="缁堢偣缂栧彿"></el-table-column> + <el-table-column fixed="right" class-name="fixed-table" label="鎿嶄綔" width="40"> <template slot-scope="scope"> <el-button @click="linkSelectStart(scope.row)" type="text" size="small">閫夋嫨</el-button> </template> </el-table-column> </el-table> <span class="fixed-style">缁撴潫绠℃</span> - <el-table - class="tableBox" - height="100" - max-height="200" - highlight-current-row - :data="tableDataLinkEnd" - @row-click="linkSelectEnd" - style="width: 100%" size="mini"> - <el-table-column - prop="datasource" - label="绠℃绫诲瀷" - > - </el-table-column> - <el-table-column - :show-overflow-tooltip="true" - sortable - width="100" - prop="pipecode" - label="绠℃鍚嶇О" - > - </el-table-column> - <el-table-column - sortable - width="100" - prop="material" - label="璧风偣缂栧彿" - > - </el-table-column> - <el-table-column - sortable - width="100" - prop="material" - label="缁堢偣缂栧彿" - > - </el-table-column> - <el-table-column - class-name="fixed-table" - fixed="right" - label="鎿嶄綔" - > + <el-table class="tableBox" height="100" max-height="200" highlight-current-row :data="tableDataLinkEnd" @row-click="linkSelectEnd" style="width: 100%" size="mini"> + <el-table-column prop="datasource" label="绠℃绫诲瀷"></el-table-column> + <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="绠℃鍚嶇О"></el-table-column> + <el-table-column sortable width="100" prop="material" label="璧风偣缂栧彿"></el-table-column> + <el-table-column sortable width="100" prop="material" label="缁堢偣缂栧彿"></el-table-column> + <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔" width="40"> <template slot-scope="scope"> <el-button @click="linkSelectEnd(scope.row)" type="text" size="small">閫夋嫨</el-button> </template> </el-table-column> </el-table> <span class="fixed-style">鍒嗘瀽缁撴灉:<span style="color: red;margin-left: 15px">{{ currentLinkIsTrue }}</span></span> - <el-table - class="tableBox" - highlight-current-row - max-height="200" - :data="tableDataLinkResult" - @row-click="linkResultSelect" - style="width: 100%" size="mini"> - - <el-table-column - prop="material" - label="绠℃绫诲瀷" - > - </el-table-column> - <el-table-column - :show-overflow-tooltip="true" - sortable - width="100" - prop="pipecode" - label="绠℃鍚嶇О" - > - </el-table-column> - <el-table-column - sortable - width="100" - prop="material" - label="璧风偣缂栧彿" - > - </el-table-column> - <el-table-column - sortable - width="100" - prop="material" - label="缁堢偣缂栧彿" - > - </el-table-column> - <el-table-column - class-name="fixed-table" - fixed="right" - label="鎿嶄綔" - > + <el-table class="tableBox" highlight-current-row max-height="200" :data="tableDataLinkResult" @row-click="linkResultSelect" style="width: 100%" size="mini"> + <el-table-column prop="material" label="绠℃绫诲瀷"></el-table-column> + <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="绠℃鍚嶇О"></el-table-column> + <el-table-column sortable width="100" prop="material" label="璧风偣缂栧彿"></el-table-column> + <el-table-column sortable width="100" prop="material" label="缁堢偣缂栧彿"></el-table-column> + <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔" width="40"> <template slot-scope="scope"> <el-button @click="linkResultSelect(scope.row)" type="text" size="small">瀹氫綅</el-button> </template> @@ -160,110 +52,32 @@ <!--</el-card>--> <!--</el-scrollbar>--> </el-tab-pane> - <el-tab-pane label="鐖嗙" style=";color: #cccccc" name="second"> + <el-tab-pane label="鐖嗙" style="color: #cccccc" name="second"> <el-row> <span>鐖嗙锛堢浉鍏冲紑鍏筹級</span> - <el-button type="primary" @click="bgClick" size="mini" style="margin-bottom: 5px;" - title="鍦板浘涓婄偣鍑婚�夋嫨鍙戠敓鐖嗙鐨勭娈�"> - 閫夋嫨绠℃ - </el-button> - <el-button type="primary" @click="handleClick" size="mini" style="margin-bottom: 5px;" title="娓呴櫎缁樺埗"> - 娓呴櫎 - </el-button> + <el-button type="primary" @click="bgClick" size="mini" style="margin-bottom: 5px;" title="鍦板浘涓婄偣鍑婚�夋嫨鍙戠敓鐖嗙鐨勭娈�">閫夋嫨绠℃</el-button> + <el-button type="primary" @click="handleClick" size="mini" style="margin-bottom: 5px;" title="娓呴櫎缁樺埗">娓呴櫎</el-button> </el-row> <!-- <el-card shadow="hover">--> <span class="fixed-style">鍙戠敓鐖嗚鐨勭娈�</span> - <el-table - max-height="200" - class="tableBox" - ref="singleTable" - highlight-current-row - :data="bgPipeLine" - style="width: 100%" size="mini"> - <el-table-column - :show-overflow-tooltip="true" - prop="pipecode" - label="绠℃绫诲瀷" - > - </el-table-column> - <el-table-column - :show-overflow-tooltip="true" - sortable - width="100" - prop="pipecode" - label="绠℃鍚嶇О" - > - </el-table-column> - <el-table-column - :show-overflow-tooltip="true" - sortable - width="100" - prop="pipecode" - label="璧风偣缂栧彿" - > - </el-table-column> - <el-table-column - :show-overflow-tooltip="true" - sortable - width="100" - prop="pipecode" - label="缁堢偣缂栧彿" - > - </el-table-column> - <el-table-column - class-name="fixed-table" - fixed="right" - label="鎿嶄綔" - > + <el-table max-height="200" class="tableBox" ref="singleTable" highlight-current-row :data="bgPipeLine" style="width: 100%" size="mini"> + <el-table-column :show-overflow-tooltip="true" prop="pipecode" label="绠℃绫诲瀷"></el-table-column> + <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="绠℃鍚嶇О"></el-table-column> + <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="璧风偣缂栧彿"></el-table-column> + <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="缁堢偣缂栧彿"></el-table-column> + <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔" width="40"> <template slot-scope="scope"> <el-button @click="bgSelect(scope.row)" type="text" size="small">閫夋嫨</el-button> </template> </el-table-column> </el-table> <span class="fixed-style">闇�瑕佸叧闂殑闃�闂�</span> - <el-table - class="tableBox" - highlight-current-row - max-height="200" - :data="bgFm" - @row-click="bgFmClick" - style="width: 100%" size="mini"> - <el-table-column - :show-overflow-tooltip="true" - prop="pipecode" - label="绠℃绫诲瀷" - > - </el-table-column> - <el-table-column - sortable - :show-overflow-tooltip="true" - width="100" - prop="pipecode" - label="绠℃鍚嶇О" - > - </el-table-column> - <el-table-column - sortable - :show-overflow-tooltip="true" - width="100" - prop="pipecode" - label="璧风偣缂栧彿" - > - </el-table-column> - <el-table-column - :show-overflow-tooltip="true" - sortable - width="100" - prop="pipecode" - label="缁堢偣缂栧彿" - > - </el-table-column> - - <el-table-column - class-name="fixed-table" - fixed="right" - label="鎿嶄綔" - > + <el-table class="tableBox" highlight-current-row max-height="200" :data="bgFm" @row-click="bgFmClick" style="width: 100%" size="mini"> + <el-table-column :show-overflow-tooltip="true" prop="pipecode" label="绠℃绫诲瀷"></el-table-column> + <el-table-column sortable :show-overflow-tooltip="true" width="100" prop="pipecode" label="绠℃鍚嶇О"></el-table-column> + <el-table-column sortable :show-overflow-tooltip="true" width="100" prop="pipecode" label="璧风偣缂栧彿"></el-table-column> + <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="缁堢偣缂栧彿"></el-table-column> + <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔" width="40"> <template slot-scope="scope"> <el-button @click="linkResultSelect(scope.row)" type="text" size="small">瀹氫綅</el-button> </template> @@ -272,152 +86,61 @@ <!-- </el-card>--> </el-tab-pane> <el-tab-pane label="娴佸悜" name="third"> - <el-button type="primary" @click="selectPipeLine" size="mini" style="margin-bottom: 5px;" - title="鍦板浘涓婄偣鍑昏鏄剧ず娴佸悜鐨勭娈�"> - 閫夋嫨绠℃ - </el-button> - <el-table - max-height="200" - class="tableBox" - :data="tableDataLiuxiang" size="mini"> - <el-table-column - :show-overflow-tooltip="true" - prop="pipecode" - label="绠℃绫诲瀷" - > - </el-table-column> - <el-table-column - :show-overflow-tooltip="true" - sortable - width="100" - prop="pipecode" - label="绠℃鍚嶇О" - > - </el-table-column> - <el-table-column - :show-overflow-tooltip="true" - sortable - width="100" - prop="pipecode" - label="璧风偣缂栧彿" - > - </el-table-column> - <el-table-column - :show-overflow-tooltip="true" - sortable - width="100" - prop="pipecode" - label="缁堢偣缂栧彿" - > - </el-table-column> - <el-table-column - class-name="fixed-table" - fixed="right" - label="鎿嶄綔" - width="100" - > + <el-button type="primary" @click="selectPipeLine" size="mini" style="margin-bottom: 5px;" title="鍦板浘涓婄偣鍑昏鏄剧ず娴佸悜鐨勭娈�">閫夋嫨绠℃</el-button> + <el-table max-height="200" class="tableBox" :data="tableDataLiuxiang" size="mini"> + <el-table-column :show-overflow-tooltip="true" prop="pipecode" label="绠℃绫诲瀷"></el-table-column> + <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="绠℃鍚嶇О"></el-table-column> + <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="璧风偣缂栧彿"></el-table-column> + <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="缁堢偣缂栧彿"></el-table-column> + <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔" width="60"> <template slot-scope="scope"> <el-button @click="lxQuery(scope.row)" type="text" size="small">鏄剧ず娴佸悜</el-button> </template> </el-table-column> </el-table> <span class="fixed-style">鍒嗘瀽缁撴灉</span> - <el-table - class="tableBox" - highlight-current-row - max-height="200" - :data="lxTableDataResult" - @row-click="lxResultSelect" - style="width: 100%" size="mini"> - - <el-table-column - :show-overflow-tooltip="true" - prop="pipecode" - label="绠℃绫诲瀷" - > - </el-table-column> - <el-table-column - :show-overflow-tooltip="true" - width="100" - sortable - prop="pipecode" - label="绠℃鍚嶇О" - > - </el-table-column> - <el-table-column - :show-overflow-tooltip="true" - sortable - width="100" - prop="pipecode" - label="璧风偣缂栧彿" - > - </el-table-column> - <el-table-column - :show-overflow-tooltip="true" - sortable - width="100" - prop="pipecode" - label="缁堢偣缂栧彿" - > - </el-table-column> - <el-table-column - class-name="fixed-table" - fixed="right" - label="鎿嶄綔" - > + <el-table class="tableBox" highlight-current-row max-height="200" :data="lxTableDataResult" @row-click="lxResultSelect" style="width: 100%" size="mini"> + <el-table-column :show-overflow-tooltip="true" prop="pipecode" label="绠℃绫诲瀷"></el-table-column> + <el-table-column :show-overflow-tooltip="true" width="100" sortable prop="pipecode" label="绠℃鍚嶇О"></el-table-column> + <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="璧风偣缂栧彿"></el-table-column> + <el-table-column :show-overflow-tooltip="true" sortable width="100" prop="pipecode" label="缁堢偣缂栧彿"></el-table-column> + <el-table-column class-name="fixed-table" fixed="right" label="鎿嶄綔" width="40"> <template slot-scope="scope"> <el-button @click="linkResultSelect(scope.row)" type="text" size="small">瀹氫綅</el-button> </template> </el-table-column> - </el-table> </el-tab-pane> <el-tab-pane label="妯柇闈�" name="fourth"> - <el-button type="primary" @click="drawLine" size="mini" style="margin-bottom: 5px;" - title="鍦板浘涓婄粯鍒惰杩涜鍒嗘瀽鎴柇闈㈢殑绾�"> - 缁樺埗绾挎 - </el-button> - <el-button type="primary" @click="jdmQuery" size="mini" style="margin-bottom: 5px;" title="鎴柇闈㈠垎鏋�">鎴柇闈㈠垎鏋� - </el-button> - <el-button type="primary" @click="jdmClear" size="mini" style="margin-bottom: 5px;" title="娓呴櫎鎴柇闈㈠垎鏋愮粨鏋�">娓呴櫎 - </el-button> + <div> + <el-button type="primary" @click="drawLine" size="mini" style="margin-bottom: 5px;" title="鍦板浘涓婄粯鍒惰杩涜鍒嗘瀽鎴柇闈㈢殑绾�">缁樺埗绾挎</el-button> + <el-button type="primary" @click="jdmQuery" size="mini" style="margin-bottom: 5px;" title="鎴柇闈㈠垎鏋�">鎴柇闈㈠垎鏋�</el-button> + <el-button type="primary" @click="jdmClear" size="mini" style="margin-bottom: 5px;" title="娓呴櫎鎴柇闈㈠垎鏋愮粨鏋�">娓呴櫎</el-button> + </div> <!-- <el-card class="box-card">--> <div slot="header" class="fixed-style"> <span>绠℃鏌ヨ缁撴灉</span> </div> - <el-table - class="tableBox" - :data="tableData" - max-height="200" - style="width: 100%" @row-click="selectRow" size="mini"> - <el-table-column - prop="pipename" - label="绠℃鍚嶇О" - width="180"> - </el-table-column> - <el-table-column - prop="mediumtype" - label="绠℃绫诲瀷" - width="180"> - </el-table-column> - <el-table-column - class-name="fixed-table" - fixed="right" - label="鍥捐〃鏌ョ湅" - > + <el-table class="tableBox" :data="tableData" max-height="200" style="width: 100%" @row-click="selectRow" size="mini"> + <el-table-column prop="pipename" label="绠℃鍚嶇О"></el-table-column> + <el-table-column prop="mediumtype" label="绠℃绫诲瀷" width="80"></el-table-column> + <el-table-column class-name="fixed-table" fixed="right" label="鍥捐〃" width="40"> <template slot-scope="scope"> <el-button @click="selectRow(scope.row)" type="text" size="small">鏌ョ湅</el-button> </template> </el-table-column> </el-table> <!-- </el-card>--> - <el-card class="box-card"> + <!-- <el-card class="box-card"> <div slot="header" class="fixed-style"> <span>鏂潰鍥�</span> </div> <span v-show="!myChartShow" style="color: #909399;font-size: 12px;">鏆傛棤鏁版嵁</span> <div v-show="myChartShow" id="echarts_box" ref="myChart" style="width: 350px;height:200px;"></div> - </el-card> + </el-card> --> + <span class="fixed-style">鏂潰鍥�</span> + <span v-show="!myChartShow" style="color: #909399;font-size: 12px;height: 200px;display: block;text-align: center;line-height: 200px">鏆傛棤鏁版嵁</span> + <div v-show="myChartShow" id="echarts_box" ref="myChart" style="width:350px;height:200px;margin: 0 auto"></div><!-- v-show="myChartShow" --> </el-tab-pane> </el-tabs> <!--</el-card>--> @@ -1016,10 +739,11 @@ } }, grid: { - // left: '3%', - // right: '4%', - // bottom: '3%', - // containLabel: true + left: '10px', + right: '0', + top: '10px', + bottom: '5px', + containLabel: true }, xAxis: [ { @@ -1084,6 +808,13 @@ </script> <style lang="less" scoped> + /deep/ .el-tabs .el-tabs__item{ + height: 20px; + line-height: 20px; + } + /deep/ .el-tabs--border-card>.el-tabs__content{ + padding: 5px; + } /deep/ .el-table .has-gutter tr th { border: none !important; } @@ -1099,8 +830,7 @@ /deep/ .fixed-style { font-size: 12px; display: inline-block; - color: #ffffff; - margin: 15px; + color: #00fff6; } /deep/ th.is-leaf { @@ -1109,6 +839,9 @@ /deep/ .el-table__fixed-right::before, .el-table__fixed::before { background: none; + } + /deep/ .el-table__empty-text{ + line-height: 170px; } /deep/ .el-table__body .el-table__row.hover-row td { @@ -1128,6 +861,10 @@ display: none; } + /deep/ .el-tab-pane{ + min-height: 506.19px; + } + /*/deep/ .el-tabs--top .el-tabs__item.is-top:nth-child(2) {*/ /* padding-left: 20px;*/ /*}*/ diff --git a/src/components/panel/topicSearch/SewersSelect/SewersHistory.vue b/src/components/panel/topicSearch/SewersSelect/SewersHistory.vue index 725bb93..c4abfe5 100644 --- a/src/components/panel/topicSearch/SewersSelect/SewersHistory.vue +++ b/src/components/panel/topicSearch/SewersSelect/SewersHistory.vue @@ -20,7 +20,7 @@ </div> </el-form> </div> - <el-scrollbar style="height:286.22px"> + <el-scrollbar style="height:377px"> <div class="environmental-risk-list hover"><!-- v-for="(item,index) in list" :key="index" --> <i class="state"></i> <div> 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