From 6d31f5dbd15517c2aa1c1a0e1c5afb04290f7af0 Mon Sep 17 00:00:00 2001
From: chenzeping <ChenZeping02609@163.com>
Date: 星期一, 12 四月 2021 14:55:18 +0800
Subject: [PATCH] 弹框问题修改

---
 src/utils/dragBoxes.js                                             |   39 +++++++++++++++++++
 src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue |    4 -
 src/components/BaseNav/SolidWaste/directive/dir.js                 |   37 +++++-------------
 src/components/BaseNav/PublicBounced/PublicBounced.vue             |   37 +++++++++---------
 4 files changed, 69 insertions(+), 48 deletions(-)

diff --git a/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue b/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue
index 2729caf..51c7f4f 100644
--- a/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue
+++ b/src/components/BaseNav/PublicBounced/GasComponents/PublicChart.vue
@@ -25,14 +25,12 @@
 <script>
 import EChartsHour from './EChartsHour'
 import EChartsDate from './EChartsDate'
-import Echarts from '@components/BaseNav/PublicBounced/GasComponents/Echarts'
 
 export default {
   name: 'PublicChart',
   components: {
     EChartsHour,
-    EChartsDate,
-    Echarts
+    EChartsDate
   },
   data () {
     return {
diff --git a/src/components/BaseNav/PublicBounced/PublicBounced.vue b/src/components/BaseNav/PublicBounced/PublicBounced.vue
index 883b7d2..8d23b01 100644
--- a/src/components/BaseNav/PublicBounced/PublicBounced.vue
+++ b/src/components/BaseNav/PublicBounced/PublicBounced.vue
@@ -1,9 +1,6 @@
 <template>
   <div class="public-bounced map-background" v-drag v-if="flag">
-    <!--    <Echarts></Echarts>-->
-    <div class="public-bounced-title panel-title">
-  <div class="public-bounced" v-if="flag">
-    <div class="public-bounced-title" draggable="true" @dragstart="drag($event)">
+    <div class="public-bounced-title panel-title" ref="publicBounced">
       <span>{{ displayContentTitle }}</span>
       <i class="el-icon-circle-close" @click="closePopup"></i>
     </div>
@@ -17,7 +14,8 @@
           <public-chart v-else :getWasteGasDetails="getWasteGasDetails"
                         :value="value"
                         :getQueryOnlineMonData="getQueryOnlineMonData"
-                        :getWasteWaterMonitoringDetails="getWasteWaterMonitoringDetails">
+                        :getWasteWaterMonitoringDetails='getWasteWaterMonitoringDetails'
+          >
           </public-chart>
         </div>
       </div>
@@ -29,7 +27,8 @@
 </template>
 
 <script>
-import '@/components/BaseNav/SolidWaste/directive/dir'
+
+import '@/utils/dragBoxes'
 import PublicTabs from '@components/BaseNav/PublicBounced/GasComponents/PublicTabs'
 import PublicTable from '@components/BaseNav/PublicBounced/GasComponents/PublicTable'
 import PublicVideo from '@components/BaseNav/PublicBounced/GasComponents/PublicVideo'
@@ -38,7 +37,7 @@
 export default {
   name: 'PublicBounced',
   components: {
-    // Echarts
+    // Echarts,
     PublicTabs,
     PublicTable,
     PublicChart,
@@ -59,10 +58,12 @@
       // getGasQueryOnlineMonData: []
     }
   },
+  mounted () {
+    this.$nextTick(() => {
+      console.log(this.$refs.publicBounced)
+    })
+  },
   methods: {
-    drag (event) {
-      console.log(event)
-    },
     closePopup () {
       this.flag = false
     },
@@ -108,7 +109,6 @@
   left: 20%;
 
   .public-bounced-title {
-    //cursor: pointer;
     cursor: move;
     height: 0.1rem;
     padding: 10px 0;
@@ -123,14 +123,15 @@
     }
 
     i {
-        color: #C0C4CC;
-        margin: 0 15px;
-        font-size: 22px;
-        cursor: pointer;
+      color: #C0C4CC;
+      margin: 0 15px;
+      font-size: 22px;
+      cursor: pointer;
     }
-      i:hover{
-          color: #00fff6;
-      }
+
+    i:hover {
+      color: #00fff6;
+    }
   }
 
   .public-bounced-content {
diff --git a/src/components/BaseNav/SolidWaste/directive/dir.js b/src/components/BaseNav/SolidWaste/directive/dir.js
index ef3a982..063f6c3 100644
--- a/src/components/BaseNav/SolidWaste/directive/dir.js
+++ b/src/components/BaseNav/SolidWaste/directive/dir.js
@@ -1,45 +1,31 @@
 import Vue from 'vue'
-// 浣跨敤Vue.directive()瀹氫箟涓�涓叏灞�鎸囦护
-// 1.鍙傛暟涓�锛氭寚浠ょ殑鍚嶇О锛屽畾涔夋椂鎸囦护鍓嶉潰涓嶉渶瑕佸啓v-
-// 2.鍙傛暟浜岋細鏄竴涓璞★紝璇ュ璞′腑鏈夌浉鍏崇殑鎿嶄綔鍑芥暟
-// 3.鍦ㄨ皟鐢ㄧ殑鏃跺�欏繀椤诲啓v-
+
 const drag = Vue.directive('drag', {
-  // 1.鎸囦护缁戝畾鍒板厓绱犱笂鍥炵珛鍒绘墽琛宐ind鍑芥暟锛屽彧鎵ц涓�娆�
-  // 2.姣忎釜鍑芥暟涓涓�涓弬鏁版案杩滄槸el锛岃〃绀虹粦瀹氭寚浠ょ殑鍏冪礌锛宔l鍙傛暟鏄師鐢焜s瀵硅薄
-  // 3.閫氳繃el.focus()鏄棤娉曡幏鍙栫劍鐐圭殑锛屽洜涓哄彧鏈夋彃鍏OM鍚庢墠鐢熸晥
-  bind: function (el) {
-    el.style.cursor = 'move' // 榧犳爣鏍峰紡鍙榤ove鏍峰紡
-  },
-  // inserted琛ㄧず涓�涓厓绱狅紝鎻掑叆鍒癉OM涓細鎵цinserted鍑芥暟锛屽彧瑙﹀彂涓�娆�
-  inserted: function (el) {
-    el.onmousedown = function (e) {
+  bind (el, binding, vnode, oldVnode) {
+    const dialogHeaderEl = el.querySelector('.public-bounced-title')
+    dialogHeaderEl.onmousedown = function (e) {
       var distX = e.pageX - el.offsetLeft
       var distY = e.pageY - el.offsetTop
-      // console.log('鍏冪礌鏈韩鐨勯珮锛�' + el.clientHeight + ',鍏冪礌鏈韩鐨勫锛�' + el.clientWidth)
-
       if (e.preventDefault) {
         e.preventDefault()
       } else {
         e.returnValue = false
       }
-      // 瑙e喅蹇�熸嫋鍔ㄦ粸鍚庨棶棰�
-
       document.onmousemove = function (e) {
-        // 鐢ㄩ紶鏍囩殑浣嶇疆鍑忓幓榧犳爣鐩稿鍏冪礌鐨勪綅缃紝寰楀埌鍏冪礌鐨勪綅缃�
         let left = e.clientX - distX
         let top = e.clientY - distY
 
         if (left <= 0) {
-          left = 5 // 璁剧疆鎴�5鏄负浜嗕笉绂昏竟缂樺お杩�
-        } else if (left > document.documentElement.clientWidth - el.clientWidth) {
-          // document.documentElement.clientWidth 灞忓箷鐨勫彲瑙嗗搴�
-          left = document.documentElement.clientWidth - el.clientWidth - 5
+          left = 5
+        } else if (left > document.documentElement.clientWidth - dialogHeaderEl.clientWidth) {
+          left = document.documentElement.clientWidth - dialogHeaderEl.clientWidth - 5
         }
         if (top <= 0) {
           top = 5
-        } else if (top > document.documentElement.clientHeight - el.clientHeight) {
-          top = document.documentElement.clientHeight - el.clientHeight - 5
+        } else if (top > document.documentElement.clientHeight - dialogHeaderEl.clientHeight) {
+          top = document.documentElement.clientHeight - dialogHeaderEl.clientHeight - 5
         }
+
         el.style.left = left + 'px'
         el.style.top = top + 'px'
       }
@@ -47,9 +33,6 @@
         document.onmousemove = document.onmouseup = null
       }
     }
-  },
-  // 褰揤Node鏇存柊鐨勬椂鍊欎細鎵цupdated锛屽彲浠ヨЕ鍙戝娆�
-  updated: function (el) {
   }
 })
 export default drag
diff --git a/src/utils/dragBoxes.js b/src/utils/dragBoxes.js
new file mode 100644
index 0000000..1e17b89
--- /dev/null
+++ b/src/utils/dragBoxes.js
@@ -0,0 +1,39 @@
+/* eslint */
+import Vue from 'vue'
+
+const drag = Vue.directive('drag', {
+  bind (el, binding, vnode, oldVnode) {
+    const dialogHeaderEl = el.querySelector('.public-bounced-title')
+    dialogHeaderEl.onmousedown = function (e) {
+      var distX = e.pageX - el.offsetLeft
+      var distY = e.pageY - el.offsetTop
+      if (e.preventDefault) {
+        e.preventDefault()
+      } else {
+        e.returnValue = false
+      }
+      document.onmousemove = function (e) {
+        let left = e.clientX - distX
+        let top = e.clientY - distY
+
+        if (left <= 0) {
+          left = 5
+        } else if (left > document.documentElement.clientWidth - dialogHeaderEl.clientWidth) {
+          left = document.documentElement.clientWidth - dialogHeaderEl.clientWidth - 5
+        }
+        if (top <= 0) {
+          top = 5
+        } else if (top > document.documentElement.clientHeight - dialogHeaderEl.clientHeight) {
+          top = document.documentElement.clientHeight - dialogHeaderEl.clientHeight - 5
+        }
+
+        el.style.left = left + 'px'
+        el.style.top = top + 'px'
+      }
+      document.onmouseup = function () {
+        document.onmousemove = document.onmouseup = null
+      }
+    }
+  }
+})
+export default drag

--
Gitblit v1.8.0