From 8bb474b9fcf3f964d7937bcb2c3e7bb2d139bf7c Mon Sep 17 00:00:00 2001 From: chenyabin <Chenab123!> Date: 星期三, 07 四月 2021 09:24:54 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/develop' into develop --- src/conf/layers/LayerPipeLines.js | 4 src/components/panel/topicSearch/GasWasteSearch.vue | 15 src/assets/css/map/map-panel-style.less | 61 ++- src/conf/layers/LayerAirQuality.js | 20 + src/api/mapApi.js | 5 src/conf/LayerPipeLine.js | 13 src/components/BaseNav/PublicBounced/GasComponents/PublicDetailedList.vue | 51 +++ src/components/panel/topicSearch/DischargeSearch.vue | 24 src/Sgis.js | 17 src/conf/layers/LayerBasin.js | 44 ++ src/views/baseInfoMgr/pipeline/PipeLineIndex.vue | 13 src/conf/layers/LayerWasteSolid.js | 2 src/components/panel/topicSearch/EnvRiskSearch.vue | 48 +- src/components/LayerController/service/WfsLayerService.js | 24 src/components/BaseNav/PublicBounced/GasComponents/ECharts.vue | 47 ++ src/conf/Constants.js | 12 src/conf/layers/LayerEnvRisk.js | 52 +++ src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue | 113 ++++-- src/components/panel/RightSearchPanel.vue | 8 src/components/LayerController/logic/WasteGas.js | 21 src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue | 2 src/conf/LayerTopic.js | 16 + src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue | 30 + src/views/MapTemplate.vue | 89 ----- src/components/LayerController/service/LayerFactory.js | 13 src/api/mapUrl.js | 1 src/components/LayerController/LayerController.vue | 20 - src/components/BaseNav/PublicBounced/PublicBounced.vue | 20 src/components/LayerController/modules/LcServiceLayer.vue | 31 + src/components/panel/topicSearch/SolidWasteSearch.vue | 1 src/conf/layers/LayerSewers.js | 16 /dev/null | 21 - src/components/BaseNav/PublicBounced/GasComponents/PublicVideo.vue | 15 src/components/table/components/WasteWater.vue | 2 src/conf/MapConfig.js | 14 src/conf/layers/LayerSoilGroundWater.js | 52 +++ src/components/LayerController/logic/SolidWaste.js | 8 37 files changed, 601 insertions(+), 344 deletions(-) diff --git a/src/Sgis.js b/src/Sgis.js index 6626200..6682108 100644 --- a/src/Sgis.js +++ b/src/Sgis.js @@ -1,9 +1,7 @@ import BasemapHelper from '@components/helpers/BasemapHelper' import VectorLayerHelper from '@components/helpers/VectorLayerHelper' // 鍒濆鍖栨樉绀� -import ServiceLayerHelper from '@components/helpers/ServiceLayerHelper' - -import '@components/plugin/PathDrag' +// import '@components/plugin/PathDrag' import MapConfig from '@/conf/MapConfig' import '@components/plugin/PathDashFlow' // 娴佸姩绾垮浘 import DownLoad from '@components/plugin/DownLoad' @@ -37,8 +35,6 @@ window.map = map window.L = L - initTileLayersHelper(map) - return map } @@ -52,15 +48,7 @@ console.log(map) return new BasemapHelper({ map }) } -/** - * 涓氬姟搴曞浘鍒濆鍖� - * @param map - * @param L - */ -const initTileLayersHelper = (map) => { - var serviceLayerHelper = new ServiceLayerHelper({ map }) - return serviceLayerHelper -} + /** * 鐭㈤噺鍦板浘鍒濆鍖� * @param map @@ -75,6 +63,5 @@ export default { initMap, initBasemapsHelper, - initTileLayersHelper, initVectorLayersHelper } diff --git a/src/api/mapApi.js b/src/api/mapApi.js index e43f988..4542721 100644 --- a/src/api/mapApi.js +++ b/src/api/mapApi.js @@ -28,9 +28,14 @@ getSolidWasteSurveyDetail (data) { return axios.get(mapUrl.getSolidWasteSurveyDetail, data) }, + // 搴熸皵鐐瑰姞杞� getWasteGas (data) { return axios.get(mapUrl.getWasteGas, data) }, + // 搴熸皵鏄庣粏琛� + getWasteGasDetails (data) { + return axios.get(mapUrl.getWasteGasDetails, data) + }, getWasteWater (data) { return axios.get(mapUrl.getWasteWater, data) }, diff --git a/src/api/mapUrl.js b/src/api/mapUrl.js index 03933ac..33bf39f 100644 --- a/src/api/mapUrl.js +++ b/src/api/mapUrl.js @@ -11,6 +11,7 @@ export const getSolidWasteSurveyDetail = $HOST + '/wasteSolid/getSolidWasteSurveyDetail' export const getWasteGas = $HOST + '/wasteGas/getWasteGas' +export const getWasteGasDetails = $HOST + '/wasteGas/getWasteGasMonitoringDetails' export const getWasteWater = $HOST + '/wasteWater/getWasteWater' diff --git a/src/assets/css/map/map-panel-style.less b/src/assets/css/map/map-panel-style.less index 247200e..a23fdc6 100644 --- a/src/assets/css/map/map-panel-style.less +++ b/src/assets/css/map/map-panel-style.less @@ -1,13 +1,11 @@ @import "_map-variable"; /*鍏ㄥ眬璁剧疆***********/ -h1,h2,h3,h4,h5,h6,ul,li,p{ +h1, h2, h3, h4, h5, h6, ul, li, p { padding: 0; margin: 0; list-style: none; } - - .el-button--primary { @@ -201,11 +199,11 @@ display: none !important; } -.el-tabs--card>.el-tabs__header .el-tabs__nav{ +.el-tabs--card > .el-tabs__header .el-tabs__nav { border: none; } -.el-tabs--card>.el-tabs__header .el-tabs__item{ +.el-tabs--card > .el-tabs__header .el-tabs__item { border: none; margin-left: 10px; } @@ -243,35 +241,66 @@ } /***************Company 鍥惧眰 鎮诞妗嗘牱寮忋��*********************************/ -.company-bindTooltip{ - background:none; - border:none; - color:red; +.company-bindTooltip { + background: none; + border: none; + color: red; font-size: 16px; font-weight: 900 !important; text-shadow: 0 0 5px #fff; box-shadow: none; } -.company-bindTooltip-hover h3{ + +.company-bindTooltip-hover h3 { text-align: center; - border-bottom:1px solid #0B3B6D; + border-bottom: 1px solid #0B3B6D; margin: 0; - padding:0; + padding: 0; } -.company-bindTooltip-hover ul{ + +.company-bindTooltip-hover ul { list-style: none; margin: 0; - padding:0; + padding: 0; width: 260px; display: flex; flex-wrap: wrap; } -.company-bindTooltip-hover ul li{ + +.company-bindTooltip-hover ul li { margin: 0; - padding:3px 0; + padding: 3px 0; width: 50%; } +/*************** PublicTable 琛ㄦ牸鏍峰紡銆�*********************************/ +.cell { + padding: 0; +} + +.el-table .cell, .el-table--border td:first-child .cell, .el-table--border th:first-child .cell { + /* padding-left: 10px; */ + text-align: center; +} +.el-table th>.cell { + color: #00fff6; +} +.el-table__row>td{ + border: none; +} +.el-table::before {//鍘绘帀鏈�涓嬮潰鐨勯偅涓�鏉$嚎 + height: 0; +} +.el-table td, .el-table th.is-leaf { + border: none; +} +.el-table .warning-row { + background: #28304d; +} + +.el-table .success-row { + background: #30455f; +} /***********************************************鍔ㄧ敾鏁堟灉************/ .transition{ transition: all .5s; diff --git a/src/components/BaseNav/PublicBounced/GasComponents/ECharts.vue b/src/components/BaseNav/PublicBounced/GasComponents/ECharts.vue index 0fc0cfb..c3338d4 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/ECharts.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/ECharts.vue @@ -6,13 +6,37 @@ <el-tag>鐑熷皹 : 6.93 鏍囧噯 : 30</el-tag> <el-tag>搴熸皵娴侀噺 : 120343.18</el-tag> </div> - <div style="width:750px;height:260px;" id="echarts" ref="main"></div> + <div class="form-echrts"> + <div> + <el-button size="mini" round @click="dialogVisible = true">鏄庣粏琛�</el-button> + <el-dialog :visible.sync="dialogVisible" + :append-to-body="true" + width="66%" + center + > + <div class="el-dialog-div" style="height: 600px"> + <public-detailed-list v-bind="$attrs"></public-detailed-list> + </div> + </el-dialog> + </div> + <div style="width:750px;height:260px;" id="echarts" ref="main"> + </div> + </div> </div> </template> <script> +import PublicDetailedList from '@components/BaseNav/PublicBounced/GasComponents/PublicDetailedList' export default { name: 'ECharts', + components: { + PublicDetailedList + }, + data () { + return { + dialogVisible: false + } + }, methods: { drawChart: function () { const myChart = this.$echarts.init(this.$refs.main) @@ -195,10 +219,21 @@ border: none; padding: 0 15px; } - #echarts{ - margin: 0; - padding: 0; - border: 1px solid #396d83; - margin: 10px 10px 10px 10px; + .form-echrts{ + width: 100%; + height: 100%; + border: 1px solid #396d83; + //margin: 10px 10px 10px 10px; + .el-dialog-div{ + //height: 50vh!important; + overflow: auto; + //overflow: hidden; + } + #echarts { + margin: 0; + padding: 0; + //border: 1px solid #396d83; + //margin: 10px 10px 10px 10px; + } } </style> diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue index db99764..8fd38d7 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue @@ -10,7 +10,7 @@ <li @click='tabTaggle("ECharts")'>鏈堟暟鎹�</li> <li @click='tabTaggle("ECharts")'>浜哄伐鏁版嵁</li> </ul> - <component :is="currentTab"></component> + <component :is="currentTab" v-bind="$attrs"></component> </div> </template> diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicDetailedList.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicDetailedList.vue new file mode 100644 index 0000000..efdfd77 --- /dev/null +++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicDetailedList.vue @@ -0,0 +1,51 @@ +<template> + <div class="PublicDetailedList"> + <el-table :data="tableData" max-height="600px"> + <el-table-column prop="OnLineMonEmissPointName" label="鎺掓斁鐐�"></el-table-column> + <el-table-column prop="MonTimeStr" label="鐩戞祴鏃堕棿"></el-table-column> + <el-table-column label="姘哀鍖栫墿"> + <el-table-column prop="MonQty" label="娴撳害(mg/m鲁)"></el-table-column> + <el-table-column prop="OrglQty" label="鎶樼畻鍊�(mg/m鲁)"></el-table-column> + <el-table-column prop="ConvertQty" label="鏍囧噯鍊�(mg/m鲁)"></el-table-column> + <el-table-column prop="EmissQty" label="鎺掓斁閲�(kg/h)"></el-table-column> + </el-table-column> + <el-table-column label="浜屾哀鍖栫~"> + <el-table-column prop="MonQty" label="娴撳害(mg/m鲁)"></el-table-column> + <el-table-column prop="OrglQty" label="鎶樼畻鍊�(mg/m鲁)"></el-table-column> + <el-table-column prop="ConvertQty" label="鏍囧噯鍊�(mg/m鲁)"></el-table-column> + <el-table-column prop="EmissQty" label="鎺掓斁閲�(kg/h)"></el-table-column> + </el-table-column> + <el-table-column label="鐑熷皹"> + <el-table-column prop="MonQty" label="娴撳害(mg/m鲁)"></el-table-column> + <el-table-column prop="OrglQty" label="鎶樼畻鍊�(mg/m鲁)"></el-table-column> + <el-table-column prop="ConvertQty" label="鏍囧噯鍊�(mg/m鲁)"></el-table-column> + <el-table-column prop="EmissQty" label="鎺掓斁閲�(kg/h)"></el-table-column> + </el-table-column> + <el-table-column label="搴熸皵娴侀噺"> + <el-table-column prop="StdValue" label="姘旈噺"></el-table-column> + </el-table-column> + </el-table> + </div> +</template> + +<script> +export default { + name: 'PublicDetailedList', + data () { + return { + tableData: [] + } + }, + mounted () { + this.tableData = this.$attrs.getWasteGasDetails + console.log(this.$attrs.getWasteGasDetails) + } +} + +</script> + +<style scoped> +.PublicDetailedList{ + /*height: 100%*/ +} +</style> diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue index 56cd627..4e750c7 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue @@ -6,17 +6,20 @@ <div class="border_corner border_corner_left_bottom"></div> <div class="border_corner border_corner_right_bottom"></div> <div class="main"> - <div class="main-video"> + <div class="main-table"> <el-table + stripe='stripe' + :height="300" tooltip-effect="dark" :data="displayContentTableData" + :row-class-name="tableRowClassName" > <el-table-column prop="StoragePlaceId" label="搴忓彿"></el-table-column> <el-table-column prop="StoragePlaceTypeName" label="绫诲埆"></el-table-column> <el-table-column prop="StoragePlaceName" label="鍥哄簾鍚嶇О"></el-table-column> <el-table-column prop="StorageZDMJ" label="浠g爜"></el-table-column> - <el-table-column prop="StorageZCNL" label="浜х敓閲�"></el-table-column> - <el-table-column prop="StorageZCL" label="鍌ㄥ瓨閲�"></el-table-column> + <el-table-column prop="StorageZCNL" label="浜х敓閲�(t)"></el-table-column> + <el-table-column prop="StorageZCL" label="鍌ㄥ瓨閲�(t)"></el-table-column> <el-table-column prop="StorageType" label="浜х敓瑁呯疆"></el-table-column> </el-table> </div> @@ -37,26 +40,41 @@ this.$nextTick(() => { this.displayContentTable.forEach(item => { this.displayContentTableData = item - // console.log(item[0]) }) }) + }, + methods: { + tableRowClassName ({ + row, + rowIndex + }) { + if (rowIndex % 2 === 0) { + return 'warning-row' + } else if (rowIndex % 2 === 1) { + return 'success-row' + } + return '' + } } } </script> <style lang="less" scoped> + .win { position: relative; background-color: rgba(33, 41, 69, 0.9); + min-height: 300px; } .main { width: 100%; height: 100%; - .main-video { + .main-table { width: 100%; min-height: 195px; + //border: 1px @color solid; video { width: 100%; @@ -72,7 +90,7 @@ width: 14px; height: 14px; background: rgba(0, 0, 0, 0); - border: 1.5px solid #47d5ea; + border: 1px solid #47d5ea; } .border_corner_left_top { diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue index 29723b3..6c039cd 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue @@ -16,22 +16,20 @@ </el-row> <el-row type="flex" class="row-bg" justify="space-around"> <el-col :span="8">鎺掓斁鍘诲悜:{{ setWasteGasdata.EmissDirecti }}</el-col> - <el-col :span="8">鎺у埗绾у埆鍚嶇О:{{ setWasteGasdata.ContrLevelShowName }}</el-col> - <el-col :span="8">鍐�/澶栨帓鍙�:{{ setWasteGasdata.OrOutPortName }}</el-col> + <el-col :span="18">鎺у埗绾у埆鍚嶇О:{{ setWasteGasdata.ContrLevelShowName }}</el-col> + <el-col :span="18">鍐�/澶栨帓鍙�:{{ setWasteGasdata.OrOutPortName }}</el-col> </el-row> </div> - <div v-else-if="value === 'gufei'"> - <el-row type="flex" class="row-bg row-item-one" justify="space-around"> - <el-col :span="8">鐩戞祴鐐瑰悕绉�:{{ displayContentTab2.StoragePlaceName }}</el-col> - <el-col :span="8">鐢熶骇鍗曚綅:{{ displayContentTab2.StoragePlaceName }}</el-col> - <el-col :span="8">鎺掓斁绫诲瀷鍔犺浇:{{ displayContentTab2.DesignFloorArea }}</el-col> - </el-row> - <el-row type="flex" class="row-bg" justify="space-around"> - <el-col :span="8">鎺掓斁鍘诲悜:{{ displayContentTab2.StorageQty }}</el-col> - <el-col :span="8">鎺у埗绾у埆鍚嶇О:{{ displayContentTab2.SurplusFloorArea }}</el-col> - <el-col :span="8">鍐�/澶栨帓鍙�:{{ displayContentTab2.StorageDate }}</el-col> - </el-row> - </div> + <div v-else-if="value === 'gufei'"> + <ul> + <li>鍦烘墍鍚嶇О:{{ tabData.StoragePlaceName }}</li> + <li>璐瓨鑳藉姏:{{ tabData.StorageQty }}(鍚�)</li> + <li>鍓╀綑璐瓨鑳藉姏:{{ tabData.SurplusFloorArea }}(鍚�)</li> + <li>鍗犲湴闈㈢Н(銕�):{{ tabData.DesignFloorArea }}(銕�)</li> + <li>鏈�杩戣串瀛樻棩鏈�:{{ tabData.StorageDate }}</li> + <li></li> + </ul> + </div> <div v-else-if="value === 'feishui'"> <el-row type="flex" class="row-bg row-item-one" justify="space-around"> <el-col :span="8">鐩戞祴鐐瑰悕绉�:{{ setWasteGasdata.Name }}</el-col> @@ -55,16 +53,19 @@ props: ['displayContentTab', 'value', 'setWasteGasdata'], data () { return { - displayContentTab2: [] + tabData: [] } }, mounted () { - this.$nextTick(() => { - this.displayContentTab.forEach(item => { - this.displayContentTab2 = item - // console.log(item) - }) - }) + this.processingData() + }, + methods: { + processingData () { + for (var i = 0; i < this.displayContentTab.length; i++) { + console.log(this.displayContentTab[i]) + this.tabData = this.displayContentTab[i] + } + } } } </script> @@ -73,67 +74,103 @@ .win { position: relative; - margin-bottom: 13px; - background-color: rgba(33, 41, 69,0.9); + margin-bottom: 10px; + background-color: rgba(33, 41, 69, 0.9); } + .main { width: 100%; height: 100%; - .main-matter{ + + .main-matter { font-size: 13px; font-weight: normal; - padding: 10px 6px; + //padding: 10px 6px; + min-height: 70px; border: 1px solid #396d83; - .row-item-one{ + + .row-item-one { margin-bottom: 7px; } + .el-row { width: 100%; color: #00d0f9; display: flex; font-size: 12px !important; - .el-col{ + + .el-col { flex: 1; width: 100%; - background-color: #243a55;; + background-color: #243a55; text-align: center; line-height: 28px; margin-left: 6px; border-radius: 4px; - &:nth-child(1){ - margin-left:0; + + &:nth-child(1) { + margin-left: 0; } + } + } + + ul { + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: space-around; + flex-wrap: wrap; + line-height: 35px; + + li { + text-align: center; + width: 32%; + height: 30px; + margin: 5px auto; + background-color: #243a55; + color: #00d0f9; + border-radius: 4px; + } + + li:last-child { + visibility: hidden } } } } -.border_corner{ + +.border_corner { z-index: 999; position: absolute; width: 10px; - height: 10px; - background: rgba(0,0,0,0); - border: 1.5px solid #47d5ea; + //height: 10px; + background: rgba(0, 0, 0, 0); + border: 1px solid #47d5ea; } -.border_corner_left_top{ + +.border_corner_left_top { top: 0; left: 0; border-right: none; border-bottom: none; } -.border_corner_right_top{ + +.border_corner_right_top { top: 0; right: 0; border-left: none; border-bottom: none; } -.border_corner_left_bottom{ + +.border_corner_left_bottom { bottom: 0; left: 0; border-right: none; border-top: none; } -.border_corner_right_bottom{ + +.border_corner_right_bottom { bottom: 0; right: 0; border-left: none; diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicVideo.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicVideo.vue index 9519388..9c29b81 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/PublicVideo.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicVideo.vue @@ -6,12 +6,12 @@ <div class="border_corner border_corner_left_bottom"></div> <div class="border_corner border_corner_right_bottom"></div> <div class="main"> - <div class="main-video"> +<!-- <div class="main-video">--> <video controls> <source src="movie.mp4" type="video/mp4"> <source src="movie.ogg" type="video/ogg"> </video> - </div> +<!-- </div>--> </div> </div> </template> @@ -30,15 +30,14 @@ .main { border: 1px solid #396d83; padding: 6px; - .main-video { - width: 100%; - height: 100%; + //.main-video { + height: 378px; video { width: 100%; - height: 100%; + height: 378px; outline: none; } - } + //} } .border_corner{ z-index: 999; @@ -46,7 +45,7 @@ width: 14px; height: 14px; background: rgba(0,0,0,0); - border: 1.5px solid #47d5ea; + border: 1px solid #47d5ea; } .border_corner_left_top{ top: 0; diff --git a/src/components/BaseNav/PublicBounced/PublicBounced.vue b/src/components/BaseNav/PublicBounced/PublicBounced.vue index 9a379d9..d908a07 100644 --- a/src/components/BaseNav/PublicBounced/PublicBounced.vue +++ b/src/components/BaseNav/PublicBounced/PublicBounced.vue @@ -6,15 +6,16 @@ </div> <div class="public-bounced-content"> <div class="public-bounced-content-left"> - <PublicTabs :displayContentTab="displayContentTab" :value="value" - :setWasteGasdata="setWasteGasdata"></PublicTabs> + <public-tabs :displayContentTab="displayContentTab" :value="value" + :setWasteGasdata="setWasteGasdata"></public-tabs> <div class="public-bounced-content-left-bottom"> - <PublicTable v-if="value === 'gufei'" :displayContentTable="displayContentTable"></PublicTable> - <PublicChart v-else></PublicChart> + <public-table v-if="value === 'gufei'" + :displayContentTable="displayContentTable"></public-table> + <public-chart v-else></public-chart> </div> </div> <div class="public-bounced-content-right"> - <PublicVideo></PublicVideo> + <public-video></public-video> </div> </div> </div> @@ -43,11 +44,14 @@ displayContentTab: '', displayContentTable: '', flag: false, - value: '' + value: '', + getWasteGasDetails: [] } }, methods: { setData (dataBasic, dataDetailed, value) { + this.flag = true + this.value = value dataBasic.forEach(item => { this.displayContentTitle = item.StoragePlaceName }) @@ -56,8 +60,10 @@ this.flag = true this.value = value }, - setGasData (data, value) { + setGasData (data, dataDetails, value) { this.setWasteGasdata = data + this.getWasteGasDetails = dataDetails + // console.log(dataDetails) this.displayContentTitle = data.Name this.flag = true this.value = value diff --git a/src/components/LayerController/LayerController.vue b/src/components/LayerController/LayerController.vue index c826ec3..d9165bf 100644 --- a/src/components/LayerController/LayerController.vue +++ b/src/components/LayerController/LayerController.vue @@ -15,7 +15,6 @@ <script> import '@assets/css/map/magic.min.css' -import presets from './layerControllerPresets' import iconSetting from '@/assets/images/map-pages/icon/setting.png' import LcServiceLayer from './modules/LcServiceLayer' @@ -53,28 +52,9 @@ } } }, - mounted () { - this.$nextTick(function () { - this.init() - }) - }, methods: { showPanel () { this.layerControllerVisible = !this.layerControllerVisible - }, - init () { - this.initPreset() - }, - initPreset () { - if (this.preset !== 'default') { - const prmPreset = presets[this.preset] - Object.assign(this.layerControllerVisible, prmPreset) // 闃叉棰勮鍙傛暟涓庨粯璁ゅ弬鏁颁笉涓�鑷村鑷存姤閿欙紝濡傛灉娌℃湁鎸夌収鎮ㄧ殑閰嶇疆鍙戠敓鏀瑰彉锛岃妫�鏌ユ嫾鍐欐槸鍚︽纭� - if (prmPreset === 'undefined') { - console.log('璇ュ浘灞傛帶鍒堕潰鏉跨殑棰勮娌℃湁鎵惧埌锛岃妫�鏌ラ璁惧悕绉版槸鍚︽纭紒') - } else { - this.$store.commit('updateLayerControllerVisible', this.layerControllerVisible) - } - } }, switchPanel () { this.panelSwitch.main = !this.panelSwitch.main diff --git a/src/components/LayerController/LayerController2.vue b/src/components/LayerController/LayerController2.vue deleted file mode 100644 index 8f24ad7..0000000 --- a/src/components/LayerController/LayerController2.vue +++ /dev/null @@ -1,288 +0,0 @@ -<template> - <div class="float-panel"> - <div class="title-text-border" @click="switchPanel"> - <div class="title-icon"></div> - <div class="title-text">鍥惧眰鎺у埗</div> - </div> - <transition name="el-fade-in-linear"> - <div class="body-box" id="panelContent" :style="{ width:width }"> - <div v-show="isShow"> - <slot></slot> - </div> - </div> - </transition> - </div> -</template> - -<script> -import '@assets/css/map/magic.min.css' -import presets from './layerControllerPresets' - -import iconSetting from '@/assets/images/map-pages/icon/setting.png' - -export default { - name: 'LayerController', - components: {}, - props: { - preset: { - type: String, - default: 'default' - } - }, - computed: { - map () { - return this.$store.state.map.map - }, - L () { - return this.$store.state.map.L - }, - layerHelper () { - return this.$store.state.map.layerHelper - }, - layerControllerVisible () { - return this.$store.state.map.layerControllerVisible - } - }, - data () { - return { - width: '250px', - isShow: true, - icons: { - setting: iconSetting - }, - panelSwitch: { - main: true // 涓荤獥鍙� - } - } - }, - mounted () { - this.$nextTick(function () { - this.init() - }) - }, - methods: { - init () { - this.initPreset() - }, - initPreset () { - if (this.preset !== 'default') { - const prmPreset = presets[this.preset] - Object.assign(this.layerControllerVisible, prmPreset) // 闃叉棰勮鍙傛暟涓庨粯璁ゅ弬鏁颁笉涓�鑷村鑷存姤閿欙紝濡傛灉娌℃湁鎸夌収鎮ㄧ殑閰嶇疆鍙戠敓鏀瑰彉锛岃妫�鏌ユ嫾鍐欐槸鍚︽纭� - if (prmPreset === 'undefined') { - console.log('璇ュ浘灞傛帶鍒堕潰鏉跨殑棰勮娌℃湁鎵惧埌锛岃妫�鏌ラ璁惧悕绉版槸鍚︽纭紒') - } else { - this.$store.commit('updateLayerControllerVisible', this.layerControllerVisible) - } - } - }, - switchPanel () { - this.panelSwitch.main = !this.panelSwitch.main - if (this.panelSwitch.main) { - this.width = '250px' - this.isShow = true - } else { - this.width = '0px' - this.isShow = false - } - } - } -} -</script> - -<style lang="less"> - -.float-panel { - position: absolute; - top: 120px; - height: auto; - font-size: 11px; - z-index: 1000; - - div { - color: #90c8e0; - } - - .title-border { - width: 100%; - height: 28px; - background: #10488c; - -webkit-clip-path: polygon(0px 0px, 0px 28px, 230px 28px, 230px 9px, 95px 9px, 86px 0px); - clip-path: polygon(0px 0px, 0px 28px, 230px 28px, 230px 9px, 95px 9px, 86px 0px); - position: relative; - } - - .title-border:before { - content: ""; - display: block; - position: absolute; - width: 6px; - height: 6px; - top: 0; - left: 0; - background-color: #38c8ef; - } - - .title-border:after { - content: ""; - display: block; - position: absolute; - width: 6px; - height: 6px; - top: 9px; - right: 0; - background-color: #38c8ef; - -webkit-clip-path: polygon(0px 0px, 0px 1px, 5px 1px, 5px 6px, 6px 6px, 6px 0px); - clip-path: polygon(0px 0px, 0px 1px, 5px 1px, 5px 6px, 6px 6px, 6px 0px); - } - - .title-text-border { - width: 30px; - height: 120px; - float: left; - background: #091331; - // -webkit-clip-path: polygon(1px 1px, 1px 27px, 229px 27px, 229px 10px, 94px 10px, 85px 1px); - // clip-path: polygon(1px 1px, 1px 27px, 229px 27px, 229px 10px, 94px 10px, 85px 1px); - } - - .title-icon { - float: left; - width: 22px; - height: 22px; - margin-top: 4px; - margin-left: 2px; - background-image: url(../../assets/images/map-pages/icon/setting.png); - } - - .title-text { - width: 25px; - color: #00d0f9; - font-weight: bold; - margin-top: 6px; - text-align: center; - font-size: 14px; - filter: brightness(100%); - text-shadow: 0 0 5px #00d0f9, 0 0 0 #00d0f9, 0 0 0 #00d0f9, 0 0 0 #0258c5, 0 0 0 #0258c5, 0 0 2px #0258c5, 0 0 5px #0258c5, 0 0 15px #0258c5; - } - - .title-line { - display: inline-block; - width: 120px; - height: 1px; - // margin-top: 14px; - margin-left: 4px; - background-color: #04527f; - line-height: 5px; - vertical-align: middle; - } - - .title-point { - display: inline-block; - width: 5px; - height: 5px; - // margin-top: 12px; - background-color: #04527f; - line-height: 5px; - vertical-align: middle; - } - - .title-button { - float: right; - width: 28px; - height: 28px; - cursor: pointer; - - :hover { - font-weight: bold; - color: white; - } - } - - .body-box { - background-color: rgba(44, 62, 80, 0.6); - border: 1px solid #10488c; - margin-top: -1px; - margin-left: 30px; - height: auto; - } - - .switch-head-up { - width: 22px; - height: 16px; - float: right; - margin-top: 10px; - margin-right: 10px; - cursor: pointer; - background-image: url(../../assets/images/map-pages/icon/xljt1.png); - transform: rotateX(0deg); - transform-origin: 50% 50%; - transition: transform 0.5s linear 0s; - } - - .switch-head-down { - transform: rotateX(180deg); - transform-origin: 50% 50%; - transition: transform 0.5s linear 0s; - } - - select { - background: transparent; - margin: 6px; - border: .5px solid #569EB7; - width: 150px; - color: #569EB7; - padding: 0 16px; - } - - .horn { - width: 6px; - height: 6px; - float: left; - position: absolute; - } - - .horn-tl { - background-image: url(../../assets/images/map-pages/cosmetics/horn_tl.png); - left: -1px; - top: -1px; - } - - .horn-tr { - background-image: url(../../assets/images/map-pages/cosmetics/horn_tr.png); - right: -1px; - top: -1px; - } - - .horn-bl { - background-image: url(../../assets/images/map-pages/cosmetics/horn_bl.png); - left: -1px; - bottom: -1px; - } - - .horn-br { - background-image: url(../../assets/images/map-pages/cosmetics/horn_br.png); - right: -1px; - bottom: -1px; - } - - ::-webkit-scrollbar { - width: 7px; - height: 5px !important; - } - - ::-webkit-scrollbar-thumb { - /*婊氬姩鏉¢噷闈㈠皬鏂瑰潡*/ - border-radius: 10px; - box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2); - background: #0661AE; - border: 1px solid transparent; - } - - ::-webkit-scrollbar-track { - /*婊氬姩鏉¢噷闈㈣建閬�*/ - // box-shadow : inset 0 0 5px rgba(0, 0, 0, 0.2); - border-radius: 0px; - background: #0E3565; - } -} - -</style> diff --git a/src/components/LayerController/layerControllerPresets.js b/src/components/LayerController/layerControllerPresets.js deleted file mode 100644 index a092886..0000000 --- a/src/components/LayerController/layerControllerPresets.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * 澶у浘鍥惧眰鎺у埗闈㈡澘鐨勬樉绀洪璁� - */ -const bigmapPreset = { // 鍥惧眰鎺у埗闈㈡澘鐨勬樉绀虹姸鎬佲�衡�� - layerController: true // 鐖哥埜鏍忕洰锛氭槸鍚︽樉绀哄浘灞傛帶鍒堕潰鏉� -} - -/** - * 缁煎悎鎶ヨ鍥惧眰鎺у埗闈㈡澘鐨勬樉绀洪璁� - */ -const warningPreset = { // 鍥惧眰鎺у埗闈㈡澘鐨勬樉绀虹姸鎬佲�衡�� - layerController: true // 鐖哥埜鏍忕洰锛氭槸鍚︽樉绀哄浘灞傛帶鍒堕潰鏉� -} - -/** - * 缁煎悎鎶ヨ鍥惧眰鎺у埗闈㈡澘鐨勬樉绀洪璁� - */ -const vehicleWarningPreset = { // 鍥惧眰鎺у埗闈㈡澘鐨勬樉绀虹姸鎬佲�衡�� - layerController: true // 鐖哥埜鏍忕洰锛氭槸鍚︽樉绀哄浘灞傛帶鍒堕潰鏉� -} - -export default { - bigmapPreset, - warningPreset, - vehicleWarningPreset -} diff --git a/src/components/LayerController/logic/SolidWaste.js b/src/components/LayerController/logic/SolidWaste.js index 3ea18d7..9344ecf 100644 --- a/src/components/LayerController/logic/SolidWaste.js +++ b/src/components/LayerController/logic/SolidWaste.js @@ -43,12 +43,6 @@ iconAnchor: [25, 25] }) }) - /* marker.bindTooltip(getSolidWasteData[i].Name, { - permanent: true, - offset: [0, 14], - direction: 'bottom', - className: 'company-bindTooltip' - }) */ layer.addLayer(marker) } } @@ -94,7 +88,7 @@ this.setPanTo(e.latlng, 200) } - // flayTo() + // flayTo() 寮规鐨勫彲婊戝姩浜嬩欢 this.setPanTo = (pos, value) => { var position = pos position = window.map.latLngToLayerPoint(position) diff --git a/src/components/LayerController/logic/WasteGas.js b/src/components/LayerController/logic/WasteGas.js index 4ecd0e0..9e7b219 100644 --- a/src/components/LayerController/logic/WasteGas.js +++ b/src/components/LayerController/logic/WasteGas.js @@ -50,16 +50,18 @@ this.clickListener = async (e) => { // console.log(e) this.animalService.pulseEffect(e.latlng) - // const dataValue = { - // StoragePlaceId: e.layer.options.test.StoragePlaceId - // } - // const result = await mapApi.getWasteGas(dataValue) + const dataValue = { + StoragePlaceId: e.layer.options.test.StoragePlaceId + } + const result = await mapApi.getWasteGasDetails(dataValue) + // console.log(result.Result.DataInfo) const PublicBounced = window.Vue.extend(publicBounced) const instance = new PublicBounced() - instance.setGasData(e.layer.options.test, 'feiqi') - console.log(e.layer.options.test) + instance.setGasData(e.layer.options.test, result.Result.DataInfo, 'feiqi') + // console.log(e.layer.options.test) instance.$mount() document.body.appendChild(instance.$el) + this.setPanTo(e.latlng, 240) } // 涓嶅悓绫诲瀷鍥剧墖鍔犺浇 this.differentTypes = (ContrLevel) => { @@ -75,4 +77,11 @@ } return effectOfChange } + this.setPanTo = (pos, value) => { + var position = pos + position = window.map.latLngToLayerPoint(position) + position.y += value + position = window.map.layerPointToLatLng(position) + window.map.flyTo(position) + } } diff --git a/src/components/LayerController/modules/LcServiceLayer.vue b/src/components/LayerController/modules/LcServiceLayer.vue index 4cb5d8b..327bbae 100644 --- a/src/components/LayerController/modules/LcServiceLayer.vue +++ b/src/components/LayerController/modules/LcServiceLayer.vue @@ -6,22 +6,35 @@ <div class="wms-panel"> <el-scrollbar class="wms-panel-scrollbar"> <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 }} + <input type="checkbox" :name="'wmsLayer_'+item.code" :checked="item.checked" :value="item.code" + @change="swAllLayers(item)"/>{{ item.name }} </div> <div class="layerbox-item"> + <!-- 浜岀骇鍥惧眰閬嶅巻 --> <div class="basemap-layer-item" v-for="itm in item.layers" :key="itm.code"> <input type="checkbox" :name="'wmsSublayers_'+item.code+'_'+itm.code" :checked="itm.checked" :value="itm.code" @change="swWmsLayer(itm)"/>{{ itm.name }} + <!-- 涓夌骇鍥惧眰閬嶅巻 --> + <div style="width: 100%"> + <div class="basemap-layer-item" v-for="layer in itm.layers" :key="layer.code"> + <input type="checkbox" + :name="'wmsSublayers_'+item.code+'_'+layer.code" + :checked="layer.checked" + :value="layer.code" + @change="swWmsLayer(layer)"/>{{ layer.name }} + </div> + </div> </div> </div> </div> </el-scrollbar> </div> - <lc-service-layer-filter v-if="layerFilterVisible" ref="serviceLayerFilter"></lc-service-layer-filter> + <lc-service-layer-filter ref="serviceLayerFilter"></lc-service-layer-filter> </div> </template> @@ -33,11 +46,6 @@ export default { name: 'LcServiceLayer', components: { LcServiceLayerFilter }, - data () { - return { - layerFilterVisible: false - } - }, computed: { serviceLayers () { return this.$store.state.map.serviceLayers.LayerSewersLine @@ -74,9 +82,6 @@ } // this.updateWms() }, - swFilter (item) { - this.layerFilterVisible = !this.layerFilterVisible - }, updateServiceLayerList () { }, @@ -106,6 +111,12 @@ margin: 10px; text-align: center; } + + .btn-filter { + cursor: pointer; + color: #ffffff; + } + .wms-panel { .wms-panel-scrollbar{ diff --git a/src/components/LayerController/service/LayerFactory.js b/src/components/LayerController/service/LayerFactory.js index 484d6e2..d12719b 100644 --- a/src/components/LayerController/service/LayerFactory.js +++ b/src/components/LayerController/service/LayerFactory.js @@ -1,4 +1,3 @@ -import store from '@/store' import WfsLayerService from './WfsLayerService' import BusiLayerService from './BusiLayerService' import WmsLayerService from './WmsLayerService' @@ -10,17 +9,15 @@ this.layers = {} } - init () { + init (layerConfig) { // 1. 閬嶅巻layer config - var layerConfig = store.state.map.serviceLayers.LayerSewersLine for (var i = 0, l = layerConfig.length; i < l; i++) { var config = layerConfig[i] var layers = config.layers - for (var j = 0; j < layers.length; j++) { - var childConfig = layers[j] - var checked = childConfig.checked - checked && this.load(childConfig) - } + layers && this.init(config.layers) + + var checked = config.checked + checked && this.load(config) } } diff --git a/src/components/LayerController/service/WfsLayerService.js b/src/components/LayerController/service/WfsLayerService.js index 8d55234..7f10aee 100644 --- a/src/components/LayerController/service/WfsLayerService.js +++ b/src/components/LayerController/service/WfsLayerService.js @@ -2,7 +2,7 @@ * 鍔犺浇涓氬姟鏁版嵁鍥惧眰 */ -import styles from '../../../conf/Styles' +import { STYLES } from '../../../conf/Constants' import AjaxUtils from '../../../utils/AjaxUtils' class WfsLayerService { @@ -37,14 +37,14 @@ this.L.geoJSON(features, { style: function (feature) { return { - fill: styles.defaultLineStyle.fill, - weight: styles.defaultLineStyle.weight, - fillColor: styles.defaultLineStyle.fillColor, - color: styles.defaultLineStyle.color, - fillOpacity: styles.defaultLineStyle.fillOpacity, - opacity: styles.defaultLineStyle.opacity, - dashArray: styles.defaultLineStyle.dashArray, - dashSpeed: styles.defaultLineStyle.dashSpeed + fill: STYLES.FILL, + weight: STYLES.WEIGHT, + fillColor: STYLES.FILL_COLOR, + color: STYLES.COLOR, + fillOpacity: STYLES.FILL_OPACITY, + opacity: STYLES.OPACITY, + dashArray: STYLES.DASH_ARRAY, + dashSpeed: STYLES.DASH_SPPED } }, pointToLayer: (geoJsonPoint, latlng) => { @@ -53,7 +53,7 @@ img: { // url: 'assets/images/map/marker-icon.png', url: '/assets/images/map/' + icon, - size: styles.defaultLineStyle.size + size: STYLES.ICON_SIZE } }) }, @@ -94,13 +94,13 @@ const icon = this.config.icon const type = e.target.feature.geometry.type if (type === 'LineString' || type === 'MultiLineString') { - layer.setStyle({ weight: styles.defaultLineStyle.weight, color: styles.defaultLineStyle.color }) + layer.setStyle({ weight: STYLES.WEIGHT, color: STYLES.COLOR }) } if (type === 'Point' || type === 'MultiPoint') { layer.setStyle({ img: { url: '/assets/images/map/' + icon, - size: styles.defaultLineStyle.size + size: STYLES.ICON_SIZE } }) } diff --git a/src/components/helpers/ServiceLayerHelper.js b/src/components/helpers/ServiceLayerHelper.js deleted file mode 100644 index c53ff99..0000000 --- a/src/components/helpers/ServiceLayerHelper.js +++ /dev/null @@ -1,399 +0,0 @@ -/* eslint-disable no-debugger */ -/** - * 鍒涘缓鍥惧眰鐩稿叧鐨勭被 - */ -import AjaxUtils from '@/utils/AjaxUtils' -import store from '@/store' -import styles from '@/conf/Styles' - -class ServiceLayerHelper { - constructor (options) { - this.map = options.map - this.L = window.L - this.loadedLayersMap = new Map() - this.tileLayerWmslayerGroup = this.L.layerGroup().addTo(this.map) - this.tileLayersWMTSArray = [] // 鍒濆鐨刉MTS闆� - this.tileLayersTileArray = [] // 鍒濆鐨凾ile闆� - this.tileLayersWMSArray = [] // 鍒濆鐨刉MS闆� - this.layerArray = {} // key涓洪厤缃殑code锛屽姞杞界殑鍥惧眰瀵硅薄锛� - this.regex = /\{(.+?)\}/g // 鍖归厤{} - this.popupComp = null - } - - getTileLayer (code) { - return this.loadedLayersMap.get(code) - } - - getByLayerId (layerId) { - for (var k in this.layerArray) { - var layerGroup = this.layerArray[k] - var layers = layerGroup.getLayers() - for (var m = 0; m < layers.length; m++) { - var layer = layers[m] - var feature = layer.feature - if (feature.id === layerId) { - return layer - } - } - } - return null - } - - /** - * 鎺у埗鏄剧ず鐨勭骇鍒� - * @param layerConfig - */ - initDisplayZoom (layerConfig) { - var that = this - that.map.on('zoomend ', function (e) { - const zoom = that.map.getZoom() - for (var i = 0, l = layerConfig.length; i < l; i++) { - var config = layerConfig[i] - var layers = config.layers - for (var j = 0; j < layers.length; j++) { - var layer = layers[j] - if (layer.minZoom) { - if (zoom > layer.minZoom) { - var layerObj = that.layerArray[layer.code] - layerObj && layerObj.addTo(that.map) - } else { - that.removeLayer(layer) - } - } - } - } - }) - } - - /** - * 鏍规嵁閰嶇疆鏂囦欢鍒濆鍖栦笟鍔″簳鍥� - */ - initServiceLayers (layerConfig, popupComp) { - this.layerConfig = layerConfig - this.popupComp = popupComp - store.commit('clearSewersDatas') - store.commit('clearSewersLayers') - this.loadLayers(layerConfig.mapConfig.Layers.LayerSewersLine) - this.loadLayers(layerConfig.mapConfig.Layers.layerSewersPoint) - this.initDisplayZoom(layerConfig.mapConfig.Layers.LayerSewersLine) - this.initDisplayZoom(layerConfig.mapConfig.Layers.layerSewersPoint) - } - - /** - * 鎸夐厤缃枃浠跺姞杞戒笁绉嶄笉鍚岀被鍨嬬殑 - * @param {*} mapConfig - * @param {*} isAddToMap - */ - loadLayers (layerConfig, isAddToMap = true) { - console.debug('ServiceLayerHelper鍔犺浇鍙傛暟锛�', layerConfig) - for (let i = 0, len = layerConfig.length; i < len; ++i) { - const opt = layerConfig[i] - if (opt.type === 'wmts') { - this.loadWmtsLayer(opt, isAddToMap) - this.tileLayersWMTSArray.push(opt) - } else if (opt.type === 'wms') { - this.loadWmsLayer(opt, isAddToMap) - this.tileLayersWMSArray.push(opt) - } else if (opt.type === 'tile') { - this.loadTileLayer(opt, isAddToMap) - this.tileLayersTileArray.push(opt) - } else if (opt.type === 'geojson') { - this.loadGeojsonLayers(opt) - } - } - } - - loadGeojsonLayers (options) { - var url = options.url - var layers = options.layers - for (var i = 0; i < layers.length; i++) { - var layer = layers[i] - var checked = layer.checked - if (checked) { - this.loadGeojsonLayer(url, layer) - } - } - } - - /** - * 璇锋眰wfs鏁版嵁 - * @param url - * @param item - */ - async loadGeojsonLayer (url, item) { - var matches = this.regex.exec(url) - var matchValue = item[matches[1]] - var code = item.code - var newUrl = url.replace(this.regex, matchValue) - var that = this - if (!that.layerArray[code]) { - const res = await AjaxUtils.GetDataAsynByUrl(newUrl, {}) - if (res.data instanceof Object && Object.prototype.hasOwnProperty.call(res.data, 'features')) { - store.commit('addSewersDatas', res.data) - var layer = that.loadGeojson(res.data, item) - that.layerArray[code] = layer - } - } else { - var _layer = that.layerArray[code].addTo(that.map) - that.setZIndex(_layer) - } - } - - /** - * 鍔犺浇gis server杩斿洖鐨刧eoson鏁版嵁鍒板湴鍥句腑灞曠ず - * @param res - */ - loadGeojson (res, opt) { - var icon = opt.icon - const featureGroup = this.L.featureGroup() - const featureList = [] - const geojson = this.L.geoJSON(res.features, { - style: function (feature) { - return { - fill: styles.defaultLineStyle.fill, - weight: styles.defaultLineStyle.weight, - fillColor: styles.defaultLineStyle.fillColor, - color: styles.defaultLineStyle.color, - fillOpacity: styles.defaultLineStyle.fillOpacity, - opacity: styles.defaultLineStyle.opacity, - dashArray: styles.defaultLineStyle.dashArray, - dashSpeed: styles.defaultLineStyle.dashSpeed - } - }, - pointToLayer: (geoJsonPoint, latlng) => { - return this.L.canvasMarker(latlng, - { - img: { - // url: 'assets/images/map/marker-icon.png', - url: '/assets/images/map/' + icon, - size: styles.defaultLineStyle.size - } - }) - }, - onEachFeature: (feature, layer) => { - featureList.push(layer) - layer.bindPopup((layer) => { - this.popupComp.setDatas(layer) - this.popupComp.setShow() - return this.popupComp.$el - }, { - className: 's-map-popup', - minWidth: 300, - closeButton: false, - autoClose: false - }) - .bindTooltip((layer) => { - const nameId = layer.feature.id - let name = '' - if (nameId.indexOf('涓夐��') !== -1 || nameId.indexOf('鍥涢��') !== -1 || nameId.indexOf('绐ㄤ簳') !== -1) { - name = layer.feature.properties.pointnumber - } else { - name = layer.feature.properties.name - } - if (name === undefined) { - name = '' - } - return name - }, { direction: 'bottom', offset: [0, 15], sticky: true }) - .on('mouseover', (e) => { - const type = e.target.feature.geometry.type - if (type === 'LineString' || type === 'MultiLineString') { - layer.setStyle({ weight: 8, color: '#00ffff' }) - } else if (type === 'Point' || type === 'MultiPoint') { - layer.setStyle({ - img: { - url: '/assets/images/map/' + icon, - size: [25, 25] - } - }) - - layer.bringToFront() - } - }).on('mouseout', (e) => { - const type = e.target.feature.geometry.type - if (type === 'LineString' || type === 'MultiLineString') { - layer.setStyle({ weight: styles.defaultLineStyle.weight, color: styles.defaultLineStyle.color }) - } - if (type === 'Point' || type === 'MultiPoint') { - layer.setStyle({ - img: { - url: '/assets/images/map/' + icon, - size: styles.defaultLineStyle.size - } - }) - } - }).addTo(featureGroup) - } - }) - store.commit('addSewersDatas', geojson) - featureGroup.addTo(this.map) - this.setZIndex(featureGroup) - return featureGroup - } - - /** - * 璁剧疆index,绾垮湪鏈�涓嬮潰锛岀偣鍦ㄤ笂闈� - * @param layerGroup 鍥惧眰缁� - */ - setZIndex (layerGroup) { - var layers = layerGroup.getLayers() - if (layers.length > 0) { - var layer = layers[0] - if (layer.feature && (layer.feature.geometry.type === 'LineString' || layer.feature.geometry.type === 'MultiLineString')) { - layerGroup.bringToBack() - } else { - layerGroup.bringToFront() - } - } - } - - removeLayer (item) { - var layer = this.layerArray[item.code] - layer && this.map.removeLayer(layer) - } - - /** - * 寰�鍦板浘涓姞鍏ヤ竴涓猈MTS鏈嶅姟 - * @param {}} options - * @param {*} isAddToMap - */ - loadWmtsLayer (options, isAddToMap = true) { - const layer = this.L.tileLayer(options.url, options.option) - layer.config = options - var checked = options.checked - if (checked) { - if (isAddToMap) { - layer.addTo(this.map) - } - this.loadedLayersMap.set(options.code, layer) - } - } - - /** - * 寰�鍦板浘涓姞鍏ヤ竴涓猈MS鏈嶅姟 - * @param {}} options - * @param {*} isAddToMap - */ - loadWmsLayer (options, isAddToMap = true) { - const layer = this.L.tileLayer.wms(options.url, options.option) - layer.config = options - - var checked = options.checked - if (checked) { - if (isAddToMap) { - layer.addTo(this.tileLayerWmslayerGroup) - } - this.loadedLayersMap.set(options.code, layer) - } - } - - /** - * 寰�鍦板浘涓姞鍏ヤ竴涓猅ILE鏈嶅姟 - * @param {}} options - * @param {*} isAddToMap - */ - loadTileLayer (options, isAddToMap = true) { - const layer = this.L.tileLayer(options.url, { - layers: options.layers || 'all', // country - format: options.format || 'image/png', - transparent: options.true || true, - crs: options.crs || this.L.CRS.EPSG4326, - maxZoom: options.maxZoom || 21, - minZoom: options.minZoom || 1, - zoomOffset: options.zoomOffset || 0 - }) - layer.config = options - - if (isAddToMap) { - layer.addTo(this.map) - } - this.loadedLayersMap.set(options.code, layer) - } - - /** - * 闅愯棌鏈嶅姟鍥惧眰 - * @param {*} name - */ - hideTileLayer (code) { - if (this.loadedLayersMap) { - const tileLayer = this.loadedLayersMap.get(code) - this.map.removeLayer(tileLayer) - } - } - - /** - * 灞曠ず鏈嶅姟鍥惧眰 - * @param {*} name - */ - showTileLayer (code) { - if (this.loadedLayersMap) { - const tileLayer = this.loadedLayersMap.get(code) - this.map.addLayer(tileLayer) - } - } - - /** - * 寰楀埌閫変腑鐨勫浘灞傚垪琛� - * @param mapConfig - * @returns {[]} - */ - getCheckedLayers (serviceLayers) { - var checkedLayers = [] - for (var i = 0; i < serviceLayers.length; i++) { - var serviceLayer = serviceLayers[i] - var layers = serviceLayer.layers - for (var j = 0; j < layers.length; j++) { - var layer = layers[j] - var checked = layer.checked - if (checked) { - checkedLayers.push(layer) - } - } - } - return checkedLayers - } - - /** - * 鑾峰彇鎵�鏈夌殑TILE鏈嶅姟鍥惧眰 - */ - getTileLayers () { - return this.tileLayersTileArray - } - - /** - * 鑾峰彇鎵�鏈夌殑WMTS鏈嶅姟鍥惧眰 - */ - getWmtsLayers () { - return this.tileLayersWMTSArray - } - - /** - * 鑾峰彇鎵�鏈夌殑WMS鏈嶅姟鍥惧眰 - */ - getWmsLayers () { - return this.tileLayersWMSArray - } - - /** - * 鏍规嵁绾跨殑閫夋嫨锛屽緱鍒扮偣鐨勫彲閫夋嫨鍥惧眰鏁版嵁 - */ - getFiltersGroup () { - - } - - /** - * 閫氳繃code鏌ユ壘WMS鐨勬湇鍔¢厤缃� - * @param {} code wms鏈嶅姟閰嶇疆鐨刢ode - */ - getWMSConfig (code) { - const mc = this.mapConfig - for (let i = 0, len = mc.mapConfig.ServiceLayers.length; i < len; ++i) { - if (code === mc.mapConfig.ServiceLayers[i].code || mc.mapConfig.ServiceLayers[i].type === 'wms') { - return mc.mapConfig.ServiceLayers[i] - } - } - return null - } -} - -export default ServiceLayerHelper diff --git a/src/components/panel/RightSearchPanel.vue b/src/components/panel/RightSearchPanel.vue index d4f7db6..c8ff02e 100644 --- a/src/components/panel/RightSearchPanel.vue +++ b/src/components/panel/RightSearchPanel.vue @@ -35,11 +35,11 @@ <div :class="[isCollapse? 'btn-stretch':'btn-shrink']" ></div> </div> - <div :class="'search-container map-background'"> - <div class="el-message-box__content" style="padding:6px;font-size: 13px;"> - <component :title="title" :is="gcComp"></component> - </div> + <div :class="'search-container map-background'"> + <div class="el-message-box__content" style="padding:6px;font-size: 13px;"> + <component :title="title" :is="gcComp"></component> </div> + </div> </div> </div> </template> diff --git a/src/components/panel/topicSearch/DischargeSearch.vue b/src/components/panel/topicSearch/DischargeSearch.vue index f4270ee..2696499 100644 --- a/src/components/panel/topicSearch/DischargeSearch.vue +++ b/src/components/panel/topicSearch/DischargeSearch.vue @@ -1,15 +1,15 @@ <template> - <div class="sewers-search" v-if="gdVisible"> + <div class="query-search" v-if="gdVisible"> <div class="search-title">{{title}}</div> <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.areaVal" @change="areaType" :popper-class="'select-down'"> <el-option - v-for="item in areaTypeOptions" - :key="item.value" - :label="item.label" - :value="item.value"> + v-for="item in areaTypeOptions" + :key="item.value" + :label="item.label" + :value="item.value"> </el-option> </el-select> </el-form-item> @@ -97,13 +97,13 @@ <!-- <span class="location-btn" @click="handleLocation(item)">588</span> --> <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" + small + @current-change="handlePage" + :page-size=pageSize + layout="prev, pager, next" + :total=total + :current-page=current + class="warnPagination" > </el-pagination> </el-card> diff --git a/src/components/panel/topicSearch/EnvRiskSearch.vue b/src/components/panel/topicSearch/EnvRiskSearch.vue index 99e555e..448978e 100644 --- a/src/components/panel/topicSearch/EnvRiskSearch.vue +++ b/src/components/panel/topicSearch/EnvRiskSearch.vue @@ -1,41 +1,41 @@ <template> - <div class="sewers-search" v-if="gdVisible"> + <div class="query-search" v-if="gdVisible"> <div class="search-title">{{title}}</div> <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.areaVal" @change="areaType" :popper-class="'select-down'"> <el-option - v-for="item in areaTypeOptions" - :key="item.value" - :label="item.label" - :value="item.value"> + v-for="item in areaTypeOptions" + :key="item.value" + :label="item.label" + :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item label="浼佷笟鍚嶇О" size="mini"> <el-select style="width: 100%" v-model="form.enterpriseVal" @change="enterpriseType" :popper-class="'select-down'"> <el-option - v-for="item in enterpriseTypeOptions" - :key="item.value" - :label="item.label" - :value="item.value"> + v-for="item in enterpriseTypeOptions" + :key="item.value" + :label="item.label" + :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item label="浜岀骇鍗曚綅" size="mini"> <el-select style="width: 100%" v-model="form.enterpriseSubunitsVal" @change="enterpriseSubunitsType" :popper-class="'select-down'"> <el-option - v-for="item in enterpriseSubunitsTypeOptions" - :key="item.value" - :label="item.label" - :value="item.value"> + v-for="item in enterpriseSubunitsTypeOptions" + :key="item.value" + :label="item.label" + :value="item.value"> </el-option> </el-select> </el-form-item> <el-form-item label="椋庨櫓绾у埆" size="mini"></el-form-item> <el-radio-group v-model="form.type" class="levelOfRisk"> - <el-radio v-for="(item,index) in levelOfRisk" :label="item.value" :key="index"><span class="levelOfRisk-type">{{item.name}}<i :style="'background:'+item.color"></i></span></el-radio> + <el-radio v-for="(item,index) in levelOfRisk" :label="item.value" :key="index"><span class="levelOfRisk-type">{{item.name}}<i :style="'background:'+item.color"></i></span></el-radio> </el-radio-group> <div class="rightButtonSearch"> <el-input v-model="form.keyword" size="mini" placeholder="鍦ㄦ杈撳叆鍏抽敭瀛楁悳绱�"> @@ -48,22 +48,22 @@ <div class="environmental-risk-list" v-for="(item,index) in 5" :key="index" ><!-- v-for="(item,index) in list" :key="index" --> <i class="state"></i> <div> - <h3>###鐐煎寲閮�</h3> - <p>鎵�灞為儴闂細<span>鐐煎寲閮�</span></p> - <p>椋庨櫓绾у埆锛�<span>涓夌骇</span></p> + <h3>###鐐煎寲閮�</h3> + <p>鎵�灞為儴闂細<span>鐐煎寲閮�</span></p> + <p>椋庨櫓绾у埆锛�<span>涓夌骇</span></p> </div> </div> </el-scrollbar> <!-- <span class="location-btn" @click="handleLocation(item)">588</span> --> <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" + small + @current-change="handlePage" + :page-size=pageSize + layout="prev, pager, next" + :total=total + :current-page=current + class="warnPagination" > </el-pagination> </el-card> diff --git a/src/components/panel/topicSearch/GasWasteSearch.vue b/src/components/panel/topicSearch/GasWasteSearch.vue index 9cffa38..90166ea 100644 --- a/src/components/panel/topicSearch/GasWasteSearch.vue +++ b/src/components/panel/topicSearch/GasWasteSearch.vue @@ -1,5 +1,5 @@ <template> - <div class="sewers-search" v-if="gdVisible"> + <div class="query-search" v-if="gdVisible"> <div class="search-title">{{title}}</div> <div class="search-panel "> <el-form ref="form" :model="form" label-width="90px" class="search-form"> @@ -24,6 +24,16 @@ </el-select> </el-form-item> <el-form-item label="浜岀骇鍗曚綅" size="mini"> + <el-select style="width: 100%" v-model="form.enterpriseSubunitsVal" @change="enterpriseSubunitsType" :popper-class="'select-down'"> + <el-option + v-for="item in enterpriseSubunitsTypeOptions" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="涓夌骇鍗曚綅" size="mini"> <el-select style="width: 100%" v-model="form.enterpriseSubunitsVal" @change="enterpriseSubunitsType" :popper-class="'select-down'"> <el-option v-for="item in enterpriseSubunitsTypeOptions" @@ -156,7 +166,7 @@ { name: '姝e父', value: '2' }, { name: '瓒呮爣', value: '3' }, { name: '寮傚父', value: '4' }, - { name: '鍋滀骇', value: '4' } + { name: '鍋滀骇', value: '5' } ] } }, @@ -182,6 +192,7 @@ enterpriseSubunitsType (val) { }, + // 涓夌骇鍗曚綅绛涢�� async handleSearch () { const param = { pipelineType: this.form.pipelineType, diff --git a/src/components/panel/topicSearch/SolidWasteSearch.vue b/src/components/panel/topicSearch/SolidWasteSearch.vue index 7b78c79..eb42e35 100644 --- a/src/components/panel/topicSearch/SolidWasteSearch.vue +++ b/src/components/panel/topicSearch/SolidWasteSearch.vue @@ -129,6 +129,7 @@ // 鏁版嵁鐨勪紶閫� transferData: '' }, + // 鏁版嵁鎼滅储涔嬪悗锛屽瓨鍌ㄦ暟鎹殑 searchDataDisplay: [] } }, diff --git a/src/components/table/components/WasteWater.vue b/src/components/table/components/WasteWater.vue index 3291fb1..af191ce 100644 --- a/src/components/table/components/WasteWater.vue +++ b/src/components/table/components/WasteWater.vue @@ -82,7 +82,7 @@ width="200" trigger="click" popper-class="popovers" - title="XXX1鏄庣粏琛�" + title="鐩戞祴鐐规槑缁嗚〃" > <refinery></refinery> <u slot="reference" style="color: #00ffff">{{row.normal}}</u> diff --git a/src/conf/Constants.js b/src/conf/Constants.js index 455d6e2..98f7fa1 100644 --- a/src/conf/Constants.js +++ b/src/conf/Constants.js @@ -11,6 +11,18 @@ sewersAreaGs: 'Company.js' } +export const STYLES = { + FILL: true, + WEIGHT: 3, + FILL_COLOR: '#73b2ff', + COLOR: '#73b2ff', + FILL_OPACITY: 0.2, + OPACITY: 1, + DASH_ARRAY: '4,4', + DASH_SPPED: -5, + ICON_SIZE: [20, 20] +} + export const props = { pipename: '绠$嚎鍚嶇О', pipecode: '绠$嚎缂栫爜', diff --git a/src/conf/LayerPipeLine.js b/src/conf/LayerPipeLine.js new file mode 100644 index 0000000..46807c3 --- /dev/null +++ b/src/conf/LayerPipeLine.js @@ -0,0 +1,13 @@ +/** + * 绠$嚎鏁版嵁 + */ +import { LayerPipeLines } from './layers/LayerPipeLines' +import { LayerArea } from './layers/LayerArea' +import { LayerPk } from './layers/LayerPk' + +export const LayerPipeLine = { + code: 'sewersPipeLine', + name: '绠$嚎鏁版嵁', + checked: true, + layers: [LayerPipeLines, LayerPk, LayerArea] +} diff --git a/src/conf/LayerTopic.js b/src/conf/LayerTopic.js new file mode 100644 index 0000000..66197d9 --- /dev/null +++ b/src/conf/LayerTopic.js @@ -0,0 +1,16 @@ +/** + * 鍖哄煙 + */ +import { LayerWasteWater } from './layers/LayerWasteWater' +import { LayerWasteGas } from './layers/LayerWasteGas' +import { LayerWasteSolid } from './layers/LayerWasteSolid' +import { LayerAirQuality } from './layers/LayerAirQuality' +import { LayerEnvRisk } from './layers/LayerEnvRisk' +import { LayerSoilGroundWater } from './layers/LayerSoilGroundWater' + +export const LayerTopic = { + code: 'sewersTopic', + name: '涓撻鍥惧眰', + checked: true, + layers: [LayerWasteWater, LayerWasteGas, LayerWasteSolid, LayerAirQuality, LayerEnvRisk, LayerSoilGroundWater] +} diff --git a/src/conf/MapConfig.js b/src/conf/MapConfig.js index 704279b..8f95cd8 100644 --- a/src/conf/MapConfig.js +++ b/src/conf/MapConfig.js @@ -1,14 +1,8 @@ 锘縤mport * as L from 'leaflet' import TDT from './TDT' import { LayerSewersPoint } from './layers/LayerSewers' -import { LayerWasteWater } from './layers/LayerWasteWater' -import { LayerSolidWaste } from './layers/LayerSolidWaste' -import { LayerWasteGas } from './layers/LayerWasteGas' -import { LayerPipeLine } from './layers/LayerPipeLine' -import { LayerArea } from './layers/LayerArea' -import { LayerPk } from './layers/LayerPk' -import { LayerFsss } from './layers/LayerFsss' -import { LayerHbss } from './layers/LayerHbss' +import { LayerTopic } from './LayerTopic' +import { LayerPipeLine } from './LayerPipeLine' const curWwwPath = window.document.location.href const pathname = window.document.location.pathname @@ -32,7 +26,7 @@ // center: [26, 104], center: [38.828558921813965, 117.41676807403564], // center: [29.454345703125, 113.40362548828125], - zoom: 14, + zoom: 5, worldCopyJump: true, inertia: true, zoomControl: false, @@ -48,7 +42,7 @@ IntranetBaseMaps: TDT.intranet, InternetBaseMaps: TDT.internet, Layers: { - LayerSewersLine: [LayerPipeLine, LayerFsss, LayerHbss, LayerArea, LayerPk, LayerWasteWater, LayerWasteGas, LayerSolidWaste], + LayerSewersLine: [LayerPipeLine, LayerTopic], layerSewersPoint: LayerSewersPoint } // 姹¢洦姘村浘灞傞厤缃� } diff --git a/src/conf/Styles.js b/src/conf/Styles.js deleted file mode 100644 index 9f6457d..0000000 --- a/src/conf/Styles.js +++ /dev/null @@ -1,21 +0,0 @@ -const defaultLineStyle = { - fill: true, - weight: 3, - fillColor: '#73b2ff', - color: '#73b2ff', - fillOpacity: 0.2, - opacity: 1, - dashArray: '4,4', - dashSpeed: -5, - size: [20, 20] -} - -const customStyles = { - pipeline: { - } -} - -export default { - defaultLineStyle, - customStyles -} diff --git a/src/conf/layers/LayerAirQuality.js b/src/conf/layers/LayerAirQuality.js new file mode 100644 index 0000000..738548e --- /dev/null +++ b/src/conf/layers/LayerAirQuality.js @@ -0,0 +1,20 @@ +/** + * 鍖哄煙 + */ +const APP_GIS_HOST_2 = 'http://xearth.cn:8088' +const WFS_URL = APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs' +export const LayerAirQuality = { + code: 'sewersAirQuality', + name: '绌烘皵璐ㄩ噺', + checked: true, + layers: [ + { + code: 'airQualityStation', + name: '鐩戞祴绔�', + sname: '鐩戞祴绔�', // 琛ㄥ悕 + checked: true, // 榛樿閫変腑鐘舵�� + url: WFS_URL + '?TYPENAME=鍏徃', + minZoom: 10 + } + ] +} diff --git a/src/conf/layers/LayerBasin.js b/src/conf/layers/LayerBasin.js new file mode 100644 index 0000000..1476068 --- /dev/null +++ b/src/conf/layers/LayerBasin.js @@ -0,0 +1,44 @@ +/** + * 娴佸煙 + */ +const APP_GIS_HOST_2 = 'http://xearth.cn:8088' +const WFS_URL = APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs' +export const LayerBasin = { + code: 'sewersBasin', + name: '鍖哄煙鍥惧眰', + checked: true, + layers: [ + { + code: 'basinCj', + name: '闀挎睙娴佸煙', + sname: '闀挎睙娴佸煙', // 琛ㄥ悕 + checked: true, // 榛樿閫変腑鐘舵�� + url: WFS_URL + '?TYPENAME=鍏徃', + minZoom: 10 + }, + { + code: 'basinHh', + name: '榛勬渤娴佸煙', + sname: '榛勬渤娴佸煙', + checked: true, // 榛樿閫変腑鐘舵�� + wfs: WFS_URL + '?TYPENAME=鐮佸ご', + minZoom: 10 + }, + { + code: 'basinBh', + name: '娓ゆ捣娴佸煙', + sname: '娓ゆ捣娴佸煙', + checked: true, // 榛樿閫変腑鐘舵�� + wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�', + minZoom: 10 + }, + { + code: 'basinQt', + name: '鍏朵粬', + sname: '鍏朵粬', + checked: true, // 榛樿閫変腑鐘舵�� + wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�', + minZoom: 10 + } + ] +} diff --git a/src/conf/layers/LayerEnvRisk.js b/src/conf/layers/LayerEnvRisk.js new file mode 100644 index 0000000..5e24a1f --- /dev/null +++ b/src/conf/layers/LayerEnvRisk.js @@ -0,0 +1,52 @@ +/** + * 鐜椋庨櫓 + */ +const APP_GIS_HOST_2 = 'http://xearth.cn:8088' +const WFS_URL = APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs' +export const LayerEnvRisk = { + code: 'sewersEnvRisk', + name: '鐜椋庨櫓', + checked: true, + layers: [ + { + code: 'envRiskChart', + name: '椋庨櫓缁熻鍥�', + sname: '椋庨櫓缁熻鍥�', // 琛ㄥ悕 + checked: true, // 榛樿閫変腑鐘舵�� + url: WFS_URL + '?TYPENAME=鍏徃', + minZoom: 10 + }, + { + code: 'envRiskMaterial', + name: '鐗╄祫搴�', + sname: '鐗╄祫搴�', + checked: true, // 榛樿閫変腑鐘舵�� + wfs: WFS_URL + '?TYPENAME=鐮佸ご', + minZoom: 10 + }, + { + code: 'envRiskMajor', + name: '閲嶅ぇ椋庨櫓', + sname: '閲嶅ぇ椋庨櫓', + checked: true, // 榛樿閫変腑鐘舵�� + wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�', + minZoom: 10 + }, + { + code: 'envRiskFirst', + name: '涓�绾ч闄�', + sname: '涓�绾ч闄�', + checked: true, // 榛樿閫変腑鐘舵�� + wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�', + minZoom: 10 + }, + { + code: 'envRiskSecond', + name: '浜岀骇椋庨櫓', + sname: '浜岀骇椋庨櫓', + checked: true, // 榛樿閫変腑鐘舵�� + wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�', + minZoom: 10 + } + ] +} diff --git a/src/conf/layers/LayerPipeLine.js b/src/conf/layers/LayerPipeLines.js similarity index 96% rename from src/conf/layers/LayerPipeLine.js rename to src/conf/layers/LayerPipeLines.js index c90a7f4..4209ddc 100644 --- a/src/conf/layers/LayerPipeLine.js +++ b/src/conf/layers/LayerPipeLines.js @@ -4,8 +4,8 @@ const APP_GIS_HOST_2 = 'http://xearth.cn:8088' const WFS_URL = APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs' -export const LayerPipeLine = { - code: 'sewersPipeLine', +export const LayerPipeLines = { + code: 'sewersPipeLines', name: '绠$嚎', checked: true, layers: [ diff --git a/src/conf/layers/LayerSewers.js b/src/conf/layers/LayerSewers.js index 93ca450..c61b00a 100644 --- a/src/conf/layers/LayerSewers.js +++ b/src/conf/layers/LayerSewers.js @@ -15,7 +15,7 @@ checked: true, // 榛樿閫変腑鐘舵�� wfs: WFS_URL + '?TYPENAME=绠$綉', minZoom: 10, // 鍦ㄦ寚瀹氱骇鍒樉绀� - childLayer: 'fsss,hbss' // 鍏宠仈PointLayers + childLayer: 'sewersFsss,sewersHbss' // 鍏宠仈PointLayers }, { code: 'oilline', @@ -24,7 +24,7 @@ checked: true, // 榛樿閫変腑鐘舵�� wfs: WFS_URL + '?TYPENAME=鍚补姹℃按', minZoom: 10, - childLayer: 'fsss,hbss' // 鍏宠仈PointLayers + childLayer: 'sewersFsss,sewersHbss' // 鍏宠仈PointLayers }, { code: 'saltline', @@ -33,7 +33,7 @@ checked: true, // 榛樿閫変腑鐘舵�� wfs: WFS_URL + '?TYPENAME=鍚洂姹℃按', minZoom: 10, - childLayer: 'fsss,hbss' // 鍏宠仈PointLayers + childLayer: 'sewersFsss,sewersHbss' // 鍏宠仈PointLayers }, { code: 'alkaliline', @@ -42,7 +42,7 @@ checked: true, // 榛樿閫変腑鐘舵�� wfs: WFS_URL + '?TYPENAME=鍚⒈姹℃按', minZoom: 10, - childLayer: 'fsss,hbss' // 鍏宠仈PointLayers + childLayer: 'sewersFsss,sewersHbss' // 鍏宠仈PointLayers }, { code: 'outlet', @@ -60,7 +60,7 @@ checked: true, // 榛樿閫変腑鐘舵�� wfs: WFS_URL + '?TYPENAME=浜嬫晠姘�', minZoom: 10, - childLayer: 'fsss,hbss' // 鍏宠仈PointLayers + childLayer: 'sewersFsss,sewersHbss' // 鍏宠仈PointLayers }, { code: 'loopline', @@ -69,7 +69,7 @@ checked: true, // 榛樿閫変腑鐘舵�� wfs: WFS_URL + '?TYPENAME=寰幆姘�', minZoom: 10, - childLayer: 'fsss,hbss' // 鍏宠仈PointLayers + childLayer: 'sewersFsss,sewersHbss' // 鍏宠仈PointLayers }, { code: 'purifyline', @@ -78,7 +78,7 @@ checked: true, // 榛樿閫変腑鐘舵�� wfs: WFS_URL + '?TYPENAME=鍑�鍖栨按', minZoom: 10, - childLayer: 'fsss,hbss' // 鍏宠仈PointLayers + childLayer: 'sewersFsss,sewersHbss' // 鍏宠仈PointLayers }, { code: 'lifeline', @@ -87,7 +87,7 @@ checked: true, // 榛樿閫変腑鐘舵�� wfs: WFS_URL + '?TYPENAME=鐢熸椿姹℃按', minZoom: 10, - childLayer: 'fsss,hbss' // 鍏宠仈PointLayers + childLayer: 'sewersFsss,sewersHbss' // 鍏宠仈PointLayers }, { code: 'areainfo', diff --git a/src/conf/layers/LayerSoilGroundWater.js b/src/conf/layers/LayerSoilGroundWater.js new file mode 100644 index 0000000..b75b78d --- /dev/null +++ b/src/conf/layers/LayerSoilGroundWater.js @@ -0,0 +1,52 @@ +/** + * 鍦熷¥鍙婂湴涓嬫按 + */ +const APP_GIS_HOST_2 = 'http://xearth.cn:8088' +const WFS_URL = APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs' +export const LayerSoilGroundWater = { + code: 'sewersSoilGroundWater', + name: '鍦熷¥鍙婂湴涓嬫按', + checked: true, + layers: [ + { + code: 'soil', + name: '鍦熷¥', + sname: '鍦熷¥', // 琛ㄥ悕 + checked: true, // 榛樿閫変腑鐘舵�� + url: WFS_URL + '?TYPENAME=鍏徃', + minZoom: 10 + }, + { + code: 'groundWater', + name: '鍦颁笅姘�', + sname: '鍦颁笅姘�', + checked: true, // 榛樿閫変腑鐘舵�� + wfs: WFS_URL + '?TYPENAME=鐮佸ご', + minZoom: 10 + }, + { + code: 'firstRiskBlock', + name: '涓�绾ч闄╁湴鍧�', + sname: '涓�绾ч闄╁湴鍧�', + checked: true, // 榛樿閫変腑鐘舵�� + wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�', + minZoom: 10 + }, + { + code: 'secondRiskBlock', + name: '浜岀骇椋庨櫓鍦板潡', + sname: '浜岀骇椋庨櫓鍦板潡', + checked: true, // 榛樿閫変腑鐘舵�� + wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�', + minZoom: 10 + }, + { + code: 'threeRiskBlock', + name: '涓夌骇椋庨櫓鍦板潡', + sname: '涓夌骇椋庨櫓鍦板潡', + checked: true, // 榛樿閫変腑鐘舵�� + wfs: WFS_URL + '?TYPENAME=瑁呯疆鍖�', + minZoom: 10 + } + ] +} diff --git a/src/conf/layers/LayerSolidWaste.js b/src/conf/layers/LayerWasteSolid.js similarity index 93% rename from src/conf/layers/LayerSolidWaste.js rename to src/conf/layers/LayerWasteSolid.js index fb49c33..1610672 100644 --- a/src/conf/layers/LayerSolidWaste.js +++ b/src/conf/layers/LayerWasteSolid.js @@ -3,7 +3,7 @@ * @type {string} */ -export const LayerSolidWaste = { +export const LayerWasteSolid = { code: 'solidWaste', name: '鍥哄簾', checked: true, diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue index 5463f63..e19b47f 100644 --- a/src/views/MapTemplate.vue +++ b/src/views/MapTemplate.vue @@ -3,11 +3,7 @@ <popup ref="popup" @callPopup="callPopup"></popup> <div id="map" ref="rootmap"> </div> - <sgis-layer-controller :preset="'warningPreset'"> - <lc-basemap></lc-basemap> - <!-- <div class="barline"></div>--> - <lc-service-layer class="barline" v-if="lcServiceLayerVisible"></lc-service-layer> - </sgis-layer-controller> + <sgis-layer-controller></sgis-layer-controller> <monitor-panel></monitor-panel> <!-- <top-enterprise-panel></top-enterprise-panel>--> <tool-box-panel ref="toolBox"></tool-box-panel> @@ -28,8 +24,6 @@ import Sgis from '@src/Sgis' // import mapConfig from '@/conf/MapConfig' import SgisLayerController from '@components/LayerController/LayerController' -import LcBasemap from '@components/LayerController/modules/LcBaseMap' -import LcServiceLayer from '@components/LayerController/modules/LcServiceLayer' import MonitorPanel from '@components/panel/RightSearchPanel' // import TopEnterprisePanel from '@components/panel/TopEnterprisePanel' import summarySheets from '@components/table/summarySheets.vue' @@ -38,10 +32,6 @@ // import MenuSpecial from '@components/panel/MenuTopic' import LegendPanel from '@components/panel/LegendPanel' import Enterprise from '../components/table/enterprise' -// 搴曞浘涓氬姟js閫昏緫 - -import AddWasteWaterHelper from '@components/BaseNav/WasteWater/WasteWater' -import AddGasHelper from '@components/BaseNav/flueGas/flueGas' // // 鍏叡灞曠ず鏁版嵁 import PublicBounced from '@components/BaseNav/PublicBounced/PublicBounced' import LayerFactory from '@components/LayerController/service/LayerFactory' @@ -56,8 +46,6 @@ // TopEnterprisePanel, SgisLayerController, MonitorPanel, - LcBasemap, - LcServiceLayer, Popup, summarySheets, PublicBounced @@ -83,44 +71,6 @@ }) }, methods: { - AddGasHelper () { - const data = { - companyId: 3900100145, - id: '', - monType: 2, - userCode: 'wenchun.deng', - monDuration: '', - epName: '', - secdDeptId: '', - contrLevel: '', - dataStatus: '', - dataFlag: '', - runStatus: '', - emissTypeId: '' - } - const AddGas = new AddGasHelper({ map: this.map }) - AddGas.requestData(data) - AddGas.SetPlueGasContent(this.config, this.$refs.PublicBounced) - }, - ChangeWaterState () { - const data = { - companyId: 3900100145, - id: '', - monType: 1, - userCode: 'wenchun.deng', - monDuration: '', - epName: '', - secdDeptId: '', - contrLevel: '', - dataStatus: '', - dataFlag: '', - runStatus: '', - emissTypeId: '' - } - const AddWasteWater = new AddWasteWaterHelper({ map: this.map }) - AddWasteWater.requestData(data) - AddWasteWater.SetWasteWaterContent(this.config, this.$refs.PublicBounced) - }, saveMapStatus () { window.serviceLayerHelper = this.serviceLayerHelper this.$store.commit('setMapObj', this.map) @@ -140,16 +90,11 @@ L: window.L, map: this.map }) - layerFactory.init() + layerFactory.init(this.$store.state.map.serviceLayers.LayerSewersLine) window.layerFactory = layerFactory this.basemapHelper = Sgis.initBasemapsHelper(this.map) // 鍒濆鍖栧熀纭�搴曞浘鍔╂墜 this.basemapHelper.initBasemap(this.config, false) // 绗簩涓弬鏁帮紝琛ㄧず鏄惁鍐呯綉搴曞浘 - - // this.serviceLayerHelper = Sgis.initTileLayersHelper(this.map) // 鍒濆鍖栦笟鍔″簳鍥惧姪鎵� - // console.log('-------' + this.$refs.popup.$el) - // this.serviceLayerHelper.initServiceLayers(this.config, this.$refs.popup) - this.vectorLayerHelper = Sgis.initVectorLayersHelper(this.map) // 鍒濆鍖栧姩鎬佽绱犲浘灞傚姪鎵� this.vectorLayerHelper.initVectorLayers(this.config) @@ -161,36 +106,6 @@ // this.setBasemapHelper(this.basemapHelper) // this.setServiceLayerHelper(this.serviceLayerHelper) // this.setVectorLayerHelper(this.vectorLayerHelper) - this.addMarker() - }, - addMarker () { - const L = this.L - var icon = new L.Icon({ - iconUrl: 'assets/images/map/marker-icon.png', - shadowUrl: 'assets/images/map/marker-shadow.png', - iconSize: [25, 41], - iconAnchor: [12, 41], - popupAnchor: [1, -34], - shadowSize: [41, 41] - }) - var marker = L.marker([32.2221, 118.7843], { - icon: icon - }).addTo(this.map) - .bindPopup(() => this.$refs.popup.$el, { - className: 's-map-popup', - minWidth: 300, - closeButton: false, - autoClose: false - }) - .bindTooltip('瀛椾綋鍏夋檿鏁堟灉t.', { - // permanent : true, - offset: [0, 0], // 鍋忕Щ - direction: 'right', // 鏀剧疆浣嶇疆 - // sticky:true,//鏄惁鏍囪鍦ㄧ偣涓婇潰 - className: 'anim-tooltip'// CSS鎺у埗 - }) - - marker.on('popupopen', this.onLayerClick) }, onLayerClick () { this.$refs.popup.setShow() diff --git a/src/views/baseInfoMgr/pipeline/PipeLineIndex.vue b/src/views/baseInfoMgr/pipeline/PipeLineIndex.vue index 7118d09..84ae2a2 100644 --- a/src/views/baseInfoMgr/pipeline/PipeLineIndex.vue +++ b/src/views/baseInfoMgr/pipeline/PipeLineIndex.vue @@ -9,7 +9,6 @@ import 'leaflet/dist/leaflet.css' import Sgis from '@src/Sgis' import PipeLineList from './PipeLineList' -import { mapMutations } from 'vuex' export default { name: 'PipeLineIndex', @@ -20,20 +19,10 @@ }) }, methods: { - ...mapMutations({ - setMapObj: 'setMapObj', - setLayerHelper: 'setLayerHelper' - }), init () { const mapcontainer = this.$refs.rootmap - this.mapObj = Sgis.initMap(mapcontainer) - this.basemapHelper = Sgis.initBasemaps(this.mapObj.map, this.mapObj.L) // 鍒濆鍖栧簳鍥� - this.vectorLayerHelper = Sgis.initLayers(this.mapObj.map, this.mapObj.L, {}, this.$nodeEnv) // 鍒濆鍖栦笟鍔″浘灞� - this.setLayerHelper(this.vectorLayerHelper) + Sgis.initMap(mapcontainer) return this.map - }, - setLayerHelper () { - } } } -- Gitblit v1.8.0