From 1250621ab9ea6ea93911be0f283c3bfcdceb0667 Mon Sep 17 00:00:00 2001 From: chenyibo <p-honggang.li@pcitc.com> Date: 星期二, 30 三月 2021 18:03:59 +0800 Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop --- src/components/LayerController/service/AnimalService.js | 37 +++ src/components/BaseNav/SolidWaste/directive/directive.js | 77 +++++++ src/components/BaseNav/WasteWater/WasteWater.js | 21 + src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue | 18 src/assets/images/map-pages/basenav/flugas/exhaust/fq_orange.png | 0 src/api/SolidWaste/index.js | 6 src/assets/images/map-pages/basenav/flugas/exhaust/fq_green_xc.png | 0 src/components/BaseNav/SolidWaste/SolidWaste.js | 59 ++-- src/components/LayerController/service/WmsLayerService.js | 6 src/assets/images/map-pages/basenav/flugas/exhaust/fq_green.png | 0 src/components/LayerController/service/WfsLayerService.js | 14 src/conf/Constants.js | 3 src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue | 0 src/components/BaseNav/SolidWaste/directive/dir.js | 0 src/components/BaseNav/SolidWaste/directive/index.js | 14 + src/components/LayerController/logic/WasteGas.js | 46 ++++ src/assets/images/map-pages/basenav/flugas/exhaust/fq_blue.png | 0 src/assets/images/map-pages/basenav/flugas/exhaust/fq_gray.png | 0 src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue | 194 ++++++++++------ src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue | 65 ++--- src/components/LayerController/logic/Sample.js | 4 src/views/MapTemplate.vue | 2 src/components/LayerController/service/LayerFactory.js | 27 +- src/components/BaseNav/PublicBounced/PublicBounced.vue | 15 src/assets/images/map-pages/basenav/flugas/exhaust/fq_bright_green.png | 0 src/components/LayerController/service/BusiLayerService.js | 13 src/assets/images/map-pages/basenav/flugas/exhaust/fq_yellow.png | 0 src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue | 22 - src/assets/images/map-pages/basenav/flugas/exhaust/fq_red.png | 0 29 files changed, 428 insertions(+), 215 deletions(-) diff --git a/src/api/SolidWaste/index.js b/src/api/SolidWaste/index.js new file mode 100644 index 0000000..b034763 --- /dev/null +++ b/src/api/SolidWaste/index.js @@ -0,0 +1,6 @@ +import $http from '@utils/axios' +// import Qs from 'qs' + +export const getSolidWaste = (data = {}) => { + return $http.get('/wasteSolid/getSolidWaste', data) +} diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_blue.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_blue.png new file mode 100644 index 0000000..93edcb3 --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_blue.png Binary files differ diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_bright_green.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_bright_green.png new file mode 100644 index 0000000..19b0397 --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_bright_green.png Binary files differ diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_gray.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_gray.png new file mode 100644 index 0000000..590b183 --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_gray.png Binary files differ diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green.png new file mode 100644 index 0000000..08e8a59 --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green.png Binary files differ diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green_xc.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green_xc.png new file mode 100644 index 0000000..acc7c10 --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_green_xc.png Binary files differ diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_orange.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_orange.png new file mode 100644 index 0000000..718f237 --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_orange.png Binary files differ diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_red.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_red.png new file mode 100644 index 0000000..5f93934 --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_red.png Binary files differ diff --git a/src/assets/images/map-pages/basenav/flugas/exhaust/fq_yellow.png b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_yellow.png new file mode 100644 index 0000000..169ce4d --- /dev/null +++ b/src/assets/images/map-pages/basenav/flugas/exhaust/fq_yellow.png Binary files differ diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue index 9084a18..675b787 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue @@ -7,10 +7,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-echarts"> - <div id="echarts" style="width:100%;height:100%" ref="main"></div> + <div id="echarts" ref="main"></div> + <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> - </div> </div> </template> @@ -22,18 +24,27 @@ const myChart = this.$echarts.init(this.$refs.main) const option = { title: { - text: '鎶樼嚎鍥惧爢鍙�' + // text: '鎶樼嚎鍥惧爢鍙�' }, - // color: '#fff', + color: ['#5470c6', '#91CC75', '#EE6666', '#FF0087'], tooltip: { - trigger: 'axis' + trigger: 'axis', + axisPointer: { + type: 'cross', + label: { + color: '#1a4245' + } + } }, - // legend: { - // data: ['閭欢钀ラ攢', '鑱旂洘骞垮憡', '瑙嗛骞垮憡', '鐩存帴璁块棶', '鎼滅储寮曟搸'] - // }, + legend: { + data: ['姘哀鍖栫墿', '浜屾哀鍖栫~', '鐑熷皹', '搴熸皵娴侀噺'] + // pageTextStyle: { + // color: '#fff' + // } + }, grid: { left: '3%', - right: '4%', + right: '3%', bottom: '3%', containLabel: true }, @@ -42,63 +53,98 @@ saveAsImage: {} } }, + // 鍥炬爣缂╂斁璁剧疆 + dataZoom: [{ + type: 'inside', + start: 0, + end: 100 + }, { + start: 0, + end: 100, + show: false, + // handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z', + handleSize: '80%', + handleStyle: { + color: '#fff', + shadowBlur: 3, + shadowColor: 'rgba(0, 0, 0, 0.6)', + shadowOffsetX: 2, + shadowOffsetY: 2 + } + }], + // x杞寸殑璁剧疆 xAxis: { type: 'category', boundaryGap: false, - data: ['鍛ㄤ竴', '鍛ㄤ簩', '鍛ㄤ笁', '鍛ㄥ洓', '鍛ㄤ簲', '鍛ㄥ叚', '鍛ㄦ棩'], - axisLabel: { + data: ['12:00:01', '12:00:02', '12:00:03', '12:00:04', '12:00:05', '12:00:06', '12:00:07'], + axisLabel: { // x杞村叏閮ㄦ樉绀� + rotate: 20, + interval: 0, textStyle: { - color: '#7edae8' // 鍧愭爣鐨勫瓧浣撻鑹� + color: '#fff' } }, - axisLine: { - show: false, // 闅愯棌鍧愭爣杞� + splitLine: { // 缃戞牸鍨傜洿绾夸负铏氱嚎 + show: true, lineStyle: { - color: '#00eeff' // 鍧愭爣杞寸殑棰滆壊 + type: 'dashed' + } + }, + axisTick: { // x 杞村埢搴︽樉绀� + show: false + }, + axisLine: { + lineStyle: { + color: '#FFFFFF', + width: 1 // 杩欓噷鏄负浜嗙獊鍑烘樉绀哄姞涓婄殑 } } }, + // Y 杞寸殑璁剧疆 yAxis: [{ type: 'value', + // name: yname, // 鍚庢湡鍥炬爣Y杞存樉绀哄崟浣� + name: '娴撳害(mg/m鲁)', axisLabel: { + formatter: '{value}', textStyle: { - color: '#7edae8' // 鍧愭爣鐨勫瓧浣撻鑹� + color: '#fff' // 鍧愭爣鐨勫瓧浣撻鑹� } }, + axisPointer: { + snap: true // 鑷姩鍚搁檮鏈�杩戠殑鐐� + }, + splitLine: { + show: false // y杞� 缃戞牸绾夸笉鏄剧ず + }, axisLine: { - show: false, // 闅愯棌鍧愭爣杞� lineStyle: { - color: '#00eeff' // 鍧愭爣杞寸殑棰滆壊 + color: '#ffffff', // 鍧愭爣杞寸殑棰滆壊 + width: 1 } } }], series: [ { - name: '閭欢钀ラ攢', + name: '姘哀鍖栫墿', type: 'line', stack: '鎬婚噺', data: [120, 132, 101, 134, 90, 230, 210] }, { - name: '鑱旂洘骞垮憡', - type: 'line', - stack: '鎬婚噺', - data: [220, 182, 191, 234, 290, 330, 310] - }, - { - name: '瑙嗛骞垮憡', + name: '浜屾哀鍖栫~', type: 'line', stack: '鎬婚噺', data: [150, 232, 201, 154, 190, 330, 410] }, { - name: '鐩存帴璁块棶', + name: '鐑熷皹', type: 'line', stack: '鎬婚噺', data: [320, 332, 301, 334, 390, 330, 320] }, { - name: '鎼滅储寮曟搸', + name: '搴熸皵娴侀噺', type: 'line', stack: '鎬婚噺', data: [820, 932, 901, 934, 1290, 1330, 1320] @@ -115,50 +161,48 @@ </script> <style scoped lang="less"> -.win { - width: 100%; - height: 100%; - position: relative; - //display: inline-block; - background-color: rgba(33, 41, 69,0.9); -} -.border_corner{ - z-index: 2500; - 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; -} -.main { - width: 100%; - height: 100%; - .main-echarts{ - border: 1px solid #396d83; - } -} + .win { + /*width: 100%;*/ + /*height: 100%;*/ + position: relative; + //display: inline-block; + background-color: rgba(33, 41, 69,0.9); + } + #echarts{ + width: 600px; + height: 260px; + } + .border_corner{ + z-index: 2500; + position: absolute; + width: 14px; + height: 14px; + background: rgba(0,0,0,0); + border: 2px 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-bottom-left-radius: 4px; + } + .border_corner_right_bottom{ + bottom: 0; + right: 0; + border-left: none; + border-top: none; + } </style> diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue index e05f59f..ebf7ddd 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue @@ -37,7 +37,6 @@ .win { position: relative; - //display: inline-block; margin-bottom: 13px; background-color: rgba(33, 41, 69,0.9); } @@ -46,7 +45,6 @@ height: 100%; .main-matter{ font-size: 13px; - padding: 9px 7px; font-weight: normal; border: 1px solid #396d83; .row-item-one{ @@ -56,7 +54,7 @@ width: 100%; color: #00d0f9; display: flex; - font-size: 12px!important; + font-size: 12px !important; .el-col{ flex: 1; width: 100%; @@ -73,7 +71,7 @@ } } .border_corner{ - z-index: 2500; + z-index: 999; position: absolute; width: 10px; height: 10px; @@ -104,20 +102,4 @@ border-left: none; border-top: none; } -//.el-row { -// width: 100%; -// color: #00d0f9; -// .el-col{ -// width: 180px; -// height: 28px; -// background-color: #243a55;; -// text-align: center; -// line-height: 28px; -// margin-left: 6px; -// border-radius: 4px; -// &:nth-child(1){ -// margin-left:0; -// } -// } -//} </style> diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue index fc152ab..93776b0 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue @@ -7,7 +7,7 @@ <div class="border_corner border_corner_right_bottom"></div> <div class="main"> <div class="main-video"> - <video width="100%" height="100%" controls> + <video controls> <source src="movie.mp4" type="video/mp4"> <source src="movie.ogg" type="video/ogg"> </video> @@ -24,23 +24,25 @@ <style scoped lang="less"> .win { - /*width: 100%;*/ - /*height: 100%;*/ position: relative; - //display: inline-block; background-color: rgba(33, 41, 69,0.9); -/*//border: 1px solid #396d83;*/ } .main { width: 100%; height: 100%; .main-video { - padding: 7px; - border: 1px solid #396d83; + //border: 1px solid #396d83; + width: 100%; + height: 100%; + video { + width: 100%; + height: 100%; + outline: none; + } } } .border_corner{ - z-index: 2500; + z-index: 999; position: absolute; width: 14px; height: 14px; diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue index 2c878b8..b9fae10 100644 --- a/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue +++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue @@ -1,53 +1,48 @@ <template> <div class="public-table"> - <table border="1"> - <tr> - <th>111</th> - <th>111</th> - <th>111</th> - <th>111</th> - <th>111</th> - <th>111</th> - </tr> - <tr> - <td>4444444444</td> - <td>4444444444</td> - <td>4444444444</td> - <td>4444444444</td> - <td>4444444444</td> - <td>4444444444</td> - </tr> - </table> + <el-col class="el-col"> + <el-table + border + tooltip-effect="dark" + :data="data" + > + <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> + </el-col> </div> </template> <script> export default { name: 'PublicTable', + props: ['requestSolidWasteData'], data () { return { - tableData: [{ - date: '2016-05-02', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�' - }, { - date: '2016-05-04', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�' - }, { - date: '2016-05-01', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�' - }, { - date: '2016-05-03', - name: '鐜嬪皬铏�', - address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�' - }] + data: [] + } + }, + mounted () { + this.$nextTick(() => { + this.getSolidWasteData() + }) + }, + methods: { + getSolidWasteData () { + // const data = requestSolidWasteData + // console.log(data) } } } </script> <style lang="less" scoped> +.public-table { +} </style> diff --git a/src/components/BaseNav/PublicBounced/PublicBounced.vue b/src/components/BaseNav/PublicBounced/PublicBounced.vue index 61286b1..0085f00 100644 --- a/src/components/BaseNav/PublicBounced/PublicBounced.vue +++ b/src/components/BaseNav/PublicBounced/PublicBounced.vue @@ -7,7 +7,7 @@ <div class="public-bounced-content"> <div class="public-bounced-content-left"> <GasTab :displayContent="displayContent"></GasTab> - <PublicTable v-if="value === 'gufei'"></PublicTable> + <PublicTable v-if="value === 'gufei'" :requestSolidWasteData="displayContent.StoragePlaceId"></PublicTable> <GasECharts v-else></GasECharts> </div> <div class="public-bounced-content-right"> @@ -19,7 +19,7 @@ <script> -import '@/components/BaseNav/SolidWaste/directive' +import '@/components/BaseNav/SolidWaste/directive/dir' import GasTab from '@components/BaseNav/PublicBounced/GasComponents/GasTab' import PublicTable from '@components/BaseNav/PublicBounced/GasComponents/PublicTable' import GasECharts from '@components/BaseNav/PublicBounced/GasComponents/GasECharts' @@ -54,10 +54,11 @@ <style lang="less" scoped> .public-bounced { + width: 75%; z-index: 999; position: absolute; - top: 50%; - left: 50%; + bottom: 5%; + left: 15%; background-color: #002432; border: 1px #9fc5c8 solid; @@ -82,16 +83,20 @@ } .public-bounced-content { + margin: 15px auto; display: flex; align-items: center; justify-content: space-around; .public-bounced-content-left { + width: 48%; + height: 100%; } .public-bounced-content-right { + width: 48%; + height: 100%; } } - } </style> diff --git a/src/components/BaseNav/SolidWaste/SolidWaste.js b/src/components/BaseNav/SolidWaste/SolidWaste.js index 6df5e3e..85f3235 100644 --- a/src/components/BaseNav/SolidWaste/SolidWaste.js +++ b/src/components/BaseNav/SolidWaste/SolidWaste.js @@ -67,7 +67,7 @@ // console.log(this.map.setCenter([e.target.getLatLng().lat, e.target.getLatLng().lng])) // this.map.flyTo([e.target.getLatLng().lat, e.target.getLatLng().lng]) // this.map.panTo([e.target.getLatLng().lat, e.target.getLatLng().lng], 100) - this.setPanTo(e.target.getLatLng(), 30) + this.setPanTo(e.target.getLatLng(), 250) this.EffectOfPulse(e.target.getLatLng()) this.SolidWastePopup.setData(data[i], 'gufei') return this.SolidWastePopup.$el @@ -87,8 +87,9 @@ position = this.map.latLngToLayerPoint(position) position.y += value position = this.map.layerPointToLatLng(position) - this.map.setView(position) - // this.map.flyTo(position) + // this.map.setView(position) + this.map.flyTo(position) + // this.map.panTo(position) } // 鍥哄簾鐐瑰嚮杩涜鐨� 鍐呭鐨勮缃� @@ -121,32 +122,32 @@ // 鑴夊啿鏁堟灉璁剧疆瀹炵幇 EffectOfPulse (position, markers, layerGroup) { // 鍖哄垎鐩存帴鎵ц 鍜屽垽鏂墽琛岀殑涓嶅悓鍖哄埆 - var differentColor = '' - if (markers) { - differentColor = '#ff0000' - } else { - differentColor = '#98FB98' - } - // 鍧愭爣鏁版嵁锛氭姤璀︿紶杩涙潵鐨勬槸鏁扮粍 / 鐐瑰嚮浼犺繘鏉ョ殑鏄痮bject - var FinalPosition = position instanceof Array ? { - lat: position[0], - lng: position[1] - } : position - // 鎻掍欢 鏁堟灉瀹炵幇 - var pulsingIcon = this.L.icon.pulse({ - iconSize: [20, 20], - color: differentColor, - fillColor: '' - }) - if (markers) { - // markers.push(this.L.marker(FinalPosition, { icon: pulsingIcon })) - // this.L.layerGroup(markers).addLayer(layerGroup) - } else { - var picGroupMarker = new this.L.FeatureGroup() - this.L.marker(FinalPosition, { icon: pulsingIcon }).addTo(picGroupMarker) - this.pulseHeighLightMarker = picGroupMarker.addTo(this.SolidWasteLayerGroup) - this.PulseCountSetting() - } + // var differentColor = '' + // if (markers) { + // differentColor = '#ff0000' + // } else { + // differentColor = '#98FB98' + // } + // // 鍧愭爣鏁版嵁锛氭姤璀︿紶杩涙潵鐨勬槸鏁扮粍 / 鐐瑰嚮浼犺繘鏉ョ殑鏄痮bject + // var FinalPosition = position instanceof Array ? { + // lat: position[0], + // lng: position[1] + // } : position + // // 鎻掍欢 鏁堟灉瀹炵幇 + // var pulsingIcon = this.L.icon.pulse({ + // iconSize: [20, 20], + // color: differentColor, + // fillColor: '' + // }) + // if (markers) { + // // markers.push(this.L.marker(FinalPosition, { icon: pulsingIcon })) + // // this.L.layerGroup(markers).addLayer(layerGroup) + // } else { + // var picGroupMarker = new this.L.FeatureGroup() + // this.L.marker(FinalPosition, { icon: pulsingIcon }).addTo(picGroupMarker) + // this.pulseHeighLightMarker = picGroupMarker.addTo(this.SolidWasteLayerGroup) + // this.PulseCountSetting() + // } } // 瀵瑰浘鏍囪剦鍐� 杩涜set璁剧疆 // 楂樹寒鍥惧眰 diff --git a/src/components/BaseNav/SolidWaste/directive.js b/src/components/BaseNav/SolidWaste/directive/dir.js similarity index 100% rename from src/components/BaseNav/SolidWaste/directive.js rename to src/components/BaseNav/SolidWaste/directive/dir.js diff --git a/src/components/BaseNav/SolidWaste/directive/directive.js b/src/components/BaseNav/SolidWaste/directive/directive.js new file mode 100644 index 0000000..a656af4 --- /dev/null +++ b/src/components/BaseNav/SolidWaste/directive/directive.js @@ -0,0 +1,77 @@ +export default { + bind (el, binding, vnode) { + const dialogHeaderEl = el.querySelector('.el-dialog__header') + const dragDom = el.querySelector('.el-dialog') + dialogHeaderEl.style.cssText += ';cursor:move;' + dragDom.style.cssText += ';top:0px;' + + // 鑾峰彇鍘熸湁灞炴�� ie dom鍏冪礌.currentStyle 鐏嫄璋锋瓕 window.getComputedStyle(dom鍏冪礌, null); + const getStyle = (function () { + if (window.document.currentStyle) { + return (dom, attr) => dom.currentStyle[attr] + } else { + return (dom, attr) => getComputedStyle(dom, false)[attr] + } + })() + + dialogHeaderEl.onmousedown = (e) => { + // 榧犳爣鎸変笅锛岃绠楀綋鍓嶅厓绱犺窛绂诲彲瑙嗗尯鐨勮窛绂� + const disX = e.clientX - dialogHeaderEl.offsetLeft + const disY = e.clientY - dialogHeaderEl.offsetTop + + const dragDomWidth = dragDom.offsetWidth + const dragDomHeight = dragDom.offsetHeight + + const screenWidth = document.body.clientWidth + const screenHeight = document.body.clientHeight + + const minDragDomLeft = dragDom.offsetLeft + const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth + + const minDragDomTop = dragDom.offsetTop + const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomHeight + + // 鑾峰彇鍒扮殑鍊煎甫px 姝e垯鍖归厤鏇挎崲 + let styL = getStyle(dragDom, 'left') + let styT = getStyle(dragDom, 'top') + + if (styL.includes('%')) { + styL = +document.body.clientWidth * (+styL.replace(/\%/g, '') / 100) + styT = +document.body.clientHeight * (+styT.replace(/\%/g, '') / 100) + } else { + styL = +styL.replace(/\px/g, '') + styT = +styT.replace(/\px/g, '') + } + + document.onmousemove = function (e) { + // 閫氳繃浜嬩欢濮旀墭锛岃绠楃Щ鍔ㄧ殑璺濈 + let left = e.clientX - disX + let top = e.clientY - disY + + // 杈圭晫澶勭悊 + if (-(left) > minDragDomLeft) { + left = -minDragDomLeft + } else if (left > maxDragDomLeft) { + left = maxDragDomLeft + } + + if (-(top) > minDragDomTop) { + top = -minDragDomTop + } else if (top > maxDragDomTop) { + top = maxDragDomTop + } + + // 绉诲姩褰撳墠鍏冪礌 + dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;` + + // emit onDrag event + vnode.child.$emit('dragDialog') + } + + document.onmouseup = function (e) { + document.onmousemove = null + document.onmouseup = null + } + } + } +} diff --git a/src/components/BaseNav/SolidWaste/directive/index.js b/src/components/BaseNav/SolidWaste/directive/index.js new file mode 100644 index 0000000..d8a3108 --- /dev/null +++ b/src/components/BaseNav/SolidWaste/directive/index.js @@ -0,0 +1,14 @@ +// import drag from './drag' +import drag from './directive' + +const install = function (Vue) { + Vue.directive('el-drag-dialog', drag) +} + +if (window.Vue) { + window['el-drag-dialog'] = drag + Vue.use(install) // eslint-disable-line +} + +drag.install = install +export default drag diff --git a/src/components/BaseNav/WasteWater/WasteWater.js b/src/components/BaseNav/WasteWater/WasteWater.js index c2f3d6b..05f7b50 100644 --- a/src/components/BaseNav/WasteWater/WasteWater.js +++ b/src/components/BaseNav/WasteWater/WasteWater.js @@ -52,16 +52,17 @@ const Icon = new WasteWaterIcon({ iconUrl: iconUrl }) // let url = Icon.options.iconUrl - const marker = this.L.marker.magic([positionX, positionY], { icon: Icon, magic: 'vanishIn' }) + // const marker = this.L.marker.magic([positionX, positionY], { icon: Icon, magic: 'vanishIn' }) // 甯︽樉绀哄姩鐢� + const marker = this.L.marker([positionX, positionY], { icon: Icon }) - marker.bindPopup(() => { - return this.WasteWaterPopup.$el - }, { - className: 's-map-popup', - minWidth: 1000, - closeButton: true, - autoClose: false - }) + // marker.bindPopup(() => { + // return this.WasteWaterPopup.$el + // }, { + // className: 's-map-popup', + // minWidth: 1000, + // closeButton: true, + // autoClose: false + // }) // 鍒掕繃鍑虹幇 灞曠ず鏁版嵁 marker.bindTooltip(data[i].Name, { permanent: true, @@ -74,7 +75,7 @@ try { // console.log(e) this.EffectOfPulse(e.target.getLatLng()) - this.WasteWaterPopup.setDate(data[i]) + this.WasteWaterPopup.setData(data[i]) return this.WasteWaterPopup.$el } catch (error) { console.log(error) diff --git a/src/components/LayerController/logic/Sample.js b/src/components/LayerController/logic/Sample.js index 687b0e7..063123f 100644 --- a/src/components/LayerController/logic/Sample.js +++ b/src/components/LayerController/logic/Sample.js @@ -1,9 +1,9 @@ module.exports = function () { - this.init = (layer) => { + this.init = (L) => { console.log('sample init !!!') } - this.clickListener = (list) => { + this.clickListener = (e, data) => { console.log('sample clickListener !!!') } } diff --git a/src/components/LayerController/logic/WasteGas.js b/src/components/LayerController/logic/WasteGas.js new file mode 100644 index 0000000..2744f36 --- /dev/null +++ b/src/components/LayerController/logic/WasteGas.js @@ -0,0 +1,46 @@ +/** + * 搴熸皵 + */ +const AnimalService = require('../service/AnimalService').default +const AjaxUtils = require('../../../utils/AjaxUtils').default + +module.exports = function () { + /** + * 杩斿洖marker瀵硅薄鏁扮粍 + * @param L leaflet瀵硅薄 + */ + this.init = (layer, L) => { + this.animalService = new AnimalService({ L: L, layer: layer }) + AjaxUtils.get4JsonDataByUrl('http://10.246.162.140:8080/EPInterface/DataService/EPMapService.asmx/ObtainningConInfo', { + companyId: 3900100145, + id: '', + monType: 1, + userCode: 'wenchun.deng', + monDuration: '', + epName: '', + secdDeptId: '', + contrLevel: '', + dataStatus: '', + dataFlag: '', + runStatus: '', + emissTypeId: '' + }, function (res) { + const data = res.data.Result.DataInfo + for (let i = 0; i < data.length; i++) { + // 缁忕含搴� 浣嶇疆 + const positionX = data[i].Latitude + const positionY = data[i].Longitude + layer.addLayer(L.marker([positionX, positionY], {})) + } + }) + } + + this.bindTooltip = (layer) => { + return '娴嬭瘯搴熸皵' + } + + this.clickListener = (e) => { + console.log(e) + this.animalService.pulseEffect(e.latlng) + } +} diff --git a/src/components/LayerController/service/AnimalService.js b/src/components/LayerController/service/AnimalService.js new file mode 100644 index 0000000..9a80b7f --- /dev/null +++ b/src/components/LayerController/service/AnimalService.js @@ -0,0 +1,37 @@ +/** + * 鍔ㄦ�佹晥鏋滃皝瑁� + */ +class AnimalService { + constructor (config) { + this.intervals = [] // 瀹氭椂鍣ㄥ垪琛� + this.L = config.L + this.layer = config.layer + this.times = config.times || 5 + this.colors = ['#98FB98', '#ff0000'] + } + + /** + * 鑴夊啿鏁堟灉 + */ + pulseEffect (xy) { + // 鎻掍欢 鏁堟灉瀹炵幇 + var pulsingIcon = this.L.icon.pulse({ + iconSize: [20, 20], + color: this.colors[0], + fillColor: '' + }) + var picGroupMarker = this.L.marker(xy, { icon: pulsingIcon }).addTo(this.layer) + var times = this.times + // 瀹氭椂 + var timeInterval = setInterval(() => { + if (times > 0) { + times-- + } else { + clearInterval(timeInterval) + picGroupMarker.remove() + } + }, 1000) + } +} + +export default AnimalService diff --git a/src/components/LayerController/service/BusiLayerService.js b/src/components/LayerController/service/BusiLayerService.js index 254a819..d63962e 100644 --- a/src/components/LayerController/service/BusiLayerService.js +++ b/src/components/LayerController/service/BusiLayerService.js @@ -13,18 +13,21 @@ init (layer) { // 寮曞叆 鍏宠仈鐨刯s锛屽湪constant.js涓牴鎹甤onfig閰嶇疆鐨刬d寰楀埌澶勭悊js const id = this.config.code - console.log(logicMapper) const file = logicMapper[id] if (!file) { console.log('鎵句笉鍒伴�昏緫澶勭悊js!!!') } else { - console.log('-----' + file) var BusiLayer = require('../logic/' + file) - console.log(BusiLayer) var busiLayer = new BusiLayer() - // 璋冪敤init - busiLayer.init(layer) + busiLayer.init(layer, this.L) + if (busiLayer.bindTooltip) { + layer.bindTooltip(busiLayer.bindTooltip(layer)) + } // 璋冪敤click浜嬩欢 + if (busiLayer.clickListener) { + layer.on('click', busiLayer.clickListener) + } + layer.addTo(this.map) } } } diff --git a/src/components/LayerController/service/LayerFactory.js b/src/components/LayerController/service/LayerFactory.js index 7626125..e7a585c 100644 --- a/src/components/LayerController/service/LayerFactory.js +++ b/src/components/LayerController/service/LayerFactory.js @@ -2,15 +2,12 @@ import WfsLayerService from './WfsLayerService' import BusiLayerService from './BusiLayerService' import WmsLayerService from './WmsLayerService' + class LayerFactory { constructor (options) { this.L = options.L this.map = window.map this.layers = {} - } - - createLayerGroup () { - return this.L.layerGroup().addTo(this.map) } init () { @@ -25,28 +22,26 @@ var wfs = childConfig.wfs var wms = childConfig.wms var url = childConfig.url - // 鍒ゆ柇鏄惁宸茬粡鍔犺浇杩囷紝鍔犺浇杩囧氨 蹇界暐鎺� - const layer = this.layers[code] + // 鍒ゆ柇鏄惁宸茬粡鍔犺浇杩囷紝鍔犺浇杩囧氨 鐩存帴寰楀埌瀵硅薄璋冪敤 鏄剧ず鍑芥暟 + var layer = this.layers[code] if (!layer) { - const newLayer = this.createLayerGroup() - this.layers[code] = newLayer + layer = this.L.featureGroup({}).addTo(this.map) // 2. 鍒ゆ柇绫诲瀷 if (wfs) { // 3. 瀹炰緥鍖栧叿浣搒ervice - // var busiLayerService = new BusiLayerService() - // busiLayerService.init() var wfsLayerService = new WfsLayerService(childConfig) - wfsLayerService.init(newLayer) + wfsLayerService.init(layer) } if (wms) { var wmsLayerService = new WmsLayerService(childConfig) - wmsLayerService.init(newLayer) + wmsLayerService.init(layer) } // 璇锋眰涓氬姟鏁版嵁鎺ュ彛 if (url) { var busiLayerService = new BusiLayerService(childConfig) - busiLayerService.init(newLayer) + busiLayerService.init(layer) } + layer ? (this.layers[code] = layer) : console.log('LayerFactory锛歯ewLayer is null锛宲lease check !!!') } else { this.show(code) } @@ -69,9 +64,9 @@ } /** - * 璁剧疆index,绾垮湪鏈�涓嬮潰锛岀偣鍦ㄤ笂闈� - * @param layerGroup 鍥惧眰缁� - */ + * 璁剧疆index,绾垮湪鏈�涓嬮潰锛岀偣鍦ㄤ笂闈� + * @param layerGroup 鍥惧眰缁� + */ setZIndex (layerGroup) { var layers = layerGroup.getLayers() if (layers.length > 0) { diff --git a/src/components/LayerController/service/WfsLayerService.js b/src/components/LayerController/service/WfsLayerService.js index e5a175d..8d55234 100644 --- a/src/components/LayerController/service/WfsLayerService.js +++ b/src/components/LayerController/service/WfsLayerService.js @@ -21,15 +21,20 @@ } init (layer) { + this.layer = layer const wfsUrl = this.config.wfs if (wfsUrl) { - AjaxUtils.get4JsonDataByUrl(wfsUrl, this.params, (res) => this.draw(layer, res.data.features)) + this.loadData(wfsUrl) } } - draw (layer, features) { + loadData (wfsUrl) { + AjaxUtils.get4JsonDataByUrl(wfsUrl, this.params, (res) => this.draw(res.data.features)) + } + + draw (features) { const icon = this.config.icon - const geojson = this.L.geoJSON(features, { + this.L.geoJSON(features, { style: function (feature) { return { fill: styles.defaultLineStyle.fill, @@ -66,8 +71,7 @@ .bindTooltip((layer) => this.tooltipListener(layer), { direction: 'bottom', offset: [0, 15], sticky: true }) .on('mouseover', (e) => this.mouseOverListener(e, layer)).on('mouseout', (e) => this.mouseOutListener(e, layer)) } - }).addTo(layer) - return geojson + }).addTo(this.layer) } mouseOverListener (e, layer) { diff --git a/src/components/LayerController/service/WmsLayerService.js b/src/components/LayerController/service/WmsLayerService.js index b818aec..859334d 100644 --- a/src/components/LayerController/service/WmsLayerService.js +++ b/src/components/LayerController/service/WmsLayerService.js @@ -1,11 +1,11 @@ -class WfsLayerService { +class WmsLayerService { constructor (config) { this.config = config } - init () { + init (layer) { } } -export default WfsLayerService +export default WmsLayerService diff --git a/src/conf/Constants.js b/src/conf/Constants.js index cef757c..97a3af7 100644 --- a/src/conf/Constants.js +++ b/src/conf/Constants.js @@ -7,7 +7,8 @@ export const logicMapper = { fsqy: 'Sample.js', fspfk: 'Sample.js', - fsjcd: 'Sample.js' + fsjcd: 'Sample.js', + wasteGasJcd: 'WasteGas.js' } export const props = { diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue index 6913577..0809498 100644 --- a/src/views/MapTemplate.vue +++ b/src/views/MapTemplate.vue @@ -165,7 +165,7 @@ this.vectorLayerHelper = Sgis.initVectorLayersHelper(this.map) // 鍒濆鍖栧姩鎬佽绱犲浘灞傚姪鎵� this.vectorLayerHelper.initVectorLayers(this.config) - // this.ChangeState() + this.ChangeState() // this.AddGasHelper() // this.ChangeWaterState() -- Gitblit v1.8.0