From 175db8fd0f26c8f7b01c7bc717cbf46cebad9805 Mon Sep 17 00:00:00 2001 From: chenyabin <Chenab123!> Date: 星期四, 01 四月 2021 18:10:14 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/develop' into develop --- src/components/panel/RightSearchPanel.vue | 2 src/components/LayerController/logic/WasteGas.js | 3 src/components/LayerController/service/AnimalService.js | 3 src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue | 103 +++ src/components/panel/topicSearch/GasWasteSearch.vue | 244 +++++++++ src/api/mapApi.js | 8 src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue | 57 - src/components/panel/LegendPanel.vue | 121 ---- src/api/mapUrl.js | 9 src/components/BaseNav/PublicBounced/PublicBounced.vue | 42 src/Sgis.js | 1 src/components/panel/topicSearch/SolidWasteSearch.vue | 234 +++++++++ src/conf/layers/LayerSolidWaste.js | 1 /dev/null | 221 -------- src/components/panel/topicSearch/WaterWasteSearch.vue | 244 +++++++++ src/components/BaseNav/PublicBounced/GasComponents/PublicVideo.vue | 0 src/components/BaseNav/PublicBounced/GasComponents/ECharts.vue | 29 src/components/LayerController/logic/WasteWater.js | 12 src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue | 142 +++++ src/components/LayerController/logic/SolidWaste.js | 63 +- 20 files changed, 1,114 insertions(+), 425 deletions(-) diff --git a/src/Sgis.js b/src/Sgis.js index 6e794e0..6626200 100644 --- a/src/Sgis.js +++ b/src/Sgis.js @@ -49,6 +49,7 @@ */ const initBasemapsHelper = (map) => { // todo 杩欓噷杩涜搴曞浘鍦板浘鐨勫垵濮嬪寲 + console.log(map) return new BasemapHelper({ map }) } /** diff --git a/src/api/mapApi.js b/src/api/mapApi.js index 69f9f9a..e43f988 100644 --- a/src/api/mapApi.js +++ b/src/api/mapApi.js @@ -20,6 +20,14 @@ getSolidWasteBaseInfo (data) { return axios.get(mapUrl.getSolidWasteBaseInfo, data) }, + // 鍥哄簾璇︾粏淇℃伅 + getSolidWasteDetail (data) { + return axios.get(mapUrl.getSolidWasteDetail, data) + }, + // 鍥哄簾 鏁版嵁鎼滅储 鏆傛椂 + getSolidWasteSurveyDetail (data) { + return axios.get(mapUrl.getSolidWasteSurveyDetail, data) + }, getWasteGas (data) { return axios.get(mapUrl.getWasteGas, data) }, diff --git a/src/api/mapUrl.js b/src/api/mapUrl.js index 1755bd1..03933ac 100644 --- a/src/api/mapUrl.js +++ b/src/api/mapUrl.js @@ -5,12 +5,13 @@ export const GetUser = $HOST + '/user/getUser' +export const getSolidWaste = $HOST + '/wasteSolid/getSolidWaste' +export const getSolidWasteBaseInfo = $HOST + '/wasteSolid/getSolidWasteBaseInfo' +export const getSolidWasteDetail = $HOST + '/wasteSolid/getSolidWasteDetail' +export const getSolidWasteSurveyDetail = $HOST + '/wasteSolid/getSolidWasteSurveyDetail' + export const getWasteGas = $HOST + '/wasteGas/getWasteGas' -export const getSolidWaste = $HOST + '/wasteSolid/getSolidWaste' - export const getWasteWater = $HOST + '/wasteWater/getWasteWater' - -export const getSolidWasteBaseInfo = $HOST + '/wasteSolid/getSolidWasteBaseInfo' export const getCompany = $HOST + '/company/getCompany' diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue b/src/components/BaseNav/PublicBounced/GasComponents/ECharts.vue similarity index 83% rename from src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue rename to src/components/BaseNav/PublicBounced/GasComponents/ECharts.vue index c2366b0..0fc0cfb 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/ECharts.vue @@ -1,10 +1,18 @@ <template> - <div style="width:750px;height:260px;" id="echarts" ref="main"></div> + <div id="Tab"> + <div class="Infomation"> + <el-tag>姘哀鍖栫墿 : 29.93 鏍囧噯 : 100</el-tag> + <el-tag>浜屾哀鍖栫~ : 17.34 鏍囧噯 : 50</el-tag> + <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> </template> <script> export default { - name: 'GasECharts', + name: 'ECharts', methods: { drawChart: function () { const myChart = this.$echarts.init(this.$refs.main) @@ -88,7 +96,7 @@ xAxis: { type: 'category', boundaryGap: false, - data: ['12:00:01', '12:00:02', '12:00:03', '12:00:04', '12:00:05', '12:00:06', '12:00:07'], + data: ['2021.01.01', '2021.01.02', '2021.01.03', '2021.01.04', '2021.01.05', '2021.01.06', '2021.01.07'], axisLabel: { // x杞村叏閮ㄦ樉绀� rotate: 20, interval: 0, @@ -174,10 +182,23 @@ </script> <style scoped lang="less"> + .Infomation{ + margin-left: 10px; + } + .el-tag{ + height: 25px; + line-height: 25px; + margin-right: 10px; + font-size: 10px; + background-color: rgba(0, 255, 246, 0.14); + color: #00d0f9; + border: none; + padding: 0 15px; + } #echarts{ margin: 0; padding: 0; border: 1px solid #396d83; - /*margin: 10px 10px 10px 10px;*/ + margin: 10px 10px 10px 10px; } </style> diff --git a/src/components/BaseNav/PublicBounced/GasComponents/EchartsTab.vue b/src/components/BaseNav/PublicBounced/GasComponents/EchartsTab.vue deleted file mode 100644 index 1ab150f..0000000 --- a/src/components/BaseNav/PublicBounced/GasComponents/EchartsTab.vue +++ /dev/null @@ -1,33 +0,0 @@ -<template> - <div class="Infomation"> - <el-tag>姘哀鍖栫墿: 29.93 鏍囧噯: 100</el-tag> - <el-tag>浜屾哀鍖栫~: 17.34鏍囧噯: 50</el-tag> - <el-tag>鐑熷皹: 6.93鏍囧噯: 30</el-tag> - <el-tag>搴熸皵娴侀噺: 120343.18</el-tag> - </div> -</template> - -<script> -export default { - name: 'EchartsTab', - props: ['displayContent'], - data () { - return {} - } -} -</script> - -<style scoped lang="less"> - .Infomation{ - margin-left: 10px; - } - .el-tag{ - height: 25px; - line-height: 25px; - margin-right: 10px; - font-size: 10px; - background-color: rgba(0, 255, 246, 0.14); - color: #00d0f9; - border: none; - } -</style> diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue deleted file mode 100644 index ff172eb..0000000 --- a/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue +++ /dev/null @@ -1,112 +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="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: ['displayContent'], - data () { - return {} - } -} -</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/GasTable.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue deleted file mode 100644 index e69de29..0000000 --- a/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue +++ /dev/null diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasTabs.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasTabs.vue deleted file mode 100644 index 23814fc..0000000 --- a/src/components/BaseNav/PublicBounced/GasComponents/GasTabs.vue +++ /dev/null @@ -1,79 +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> - <el-tabs type="card" v-model="activeName"> - <el-tab-pane label="瀹炶瘯鏁版嵁" name="first"> - <EchartsTab></EchartsTab> - <GasECharts></GasECharts> - </el-tab-pane> - <el-tab-pane label="鏃ユ暟鎹�" name="second"><EchartsTab></EchartsTab><GasECharts></GasECharts></el-tab-pane> - <el-tab-pane label="鏈堟暟鎹�" name="third"><EchartsTab></EchartsTab><GasECharts></GasECharts></el-tab-pane> - <el-tab-pane label="浜哄伐鏁版嵁" name="fourth"><EchartsTab></EchartsTab><GasECharts></GasECharts></el-tab-pane> - </el-tabs> - </div> -</template> - -<script> -import GasECharts from './GasECharts' -import EchartsTab from './EchartsTab' - -export default { - name: 'GasTabs', - components: { - GasECharts, - EchartsTab - }, - data () { - return { - activeName: 'first' - } - }, - methods: { - } -} - -</script> - -<style scoped> - .win { - position: relative; - margin-bottom: 13px; - background-color: rgba(33, 41, 69,0.9); - border: 0.8px solid #396d83; - } - .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/PublicChart.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue new file mode 100644 index 0000000..db99764 --- /dev/null +++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue @@ -0,0 +1,103 @@ +<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> + <ul class="tab"> + <li @click='tabTaggle("ECharts")'>瀹炶瘯鏁版嵁</li> + <li @click='tabTaggle("ECharts")'>鏃ユ暟鎹�</li> + <li @click='tabTaggle("ECharts")'>鏈堟暟鎹�</li> + <li @click='tabTaggle("ECharts")'>浜哄伐鏁版嵁</li> + </ul> + <component :is="currentTab"></component> + </div> +</template> + +<script> +import ECharts from './ECharts' + +export default { + name: 'PublicChart', + components: { + ECharts + }, + data () { + return { + currentTab: 'ECharts' + } + }, + methods: { + tabTaggle (taggleMenu) { + this.currentTab = taggleMenu + } + } +} + +</script> + +<style scoped> + *{ + margin: 0; + padding: 0; + list-style: none; + } + .win { + position: relative; + margin-bottom: 13px; + background-color: rgba(33, 41, 69,0.9); + border: 0.8px solid #396d83; + } + .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; + } + .tab{ + display: flex; + border-bottom: 1px solid #396d83; + margin-bottom: 10px; + } + li{ + background-color: #243a55; + margin: 10px 10px 2px 10px; + /*padding: 5px 10px;*/ + width: 90px; + height: 25px; + line-height: 25px; + text-align: center; + border-radius: 5px; + } + ul li:hover{ + background-color: #0e639e; + color: #682000; + cursor: pointer; + } +</style> diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue index a6b9aa8..a35207d 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: [] } } } @@ -71,7 +60,7 @@ .main-video { width: 100%; - min-height: 195px; + min-height: 164px; video { width: 100%; diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue new file mode 100644 index 0000000..b8ea76b --- /dev/null +++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicTabs.vue @@ -0,0 +1,142 @@ +<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"> + <div v-if="value === 'feiqi'"> + <el-row type="flex" class="row-bg row-item-one" justify="space-around"> + <el-col :span="8">鐩戞祴鐐瑰悕绉�:{{ setWasteGasdata.Name }}</el-col> + <el-col :span="8">鐢熶骇鍗曚綅:{{ setWasteGasdata.porltName }}</el-col> + <el-col :span="8">鎺掓斁绫诲瀷鍚嶇О:{{ setWasteGasdata.MonTypeName }}</el-col> + </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-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 === 'feishui'"> + <el-row type="flex" class="row-bg row-item-one" justify="space-around"> + <el-col :span="8">鐩戞祴鐐瑰悕绉�:{{ setWasteGasdata.Name }}</el-col> + <el-col :span="8">鐢熶骇鍗曚綅:{{ setWasteGasdata.porltName }}</el-col> + <el-col :span="8">鎺掓斁绫诲瀷鍚嶇О:{{ setWasteGasdata.MonTypeName }}</el-col> + </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-row> + </div> + </div> + </div> + </div> +</template> + +<script> +export default { + name: 'GasTable', + props: ['displayContentTab', 'value', 'setWasteGasdata'], + data () { + return { + displayContentTab2: [] + } + }, + mounted () { + this.$nextTick(() => { + this.displayContentTab.forEach(item => { + this.displayContentTab2 = item + console.log(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 fa40860..7ef971b 100644 --- a/src/components/BaseNav/PublicBounced/PublicBounced.vue +++ b/src/components/BaseNav/PublicBounced/PublicBounced.vue @@ -6,14 +6,14 @@ </div> <div class="public-bounced-content"> <div class="public-bounced-content-left"> - <GasTab :displayContent="displayContentTab" ></GasTab> + <PublicTabs :displayContentTab="displayContentTab" :value="value" :setWasteGasdata="setWasteGasdata"></PublicTabs> <div class="public-bounced-content-left-bottom"> <PublicTable v-if="value === 'gufei'"></PublicTable> - <GasECharts v-else></GasECharts> + <PublicChart v-else></PublicChart> </div> </div> <div class="public-bounced-content-right"> - <GasVideo></GasVideo> + <PublicVideo></PublicVideo> </div> </div> </div> @@ -22,34 +22,42 @@ <script> import '@/components/BaseNav/SolidWaste/directive/dir' -import GasTab from '@components/BaseNav/PublicBounced/GasComponents/GasTab' +import PublicTabs from '@components/BaseNav/PublicBounced/GasComponents/PublicTabs' import PublicTable from '@components/BaseNav/PublicBounced/GasComponents/PublicTable' -import GasECharts from '@components/BaseNav/PublicBounced/GasComponents/GasECharts' -import GasVideo from '@components/BaseNav/PublicBounced/GasComponents/GasVideo' -// import GasTabs from './GasComponents/GasTabs' +import PublicVideo from '@components/BaseNav/PublicBounced/GasComponents/PublicVideo' +import PublicChart from './GasComponents/PublicChart' export default { name: 'PublicBounced', components: { - GasTab, + PublicTabs, PublicTable, - GasECharts, - GasVideo + PublicChart, + PublicVideo }, data () { return { + setWasteGasdata: '', displayContentTitle: '', displayContentTab: '', - flag: false + displayContentTable: '', + flag: false, + value: '' } }, 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 + }, + setGasData (data, value) { + this.setWasteGasdata = data + this.displayContentTitle = data.Name this.flag = true this.value = value }, 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 574ed9f..4ecd0e0 100644 --- a/src/components/LayerController/logic/WasteGas.js +++ b/src/components/LayerController/logic/WasteGas.js @@ -56,7 +56,8 @@ // const result = await mapApi.getWasteGas(dataValue) const PublicBounced = window.Vue.extend(publicBounced) const instance = new PublicBounced() - instance.setData(e.layer.options.test) + instance.setGasData(e.layer.options.test, 'feiqi') + console.log(e.layer.options.test) instance.$mount() document.body.appendChild(instance.$el) } diff --git a/src/components/LayerController/logic/WasteWater.js b/src/components/LayerController/logic/WasteWater.js index 5a568e9..210afcd 100644 --- a/src/components/LayerController/logic/WasteWater.js +++ b/src/components/LayerController/logic/WasteWater.js @@ -52,13 +52,15 @@ this.clickListener = async (e) => { // console.log(e) this.animalService.pulseEffect(e.latlng) - const dataValue = { - StoragePlaceId: e.layer.options.test.StoragePlaceId - } - const result = await mapApi.getWasteWater(dataValue) + // const dataValue = { + // StoragePlaceId: e.layer.options.test.StoragePlaceId + // } + // const result = await mapApi.getWasteWater(dataValue) + // console.log(result) const PublicBounced = window.Vue.extend(publicBounced) const instance = new PublicBounced() - instance.setData(result) + instance.setGasData(e.layer.options.test, 'feishui') + console.log(e.layer.options.test) instance.$mount() document.body.appendChild(instance.$el) } diff --git a/src/components/LayerController/service/AnimalService.js b/src/components/LayerController/service/AnimalService.js index 9a80b7f..687b6e7 100644 --- a/src/components/LayerController/service/AnimalService.js +++ b/src/components/LayerController/service/AnimalService.js @@ -4,8 +4,9 @@ class AnimalService { constructor (config) { this.intervals = [] // 瀹氭椂鍣ㄥ垪琛� + // todo 杩欑鎯呭喌涓�鑸敤 window绾х殑L銆乵ap杩樻槸浼犻�掑憿 this.L = config.L - this.layer = config.layer + this.layer = window.map this.times = config.times || 5 this.colors = ['#98FB98', '#ff0000'] } diff --git a/src/components/icon-btn/IconBtn.vue b/src/components/icon-btn/IconBtn.vue deleted file mode 100644 index 4c618b8..0000000 --- a/src/components/icon-btn/IconBtn.vue +++ /dev/null @@ -1,221 +0,0 @@ -<template> - <div class="float-panel"> - <div :class='["btn",active ? "active" : ""]' @click="onClick"> - <span> - <img :src="src" alt="" width="26px" style="display: block;margin: auto"> - <span class="icon-name">{{label}}</span> - </span> - </div> - </div> -</template> - -<script> -import '@assets/css/map/magic.min.css' - -import iconSetting from '@/assets/images/map-pages/icon/setting.png' - -export default { - name: 'LayerController', - props: { - src: String, - label: String, - active: Object, - onClick: Function - }, - computed: { - map () { - return this.$store.state.map.map - }, - L () { - return this.$store.state.map.L - }, - layerHelper () { - return this.$store.state.map.layerHelper - } - }, - data () { - return { - width: '250px', - isShow: true, - icons: { - setting: iconSetting - }, - layerControllerVisible: false, - panelSwitch: { - main: true // 涓荤獥鍙� - } - } - }, - mounted () { - this.$nextTick(function () { - this.init() - }) - }, - methods: { - } -} -</script> - -<style lang="less"> - .float-panel { - position: absolute; - left: 2px; - top: 120px; - height: auto; - font-size: 11px; - z-index: 1000; - - div { - color: #00fff6; - } - .btn { - width:45px; - text-align: center; - background: rgba(0, 16, 30, 0.5); - cursor: pointer; - color: #00fff6; - border: 0.00521rem solid #00fff6; - box-shadow: 0 0 0.03rem #00fff6; - } - .active { - border: 0.00521rem solid #fff700; - box-shadow: 0 0 0.03rem #fff700; - } - .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-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; - } - ::-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/panel/LegendPanel.vue b/src/components/panel/LegendPanel.vue index 383aea2..b3c4784 100644 --- a/src/components/panel/LegendPanel.vue +++ b/src/components/panel/LegendPanel.vue @@ -2,13 +2,13 @@ <div class="legend-panel"> <transition name="fade"> <div :class="'legend-content map-background'" v-show="legendControl"> - <div class="legend-content-box" v-for="(item,index) in legendContents" :key="index"> - <p><span>{{ item.title }}</span></p> - <div :class="index === 5 ? '':'map-under-line'"></div> + <div class="legend-content-box" v-for="(item,index) in serviceLayers" :key="index"> + <p><span>{{ item.name }}</span></p> + <div class="map-under-line"></div> <ul> - <li v-for="(ite,inde) in item.items" :key="inde"> + <li v-for="(ite,inde) in item.layers" :key="inde"> <img :src='ite.legendImage' alt=''> - <span>{{ ite.legendContent }}</span> + <span>{{ ite.name }}</span> </li> </ul> </div> @@ -28,111 +28,12 @@ data () { return { // 鎺у埗鍥句緥 鍐呭鐨� 鏄剧ず/闅愯棌 - legendControl: false, - // 鍥鹃噷瀛樺偍鏁版嵁 - legendContents: [ - { - title: '浼佷笟', - items: [ - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '涓浗鐭冲寲' - }, - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '娌圭敯浼佷笟 ' - }, - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '鐐煎寲浼佷笟' - }, - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '閿�鍞紒涓�' - } - ] - }, - { - title: '姘存儏', - items: [ - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '姘存枃绔�' - } - ] - }, - { - title: '绠$嚎', - items: [ - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '澶╃劧姘旂绾�' - }, - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '澶╃劧姘斿満绔�' - }, - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '鎴愬搧娌圭绾�' - }, - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '鎴愬搧娌瑰満绔�' - } - ] - }, - { - title: '鍙伴', - items: [ - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '鍙伴瀹炴祴涓績' - }, - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '鍙伴瀹炴祴璺緞' - }, - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '鍙伴棰勬祴涓績' - }, - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '鍙伴棰勬祴璺緞' - }, - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '鍙伴褰撳墠涓績' - } - ] - }, - { - title: '闄嶆按绛夌骇(鍗曚綅锛歮m)', - items: [ - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '灏忛洦0-5' - }, - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '涓洦5-10' - }, - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '澶ч洦10-20' - }, - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '鏆撮洦20-50' - }, - { - legendImage: '../.././assets/images/map-pages/setting.png', - legendContent: '澶ф毚闆�50-100' - } - ] - } - ] + legendControl: false + } + }, + computed: { + serviceLayers () { + return this.$store.state.map.serviceLayers.LayerSewersLine } }, methods: { diff --git a/src/components/panel/RightSearchPanel.vue b/src/components/panel/RightSearchPanel.vue index cbce13b..f3c049f 100644 --- a/src/components/panel/RightSearchPanel.vue +++ b/src/components/panel/RightSearchPanel.vue @@ -96,7 +96,7 @@ console.log(done) }, selected (val) { - console.log(val) + // console.log(val) this.topicList.forEach((itm) => { itm.checked = val.name === itm.name }) diff --git a/src/components/panel/topicSearch/GasWasteSearch.vue b/src/components/panel/topicSearch/GasWasteSearch.vue index e69de29..245b226 100644 --- a/src/components/panel/topicSearch/GasWasteSearch.vue +++ b/src/components/panel/topicSearch/GasWasteSearch.vue @@ -0,0 +1,244 @@ +<template> + <div class="solidwaste-search" v-if="judgeVisible"> + <div class="search-title"> + <span>搴熸皵</span> + <!-- <span>{{ title }}</span>--> + </div> + <div class="search-panel "> + <el-form ref="form" :model="form" label-width="90px" class="search-form"> + <el-form-item v-for="(item,index) in solidWasteTypeOptions" :key="index" :label="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-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> + <div class="search-radio"> + <el-radio v-model="radio" label="1">鍏ㄩ儴</el-radio> + <el-radio v-model="radio" label="2">姝e父</el-radio> + <el-radio v-model="radio" label="3">瓒呮爣</el-radio> + <el-radio v-model="radio" label="4">寮傚父</el-radio> + <el-radio v-model="radio" label="5">鍋滀骇</el-radio> + </div> + </el-form> + <div> + <el-card class="box-card" v-for="(item,index) in searchDataDisplay" :key="index"> + <div v-if="total > 3"> + {{ item.CompanyName }} + </div> + </el-card> +<!-- <el-pagination--> +<!-- small--> +<!-- layout="prev, pager, next"--> +<!-- :total=total--> +<!-- :current-page=1--> +<!-- class="warnPagination"--> +<!-- >--> +<!-- </el-pagination>--> + </div> + <!-- <el-scrollbar style="height:100%">--> + <!-- <el-card class="footer-page">--> + <!-- <ul>--> + <!-- {{ searchDataDisplay }}--> + <!-- <li v-for="(item,index) in searchDataDisplay" :key="index">--> + <!-- {{ item.CompanyName }}--> + <!-- </li>--> + <!-- </ul>--> + <!-- </el-card>--> + <!-- <el-pagination--> + <!-- small--> + <!-- @current-change="handlePage"--> + <!-- :page-size=pageSize--> + <!-- layout="prev, pager, next"--> + <!-- :total=total--> + <!-- :current-page=current--> + <!-- class="warnPagination"--> + <!-- >--> + <!-- </el-pagination>--> + <!-- </el-card>--> + <!-- </el-scrollbar>--> + </div> + </div> +</template> + +<script> + +import mapApi from '@/api/mapApi' + +export default { + name: 'SolidWasteSearch', + props: ['title'], + data () { + return { + judgeVisible: true, + solidWasteTypeOptions: [{ + value: '1', + label: '鍖哄煙', + options: [{ + value: '1', + layerName: '鍥哄簾', + key: 'pipename', + label: '鍏ㄩ儴鍥哄簾' + }], + labelList: [{ + label: '杈撻�佷粙璐�', + key: 'mediumtype' + }, { + label: '闀垮害(m)', + key: 'length' + }] + }, { + value: '2', + label: '浼佷笟鍚嶇О', + options: [{ + value: '1', + layerName: '鍥哄簾', + key: 'pipename', + label: '鍏ㄩ儴鍥哄簾' + }], + labelList: [{ + label: '杈撻�佷粙璐�', + key: 'mediumtype' + }, { + label: '闀垮害(m)', + key: 'length' + }] + }, { + value: '3', + label: '浜岀骇鍗曚綅', + options: [{ + value: '1', + layerName: '鍥哄簾', + key: 'pipename', + label: '鍏ㄩ儴鍥哄簾' + }], + labelList: [{ + label: '杈撻�佷粙璐�', + key: 'mediumtype' + }, { + label: '闀垮害(m)', + key: 'length' + }] + }, { + value: '4', + label: '浼佷笟鍚嶇О', + options: [{ + value: '1', + layerName: '鍥哄簾', + key: 'pipename', + label: '鍏ㄩ儴鍥哄簾' + }], + labelList: [{ + label: '杈撻�佷粙璐�', + key: 'mediumtype' + }, { + label: '闀垮害(m)', + key: 'length' + }] + }], + radio: '1', + form: { + keyword: '杈撳叆鍏抽敭瀛�' + }, + searchDataDisplay: [], + total: 0 + } + }, + 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 + }, + // 鐐瑰嚮鎼滅储瀹炵幇鏁版嵁鐨勬悳绱㈠睍绀� + async handleSearch () { + // console.log(this.form.keyword) + const result = await mapApi.getWasteGas() + console.log(result) + this.searchDataDisplay = result.Result.DataInfo + this.total = result.Result.DataInfo.length + }, + 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> + +.solidwaste-search { + position: relative; + overflow: hidden; + background-color: #365e60; + + .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; + margin-top: 13px; + } + } + + /deep/ input:focus { + border-color: @color; + } + } + + .search-btn { + + } + + /deep/.search-radio { + margin: 6px 0; + display: flex; + flex-wrap: wrap; + //justify-content: flex-end; + //align-content: space-between; + .el-radio { + color: #ffffff!important; + line-height: 2; + .el-radio__label{ + padding-left: 0px; + } + } + } + + .location-btn:hover, .el-input__icon:hover { + color: @color; + cursor: pointer; + } + + .box-card { + margin: 15px auto; + } +} +</style> diff --git a/src/components/panel/topicSearch/SolidWasteSearch.vue b/src/components/panel/topicSearch/SolidWasteSearch.vue index e69de29..87b3911 100644 --- a/src/components/panel/topicSearch/SolidWasteSearch.vue +++ b/src/components/panel/topicSearch/SolidWasteSearch.vue @@ -0,0 +1,234 @@ +<template> + <div class="solidwaste-search" v-if="judgeVisible"> + <div class="search-title"> + <span>鍥哄簾</span> + <!-- <span>{{ title }}</span>--> + </div> + <div class="search-panel "> + <el-form ref="form" :model="form" label-width="90px" class="search-form"> + <el-form-item v-for="(item,index) in solidWasteTypeOptions" :key="index" :label="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> + <div class="search-radio"> + <el-radio v-model="radio" label="1">鍏ㄩ儴</el-radio> + <el-radio v-model="radio" label="2">姝e父</el-radio> + <el-radio v-model="radio" label="3">棰勮</el-radio> + </div> + <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> + <el-card class="box-card" + v-for="(item,index) in searchDataDisplay.slice((currentPage-1)*PageSize,currentPage*PageSize)" + :key="index"> + <div v-if="totalCount > 0"> + {{ item.CompanyName }} + </div> + </el-card> + <div class="search-pagination"> + <el-pagination + small + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + :current-page="currentPage" + :page-sizes="[1, 2, 3]" + :page-size="1" + layout="total, sizes, prev, pager, next, jumper" + :total='totalCount'> + </el-pagination> + </div> + </div> + <!-- <el-scrollbar style="height:100%">--> + <!-- </el-scrollbar>--> + </div> +</template> + +<script> + +import mapApi from '@/api/mapApi' + +export default { + name: 'SolidWasteSearch', + props: ['title'], + data () { + return { + judgeVisible: true, + solidWasteTypeOptions: [{ + value: '1', + label: '鍖哄煙', + options: [{ + value: '1', + layerName: '鍥哄簾', + key: 'pipename', + label: '鍏ㄩ儴鍥哄簾' + }], + labelList: [{ + label: '杈撻�佷粙璐�', + key: 'mediumtype' + }, { + label: '闀垮害(m)', + key: 'length' + }] + }, { + value: '2', + label: '浼佷笟鍚嶇О', + options: [{ + value: '1', + layerName: '鍥哄簾', + key: 'pipename', + label: '鍏ㄩ儴鍥哄簾' + }], + labelList: [{ + label: '杈撻�佷粙璐�', + key: 'mediumtype' + }, { + label: '闀垮害(m)', + key: 'length' + }] + }, { + value: '3', + label: '浜岀骇鍗曚綅', + options: [{ + value: '1', + layerName: '鍥哄簾', + key: 'pipename', + label: '鍏ㄩ儴鍥哄簾' + }], + labelList: [{ + label: '杈撻�佷粙璐�', + key: 'mediumtype' + }, { + label: '闀垮害(m)', + key: 'length' + }] + }, { + value: '4', + label: '浼佷笟鍚嶇О', + options: [{ + value: '1', + layerName: '鍥哄簾', + key: 'pipename', + label: '鍏ㄩ儴鍥哄簾' + }], + labelList: [{ + label: '杈撻�佷粙璐�', + key: 'mediumtype' + }, { + label: '闀垮害(m)', + key: 'length' + }] + }], + radio: '1', + form: { + keyword: '鍥哄簾闈㈡澘鏁版嵁鏌ヨ', + // 鏁版嵁鐨勪紶閫� + transferData: '' + }, + searchDataDisplay: [], + // 榛樿鏄剧ず绗嚑椤� + currentPage: 1, + // 鎬绘潯鏁帮紝鏍规嵁鎺ュ彛鑾峰彇鏁版嵁闀垮害(娉ㄦ剰锛氳繖閲屼笉鑳戒负绌�) + totalCount: 1, + // 涓暟閫夋嫨鍣紙鍙慨鏀癸級 + pageSizes: [1, 2, 3, 4], + // 榛樿姣忛〉鏄剧ず鐨勬潯鏁帮紙鍙慨鏀癸級 + PageSize: 1 + } + }, + methods: { + // 姣忛〉鏄剧ず鐨勬潯鏁� + handleSizeChange (val) { + this.PageSize = val + this.currentPage = 1 + }, + // 鏄剧ず绗嚑椤� + handleCurrentChange (val) { + this.currentPage = val + }, + handlePipelineType (val) { + // console.log(val) + this.solidWasteTypeOptions.forEach(item => { + // console.log(item.value) + if (val === item.value) { + // console.log('鏁版嵁閫夋嫨鐩稿悓') + // 鎺ユ敹鏁版嵁 鐢ㄤ簬涔嬪悗鎺ュ彛鏁版嵁鐨勮皟鐢� + // this.form.transferData = item.value + this.handleSearch(item.value) + } + }) + }, + // 鐐瑰嚮鎼滅储瀹炵幇鏁版嵁鐨勬悳绱㈠睍绀� + async handleSearch (data) { + // console.log(this.form.keyword) + const result = await mapApi.getSolidWasteSurveyDetail(data) + // console.log(result) + this.searchDataDisplay = result.Result.DataInfo + this.totalCount = result.Result.DataInfo.length + } + } +} +</script> + +<style lang="less" scoped> + +.solidwaste-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 { + + } + + .search-radio { + margin: 15px auto; + display: flex; + align-items: center; + justify-content: space-around; + } + + .location-btn:hover, .el-input__icon:hover { + color: @color; + cursor: pointer; + } + + .box-card { + margin: 15px auto; + } + + .search-pagination { + padding: 0; + margin: 15px auto; + } +} +</style> diff --git a/src/components/panel/topicSearch/WaterWasteSearch.vue b/src/components/panel/topicSearch/WaterWasteSearch.vue index e69de29..90234cb 100644 --- a/src/components/panel/topicSearch/WaterWasteSearch.vue +++ b/src/components/panel/topicSearch/WaterWasteSearch.vue @@ -0,0 +1,244 @@ +<template> + <div class="solidwaste-search" v-if="judgeVisible"> + <div class="search-title"> + <span>搴熸按</span> + <!-- <span>{{ title }}</span>--> + </div> + <div class="search-panel "> + <el-form ref="form" :model="form" label-width="90px" class="search-form"> + <el-form-item v-for="(item,index) in solidWasteTypeOptions" :key="index" :label="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-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> + <div class="search-radio"> + <el-radio v-model="radio" label="1">鍏ㄩ儴</el-radio> + <el-radio v-model="radio" label="2">姝e父</el-radio> + <el-radio v-model="radio" label="3">瓒呮爣</el-radio> + <el-radio v-model="radio" label="4">寮傚父</el-radio> + <el-radio v-model="radio" label="5">鍋滀骇</el-radio> + </div> + </el-form> + <div> + <el-card class="box-card" v-for="(item,index) in searchDataDisplay" :key="index"> + <div v-if="total > 3"> + {{ item.CompanyName }} + </div> + </el-card> + <!-- <el-pagination--> + <!-- small--> + <!-- layout="prev, pager, next"--> + <!-- :total=total--> + <!-- :current-page=1--> + <!-- class="warnPagination"--> + <!-- >--> + <!-- </el-pagination>--> + </div> + <!-- <el-scrollbar style="height:100%">--> + <!-- <el-card class="footer-page">--> + <!-- <ul>--> + <!-- {{ searchDataDisplay }}--> + <!-- <li v-for="(item,index) in searchDataDisplay" :key="index">--> + <!-- {{ item.CompanyName }}--> + <!-- </li>--> + <!-- </ul>--> + <!-- </el-card>--> + <!-- <el-pagination--> + <!-- small--> + <!-- @current-change="handlePage"--> + <!-- :page-size=pageSize--> + <!-- layout="prev, pager, next"--> + <!-- :total=total--> + <!-- :current-page=current--> + <!-- class="warnPagination"--> + <!-- >--> + <!-- </el-pagination>--> + <!-- </el-card>--> + <!-- </el-scrollbar>--> + </div> + </div> +</template> + +<script> + +import mapApi from '@/api/mapApi' + +export default { + name: 'SolidWasteSearch', + props: ['title'], + data () { + return { + judgeVisible: true, + solidWasteTypeOptions: [{ + value: '1', + label: '鍖哄煙', + options: [{ + value: '1', + layerName: '鍥哄簾', + key: 'pipename', + label: '鍏ㄩ儴鍥哄簾' + }], + labelList: [{ + label: '杈撻�佷粙璐�', + key: 'mediumtype' + }, { + label: '闀垮害(m)', + key: 'length' + }] + }, { + value: '2', + label: '浼佷笟鍚嶇О', + options: [{ + value: '1', + layerName: '鍥哄簾', + key: 'pipename', + label: '鍏ㄩ儴鍥哄簾' + }], + labelList: [{ + label: '杈撻�佷粙璐�', + key: 'mediumtype' + }, { + label: '闀垮害(m)', + key: 'length' + }] + }, { + value: '3', + label: '浜岀骇鍗曚綅', + options: [{ + value: '1', + layerName: '鍥哄簾', + key: 'pipename', + label: '鍏ㄩ儴鍥哄簾' + }], + labelList: [{ + label: '杈撻�佷粙璐�', + key: 'mediumtype' + }, { + label: '闀垮害(m)', + key: 'length' + }] + }, { + value: '4', + label: '浼佷笟鍚嶇О', + options: [{ + value: '1', + layerName: '鍥哄簾', + key: 'pipename', + label: '鍏ㄩ儴鍥哄簾' + }], + labelList: [{ + label: '杈撻�佷粙璐�', + key: 'mediumtype' + }, { + label: '闀垮害(m)', + key: 'length' + }] + }], + radio: '1', + form: { + keyword: '杈撳叆鍏抽敭瀛�' + }, + searchDataDisplay: [], + total: 0 + } + }, + 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 + }, + // 鐐瑰嚮鎼滅储瀹炵幇鏁版嵁鐨勬悳绱㈠睍绀� + async handleSearch () { + // console.log(this.form.keyword) + const result = await mapApi.getWasteWater() + console.log(result) + this.searchDataDisplay = result.Result.DataInfo + this.total = result.Result.DataInfo.length + }, + 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> + + .solidwaste-search { + position: relative; + overflow: hidden; + /*background-color: #365e60;*/ + + .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; + margin-top: 13px; + } + } + + /deep/ input:focus { + border-color: @color; + } + } + + .search-btn { + + } + + /deep/.search-radio { + margin: 6px 0; + display: flex; + flex-wrap: wrap; + //justify-content: flex-end; + //align-content: space-between; + .el-radio { + color: #ffffff!important; + line-height: 2; + .el-radio__label{ + padding-left: 0px; + } + } + } + + .location-btn:hover, .el-input__icon:hover { + color: @color; + cursor: pointer; + } + + .box-card { + margin: 15px auto; + } + } +</style> diff --git a/src/conf/layers/LayerSolidWaste.js b/src/conf/layers/LayerSolidWaste.js index c81dc8b..fb49c33 100644 --- a/src/conf/layers/LayerSolidWaste.js +++ b/src/conf/layers/LayerSolidWaste.js @@ -2,6 +2,7 @@ * 鍥哄簾鍥惧眰 * @type {string} */ + export const LayerSolidWaste = { code: 'solidWaste', name: '鍥哄簾', -- Gitblit v1.8.0