From a25bd679d4a3e69f9ddbe49302b2d24224ab90f5 Mon Sep 17 00:00:00 2001 From: zhangshuaibao <15731629597@163.com> Date: 星期四, 01 四月 2021 14:46:59 +0800 Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop --- src/components/panel/RightSearchPanel.vue | 35 + src/components/LayerController/logic/WasteGas.js | 17 src/conf/Topic.js | 2 src/components/panel/topicSearch/GasWasteSearch.vue | 0 src/api/mapApi.js | 10 src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue | 55 +- src/components/LayerController/logic/Company.js | 29 + src/api/mapUrl.js | 3 src/components/panel/topicSearch/DischargeSearch.vue | 3 src/components/BaseNav/PublicBounced/PublicBounced.vue | 22 src/components/panel/topicSearch/SolidWasteSearch.vue | 183 ++++++++++ src/conf/layers/LayerSolidWaste.js | 340 ++++++++++++++++++ /dev/null | 126 ------- src/components/panel/topicSearch/EnvRiskSearch.vue | 3 src/components/panel/topicSearch/WaterWasteSearch.vue | 0 src/components/BaseNav/PublicBounced/GasComponents/PublicVideo.vue | 0 src/components/panel/topicSearch/SewersSearch.vue | 3 src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue | 131 +++++++ src/components/panel/topicSearch/SoilGroundWaterSearch.vue | 0 src/components/LayerController/logic/SolidWaste.js | 63 ++- 20 files changed, 798 insertions(+), 227 deletions(-) diff --git a/src/api/mapApi.js b/src/api/mapApi.js index 8917ca0..cf79e51 100644 --- a/src/api/mapApi.js +++ b/src/api/mapApi.js @@ -20,11 +20,15 @@ getSolidWasteBaseInfo (data) { return axios.get(mapUrl.getSolidWasteBaseInfo, data) }, + // 鍥哄簾璇︾粏淇℃伅 + getSolidWasteDetail (data) { + return axios.get(mapUrl.getSolidWasteDetail, data) + }, + getWasteGas (data) { + return axios.get(mapUrl.getWasteGas, data) + }, getWasteWater (data) { return axios.get(mapUrl.getWasteWater, data) - }, - GetWasteGas (data) { - return axios.get(mapUrl.GetWasteGas, data) }, getCompany (data) { return axios.get(mapUrl.getCompany, data) diff --git a/src/api/mapUrl.js b/src/api/mapUrl.js index d956576..4bd6f56 100644 --- a/src/api/mapUrl.js +++ b/src/api/mapUrl.js @@ -7,8 +7,9 @@ export const getSolidWaste = $HOST + '/wasteSolid/getSolidWaste' export const getSolidWasteBaseInfo = $HOST + '/wasteSolid/getSolidWasteBaseInfo' +export const getSolidWasteDetail = $HOST + '/wasteSolid/getSolidWasteDetail' -export const GetWasteGas = $HOST + '/wasteGas/getWasteGas' +export const getWasteGas = $HOST + '/wasteGas/getWasteGas' export const getWasteWater = $HOST + '/wasteWater/getWasteWater' diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue deleted file mode 100644 index 997164f..0000000 --- a/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue +++ /dev/null @@ -1,126 +0,0 @@ -<template> - <!-- 妗� --> - <div class="win"> - <!-- 鍥涗釜瑙掔殑杈规鏁堟灉 --> - <div class="border_corner border_corner_left_top"></div> - <div class="border_corner border_corner_right_top"></div> - <div class="border_corner border_corner_left_bottom"></div> - <div class="border_corner border_corner_right_bottom"></div> - <div class="main"> - <div class="main-matter"> - <el-row type="flex" class="row-bg row-item-one" justify="space-around"> - <el-col :span="12">鐩戞祴鐐瑰悕绉�:{{ displayContentTab2.StoragePlaceName }}</el-col> - <el-col :span="12">鐢熶骇鍗曚綅:{{ displayContentTab2.StoragePlaceName }}</el-col> - <el-col :span="12">鎺掓斁绫诲瀷鍔犺浇:{{ displayContentTab2.DesignFloorArea }}</el-col> - </el-row> - <el-row type="flex" class="row-bg" justify="space-around"> - <el-col :span="12">鎺掓斁鍘诲悜:{{ displayContentTab2.StorageQty }}</el-col> - <el-col :span="12">鎺у埗绾у埆鍚嶇О:{{ displayContentTab2.SurplusFloorArea }}</el-col> - <el-col :span="12">鍐�/澶栨帓鍙�:{{ displayContentTab2.StorageDate }}</el-col> - </el-row> - </div> - </div> - </div> -</template> - -<script> -export default { - name: 'GasTable', - props: ['displayContentTab'], - data () { - return { - displayContentTab2: [] - } - }, - mounted () { - this.$nextTick(() => { - this.displayContentTab.forEach(item => { - this.displayContentTab2 = item - }) - }) - } -} -</script> - -<style scoped lang="less"> - -.win { - position: relative; - margin-bottom: 13px; - background-color: rgba(33, 41, 69, 0.9); -} - -.main { - width: 100%; - height: 100%; - - .main-matter { - font-size: 13px; - font-weight: normal; - padding: 10px 6px; - border: 1px solid #396d83; - - .row-item-one { - margin-bottom: 7px; - } - - .el-row { - width: 100%; - color: #00d0f9; - display: flex; - font-size: 12px !important; - - .el-col { - flex: 1; - width: 100%; - background-color: #243a55;; - text-align: center; - line-height: 28px; - margin-left: 6px; - border-radius: 4px; - - &:nth-child(1) { - margin-left: 0; - } - } - } - } -} - -.border_corner { - z-index: 999; - position: absolute; - width: 10px; - height: 10px; - background: rgba(0, 0, 0, 0); - border: 1.5px solid #47d5ea; -} - -.border_corner_left_top { - top: 0; - left: 0; - border-right: none; - border-bottom: none; -} - -.border_corner_right_top { - top: 0; - right: 0; - border-left: none; - border-bottom: none; -} - -.border_corner_left_bottom { - bottom: 0; - left: 0; - border-right: none; - border-top: none; -} - -.border_corner_right_bottom { - bottom: 0; - right: 0; - border-left: none; - border-top: none; -} -</style> diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue index a6b9aa8..a99b76f 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue @@ -9,15 +9,15 @@ <div class="main-video"> <el-table tooltip-effect="dark" - :data="data" + :data="displayContentTable2" > - <el-table-column prop="name" label="搴忓彿"></el-table-column> - <el-table-column prop="name" label="绫诲埆"></el-table-column> - <el-table-column prop="date" label="鍥哄簾鍚嶇О"></el-table-column> - <el-table-column prop="address" label="浠g爜"></el-table-column> - <el-table-column prop="address" label="浜х敓閲�"></el-table-column> - <el-table-column prop="name" label="鍌ㄥ瓨閲�"></el-table-column> - <el-table-column prop="date" label="浜х敓瑁呯疆"></el-table-column> + <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="StorageType" label="浜х敓瑁呯疆"></el-table-column> </el-table> </div> </div> @@ -27,33 +27,22 @@ <script> export default { name: 'PublicTable', - props: ['requestSolidWasteData'], + props: ['displayContentTable'], data () { return { - data: [{ - date: '2016-05-03', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖�' - }, { - date: '2016-05-02', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖�' - }, { - date: '2016-05-02', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖�' - }] - } - }, - mounted () { - this.$nextTick(() => { - this.getSolidWasteData() - }) - }, - methods: { - getSolidWasteData () { - // const data = requestSolidWasteData - // console.log(data) + displayContentTable2: [ + { + CompanyName: '涓煩鐭冲寲', + StoragePlaceId: 3, + StoragePlaceName: '鐏版福鍦�', + StoragePlaceTypeName: '涓�鑸浐搴熷~鍩嬪満', + StorageType: '绮夌叅鐏般�佺伆娓�', + StorageZCL: '38', + StorageZCNL: '40.7', + StorageZDMJ: '10.60798' + } + ], + displayContentTable3: [] } } } diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue new file mode 100644 index 0000000..42a4157 --- /dev/null +++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue @@ -0,0 +1,131 @@ +<template> + <!-- 妗� --> + <div class="win"> + <!-- 鍥涗釜瑙掔殑杈规鏁堟灉 --> + <div class="border_corner border_corner_left_top"></div> + <div class="border_corner border_corner_right_top"></div> + <div class="border_corner border_corner_left_bottom"></div> + <div class="border_corner border_corner_right_bottom"></div> + <div class="main"> + <div class="main-matter"> + <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> +<!-- <el-row type="flex" class="row-bg row-item-one" justify="space-around">--> +<!-- <el-col :span="8">鐩戞祴鐐瑰悕绉�:{{ displayContent.Name }}</el-col>--> +<!-- <el-col :span="8">鐢熶骇鍗曚綅:{{ displayContent.porltName }}</el-col>--> +<!-- <el-col :span="8">鎺掓斁绫诲瀷鍔犺浇:{{ displayContent.MonTypeName }}</el-col>--> +<!-- <!– <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">鎺掓斁鍘诲悜:{{ displayContent.EmissDirecti }}</el-col>--> +<!-- <el-col :span="8">鎺у埗绾у埆鍚嶇О:{{ displayContent.ContrLevelShowName }}</el-col>--> +<!-- <el-col :span="8">鍐�/澶栨帓鍙�:{{ displayContent.OrOutPortName }}</el-col>--> +<!-- <!– <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> + </div> +</template> + +<script> +export default { + name: 'GasTable', + props: ['displayContentTab'], + data () { + return { + displayContentTab2: [] + } + }, + mounted () { + this.$nextTick(() => { + this.displayContentTab.forEach(item => { + this.displayContentTab2 = item + }) + }) + } +} +</script> + +<style scoped lang="less"> + +.win { + position: relative; + margin-bottom: 13px; + background-color: rgba(33, 41, 69,0.9); +} +.main { + width: 100%; + height: 100%; + .main-matter{ + font-size: 13px; + font-weight: normal; + padding: 10px 6px; + border: 1px solid #396d83; + .row-item-one{ + margin-bottom: 7px; + } + .el-row { + width: 100%; + color: #00d0f9; + display: flex; + font-size: 12px !important; + .el-col{ + flex: 1; + width: 100%; + background-color: #243a55;; + text-align: center; + line-height: 28px; + margin-left: 6px; + border-radius: 4px; + &:nth-child(1){ + margin-left:0; + } + } + } + } +} +.border_corner{ + z-index: 999; + position: absolute; + width: 10px; + height: 10px; + background: rgba(0,0,0,0); + border: 1.5px solid #47d5ea; +} +.border_corner_left_top{ + top: 0; + left: 0; + border-right: none; + border-bottom: none; +} +.border_corner_right_top{ + top: 0; + right: 0; + border-left: none; + border-bottom: none; +} +.border_corner_left_bottom{ + bottom: 0; + left: 0; + border-right: none; + border-top: none; +} +.border_corner_right_bottom{ + bottom: 0; + right: 0; + border-left: none; + border-top: none; +} +</style> diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicVideo.vue similarity index 100% rename from src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue rename to src/components/BaseNav/PublicBounced/GasComponents/PublicVideo.vue diff --git a/src/components/BaseNav/PublicBounced/PublicBounced.vue b/src/components/BaseNav/PublicBounced/PublicBounced.vue index ba5ac37..5b88355 100644 --- a/src/components/BaseNav/PublicBounced/PublicBounced.vue +++ b/src/components/BaseNav/PublicBounced/PublicBounced.vue @@ -6,9 +6,9 @@ </div> <div class="public-bounced-content"> <div class="public-bounced-content-left"> - <GasTab :displayContentTab="displayContentTab" ></GasTab> + <GasTab :displayContentTab="displayContentTab"></GasTab> <div class="public-bounced-content-left-bottom"> - <PublicTable v-if="value === 'gufei'"></PublicTable> + <PublicTable v-if="value === 'gufei'" :displayContentTable="displayContentTable"></PublicTable> <!-- <GasECharts v-else></GasECharts>--> <PublicTab v-else></PublicTab> </div> @@ -23,9 +23,9 @@ <script> import '@/components/BaseNav/SolidWaste/directive/dir' -import GasTab from '@components/BaseNav/PublicBounced/GasComponents/GasTab' +import GasTab from '@components/BaseNav/PublicBounced/GasComponents/PublicTabs' import PublicTable from '@components/BaseNav/PublicBounced/GasComponents/PublicTable' -// import GasECharts from '@components/BaseNav/PublicBounced/GasComponents/GasECharts' +// import GasTabs from './GasComponents/GasTabs' import GasVideo from '@components/BaseNav/PublicBounced/GasComponents/GasVideo' import PublicTab from './GasComponents/PublicTab' @@ -34,7 +34,6 @@ components: { GasTab, PublicTable, - // GasECharts, GasVideo, PublicTab }, @@ -42,16 +41,17 @@ return { displayContentTitle: '', displayContentTab: '', + displayContentTable: '', flag: false } }, methods: { - setData (data, value) { - // data.forEach((item, index) => { - // // console.log(item.StoragePlaceName) - // // this.displayContentTitle = item.StoragePlaceName - // }) - this.displayContentTab = data + setData (dataBasic, dataDetailed, value) { + dataBasic.forEach(item => { + this.displayContentTitle = item.StoragePlaceName + }) + this.displayContentTab = dataBasic + this.displayContentTable = dataDetailed this.flag = true this.value = value }, diff --git a/src/components/LayerController/logic/Company.js b/src/components/LayerController/logic/Company.js index a9a51c9..8fda8d0 100644 --- a/src/components/LayerController/logic/Company.js +++ b/src/components/LayerController/logic/Company.js @@ -38,23 +38,34 @@ }) marker.bindTooltip(data[i].name, { permanent: true, - offset: [0, -16], - direction: 'top', - className: '' + offset: [0, 14], + direction: 'bottom', + className: 'company-bindTooltip' }) - layer.addLayer(marker) } } - + /* + * 鐐逛綅榧犳爣绉诲叆寮规 + * */ this.bindTooltip = (layer) => { - // console.log(layer) - // return layer.options.test.name + console.log(layer) + return '<div class="company-bindTooltip-hover"><h3>姹℃煋鐗╀骇鐢熺粺璁�</h3><ul>' + + '<li>鐢熶骇璁炬柦锛�30锛堜釜锛�</li>' + + '<li>娌荤悊璁炬柦锛�30锛堜釜锛�</li>' + + '</ul></div>'// layer.options.test.name } - + /* + * 鐐逛綅鐐瑰嚮浜嬩欢 + * + * */ this.clickListener = (e) => { // this.animalService.pulseEffect(e.latlng) - console.log(e) + const dataValue = { + StoragePlaceId: e.layer.options.test.name + } + debugger + console.log(dataValue) // return this.PublicBounced.$el } } diff --git a/src/components/LayerController/logic/SolidWaste.js b/src/components/LayerController/logic/SolidWaste.js index 37b4b15..bb980a5 100644 --- a/src/components/LayerController/logic/SolidWaste.js +++ b/src/components/LayerController/logic/SolidWaste.js @@ -36,52 +36,33 @@ var iconUrl = this.differentTypes(judgeValue) const marker = L.marker([positionX, positionY], { - test: getSolidWasteData[i], + totransferData: getSolidWasteData[i], icon: L.icon({ iconUrl: iconUrl, iconSize: [50, 50], iconAnchor: [25, 25] }) }) + marker.bindTooltip(getSolidWasteData[i].Name, { + permanent: true, + offset: [0, 14], + direction: 'bottom', + className: 'company-bindTooltip' + }) layer.addLayer(marker) } } this.bindTooltip = (layer) => { - return layer.options.test.Name + return layer.options.totransferData.Name } this.clickListener = (e) => { // 鐐瑰嚮marker鐨刾ulse()鍏夋尝 this.animalService.pulseEffect(e.latlng) - /* flyTo()寮瑰嚭妗嗗钩绉讳簨浠� */ - // this.setPanTo(e.latlng, 200) /* 鐐瑰嚮鏁版嵁鐨勬帴鍙h姹� */ this.requestSolidWasteData(e).then(e) } - - // 鏍规嵁鐐瑰嚮涓嶅悓鏁版嵁 杩涜鎺ュ彛鐨勬暟鎹姹� - this.requestSolidWasteData = async (e) => { - const dataValue = { - StoragePlaceId: e.layer.options.test.StoragePlaceId - } - const result = await mapApi.getSolidWasteBaseInfo(dataValue) - // console.log(result) - const PublicBounced = window.Vue.extend(publicBounced) - const instance = new PublicBounced() - instance.$mount() - document.body.appendChild(instance.$el) - instance.setData(result.Result.DataInfo, 'gufei') - } - - // flayTo() - // this.setPanTo = (pos, value) => { - // var position = pos - // position = this.map.latLngToLayerPoint(position) - // position.y += value - // position = this.map.layerPointToLatLng(position) - // this.map.flyTo(position) - // } // 涓嶅悓绫诲瀷鍥剧墖灏佽 this.differentTypes = (judgeValue) => { @@ -93,4 +74,32 @@ } return effectOfChange } + + // 鏍规嵁鐐瑰嚮涓嶅悓鏁版嵁 杩涜鎺ュ彛鐨勬暟鎹姹� + this.requestSolidWasteData = async (e) => { + // 鍩烘湰淇℃伅灞曠ず + const dataValue = { + StoragePlaceId: e.layer.options.totransferData.StoragePlaceId + } + const resultBasic = await mapApi.getSolidWasteBaseInfo(dataValue) + // 璇︾粏淇℃伅灞曠ず + const resultDetailed = await mapApi.getSolidWasteDetail(dataValue) + + const PublicBounced = window.Vue.extend(publicBounced) + const instance = new PublicBounced() + instance.$mount() + document.body.appendChild(instance.$el) + instance.setData(resultBasic.Result.DataInfo, resultDetailed, 'gufei') + /* flyTo()寮瑰嚭妗嗗钩绉讳簨浠� */ + this.setPanTo(e.latlng, 200) + } + + // flayTo() + 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/logic/WasteGas.js b/src/components/LayerController/logic/WasteGas.js index 99fee38..574ed9f 100644 --- a/src/components/LayerController/logic/WasteGas.js +++ b/src/components/LayerController/logic/WasteGas.js @@ -18,11 +18,8 @@ * @param L leaflet瀵硅薄 */ this.init = async (layer, L) => { - this.animalService = new AnimalService({ - L: L, - layer: layer - }) - const res = await mapApi.GetWasteGas() + this.animalService = new AnimalService({ L: L, layer: layer }) + const res = await mapApi.getWasteGas() const data = res.Result.DataInfo || {} // console.log(data) for (let i = 0; i < data.length; i++) { @@ -53,13 +50,13 @@ 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.getWasteGas(dataValue) const PublicBounced = window.Vue.extend(publicBounced) const instance = new PublicBounced() - instance.setData(result) + instance.setData(e.layer.options.test) instance.$mount() document.body.appendChild(instance.$el) } diff --git a/src/components/panel/RightSearchPanel.vue b/src/components/panel/RightSearchPanel.vue index d8e296b..cbce13b 100644 --- a/src/components/panel/RightSearchPanel.vue +++ b/src/components/panel/RightSearchPanel.vue @@ -9,7 +9,6 @@ <el-tooltip :popper-class="'map-tooltip'" effect="dark" :content="item.name" placement="left"> <li style=" "> <!-- <span>{{item.name}}</span>--> - <!-- <div >--> <img src="../../assets/images/map-pages/icon/sl.png" class="icon"> <!-- </div>--> @@ -38,9 +37,6 @@ <div :class="'search-container map-background'"> <div class="el-message-box__content" style="padding:6px;font-size: 13px;"> - <div class="search-title"> - 姹¢洦姘� - </div> <component :title="title" :is="gcComp"></component> </div> </div> @@ -49,14 +45,18 @@ </template> <script> -import EnvProtectSearch from './topicSearch/EnvProtectSearch' +import EnvRiskSearch from './topicSearch/EnvRiskSearch' import DischargeSearch from './topicSearch/DischargeSearch' import { TopicList } from '../../conf/Topic' +import GasWasteSearch from '@components/panel/topicSearch/GasWasteSearch' +import WaterWasteSearch from '@components/panel/topicSearch/WaterWasteSearch' +import SolidWasteSearch from '@components/panel/topicSearch/SolidWasteSearch' import SewersSearch from '@components/panel/topicSearch/SewersSearch' +import SoilGroundWaterSearch from '@components/panel/topicSearch/SoilGroundWaterSearch.vue' export default { name: 'MonitorPanel', - components: { EnvProtectSearch, DischargeSearch }, + components: { GasWasteSearch, WaterWasteSearch, SolidWasteSearch, EnvRiskSearch, DischargeSearch }, data () { return { isShow: true, @@ -100,6 +100,29 @@ this.topicList.forEach((itm) => { itm.checked = val.name === itm.name }) + switch (val.name) { + case '姹℃煋婧�': + this.gcComp = DischargeSearch + break + case '搴熸按鐩戞祴': + this.gcComp = WaterWasteSearch + break + case '搴熸皵鐩戞祴': + this.gcComp = GasWasteSearch + break + case '鍥哄簾绠$悊': + this.gcComp = SolidWasteSearch + break + case '鐜椋庨櫓': + this.gcComp = EnvRiskSearch + break + case '鍦熷¥鍙婂湴涓嬫按': + this.gcComp = SoilGroundWaterSearch + break + case '姹¢洦姘寸缃�': + this.gcComp = SewersSearch + break + } }, handlePage (page) { }, diff --git a/src/components/panel/topicSearch/DischargeSearch.vue b/src/components/panel/topicSearch/DischargeSearch.vue index ed987f9..02e23e6 100644 --- a/src/components/panel/topicSearch/DischargeSearch.vue +++ b/src/components/panel/topicSearch/DischargeSearch.vue @@ -1,5 +1,8 @@ <template> <div> + <div class="search-title"> + 姹¢洦姘� + </div> <el-card class="search-panel"> <el-form ref="form" :model="form" label-width="90px" class="search-form"> <el-form-item label="鏌ヨ绫诲瀷锛�"> diff --git a/src/components/panel/topicSearch/EnvProtectSearch.vue b/src/components/panel/topicSearch/EnvRiskSearch.vue similarity index 98% rename from src/components/panel/topicSearch/EnvProtectSearch.vue rename to src/components/panel/topicSearch/EnvRiskSearch.vue index 99ac50f..135274d 100644 --- a/src/components/panel/topicSearch/EnvProtectSearch.vue +++ b/src/components/panel/topicSearch/EnvRiskSearch.vue @@ -1,5 +1,8 @@ <template> <div> + <div class="search-title"> + 姹¢洦姘� + </div> <el-card class="search-panel"> <el-form ref="form" :model="form" label-width="90px" class="search-form"> <el-form-item label="绫诲瀷锛�"> diff --git a/src/components/panel/topicSearch/GasWasteSearch.vue b/src/components/panel/topicSearch/GasWasteSearch.vue new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/components/panel/topicSearch/GasWasteSearch.vue diff --git a/src/components/panel/topicSearch/SewersSearch.vue b/src/components/panel/topicSearch/SewersSearch.vue index c969cde..566fd68 100644 --- a/src/components/panel/topicSearch/SewersSearch.vue +++ b/src/components/panel/topicSearch/SewersSearch.vue @@ -1,5 +1,8 @@ <template> <div class="sewers-search" v-if="gdVisible"> + <div class="search-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"> diff --git a/src/components/panel/topicSearch/SoilGroundWaterSearch.vue b/src/components/panel/topicSearch/SoilGroundWaterSearch.vue new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/components/panel/topicSearch/SoilGroundWaterSearch.vue diff --git a/src/components/panel/topicSearch/SolidWasteSearch.vue b/src/components/panel/topicSearch/SolidWasteSearch.vue new file mode 100644 index 0000000..31267fe --- /dev/null +++ b/src/components/panel/topicSearch/SolidWasteSearch.vue @@ -0,0 +1,183 @@ +<template> + <div class="sewers-search" v-if="judgeVisible"> + <div class="search-title"> + <span>鍥哄簾</span> + </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.pipelineType" @change="handlePipelineType" + :popper-class="'select-down'"> + <el-option + v-for="item in SolidWasteTypeOptions" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item :label="form.pipelineType+'锛�'" size="mini"> + <el-select style="width: 100%" v-model="form.dataType" @change="handleDataType" :popper-class="'select-down'"> + <el-option + v-for="item in dataTypeOptions" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-input v-model="form.keyword" size="mini" + placeholder="鍦ㄦ杈撳叆鍏抽敭瀛楁悳绱�"> + <i slot="suffix" class="search-btn el-input__icon el-icon-search" @click="handleSearch"></i> + </el-input> + </el-form> + </div> + <el-scrollbar style="height:100%"> + <div class="B-TMD-table-list" v-for="(item,index) in list" :key="index"> + <div class="B-TMD-table-list-title"> + <div class="B-TMD-table-list-head"> + <div class="B-TMD-table-list-title-y" + :class="['B-TMD-table-list-title-y-nam', { 'warning': item.vehicleStatus==='910003' }, { 'offline': item.vehicleStatus==='910001' }]"> + <span id="waybillNumber" class="" :title="item.properties.pipename"> + <span class="location-btn" @click="handleLocation(item)">{{ item.properties.pipename }}</span> + </span> + </div> + </div> + </div> + <div class="B-TMD-table-list-content"> + + <div v-for="itm in labelList" :key="itm.label"> + <span>{{ itm.label }}锛�</span> + <span id="b_twe_loan" :title="item.properties[itm.key] ">{{ item.properties[itm.key] }}</span> + </div> + </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> + </div> +</template> + +<script> +// 寮曞叆鍙�夋嫨鏁版嵁 +import { SolidWasteTypeOptions } from '@/conf/layers/LayerSolidWaste' + +import WfsHelper from '@components/helpers/WfsHelper' +import AjaxUtils from '@utils/AjaxUtils' + +export default { + name: 'SolidWasteSearch', + data () { + return { + judgeVisible: true, + list: [], + labelList: SolidWasteTypeOptions[0].labelList, + total: 0, + SolidWasteTypeOptions: SolidWasteTypeOptions, + dataTypeOptions: SolidWasteTypeOptions[0].options, + form: { + pipelineType: SolidWasteTypeOptions[0].label, + dataType: SolidWasteTypeOptions[0].options[0].label, + query: SolidWasteTypeOptions[0].options[0], + keyword: '鍥哄簾闈㈡澘鏁版嵁鏌ヨ' + }, + isWaybillHover: true, + isRouteHover: false + } + }, + props: ['title'], + methods: { + handlePipelineType (val) { + this.SolidWasteTypeOptions.forEach((itm) => { + if (val === itm.value) { + this.dataTypeOptions = itm.options + this.form.pipelineType = itm.label + this.form.labelList = itm.labelList + } + }) + this.form.dataType = this.dataTypeOptions[0].label + this.form.key = this.dataTypeOptions[0].key + }, + handleDataType (val) { + this.dataTypeOptions.forEach((itm) => { + if (val === itm.value) { + this.form.query = itm + } + }) + }, + async handleSearch () { + const param = { + pipelineType: this.form.pipelineType, + dataType: this.form.dataType + } + console.log(param) + var wfsHelper = new WfsHelper() + wfsHelper.addTypeName(this.form.query.layerName) + wfsHelper.addLike(this.form.query.key, this.form.keyword) + const res = await AjaxUtils.GetDataAsynByUrl(wfsHelper.getUrl(), {}) + if (res.data instanceof Object && Object.prototype.hasOwnProperty.call(res.data, 'features')) { + this.list = res.data.features + } + }, + handleLocation (val) { + console.log(val) + const bound = this.L.geoJSON([val], {}).getBounds() + var layer = window.serviceLayerHelper.getByLayerId(val.id) + layer && layer.openPopup() + this.$store.state.map.map.flyToBounds(bound) + } + } +} +</script> + +<style lang="less" scoped> + +.sewers-search { + position: relative; + overflow: hidden; + + .search-panel { + background-color: transparent; + border: 1px solid @background-color-split; + padding: 10px; + + /deep/ input { + border-radius: 0; + background-color: @background-color-split; + border: solid 1px @color; + color: @color-gray; + font-size: 0.01rem; + + .el-select .el-input.is-focus .el-input__inner { + border-color: @color; + } + } + + /deep/ input:focus { + border-color: @color; + } + } + + .search-btn { + + } + + //location-btn{ + // + //} + .location-btn:hover, .el-input__icon:hover { + color: @color; + cursor: pointer; + } +} +</style> diff --git a/src/components/panel/topicSearch/WaterWasteSearch.vue b/src/components/panel/topicSearch/WaterWasteSearch.vue new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/components/panel/topicSearch/WaterWasteSearch.vue diff --git a/src/conf/Topic.js b/src/conf/Topic.js index 07f0f3f..da2e42f 100644 --- a/src/conf/Topic.js +++ b/src/conf/Topic.js @@ -6,7 +6,7 @@ export const TopicComp = { dischargeSearch: () => import('@components/panel/topicSearch/DischargeSearch'), - envProtectSearch: () => import('@components/panel/topicSearch/EnvProtectSearch'), + envProtectSearch: () => import('@components/panel/topicSearch/EnvRiskSearch'), sewersSearch: () => import('@components/panel/topicSearch/SewersSearch.vue') } diff --git a/src/conf/layers/LayerSolidWaste.js b/src/conf/layers/LayerSolidWaste.js index c81dc8b..e1f3733 100644 --- a/src/conf/layers/LayerSolidWaste.js +++ b/src/conf/layers/LayerSolidWaste.js @@ -2,6 +2,8 @@ * 鍥哄簾鍥惧眰 * @type {string} */ +const APP_GIS_HOST_2 = 'http://xearth.cn:8088' +// const WFS_URL = APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs' export const LayerSolidWaste = { code: 'solidWaste', name: '鍥哄簾', @@ -25,3 +27,341 @@ } ] } + +// 鍥哄簾璁炬柦绫诲瀷 +export const LayerSolisWastePoint = [ + { + code: 'fsss', + name: '闄勫睘璁炬柦', + checked: false, // 榛樿閫変腑鐘舵�� + type: 'geojson', + url: APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs?version=1.0.0&TYPENAME={sname}&REQUEST=getfeature&OUTPUTFORMAT=json&maxFeatures=20000', + layers: [ + { + code: 'fourlink', + name: '鍥涢��', + sname: '鍥涢��', + checked: true, + minZoom: 10, + icon: 'sewers/鍥涢��.png' + }, + { + code: 'tee', + name: '涓夐��', + sname: '涓夐��', + checked: false, + minZoom: 10, + icon: 'sewers/涓夐��.png' + }, + { + code: 'piperack', + name: '绠℃灦(澧�)', + sname: 'PipeRack', + minZoom: 10, + checked: false + }, + { + code: 'pipegallery', + name: '绠″粖(甯�)', + sname: 'PipeGallery', + minZoom: 10, + checked: false + }, + { + code: 'pipesegment', + name: '娴佸悜', + sname: 'ywslx', + checked: false + }, + { + code: 'pipeline', + name: '绠$綉', + minZoom: 10, + sname: 'pipeline', + checked: false + }, + { + code: 'valve', + name: '闃�闂�', + minZoom: 10, + sname: 'valve', + checked: false, + icon: 'sewers/闃�闂�.png' + }, + { + code: 'elbow', + name: '寮ご', + sname: 'Elbow', + minZoom: 10, + checked: false, + icon: 'sewers/寮ご.png' + } + ] + }, + { + code: 'hbss', + name: '鐜繚璁炬柦', + checked: false, // 榛樿閫変腑鐘舵�� + type: 'geojson', + url: APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs?version=1.0.0&TYPENAME={sname}&REQUEST=getfeature&OUTPUTFORMAT=json&maxFeatures=20000', + layers: [ + { + code: 'manhole', + name: '绐ㄤ簳', + minZoom: 10, + sname: '绐ㄤ簳', + checked: false, + icon: 'sewers/绐ㄤ簳.png' + }, + { + code: 'firedike', + name: '闃茬伀鍫�', + sname: '闃茬伀鍫�', + minZoom: 10, + checked: false + }, + { + code: 'raingate', + name: '闆ㄧ瀛�', + sname: '闆ㄧ瀛�', + checked: false, + minZoom: 10, + icon: 'sewers/闆ㄧ瀛�.png' + }, + { + code: 'overflowweir', + name: '婧㈡祦鍫�', + sname: '婧㈡祦鍫�', + minZoom: 10, + checked: false + }, + { + code: 'chokevalve', + name: '鎴祦闂�', + sname: '鎴祦闂�', + minZoom: 10, + checked: false + }, + { + code: 'collectingbasin', + name: '闆嗘按姹�(缃�)', + sname: '闆嗘按姹�', + minZoom: 10, + checked: false, + icon: 'sewers/闆嗘按姹�.png' + }, + { + code: 'oilseparator', + name: '闅旀补姹�', + sname: '闅旀补姹�', + minZoom: 10, + checked: false, + icon: 'sewers/闅旀补姹�.png' + } + ] + }, + { + code: 'pk', + name: '鎺掑彛', + checked: false, // 榛樿閫変腑鐘舵�� + type: 'geojson', + url: APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs?version=1.0.0&TYPENAME={sname}&REQUEST=getfeature&OUTPUTFORMAT=json&maxFeatures=20000', + layers: [ + { + code: 'dischargeport', + name: '鎺掓斁鍙�', + minZoom: 10, + sname: '鎺掓斁鍙�', + checked: false + } + ] + }, + { + code: 'qyxx', + name: '鍖哄煙淇℃伅', + checked: false, // 榛樿閫変腑鐘舵�� + type: 'geojson', + url: APP_GIS_HOST_2 + '/server/ogcserver/PipeLine/wfs?version=1.0.0&TYPENAME={sname}&REQUEST=getfeature&OUTPUTFORMAT=json&maxFeatures=20000', + layers: [ + { + code: 'thirdpartypipe', + name: '绗笁鏂圭閬�', + minZoom: 10, + sname: '绗笁鏂圭閬�', + checked: false + }, + { + code: 'firefightingunit', + name: '娑堥槻鍗曚綅', + sname: '娑堥槻鍗曚綅', + minZoom: 10, + checked: false, + icon: 'sewers/娑堥槻鍗曚綅.png' + }, + { + code: 'emergencyesources', + name: '搴旀�ョ墿璧�', + sname: '搴旀�ョ墿璧�', + minZoom: 10, + checked: false + }, + { + code: 'emergencyres', + name: '绀句細涓撲笟搴旀�ユ晳鎻撮槦浼�', + sname: '涓撲笟搴旀�ユ晳鎻�', + checked: false, + minZoom: 10, + icon: 'sewers/绀句細涓撲笟搴旀�ユ晳鎻�.png' + }, + { + code: 'maintenanceteam', + name: '缁存姠淇槦浼�', + sname: '缁存姠淇槦浼�', + checked: false, + minZoom: 10, + icon: 'sewers/绀句細涓撲笟搴旀�ユ晳鎻�.png' + }, + { + code: 'hospital', + name: '鍖婚櫌', + sname: '鍖婚櫌', + checked: false, + minZoom: 10, + icon: 'sewers/鍖婚櫌.png' + }, + { + code: 'pointpreservationzone', + name: '鑷劧淇濇姢鍖�', + sname: '鑷劧淇濇姢鍖�', + checked: false, + minZoom: 10, + icon: 'sewers/鑷劧淇濇姢鍖�.png' + }, + { + code: 'pointhydrology', + name: '姘翠綋', + sname: '姘翠綋', + checked: false, + minZoom: 10, + icon: 'sewers/姘翠綋.png' + }, + { + code: 'sensitivetarget', + name: '鏁忔劅鐩爣', + sname: '鏁忔劅鐩爣', + checked: false, + minZoom: 10, + icon: 'sewers/鏁忔劅鐩爣.png' + }, + { + code: 'envmonunit', + name: '鐜鐩戞祴鍗曚綅', + sname: '鐜鐩戞祴鍗曚綅', + checked: false, + minZoom: 10, + icon: 'sewers/鐜鐩戞祴鍗曚綅.png' + }, + { + code: 'pointcontaminants', + name: '鐩戞祴鐐规薄鏌撶墿鎸囨爣淇℃伅', + sname: '姹℃煋鐗╂寚鏍�', + minZoom: 10, + checked: false + }, + { + code: 'dischargeportaround', + name: '鎺掓斁鍙e懆杈圭幆澧冩晱鎰熶俊鎭�', + sname: '鎺掓斁鍙e懆杈圭幆澧�', + minZoom: 10, + checked: false, + iconN: 'sewers/鎺掓斁鍙e懆杈规晱鎰熶俊鎭�.png' + }, + { + code: 'pump', + name: '娉�', + sname: '娉�', + minZoom: 10, + checked: false, + icon: 'sewers/娉�.png' + }, + { + code: 'liquidlevelmeter', + name: '娑蹭綅璁�', + sname: '娑蹭綅璁�', + checked: false, + minZoom: 10, + icon: 'sewers/娑蹭綅璁�.png' + }, + { + code: 'flowmeter', + name: '娴侀噺璁�', + sname: '娴侀噺璁�', + minZoom: 10, + checked: false, + icon: 'sewers/娴侀噺璁�.png' + }, + { + code: 'video', + name: '瑙嗛鐩戞帶閰嶇疆', + sname: '瑙嗛鐩戞帶', + minZoom: 10, + checked: false + }, + { + code: 'onlinemonitoring', + name: '鍦ㄧ嚎鐩戞祴璁惧閰嶇疆', + sname: '鍦ㄧ嚎鐩戞祴', + minZoom: 10, + checked: false + }, + { + code: 'combustiblegas', + name: '鍙噧姘斾綋鎶ヨ璁惧閰嶇疆', + sname: '鍙噧姘斾綋鎶ヨ', + minZoom: 10, + checked: false + }, + { + code: 'hydrogensulfide', + name: 'H2S娴撳害鎶ヨ璁惧閰嶇疆', + sname: 'H2S娴撳害鎶ヨ', + minZoom: 10, + checked: false + }, + { + code: 'controlpoint', + name: '绠$嚎鐐�', + sname: '绠$嚎鐐�', + minZoom: 10, + checked: false, + icon: 'sewers/绠$嚎鐐�.png' + }, + { + code: 'pipesegment', + name: '绠℃', + sname: '绠℃', + minZoom: 10, + checked: false + } + ] + } +] + +// 鍥哄簾鏈綋 +export const SolidWasteTypeOptions = [{ + value: '1', + label: '鍥哄簾鏈綋', + options: [{ + value: '1', + layerName: '鍥哄簾', + key: 'pipename', + label: '鍏ㄩ儴鍥哄簾' + }], + labelList: [{ + label: '杈撻�佷粙璐�', + key: 'mediumtype' + }, { + label: '闀垮害(m)', + key: 'length' + }] +}] -- Gitblit v1.8.0