From 1b09fe890938f123fbcccf235620384b7cd9b721 Mon Sep 17 00:00:00 2001
From: zhangshuaibao <15731629597@163.com>
Date: 星期二, 30 三月 2021 17:36:31 +0800
Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop
---
src/components/LayerController/logic/WasteGas.js | 46 ++++
src/api/request.js | 2
src/components/LayerController/service/AnimalService.js | 37 +++
src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue | 33 ++
src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue | 53 +++++
src/components/LayerController/logic/Sample.js | 4
src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue | 20 +
src/components/LayerController/service/LayerFactory.js | 27 +-
src/components/BaseNav/PublicBounced/PublicBounced.vue | 18 +
src/components/BaseNav/SolidWaste/SolidWaste.js | 27 ++
src/components/LayerController/service/WmsLayerService.js | 6
src/components/BaseNav/SolidWaste/directive.js | 73 -------
src/components/LayerController/service/WfsLayerService.js | 14
src/conf/Constants.js | 3
src/components/LayerController/service/BusiLayerService.js | 13
src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue | 123 ++++++++++++
src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue | 88 --------
17 files changed, 365 insertions(+), 222 deletions(-)
diff --git a/src/api/request.js b/src/api/request.js
index 38364ca..9f9091d 100644
--- a/src/api/request.js
+++ b/src/api/request.js
@@ -21,4 +21,4 @@
'Content-Type': 'application/json'
}
})
-}
+}
\ No newline at end of file
diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue
index 5d557e0..a499fb1 100644
--- a/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue
+++ b/src/components/BaseNav/PublicBounced/GasComponents/GasECharts.vue
@@ -1,10 +1,20 @@
<template>
- <div class="ShowEcharts">
- <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 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="ShowEcharts">
+ <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>
@@ -153,6 +163,13 @@
</script>
<style scoped lang="less">
+ .win {
+ width: 100%;
+ height: 100%;
+ position: relative;
+ //display: inline-block;
+ background-color: rgba(33, 41, 69,0.9);
+ }
.ShowEcharts{
position: relative;
display: inline-block;
@@ -197,4 +214,8 @@
width: 600px;
height: 260px;
}
+.main {
+ width: 100%;
+ height: 100%;
+}
</style>
diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue
new file mode 100644
index 0000000..e05f59f
--- /dev/null
+++ b/src/components/BaseNav/PublicBounced/GasComponents/GasTab.vue
@@ -0,0 +1,123 @@
+<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">鐩戞祴鐐瑰悕绉�:{{ displayContent.Name }}</el-col>
+ <el-col :span="12">鐢熶骇鍗曚綅:{{ displayContent.DeptSname }}</el-col>
+ <el-col :span="12">鎺掓斁绫诲瀷鍔犺浇:{{ displayContent.EmissTypeName }}</el-col>
+ </el-row>
+ <el-row type="flex" class="row-bg" justify="space-around">
+ <el-col :span="12">鎺掓斁鍘诲悜:{{ displayContent.EmissTypeDirectName }}</el-col>
+ <el-col :span="12">鎺у埗绾у埆鍚嶇О:{{ displayContent.ContrLevelShowName }}</el-col>
+ <el-col :span="12">鍐�/澶栨帓鍙�:{{ displayContent.OrOutPortName }}</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;
+ //display: inline-block;
+ margin-bottom: 13px;
+ background-color: rgba(33, 41, 69,0.9);
+}
+.main {
+ width: 100%;
+ height: 100%;
+ .main-matter{
+ font-size: 13px;
+ padding: 9px 7px;
+ font-weight: normal;
+ 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: 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;
+}
+//.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
index 2497f08..e69de29 100644
--- a/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue
+++ b/src/components/BaseNav/PublicBounced/GasComponents/GasTable.vue
@@ -1,88 +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">
- <el-row type="flex" class="row-bg" justify="space-around">
- <el-col :span="12">鐩戞祴鐐瑰悕绉�:{{ displayContent.Name }}</el-col>
- <el-col :span="12">鐢熶骇鍗曚綅:{{ displayContent.DeptSname }}</el-col>
- <el-col :span="12">鎺掓斁绫诲瀷鍔犺浇:{{ displayContent.EmissTypeName }}</el-col>
- </el-row>
- <el-row type="flex" class="row-bg" justify="space-around">
- <el-col :span="12">鎺掓斁鍘诲悜:{{ displayContent.EmissTypeDirectName }}</el-col>
- <el-col :span="12">鎺у埗绾у埆鍚嶇О:{{ displayContent.ContrLevelShowName }}</el-col>
- <el-col :span="12">鍐�/澶栨帓鍙�:{{ displayContent.OrOutPortName }}</el-col>
- </el-row>
- </div>
- </div>
-</template>
-
-<script>
-export default {
- name: 'GasTable',
- props: ['displayContent'],
- data () {
- return {}
- }
-}
-</script>
-
-<style scoped lang="less">
-
-.win {
- position: relative;
- display: inline-block;
- //border: 1px solid #396d83;
-}
-.main {
- width: 100%;
- height: 100%;
-}
-.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;
-}
-.el-row {
- color: #00d0f9;
- .el-col{
- width: 200px;
- height: 28px;
- background-color: #243a55;
- text-align: center;
- line-height: 28px;
- }
-}
-</style>
diff --git a/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue b/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue
index eb83145..fc152ab 100644
--- a/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue
+++ b/src/components/BaseNav/PublicBounced/GasComponents/GasVideo.vue
@@ -1,12 +1,12 @@
<template>
- <div class="win">
+ <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>
+ <div class="main-video">
<video width="100%" height="100%" controls>
<source src="movie.mp4" type="video/mp4">
<source src="movie.ogg" type="video/ogg">
@@ -22,17 +22,22 @@
}
</script>
-<style scoped>
+<style scoped lang="less">
.win {
- width: 100%;
+ /*width: 100%;*/
/*height: 100%;*/
position: relative;
- display: inline-block;
-//border: 1px solid #396d83;
+ //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_corner{
z-index: 2500;
@@ -40,7 +45,7 @@
width: 14px;
height: 14px;
background: rgba(0,0,0,0);
- border: 2px solid #47d5ea;
+ border: 1.5px solid #47d5ea;
}
.border_corner_left_top{
top: 0;
@@ -59,7 +64,6 @@
left: 0;
border-right: none;
border-top: none;
- border-bottom-left-radius: 4px;
}
.border_corner_right_bottom{
bottom: 0;
diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue
new file mode 100644
index 0000000..2c878b8
--- /dev/null
+++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicTable.vue
@@ -0,0 +1,53 @@
+<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>
+ </div>
+</template>
+
+<script>
+export default {
+ name: 'PublicTable',
+ 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 寮�'
+ }]
+ }
+ }
+}
+</script>
+
+<style lang="less" scoped>
+
+</style>
diff --git a/src/components/BaseNav/PublicBounced/PublicBounced.vue b/src/components/BaseNav/PublicBounced/PublicBounced.vue
index eddeb78..275b86e 100644
--- a/src/components/BaseNav/PublicBounced/PublicBounced.vue
+++ b/src/components/BaseNav/PublicBounced/PublicBounced.vue
@@ -6,8 +6,9 @@
</div>
<div class="public-bounced-content">
<div class="public-bounced-content-left">
- <GasTable :displayContent="displayContent"></GasTable>
- <GasECharts></GasECharts>
+ <GasTab :displayContent="displayContent"></GasTab>
+ <PublicTable v-if="value === 'gufei'"></PublicTable>
+ <GasECharts v-else></GasECharts>
</div>
<div class="public-bounced-content-right">
<GasVideo></GasVideo>
@@ -19,14 +20,16 @@
<script>
import '@/components/BaseNav/SolidWaste/directive'
-import GasTable from '@components/BaseNav/PublicBounced/GasComponents/GasTable'
+import GasTab from '@components/BaseNav/PublicBounced/GasComponents/GasTab'
+import PublicTable from '@components/BaseNav/PublicBounced/GasComponents/PublicTable'
import GasECharts from '@components/BaseNav/PublicBounced/GasComponents/GasECharts'
import GasVideo from '@components/BaseNav/PublicBounced/GasComponents/GasVideo'
export default {
name: 'PublicBounced',
components: {
- GasTable,
+ GasTab,
+ PublicTable,
GasECharts,
GasVideo
},
@@ -37,9 +40,10 @@
}
},
methods: {
- setData (data) {
+ setData (data, value) {
this.displayContent = data
this.flag = true
+ this.value = value
},
closePopup () {
this.flag = false
@@ -51,7 +55,7 @@
<style lang="less" scoped>
.public-bounced {
z-index: 999;
- position: fixed;
+ position: absolute;
top: 50%;
left: 50%;
background-color: #002432;
@@ -90,4 +94,4 @@
}
}
-</style>
+</style>
\ No newline at end of file
diff --git a/src/components/BaseNav/SolidWaste/SolidWaste.js b/src/components/BaseNav/SolidWaste/SolidWaste.js
index 54107a5..6df5e3e 100644
--- a/src/components/BaseNav/SolidWaste/SolidWaste.js
+++ b/src/components/BaseNav/SolidWaste/SolidWaste.js
@@ -52,20 +52,24 @@
// var url = Icon.options.iconUrl
const marker = this.L.marker([positionX, positionY], { icon: Icon })
-
// 鍒掕繃鍑虹幇 灞曠ず鏁版嵁
marker.bindTooltip(data[i].Name, {
permanent: true,
- offset: [0, 16],
- direction: 'bottom',
+ offset: [0, -16],
+ direction: 'top',
className: ''
})
// 鐐瑰嚮 浜嬩欢
marker.on('click', (e) => {
try {
- console.log(e)
+ // console.log(e)
+ // console.log(this.map.getCenter())
+ // 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.EffectOfPulse(e.target.getLatLng())
- this.SolidWastePopup.setData(data[i])
+ this.SolidWastePopup.setData(data[i], 'gufei')
return this.SolidWastePopup.$el
} catch (error) {
console.log(error)
@@ -75,6 +79,16 @@
this.SolidWasteLayerGroup.addLayer(marker)
}
}
+ }
+
+ // panTo
+ setPanTo (pos, value) {
+ var position = pos
+ position = this.map.latLngToLayerPoint(position)
+ position.y += value
+ position = this.map.layerPointToLatLng(position)
+ this.map.setView(position)
+ // this.map.flyTo(position)
}
// 鍥哄簾鐐瑰嚮杩涜鐨� 鍐呭鐨勮缃�
@@ -106,7 +120,7 @@
// 鑴夊啿鏁堟灉璁剧疆瀹炵幇
EffectOfPulse (position, markers, layerGroup) {
- // // 鍖哄垎鐩存帴鎵ц 鍜屽垽鏂墽琛岀殑涓嶅悓鍖哄埆
+ // 鍖哄垎鐩存帴鎵ц 鍜屽垽鏂墽琛岀殑涓嶅悓鍖哄埆
var differentColor = ''
if (markers) {
differentColor = '#ff0000'
@@ -140,7 +154,6 @@
var HeightLightTime = 5
var PulseNumber = 5
const pulseinterver = setInterval((e) => {
- console.log(e)
if (PulseNumber > 0) {
PulseNumber--
} else {
diff --git a/src/components/BaseNav/SolidWaste/directive.js b/src/components/BaseNav/SolidWaste/directive.js
index 773a4a8..d51b377 100644
--- a/src/components/BaseNav/SolidWaste/directive.js
+++ b/src/components/BaseNav/SolidWaste/directive.js
@@ -57,76 +57,3 @@
delete el._checkPosition
}
})
-
-// v-dialogDrag: 寮圭獥鎷栨嫿
-Vue.directive('dialogDrag', {
- bind (el, binding, vnode, oldVnode) {
- const dialogHeaderEl = el.querySelector('.el-dialog__header')
- const dragDom = el.querySelector('.el-dialog')
- dialogHeaderEl.style.cursor = 'move'
-
- // 鑾峰彇鍘熸湁灞炴�� ie dom鍏冪礌.currentStyle 鐏嫄璋锋瓕 window.getComputedStyle(dom鍏冪礌, null);
- const sty = dragDom.currentStyle || window.getComputedStyle(dragDom, null)
-
- dialogHeaderEl.onmousedown = (e) => {
- // 榧犳爣鎸変笅锛岃绠楀綋鍓嶅厓绱犺窛绂诲彲瑙嗗尯鐨勮窛绂�
- const disX = e.clientX - dialogHeaderEl.offsetLeft
- const disY = e.clientY - dialogHeaderEl.offsetTop
-
- // 鑾峰彇鍒扮殑鍊煎甫px 姝e垯鍖归厤鏇挎崲
- let styL, styT
-
- // 娉ㄦ剰鍦╥e涓� 绗竴娆¤幏鍙栧埌鐨勫�间负缁勪欢鑷甫50% 绉诲姩涔嬪悗璧嬪�间负px
- if (sty.left.includes('%')) {
- styL = +document.body.clientWidth * (+sty.left.replace(/%/g, '') / 100)
- styT = +document.body.clientHeight * (+sty.top.replace(/%/g, '') / 100)
- } else {
- styL = +sty.left.replace(/px/g, '')
- styT = +sty.top.replace(/px/g, '')
- }
-
- document.onmousemove = function (e) {
- // 閫氳繃浜嬩欢濮旀墭锛岃绠楃Щ鍔ㄧ殑璺濈
- const l = e.clientX - disX
- const t = e.clientY - disY
-
- // 绉诲姩褰撳墠鍏冪礌
- dragDom.style.left = `${l + styL}px`
- dragDom.style.top = `${t + styT}px`
-
- // 灏嗘鏃剁殑浣嶇疆浼犲嚭鍘�
- // binding.value({x:e.pageX,y:e.pageY})
- }
-
- document.onmouseup = function (e) {
- document.onmousemove = null
- document.onmouseup = null
- }
- }
- }
-})
-
-// v-dialogDragWidth: 寮圭獥瀹藉害鎷栧ぇ 鎷栧皬
-Vue.directive('dialogDragWidth', {
- bind (el, binding, vnode, oldVnode) {
- const dragDom = binding.value.$el.querySelector('.el-dialog')
-
- el.onmousedown = (e) => {
- // 榧犳爣鎸変笅锛岃绠楀綋鍓嶅厓绱犺窛绂诲彲瑙嗗尯鐨勮窛绂�
- const disX = e.clientX - el.offsetLeft
-
- document.onmousemove = function (e) {
- e.preventDefault() // 绉诲姩鏃剁鐢ㄩ粯璁や簨浠�
-
- // 閫氳繃浜嬩欢濮旀墭锛岃绠楃Щ鍔ㄧ殑璺濈
- const l = e.clientX - disX
- dragDom.style.width = `${l}px`
- }
-
- document.onmouseup = function (e) {
- document.onmousemove = null
- document.onmouseup = null
- }
- }
- }
-})
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 = {
--
Gitblit v1.8.0