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