From 2a99c0727f88565eb2b8c0beeb609618413ff3b0 Mon Sep 17 00:00:00 2001
From: zhangshuaibao <15731629597@163.com>
Date: 星期一, 29 三月 2021 09:45:45 +0800
Subject: [PATCH] 文件整合,重新分弹框
---
src/components/BaseNav/WasteWater/directive.js | 132 ++++++++++++++++++++++
src/assets/css/map/leaflet.magicMarker.css | 13 ++
src/components/BaseNav/WasteWater/WasteWater.js | 20 +-
src/components/plugin/MagicMarker.js | 82 ++++++-------
src/views/MapTemplate.vue | 31 +++-
src/assets/images/map-pages/basenav/Waste-water/fs_blue.png | 0
src/assets/images/map-pages/basenav/Waste-water/fs_orange.png | 0
src/assets/images/map-pages/basenav/Waste-water/fs_green.png | 0
src/assets/images/map-pages/basenav/Waste-water/fs_red.png | 0
src/Sgis.js | 1
src/img/fs_yellow.7fe82c5d.png | 0
src/assets/images/map-pages/basenav/Waste-water/fs_yellow.png | 0
src/conf/MapConfig.js | 18 +++
src/assets/images/map-pages/basenav/Waste-water/fs_green_xc.png | 0
src/assets/images/map-pages/basenav/Waste-water/fs_bright_green.png | 0
src/components/BaseNav/WasteWater/WasteWaterContent.vue | 2
src/components/BaseNav/WasteWater/WasteWaterTable.vue | 2
src/assets/images/map-pages/basenav/Waste-water/fs_gray.png | 0
18 files changed, 238 insertions(+), 63 deletions(-)
diff --git a/src/Sgis.js b/src/Sgis.js
index e26ff26..dcebdb5 100644
--- a/src/Sgis.js
+++ b/src/Sgis.js
@@ -16,6 +16,7 @@
import './components/plugin/Editable' // 鏍囩粯鎿嶄綔
import './components/plugin/MagicMarker' // 鍔ㄧ敾Marker
import './assets/css/map/magic.min.css' // 鍔ㄧ敾Marker css
+// import './assets/css/map/leaflet.magicMarker.css' // 鍔ㄧ敾marker
import '@components/plugin/pulse/Pulse' // marker 澶栧湀娉�
import '@components/plugin/pulse/Pulse.css' // marker 澶栧湀娉� css
diff --git a/src/assets/css/map/leaflet.magicMarker.css b/src/assets/css/map/leaflet.magicMarker.css
new file mode 100644
index 0000000..b379bf1
--- /dev/null
+++ b/src/assets/css/map/leaflet.magicMarker.css
@@ -0,0 +1,13 @@
+.magicDiv{
+ height: 0;
+ width: 0;
+}
+.magicIcon{
+ position:relative;
+ top:-5px;
+ left:-16px;
+}
+.leaflet-div-icon{
+ background: transparent;
+ border:none;
+}
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_blue.png b/src/assets/images/map-pages/basenav/Waste-water/fs_blue.png
new file mode 100644
index 0000000..af3c97b
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_blue.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_bright_green.png b/src/assets/images/map-pages/basenav/Waste-water/fs_bright_green.png
new file mode 100644
index 0000000..9d6dae8
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_bright_green.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_gray.png b/src/assets/images/map-pages/basenav/Waste-water/fs_gray.png
new file mode 100644
index 0000000..9ebebf7
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_gray.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_green.png b/src/assets/images/map-pages/basenav/Waste-water/fs_green.png
new file mode 100644
index 0000000..e75d458
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_green.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_green_xc.png b/src/assets/images/map-pages/basenav/Waste-water/fs_green_xc.png
new file mode 100644
index 0000000..dfa3415
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_green_xc.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_orange.png b/src/assets/images/map-pages/basenav/Waste-water/fs_orange.png
new file mode 100644
index 0000000..95c544c
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_orange.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_red.png b/src/assets/images/map-pages/basenav/Waste-water/fs_red.png
new file mode 100644
index 0000000..ac1b8f2
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_red.png
Binary files differ
diff --git a/src/assets/images/map-pages/basenav/Waste-water/fs_yellow.png b/src/assets/images/map-pages/basenav/Waste-water/fs_yellow.png
new file mode 100644
index 0000000..8d84aa8
--- /dev/null
+++ b/src/assets/images/map-pages/basenav/Waste-water/fs_yellow.png
Binary files differ
diff --git a/src/components/BaseNav/WasteWater.js b/src/components/BaseNav/WasteWater/WasteWater.js
similarity index 90%
rename from src/components/BaseNav/WasteWater.js
rename to src/components/BaseNav/WasteWater/WasteWater.js
index 4a3e2f4..af1d4fb 100644
--- a/src/components/BaseNav/WasteWater.js
+++ b/src/components/BaseNav/WasteWater/WasteWater.js
@@ -1,7 +1,7 @@
import { requestWasteWater } from '@/api/request'
// 灞曠ず鍥剧墖
-import defaultImg from '@components/BaseNav/magicMarker.png'
-import Setting from '@components/BaseNav/voc.png'
+import defaultImg from '@assets/images/map-pages/basenav/Waste-water/fs_green.png'
+import Setting from '@assets/images/map-pages/basenav/Waste-water/fs_yellow.png'
// 搴曞浘涓氬姟灞曠ず鐐�
class AddWasteWaterHelper {
@@ -19,7 +19,7 @@
requestData () {
requestWasteWater().then(res => {
this.DrawTheWasteWaterContent(res.Result.DataInfo)
- console.log(res)
+ // console.log(res)
}).catch(err => {
console.log(err)
})
@@ -51,13 +51,13 @@
const Icon = new WasteWaterIcon({ iconUrl: iconUrl })
// let url = Icon.options.iconUrl
- const marker = this.L.marker([positionX, positionY], { icon: Icon })
+ const marker = this.L.marker.magic([positionX, positionY], { icon: Icon, magic: 'vanishIn' })
marker.bindPopup(() => {
return this.WasteWaterPopup.$el
}, {
className: 's-map-popup',
- minWidth: 600,
+ minWidth: 1000,
closeButton: true,
autoClose: false
})
@@ -68,7 +68,7 @@
direction: 'top',
className: ''
})
- // 鐐瑰嚮 浜嬩欢
+ // 鐐瑰嚮浜嬩欢
marker.on('click', (e) => {
try {
// console.log(e)
@@ -84,7 +84,7 @@
}
}
- // 鍥哄簾鐐瑰嚮杩涜鐨� 鍐呭鐨勮缃�
+ // 搴熸按鎸夐挳鐐瑰嚮杩涜鐨� 鍐呭鐨勮缃�
SetWasteWaterContent (config, containerPopup) {
this.WasteWaterPopup = containerPopup
}
@@ -127,9 +127,9 @@
} : position
// 鎻掍欢 鏁堟灉瀹炵幇
const pulsingIcon = this.L.icon.pulse({
- iconSize: [20, 20],
+ iconSize: [20, 20], // 鎺у埗鍏夊湀澶у皬
color: differentColor,
- fillColor: ''
+ fillColor: ' '
})
if (markers) {
// markers.push(this.L.marker(FinalPosition, { icon: pulsingIcon }))
@@ -156,7 +156,7 @@
}, 1000)
}
- // 娓呴櫎 鍥惧眰
+ // 鍦ㄦ墽琛屼笅涓墠娓呴櫎宸插瓨鍦ㄥ浘灞�
pulseClear (pulseinterver) {
clearInterval(pulseinterver)
pulseinterver = null
diff --git a/src/components/BaseNav/WasteWaterContent.vue b/src/components/BaseNav/WasteWater/WasteWaterContent.vue
similarity index 90%
rename from src/components/BaseNav/WasteWaterContent.vue
rename to src/components/BaseNav/WasteWater/WasteWaterContent.vue
index 0ff5603..22512f2 100644
--- a/src/components/BaseNav/WasteWaterContent.vue
+++ b/src/components/BaseNav/WasteWater/WasteWaterContent.vue
@@ -11,7 +11,7 @@
<script>
-import WasteWaterTable from '@components/BaseNav/WasteWaterTable'
+import WasteWaterTable from '@components/BaseNav/WasteWater/WasteWaterTable'
export default {
name: 'WasteWaterContent',
diff --git a/src/components/BaseNav/WasteWaterTable.vue b/src/components/BaseNav/WasteWater/WasteWaterTable.vue
similarity index 98%
rename from src/components/BaseNav/WasteWaterTable.vue
rename to src/components/BaseNav/WasteWater/WasteWaterTable.vue
index 1768d8f..7468710 100644
--- a/src/components/BaseNav/WasteWaterTable.vue
+++ b/src/components/BaseNav/WasteWater/WasteWaterTable.vue
@@ -1,6 +1,6 @@
<template>
<el-tabs>
- <el-tab-pane :label="displayContent.StoragePlaceName" name="">
+ <el-tab-pane :label="displayContent.StoragePlaceName" name="" class="ShowTable">
<el-table
:data="tableData" :fit="true">
<el-table-column
diff --git a/src/components/BaseNav/WasteWater/directive.js b/src/components/BaseNav/WasteWater/directive.js
new file mode 100644
index 0000000..adc9450
--- /dev/null
+++ b/src/components/BaseNav/WasteWater/directive.js
@@ -0,0 +1,132 @@
+import Vue from 'vue'
+
+// 鑷畾涔夊厓绱犲疄鐜板脊妗嗘嫋鎷絒閲嶇偣]
+Vue.directive('draw', {
+ inserted: function (el, binding, vNode) {
+ el.setAttribute('style', 'position: fixed; z-index: 9999')
+ },
+ bind: function (el, bindding, vNode) {
+ el.setAttribute('draggable', true)
+ let left, top, width, height
+ el._dragstart = function (event) {
+ event.stopPropagation()
+ left = event.clientX - el.offsetLeft
+ top = event.clientY - el.offsetTop
+ width = el.offsetWidth
+ height = el.offsetHeight
+ }
+ el._checkPosition = function () { // 闃叉琚嫋鍑鸿竟鐣�
+ const width = el.offsetWidth
+ const height = el.offsetHeight
+ let left = Math.min(el.offsetLeft, document.body.clientWidth - width)
+ left = Math.max(0, left)
+ let top = Math.min(el.offsetTop, document.body.clientHeight - height)
+ top = Math.max(0, top)
+ el.style.left = left + 'px'
+ el.style.top = top + 'px'
+ el.style.width = width + 'px'
+ el.style.height = height + 'px'
+ }
+ el._dragEnd = function (event) {
+ event.stopPropagation()
+ left = event.clientX - left
+ top = event.clientY - top
+ el.style.left = left + 'px'
+ el.style.top = top + 'px'
+ el.style.width = width + 'px'
+ el.style.height = height + 'px'
+ el._checkPosition()
+ }
+ el._documentAllowDraop = function (event) {
+ event.preventDefault()
+ }
+ document.body.addEventListener('dragover', el._documentAllowDraop)
+ el.addEventListener('dragstart', el._dragstart)
+ el.addEventListener('dragend', el._dragEnd)
+ window.addEventListener('resize', el._checkPosition)
+ },
+
+ unbind: function (el, bindding, vNode) {
+ document.body.removeEventListener('dragover', el._documentAllowDraop)
+ el.removeEventListener('dragstart', el._dragstart)
+ el.removeEventListener('dragend', el._dragEnd)
+ window.removeEventListener('resize', el._checkPosition)
+ delete el._documentAllowDraop
+ delete el._dragstart
+ delete el._dragEnd
+ 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/plugin/MagicMarker.js b/src/components/plugin/MagicMarker.js
index f74a2a4..a000501 100644
--- a/src/components/plugin/MagicMarker.js
+++ b/src/components/plugin/MagicMarker.js
@@ -1,49 +1,45 @@
-const init = (L) => {
- (function (window) {
- console.log(window)
- const setOptions = function (obj, options) {
- for (const i in options) {
- obj[i] = options[i]
+/* eslint-disable */
+(function (window) {
+ console.log(window)
+ const setOptions = function (obj, options) {
+ for (const i in options) {
+ obj[i] = options[i]
+ }
+ return obj
+ }
+ L.Icon.Magic = function (options) {
+ let opts
+ console.log(options)
+ if (options.iconUrl) {
+ opts = {
+ html: '<div class=\'magicDiv\'><div class=\'magictime ' + options.magic + '\'>' + options.html + '</div></div>'
+ // className: 'magicDiv',L
}
- return obj
- }
- L.Icon.Magic = function (options) {
- let opts
- if (options.iconUrl) {
- opts = {
- html: "<div class='magicDiv'><div class='magictime " + options.magic + "'><img id='migic' src='" + options.iconUrl + "'/></div></div>"
- // className: 'magicDiv',
- }
- } else {
- opts = {
- html: "<div class='magicDiv'><div class='magictime " + options.magic + "'>" + options.html + '</div></div>'
- // className: 'magicDiv',
- }
+ } else {
+ opts = {
+ html: '<div class=\'magicDiv\'><div class=\'magictime ' + options.magic + '\'><img id=\'migic\' src=\'' + options.icon.options.iconUrl + '\'/></div></div>'
+ // className: 'magicDiv',
}
- delete options.html
- const magicIconOpts = setOptions(opts, options)
- // console.log(magicIconOpts)
- const magicIcon = L.divIcon(magicIconOpts)
- return magicIcon
}
+ delete options.html
+ const magicIconOpts = setOptions(opts, options)
+ // console.log(magicIconOpts)
+ const magicIcon = L.divIcon(magicIconOpts)
+ return magicIcon
+ }
- L.icon.magic = function (options) {
- return new L.Icon.Magic(options)
+ L.icon.magic = function (options) {
+ return new L.Icon.Magic(options)
+ }
+
+ L.Marker.Magic = L.Marker.extend({
+ initialize: function (latlng, options) {
+ options.icon = L.icon.magic(options)
+ L.Marker.prototype.initialize.call(this, latlng, options)
}
+ })
- L.Marker.Magic = L.Marker.extend({
- initialize: function (latlng, options) {
- options.icon = L.icon.magic(options)
- L.Marker.prototype.initialize.call(this, latlng, options)
- }
- })
-
- L.marker.magic = function (latlng, options) {
- return new L.Marker.Magic(latlng, options)
- }
- })(window)
-}
-
-export default {
- init
-}
+ L.marker.magic = function (latlng, options) {
+ return new L.Marker.Magic(latlng, options)
+ }
+})(window)
diff --git a/src/conf/MapConfig.js b/src/conf/MapConfig.js
index e01a715..0b6c329 100644
--- a/src/conf/MapConfig.js
+++ b/src/conf/MapConfig.js
@@ -55,9 +55,27 @@
}
}
+/**
+ *
+ */
+// const MagicMaker = {
+// Current: 'vanishIn',
+// ARRAY: [
+// 'twisterInDown', 'twisterInUp', 'swap',
+// 'puffIn', 'vanishIn',
+// 'openDownLeftReturn', 'openDownRightReturn', 'openUpLeftReturn', 'openUpRightReturn',
+// 'perspectiveDownReturn', 'perspectiveUpReturn', 'perspectiveLeftReturn', 'perspectiveRightReturn',
+// 'slideDownReturn', 'slideUpReturn', 'slideLeftReturn', 'slideRightReturn',
+// 'swashIn', 'foolishIn',
+// 'tinRightIn', 'tinLeftIn', 'tinUpIn', 'tinDownIn',
+// 'boingInUp',
+// 'spaclInUp', 'spaceInRight', 'spaceInDown', 'spaceInLeft']
+// }
+
export default {
mapOptions,
mapConfig,
TokenConfig,
BLUEMAP_HOST
+ // MagicMaker
}
diff --git a/src/img/fs_yellow.7fe82c5d.png b/src/img/fs_yellow.7fe82c5d.png
new file mode 100644
index 0000000..8d84aa8
--- /dev/null
+++ b/src/img/fs_yellow.7fe82c5d.png
Binary files differ
diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue
index 59be60e..be50061 100644
--- a/src/views/MapTemplate.vue
+++ b/src/views/MapTemplate.vue
@@ -38,11 +38,11 @@
// import MenuSpecial from '@components/panel/MenuTopic'
import LegendPanel from '@components/panel/LegendPanel'
import Enterprise from '../components/table/enterprise'
-import SolidContent from '@components/BaseNav/SolidContent'
-import WasteWaterContent from '@components/BaseNav/WasteWaterContent'
+import SolidContent from '@components/BaseNav/SolidWaste/SolidContent'
+import WasteWaterContent from '@components/BaseNav/WasteWater/WasteWaterContent'
// 搴曞浘涓氬姟js閫昏緫
-import AddSolidWasteHelper from '@components/BaseNav/SolidWaste'
-import AddWasteWaterHelper from '@components/BaseNav/WasteWater'
+import AddSolidWasteHelper from '@components/BaseNav/SolidWaste/SolidWaste'
+import AddWasteWaterHelper from '@components/BaseNav/WasteWater/WasteWater'
export default {
name: 'MapTemplate',
@@ -63,6 +63,7 @@
},
data () {
return {
+ show: true,
map: null,
lcServiceLayerVisible: false,
basemapHelper: {},
@@ -87,9 +88,11 @@
AddSolidWaste.SetSolidWasteContent(this.config, this.$refs.SolidWastePopup)
},
ChangeWaterState () {
- const AddWasteWater = new AddWasteWaterHelper({ map: this.map })
- AddWasteWater.requestData()
- AddWasteWater.SetWasteWaterContent(this.config, this.$refs.WasteWaterPopup)
+ if (this.show) {
+ const AddWasteWater = new AddWasteWaterHelper({ map: this.map })
+ AddWasteWater.requestData()
+ AddWasteWater.SetWasteWaterContent(this.config, this.$refs.WasteWaterPopup)
+ }
},
// isShowHidden () {
// this.isShowBtn = !this.isShowBtn
@@ -118,7 +121,8 @@
this.vectorLayerHelper = Sgis.initVectorLayersHelper(this.map) // 鍒濆鍖栧姩鎬佽绱犲浘灞傚姪鎵�
this.vectorLayerHelper.initVectorLayers(this.config)
- this.ChangeState()
+ // this.ChangeState()
+ // this.ChangeWaterState()
this.saveMapStatus()
// this.setMapObj(this.mapObj)
@@ -211,5 +215,16 @@
.leaflet-custom-icon {
background: white;
}
+
+ .leaflet-marker-icon {
+ background: none;
+ }
+
+ #migic {
+ width: 48px;
+ height: 48px;
+ margin: -18px -20px;
+ z-index: 999;
+ }
}
</style>
--
Gitblit v1.8.0