From 67c41dc766f73e14373d115f9655f668cf3afb84 Mon Sep 17 00:00:00 2001
From: 徐旺旺 <11530253@qq.com>
Date: 星期五, 12 三月 2021 18:14:59 +0800
Subject: [PATCH] 新增统计与报警

---
 src/assets/images/map-pages/icon/map/company.png    |    0 
 src/components/plugin/DialogDrag.js                 |   49 ++++
 src/components/table/enterprise.vue                 |   62 +++++
 src/assets/images/map-pages/icon/map/warn.png       |    0 
 src/components/table/components/IndexStatistics.vue |  262 +++++++++++++++++++++++
 src/views/MapTemplate.vue                           |    3 
 src/views/popup/Dialog.vue                          |   37 +++
 src/components/table/components/Warn.vue            |  231 +++++++++++++++++++++
 8 files changed, 644 insertions(+), 0 deletions(-)

diff --git a/src/assets/images/map-pages/icon/map/company.png b/src/assets/images/map-pages/icon/map/company.png
new file mode 100644
index 0000000..28a279a
--- /dev/null
+++ b/src/assets/images/map-pages/icon/map/company.png
Binary files differ
diff --git a/src/assets/images/map-pages/icon/map/warn.png b/src/assets/images/map-pages/icon/map/warn.png
new file mode 100644
index 0000000..3533b7c
--- /dev/null
+++ b/src/assets/images/map-pages/icon/map/warn.png
Binary files differ
diff --git a/src/components/plugin/DialogDrag.js b/src/components/plugin/DialogDrag.js
new file mode 100644
index 0000000..2972234
--- /dev/null
+++ b/src/components/plugin/DialogDrag.js
@@ -0,0 +1,49 @@
+import Vue from 'vue'
+
+// 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
+      }
+    }
+  }
+})
diff --git a/src/components/table/components/IndexStatistics.vue b/src/components/table/components/IndexStatistics.vue
new file mode 100644
index 0000000..b8e8127
--- /dev/null
+++ b/src/components/table/components/IndexStatistics.vue
@@ -0,0 +1,262 @@
+<template>
+    <el-tabs>
+        <el-tab-pane label="鎸囨爣缁熻" name="first"><el-table
+                :data="tableData"
+                style="width: 100%">
+            <el-table-column
+                    prop="date"
+                    label="搴忓彿"
+                    width="150">
+            </el-table-column>
+            <el-table-column
+                    prop="date"
+                    label="鍗曚綅鍚嶇О"
+                    width="150">
+            </el-table-column>
+            <el-table-column
+                    prop="date"
+                    label="宸ヤ笟鍙栨按閲�(m3)"
+                    width="150">
+            </el-table-column>
+            <el-table-column
+                    prop="date"
+                    label="澶栨帓搴熸按閲�(m3)"
+                    width="150">
+            </el-table-column>
+            <el-table-column
+                    prop="date"
+                    label="宸ヤ笟搴熸皵鎺掓斁閲�(m3)"
+                    width="150">
+            </el-table-column>
+            <el-table-column label="COD(t)">
+                    <el-table-column
+                            prop="province"
+                            label="绱浜х敓閲�"
+                            width="120">
+                    </el-table-column>
+                    <el-table-column
+                            prop="city"
+                            label="褰撴湀浜х敓閲�"
+                            width="120">
+                    </el-table-column>
+            </el-table-column>
+            <el-table-column label="姘ㄦ爱(t)">
+                <el-table-column
+                        prop="province"
+                        label="绱浜х敓閲�"
+                        width="120">
+                </el-table-column>
+                <el-table-column
+                        prop="city"
+                        label="褰撴湀浜х敓閲�"
+                        width="120">
+                </el-table-column>
+            </el-table-column>
+            <el-table-column label="浜屾哀鍖栫~(t)">
+                <el-table-column
+                        prop="province"
+                        label="绱浜х敓閲�"
+                        width="120">
+                </el-table-column>
+                <el-table-column
+                        prop="city"
+                        label="褰撴湀浜х敓閲�"
+                        width="120">
+                </el-table-column>
+            </el-table-column>
+            <el-table-column label="姘哀鍖栫墿(t)">
+                <el-table-column
+                        prop="province"
+                        label="绱浜х敓閲�"
+                        width="120">
+                </el-table-column>
+                <el-table-column
+                        prop="city"
+                        label="褰撴湀浜х敓閲�"
+                        width="120">
+                </el-table-column>
+            </el-table-column>
+            <el-table-column label="VOCs(t)">
+                <el-table-column
+                        prop="province"
+                        label="绱浜х敓閲�"
+                        width="120">
+                </el-table-column>
+                <el-table-column
+                        prop="city"
+                        label="褰撴湀浜х敓閲�"
+                        width="120">
+                </el-table-column>
+            </el-table-column>
+            <el-table-column label="鍥哄簾(t)">
+                <el-table-column
+                        prop="province"
+                        label="绱浜х敓閲�"
+                        width="120">
+                </el-table-column>
+                <el-table-column
+                        prop="city"
+                        label="褰撴湀浜х敓閲�"
+                        width="120">
+                </el-table-column>
+            </el-table-column>
+        </el-table></el-tab-pane>
+        <el-tab-pane label="浼佷笟鎺掑悕" name="second"><el-table
+                :data="tableData"
+                style="width: 100%"
+                max-height="250">
+            <el-table-column
+                    fixed
+                    prop="date"
+                    label="浼佷笟鍚嶇О"
+                    width="150">
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="搴熸按杈炬爣鐜�"
+                    width="120">
+            </el-table-column>
+            <el-table-column
+                    prop="province"
+                    label="鍚嶆"
+                    width="120">
+            </el-table-column>
+            <el-table-column
+                    prop="city"
+                    label="搴熸皵杈炬爣鐜�"
+                    width="120">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="鍚嶆"
+                    width="300">
+            </el-table-column>
+            <el-table-column
+                    prop="zip"
+                    label="浼犺緭鐜�"
+                    width="120">
+            </el-table-column>
+            <el-table-column
+                    prop="zip"
+                    label="鍚嶆"
+                    width="120">
+            </el-table-column>
+            <el-table-column
+                    prop="zip"
+                    label="璁惧瀹屽ソ鐜�"
+                    width="120">
+            </el-table-column>
+            <el-table-column
+                    prop="zip"
+                    label="鎺掑悕"
+                    width="120">
+            </el-table-column>
+        </el-table></el-tab-pane>
+        <el-tab-pane label="鎺掓斁鐐规帓鍚�" name="third"><el-table
+                :data="tableData"
+                style="width: 100%"
+                max-height="250">
+            <el-table-column
+                    fixed
+                    prop="date"
+                    label="鎺掓斁鐐瑰悕绉�"
+                    width="150">
+            </el-table-column>
+            <el-table-column
+                    prop="name"
+                    label="鎺掓斁绫诲瀷"
+                    width="120">
+            </el-table-column>
+            <el-table-column
+                    prop="province"
+                    label="杈炬爣鐜�"
+                    width="120">
+            </el-table-column>
+            <el-table-column
+                    prop="city"
+                    label="鍚嶆"
+                    width="120">
+            </el-table-column>
+            <el-table-column
+                    prop="address"
+                    label="浼犺緭鐜�"
+                    width="300">
+            </el-table-column>
+            <el-table-column
+                    prop="zip"
+                    label="鍚嶆"
+                    width="120">
+            </el-table-column>
+            <el-table-column
+                    prop="zip"
+                    label="璁惧瀹屽ソ鐜�"
+                    width="120">
+            </el-table-column>
+            <el-table-column
+                    prop="zip"
+                    label="鍚嶆"
+                    width="120">
+            </el-table-column>
+        </el-table></el-tab-pane>
+    </el-tabs>
+
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      tableData: [{
+        date: '2016-05-03',
+        name: '鐜嬪皬铏�',
+        province: '涓婃捣',
+        city: '鏅檧鍖�',
+        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
+        zip: 200333
+      }, {
+        date: '2016-05-02',
+        name: '鐜嬪皬铏�',
+        province: '涓婃捣',
+        city: '鏅檧鍖�',
+        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
+        zip: 200333
+      }, {
+        date: '2016-05-04',
+        name: '鐜嬪皬铏�',
+        province: '涓婃捣',
+        city: '鏅檧鍖�',
+        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
+        zip: 200333
+      }, {
+        date: '2016-05-01',
+        name: '鐜嬪皬铏�',
+        province: '涓婃捣',
+        city: '鏅檧鍖�',
+        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
+        zip: 200333
+      }, {
+        date: '2016-05-08',
+        name: '鐜嬪皬铏�',
+        province: '涓婃捣',
+        city: '鏅檧鍖�',
+        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
+        zip: 200333
+      }, {
+        date: '2016-05-06',
+        name: '鐜嬪皬铏�',
+        province: '涓婃捣',
+        city: '鏅檧鍖�',
+        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
+        zip: 200333
+      }, {
+        date: '2016-05-07',
+        name: '鐜嬪皬铏�',
+        province: '涓婃捣',
+        city: '鏅檧鍖�',
+        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
+        zip: 200333
+      }]
+    }
+  }
+}
+</script>
diff --git a/src/components/table/components/Warn.vue b/src/components/table/components/Warn.vue
new file mode 100644
index 0000000..31c3e3d
--- /dev/null
+++ b/src/components/table/components/Warn.vue
@@ -0,0 +1,231 @@
+<template>
+    <el-tabs>
+        <el-tab-pane label="瀹炴椂缁熻" name="first">
+            <el-table
+                    :data="tableData"
+                    style="width: 100%">
+                <el-table-column
+                        prop="date"
+                        label="浼佷笟鍚嶇О"
+                        width="150">
+                </el-table-column>
+                <el-table-column label="搴熸按(涓�)">
+                    <el-table-column
+                            prop="name"
+                            label="棰勮"
+                            width="120">
+                    </el-table-column>
+                    <el-table-column
+                            prop="name"
+                            label="鎶ヨ"
+                            width="120">
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column label="搴熸皵(涓�)">
+                    <el-table-column
+                            prop="name"
+                            label="棰勮"
+                            width="120">
+                    </el-table-column>
+                    <el-table-column
+                            prop="name"
+                            label="鎶ヨ"
+                            width="120">
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column label="鍥哄簾(涓�)">
+                    <el-table-column
+                            prop="name"
+                            label="棰勮"
+                            width="120">
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column label="纭寲姘�(涓�)">
+                    <el-table-column
+                            prop="name"
+                            label="棰勮"
+                            width="120">
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column label="鍙噧姘斾綋(涓�)">
+                    <el-table-column
+                            prop="name"
+                            label="棰勮"
+                            width="120">
+                    </el-table-column>
+                </el-table-column>
+            </el-table>
+        </el-tab-pane>
+        <el-tab-pane label="褰撴湀缁熻" name="second">
+            <el-table
+                    :data="tableData"
+                    style="width: 100%">
+                <el-table-column
+                        prop="date"
+                        label="浼佷笟鍚嶇О"
+                        width="150">
+                </el-table-column>
+                <el-table-column label="搴熸按(涓�)">
+                    <el-table-column
+                            prop="name"
+                            label="棰勮"
+                            width="120">
+                    </el-table-column>
+                    <el-table-column
+                            prop="name"
+                            label="鎶ヨ"
+                            width="120">
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column label="搴熸皵(涓�)">
+                    <el-table-column
+                            prop="name"
+                            label="棰勮"
+                            width="120">
+                    </el-table-column>
+                    <el-table-column
+                            prop="name"
+                            label="鎶ヨ"
+                            width="120">
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column label="鍥哄簾(涓�)">
+                    <el-table-column
+                            prop="name"
+                            label="棰勮"
+                            width="120">
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column label="纭寲姘�(涓�)">
+                    <el-table-column
+                            prop="name"
+                            label="棰勮"
+                            width="120">
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column label="鍙噧姘斾綋(涓�)">
+                    <el-table-column
+                            prop="name"
+                            label="棰勮"
+                            width="120">
+                    </el-table-column>
+                </el-table-column>
+            </el-table>
+        </el-tab-pane>
+        <el-tab-pane label="涓婃湀缁熻" name="third">
+            <el-table
+                    :data="tableData"
+                    style="width: 100%">
+                <el-table-column
+                        prop="date"
+                        label="浼佷笟鍚嶇О"
+                        width="150">
+                </el-table-column>
+                <el-table-column label="搴熸按(涓�)">
+                    <el-table-column
+                            prop="name"
+                            label="棰勮"
+                            width="120">
+                    </el-table-column>
+                    <el-table-column
+                            prop="name"
+                            label="鎶ヨ"
+                            width="120">
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column label="搴熸皵(涓�)">
+                    <el-table-column
+                            prop="name"
+                            label="棰勮"
+                            width="120">
+                    </el-table-column>
+                    <el-table-column
+                            prop="name"
+                            label="鎶ヨ"
+                            width="120">
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column label="鍥哄簾(涓�)">
+                    <el-table-column
+                            prop="name"
+                            label="棰勮"
+                            width="120">
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column label="纭寲姘�(涓�)">
+                    <el-table-column
+                            prop="name"
+                            label="棰勮"
+                            width="120">
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column label="鍙噧姘斾綋(涓�)">
+                    <el-table-column
+                            prop="name"
+                            label="棰勮"
+                            width="120">
+                    </el-table-column>
+                </el-table-column>
+            </el-table>
+        </el-tab-pane>
+    </el-tabs>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      tableData: [{
+        date: '2016-05-03',
+        name: '鐜嬪皬铏�',
+        province: '涓婃捣',
+        city: '鏅檧鍖�',
+        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
+        zip: 200333
+      }, {
+        date: '2016-05-02',
+        name: '鐜嬪皬铏�',
+        province: '涓婃捣',
+        city: '鏅檧鍖�',
+        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
+        zip: 200333
+      }, {
+        date: '2016-05-04',
+        name: '鐜嬪皬铏�',
+        province: '涓婃捣',
+        city: '鏅檧鍖�',
+        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
+        zip: 200333
+      }, {
+        date: '2016-05-01',
+        name: '鐜嬪皬铏�',
+        province: '涓婃捣',
+        city: '鏅檧鍖�',
+        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
+        zip: 200333
+      }, {
+        date: '2016-05-08',
+        name: '鐜嬪皬铏�',
+        province: '涓婃捣',
+        city: '鏅檧鍖�',
+        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
+        zip: 200333
+      }, {
+        date: '2016-05-06',
+        name: '鐜嬪皬铏�',
+        province: '涓婃捣',
+        city: '鏅檧鍖�',
+        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
+        zip: 200333
+      }, {
+        date: '2016-05-07',
+        name: '鐜嬪皬铏�',
+        province: '涓婃捣',
+        city: '鏅檧鍖�',
+        address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
+        zip: 200333
+      }]
+    }
+  }
+}
+</script>
diff --git a/src/components/table/enterprise.vue b/src/components/table/enterprise.vue
new file mode 100644
index 0000000..f024ad2
--- /dev/null
+++ b/src/components/table/enterprise.vue
@@ -0,0 +1,62 @@
+<template>
+    <div class="enterprise-panel">
+        <div class="enterprise-function" @click="showWarnDialog()">
+            <img src="@/assets/images/map-pages/icon/map/warn.png" alt="" width="32px">
+        </div>
+        <div class="enterprise-function" @click="showStatisDialog()">
+            <img src="@/assets/images/map-pages/icon/map/company.png" alt="" width="32px">
+        </div>
+        <Dialog ref="warnDialog" title="浼佷笟棰勮鎶ヨ鍒嗙被缁熻">
+            <warn></warn>
+        </Dialog>
+        <Dialog ref="indexStatisticsDialog" title="浼佷笟鎸囨爣鍒嗙被缁熻">
+            <index-statistics></index-statistics>
+        </Dialog>
+    </div>
+</template>
+
+<script>
+import Dialog from '../../views/popup/Dialog'
+import Warn from './components/Warn'
+import IndexStatistics from './components/IndexStatistics'
+export default {
+  name: 'Enterprise',
+  components: {
+    Dialog,
+    Warn,
+    IndexStatistics
+  },
+  data () {
+    return {
+      comp: Warn
+    }
+  },
+  methods: {
+    // 鍥炬爣 鎺у埗鍐呭鐨勫睍绀轰笌闅愯棌
+    show () {
+      this.legendControl = !this.legendControl
+    },
+    showWarnDialog () {
+      this.$refs.warnDialog.show()
+    },
+    showStatisDialog () {
+      this.$refs.indexStatisticsDialog.show()
+    }
+  }
+}
+</script>
+
+<style lang="less" scoped>
+.enterprise-panel{
+    position: absolute;
+    right: 5px;
+    top:5px;
+    z-index: 9999;
+
+    .enterprise-function{
+        width: 40px;
+        float: left;
+        cursor: pointer;
+    }
+}
+</style>
diff --git a/src/views/MapTemplate.vue b/src/views/MapTemplate.vue
index ce5e3cc..2061b6e 100644
--- a/src/views/MapTemplate.vue
+++ b/src/views/MapTemplate.vue
@@ -13,6 +13,7 @@
     <tool-box-panel ref="toolBox"></tool-box-panel>
     <menu-special></menu-special>
     <legend-panel></legend-panel>
+    <enterprise></enterprise>
   </div>
 </template>
 
@@ -29,10 +30,12 @@
 import Popup from '@views/popup/Popup'
 import MenuSpecial from '@components/panel/MenuTopic'
 import LegendPanel from '@components/panel/LegendPanel'
+import Enterprise from '../components/table/enterprise'
 
 export default {
   name: 'MapTemplate',
   components: {
+    Enterprise,
     LegendPanel,
     MenuSpecial,
     ToolBoxPanel,
diff --git a/src/views/popup/Dialog.vue b/src/views/popup/Dialog.vue
new file mode 100644
index 0000000..af997fd
--- /dev/null
+++ b/src/views/popup/Dialog.vue
@@ -0,0 +1,37 @@
+<template>
+    <el-dialog
+            :title="title"
+            :visible.sync="centerDialogVisible"
+            width="30%"
+            :modal="false"
+            center>
+        <slot></slot>
+    </el-dialog>
+</template>
+<script>
+// import '@/assets/css/map/map-popup.scss'
+
+export default {
+  name: 'Dialog',
+  props: {
+    title: {
+      type: String,
+      default: '鏍囬'
+    }
+  },
+  data () {
+    return {
+      centerDialogVisible: false
+    }
+  },
+  methods: {
+    show () {
+      this.centerDialogVisible = true
+    }
+  }
+}
+
+</script>
+<style lang="less">
+
+</style>

--
Gitblit v1.8.0