Selaa lähdekoodia

'代码推送-202107191454'

fanghuisheng 4 vuotta sitten
vanhempi
commit
2624227f5b

+ 152 - 131
package-lock.json

@@ -1223,7 +1223,7 @@
     },
     "@popperjs/core": {
       "version": "2.9.2",
-      "resolved": "https://registry.nlark.com/@popperjs/core/download/@popperjs/core-2.9.2.tgz",
+      "resolved": "https://registry.npm.taobao.org/@popperjs/core/download/@popperjs/core-2.9.2.tgz?cache=0&sync_timestamp=1617290324040&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40popperjs%2Fcore%2Fdownload%2F%40popperjs%2Fcore-2.9.2.tgz",
       "integrity": "sha1-rep7aVPLs0ZRdmsFSEaOdDxqI1M="
     },
     "@simonwep/pickr": {
@@ -1812,6 +1812,63 @@
           "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
           "dev": true
         },
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
+          "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.1",
+          "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.1.tgz?cache=0&sync_timestamp=1618995355917&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.1.tgz",
+          "integrity": "sha1-yAs/qyi/Y3HmhjMl7uZ+YYt35q0=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+          "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
+          "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
+          "dev": true,
+          "optional": true
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1618847009337&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
+          "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
+          "dev": true,
+          "optional": true
+        },
+        "loader-utils": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz",
+          "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^2.1.2"
+          }
+        },
         "ssri": {
           "version": "8.0.1",
           "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826725566&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz",
@@ -1820,6 +1877,28 @@
           "requires": {
             "minipass": "^3.1.1"
           }
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
+          "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        },
+        "vue-loader-v16": {
+          "version": "npm:vue-loader@16.3.1",
+          "resolved": "https://registry.nlark.com/vue-loader/download/vue-loader-16.3.1.tgz",
+          "integrity": "sha1-W2da4orJcIARHpOybSKtyjbdV6o=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "chalk": "^4.1.0",
+            "hash-sum": "^2.0.0",
+            "loader-utils": "^2.0.0"
+          }
         }
       }
     },
@@ -3205,7 +3284,7 @@
     },
     "camelcase-keys": {
       "version": "2.1.0",
-      "resolved": "https://registry.nlark.com/camelcase-keys/download/camelcase-keys-2.1.0.tgz?cache=0&sync_timestamp=1624608993530&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcamelcase-keys%2Fdownload%2Fcamelcase-keys-2.1.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz",
       "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
       "dev": true,
       "requires": {
@@ -3215,7 +3294,7 @@
       "dependencies": {
         "camelcase": {
           "version": "2.1.1",
-          "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz?cache=0&sync_timestamp=1603921799543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-2.1.1.tgz",
           "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
           "dev": true
         }
@@ -3554,7 +3633,7 @@
     },
     "clone-deep": {
       "version": "4.0.1",
-      "resolved": "https://registry.nlark.com/clone-deep/download/clone-deep-4.0.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/clone-deep/download/clone-deep-4.0.1.tgz",
       "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=",
       "dev": true,
       "requires": {
@@ -4353,7 +4432,7 @@
     },
     "dayjs": {
       "version": "1.10.6",
-      "resolved": "https://registry.nlark.com/dayjs/download/dayjs-1.10.6.tgz?cache=0&sync_timestamp=1625557417200&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdayjs%2Fdownload%2Fdayjs-1.10.6.tgz",
+      "resolved": "https://registry.nlark.com/dayjs/download/dayjs-1.10.6.tgz?cache=0&sync_timestamp=1625557310646&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdayjs%2Fdownload%2Fdayjs-1.10.6.tgz",
       "integrity": "sha1-KIsqqC8thBimydTfWJjAc3rQKmM="
     },
     "debug": {
@@ -5977,13 +6056,13 @@
       "dependencies": {
         "ansi-regex": {
           "version": "2.1.1",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1618552978881&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz",
           "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
           "dev": true
         },
         "is-fullwidth-code-point": {
           "version": "1.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz?cache=0&sync_timestamp=1618552489864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-1.0.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-1.0.0.tgz",
           "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
           "dev": true,
           "requires": {
@@ -5992,7 +6071,7 @@
         },
         "string-width": {
           "version": "1.0.2",
-          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz?cache=0&sync_timestamp=1618558751438&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz",
+          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz?cache=0&sync_timestamp=1618558856477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz",
           "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
           "dev": true,
           "requires": {
@@ -6003,7 +6082,7 @@
         },
         "strip-ansi": {
           "version": "3.0.1",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1618553351145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
           "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
           "dev": true,
           "requires": {
@@ -6136,7 +6215,7 @@
     },
     "globule": {
       "version": "1.3.2",
-      "resolved": "https://registry.npm.taobao.org/globule/download/globule-1.3.2.tgz",
+      "resolved": "https://registry.npm.taobao.org/globule/download/globule-1.3.2.tgz?cache=0&sync_timestamp=1591641966255&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobule%2Fdownload%2Fglobule-1.3.2.tgz",
       "integrity": "sha1-2L3Z6eTu+PluJFmZpd7n612FKcQ=",
       "dev": true,
       "requires": {
@@ -6203,7 +6282,7 @@
       "dependencies": {
         "ansi-regex": {
           "version": "2.1.1",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1618552978881&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz",
           "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
           "dev": true
         }
@@ -7325,7 +7404,7 @@
     },
     "js-base64": {
       "version": "2.6.4",
-      "resolved": "https://registry.nlark.com/js-base64/download/js-base64-2.6.4.tgz?cache=0&sync_timestamp=1621703447855&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjs-base64%2Fdownload%2Fjs-base64-2.6.4.tgz",
+      "resolved": "https://registry.npm.taobao.org/js-base64/download/js-base64-2.6.4.tgz",
       "integrity": "sha1-9OaGxd4eofhn28rT1G2WlCjfmMQ=",
       "dev": true
     },
@@ -7596,7 +7675,7 @@
       "dependencies": {
         "parse-json": {
           "version": "2.2.0",
-          "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz?cache=0&sync_timestamp=1610966646988&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz?cache=0&sync_timestamp=1610966667117&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparse-json%2Fdownload%2Fparse-json-2.2.0.tgz",
           "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
           "dev": true,
           "requires": {
@@ -7831,7 +7910,7 @@
     },
     "map-obj": {
       "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz?cache=0&sync_timestamp=1617771232226&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-obj%2Fdownload%2Fmap-obj-1.0.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz?cache=0&sync_timestamp=1617771296262&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmap-obj%2Fdownload%2Fmap-obj-1.0.1.tgz",
       "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
       "dev": true
     },
@@ -7879,7 +7958,7 @@
     },
     "meow": {
       "version": "3.7.0",
-      "resolved": "https://registry.nlark.com/meow/download/meow-3.7.0.tgz",
+      "resolved": "https://registry.nlark.com/meow/download/meow-3.7.0.tgz?cache=0&sync_timestamp=1620227920685&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmeow%2Fdownload%2Fmeow-3.7.0.tgz",
       "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
       "dev": true,
       "requires": {
@@ -8377,19 +8456,19 @@
       "dependencies": {
         "ansi-regex": {
           "version": "2.1.1",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1618552978881&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz",
           "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
           "dev": true
         },
         "ansi-styles": {
           "version": "2.2.1",
-          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz",
+          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz",
           "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
           "dev": true
         },
         "chalk": {
           "version": "1.1.3",
-          "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1618995355917&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz",
+          "resolved": "https://registry.nlark.com/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1618995384030&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz",
           "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
           "dev": true,
           "requires": {
@@ -8423,7 +8502,7 @@
         },
         "lru-cache": {
           "version": "4.1.5",
-          "resolved": "https://registry.nlark.com/lru-cache/download/lru-cache-4.1.5.tgz",
+          "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
           "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
           "dev": true,
           "requires": {
@@ -8479,7 +8558,7 @@
         },
         "strip-ansi": {
           "version": "3.0.1",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1618553351145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
           "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
           "dev": true,
           "requires": {
@@ -8488,7 +8567,7 @@
         },
         "supports-color": {
           "version": "2.0.0",
-          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz?cache=0&sync_timestamp=1618560959124&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-2.0.0.tgz",
           "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
           "dev": true
         },
@@ -8581,7 +8660,7 @@
     },
     "number-is-nan": {
       "version": "1.0.1",
-      "resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz?cache=0&sync_timestamp=1617776101309&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnumber-is-nan%2Fdownload%2Fnumber-is-nan-1.0.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz",
       "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
       "dev": true
     },
@@ -9007,6 +9086,30 @@
       "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
       "dev": true
     },
+    "path": {
+      "version": "0.12.7",
+      "resolved": "https://registry.npm.taobao.org/path/download/path-0.12.7.tgz",
+      "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=",
+      "requires": {
+        "process": "^0.11.1",
+        "util": "^0.10.3"
+      },
+      "dependencies": {
+        "inherits": {
+          "version": "2.0.3",
+          "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz",
+          "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+        },
+        "util": {
+          "version": "0.10.4",
+          "resolved": "https://registry.nlark.com/util/download/util-0.10.4.tgz",
+          "integrity": "sha1-OqASW/5mikZy3liFfTrOJ+y3aQE=",
+          "requires": {
+            "inherits": "2.0.3"
+          }
+        }
+      }
+    },
     "path-browserify": {
       "version": "0.0.1",
       "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz",
@@ -9831,8 +9934,7 @@
     "process": {
       "version": "0.11.10",
       "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz",
-      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
-      "dev": true
+      "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI="
     },
     "process-nextick-args": {
       "version": "2.0.1",
@@ -10042,7 +10144,7 @@
       "dependencies": {
         "find-up": {
           "version": "1.1.2",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz",
+          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz?cache=0&sync_timestamp=1597170240264&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-1.1.2.tgz",
           "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
           "dev": true,
           "requires": {
@@ -10061,7 +10163,7 @@
         },
         "path-type": {
           "version": "1.1.0",
-          "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz?cache=0&sync_timestamp=1611752015315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-1.1.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz?cache=0&sync_timestamp=1611752528858&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-type%2Fdownload%2Fpath-type-1.1.0.tgz",
           "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
           "dev": true,
           "requires": {
@@ -10078,7 +10180,7 @@
         },
         "read-pkg": {
           "version": "1.1.0",
-          "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz?cache=0&sync_timestamp=1616914810926&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg%2Fdownload%2Fread-pkg-1.1.0.tgz",
           "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
           "dev": true,
           "requires": {
@@ -10116,7 +10218,7 @@
     },
     "redent": {
       "version": "1.0.0",
-      "resolved": "https://registry.nlark.com/redent/download/redent-1.0.0.tgz",
+      "resolved": "https://registry.nlark.com/redent/download/redent-1.0.0.tgz?cache=0&sync_timestamp=1620069780522&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fredent%2Fdownload%2Fredent-1.0.0.tgz",
       "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
       "dev": true,
       "requires": {
@@ -10126,7 +10228,7 @@
       "dependencies": {
         "strip-indent": {
           "version": "1.0.1",
-          "resolved": "https://registry.nlark.com/strip-indent/download/strip-indent-1.0.1.tgz?cache=0&sync_timestamp=1620053310624&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-indent%2Fdownload%2Fstrip-indent-1.0.1.tgz",
+          "resolved": "https://registry.nlark.com/strip-indent/download/strip-indent-1.0.1.tgz?cache=0&sync_timestamp=1620053263051&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-indent%2Fdownload%2Fstrip-indent-1.0.1.tgz",
           "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
           "dev": true,
           "requires": {
@@ -10283,7 +10385,7 @@
     },
     "repeating": {
       "version": "2.0.1",
-      "resolved": "https://registry.nlark.com/repeating/download/repeating-2.0.1.tgz",
+      "resolved": "https://registry.nlark.com/repeating/download/repeating-2.0.1.tgz?cache=0&sync_timestamp=1620068853953&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frepeating%2Fdownload%2Frepeating-2.0.1.tgz",
       "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
       "dev": true,
       "requires": {
@@ -10484,7 +10586,7 @@
       "dependencies": {
         "camelcase": {
           "version": "5.3.1",
-          "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1603921799543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz",
           "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=",
           "dev": true
         },
@@ -10501,13 +10603,13 @@
         },
         "emoji-regex": {
           "version": "7.0.3",
-          "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1614682707048&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz",
+          "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1614682725186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz",
           "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=",
           "dev": true
         },
         "find-up": {
           "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz?cache=0&sync_timestamp=1597170240264&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-3.0.0.tgz",
           "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=",
           "dev": true,
           "requires": {
@@ -10516,13 +10618,13 @@
         },
         "is-fullwidth-code-point": {
           "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz?cache=0&sync_timestamp=1618552489864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz",
           "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
           "dev": true
         },
         "locate-path": {
           "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz?cache=0&sync_timestamp=1597082033698&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-3.0.0.tgz",
           "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=",
           "dev": true,
           "requires": {
@@ -10532,7 +10634,7 @@
         },
         "p-locate": {
           "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz?cache=0&sync_timestamp=1597081369770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-3.0.0.tgz",
           "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=",
           "dev": true,
           "requires": {
@@ -10547,7 +10649,7 @@
         },
         "string-width": {
           "version": "3.1.0",
-          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1618558751438&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz?cache=0&sync_timestamp=1618558856477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-3.1.0.tgz",
           "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=",
           "dev": true,
           "requires": {
@@ -10558,7 +10660,7 @@
         },
         "strip-ansi": {
           "version": "5.2.0",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1618553351145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz",
           "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
           "dev": true,
           "requires": {
@@ -10567,7 +10669,7 @@
         },
         "wrap-ansi": {
           "version": "5.1.0",
-          "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz?cache=0&sync_timestamp=1618558923406&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-5.1.0.tgz",
           "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=",
           "dev": true,
           "requires": {
@@ -10578,7 +10680,7 @@
         },
         "yargs": {
           "version": "13.3.2",
-          "resolved": "https://registry.nlark.com/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1620086465147&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz",
+          "resolved": "https://registry.nlark.com/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1620086581476&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz",
           "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=",
           "dev": true,
           "requires": {
@@ -10596,7 +10698,7 @@
         },
         "yargs-parser": {
           "version": "13.1.2",
-          "resolved": "https://registry.nlark.com/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1624233514145&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz",
+          "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz",
           "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=",
           "dev": true,
           "requires": {
@@ -10608,7 +10710,7 @@
     },
     "sass-loader": {
       "version": "8.0.2",
-      "resolved": "https://registry.nlark.com/sass-loader/download/sass-loader-8.0.2.tgz?cache=0&sync_timestamp=1623350053592&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsass-loader%2Fdownload%2Fsass-loader-8.0.2.tgz",
+      "resolved": "https://registry.nlark.com/sass-loader/download/sass-loader-8.0.2.tgz",
       "integrity": "sha1-3r7NjDziQ8dkVPLoKQSCFQOACQ0=",
       "dev": true,
       "requires": {
@@ -10633,7 +10735,7 @@
       "dependencies": {
         "ansi-styles": {
           "version": "4.3.0",
-          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995778321&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
+          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
           "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
           "dev": true,
           "requires": {
@@ -10642,7 +10744,7 @@
         },
         "async": {
           "version": "3.2.0",
-          "resolved": "https://registry.nlark.com/async/download/async-3.2.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/async/download/async-3.2.0.tgz",
           "integrity": "sha1-s6JoXF67ZB094C0WEALGD8n4VyA=",
           "dev": true
         },
@@ -10658,7 +10760,7 @@
         },
         "color-convert": {
           "version": "2.0.1",
-          "resolved": "https://registry.nlark.com/color-convert/download/color-convert-2.0.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
           "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
           "dev": true,
           "requires": {
@@ -11536,7 +11638,7 @@
     },
     "strip-bom": {
       "version": "2.0.0",
-      "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz?cache=0&sync_timestamp=1618599587805&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-bom%2Fdownload%2Fstrip-bom-2.0.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz",
       "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
       "dev": true,
       "requires": {
@@ -12438,87 +12540,6 @@
         }
       }
     },
-    "vue-loader-v16": {
-      "version": "npm:vue-loader@16.3.0",
-      "resolved": "https://registry.nlark.com/vue-loader/download/vue-loader-16.3.0.tgz?cache=0&sync_timestamp=1624994309035&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvue-loader%2Fdownload%2Fvue-loader-16.3.0.tgz",
-      "integrity": "sha1-LxleS6D7DiY1ltaDDfF9Gjbok2w=",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "chalk": "^4.1.0",
-        "hash-sum": "^2.0.0",
-        "loader-utils": "^2.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995778321&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
-          "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.1",
-          "resolved": "https://registry.nlark.com/chalk/download/chalk-4.1.1.tgz?cache=0&sync_timestamp=1618995355917&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fchalk%2Fdownload%2Fchalk-4.1.1.tgz",
-          "integrity": "sha1-yAs/qyi/Y3HmhjMl7uZ+YYt35q0=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.nlark.com/color-convert/download/color-convert-2.0.1.tgz",
-          "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
-          "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
-          "dev": true,
-          "optional": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1618847009337&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
-          "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
-          "dev": true,
-          "optional": true
-        },
-        "loader-utils": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz",
-          "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^2.1.2"
-          }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.nlark.com/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1622293579301&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
-          "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
     "vue-router": {
       "version": "4.0.8",
       "resolved": "https://registry.nlark.com/vue-router/download/vue-router-4.0.8.tgz",
@@ -13261,19 +13282,19 @@
       "dependencies": {
         "ansi-regex": {
           "version": "3.0.0",
-          "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-3.0.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1618552978881&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz",
           "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
           "dev": true
         },
         "is-fullwidth-code-point": {
           "version": "2.0.0",
-          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz?cache=0&sync_timestamp=1618552489864&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-fullwidth-code-point%2Fdownload%2Fis-fullwidth-code-point-2.0.0.tgz",
           "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
           "dev": true
         },
         "string-width": {
           "version": "2.1.1",
-          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz?cache=0&sync_timestamp=1618558751438&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-2.1.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz?cache=0&sync_timestamp=1618558856477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring-width%2Fdownload%2Fstring-width-2.1.1.tgz",
           "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=",
           "dev": true,
           "requires": {
@@ -13283,7 +13304,7 @@
         },
         "strip-ansi": {
           "version": "4.0.0",
-          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1618553320591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1618553351145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz",
           "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
           "dev": true,
           "requires": {

+ 1 - 0
package.json

@@ -16,6 +16,7 @@
         "element-plus": "^1.0.2-beta.54",
         "element-ui": "^2.15.3",
         "js-cookie": "^2.2.1",
+        "path": "^0.12.7",
         "vue": "^3.0.0",
         "vue-router": "^4.0.4",
         "vuex": "^4.0.0"

+ 1 - 0
public/static/config.js

@@ -3,6 +3,7 @@ var PLATFROM_CONFIG = {};
 // PLATFROM_CONFIG.baseUrl = "http://172.16.120.155:8010/" //杨强本地
 // PLATFROM_CONFIG.baseUrl = "http://172.16.1.196:8010/"  //超博本地
 PLATFROM_CONFIG.baseUrl = "http://124.71.174.104:80/api" //线上
+PLATFROM_CONFIG.fileUrl = "http://124.71.174.104/file/" //xlsx文件访问路径
 
 
 // 当前站点 siteId 信息存储

+ 32 - 0
src/api/Overview/index.js

@@ -0,0 +1,32 @@
+import request from '@/utils/request'
+
+export default {
+    // 获取站点信息数据
+    siteOne(params) {
+        return request({
+            url: `site/one`,
+            method: 'GET',
+            params: params
+            // data: data
+        })
+    },
+    // 获取设备统计 ->监测设备图表数据
+    deviceTypeCount(params) {
+        return request({
+            url: `device/deviceTypeCount`,
+            method: 'GET',
+            params: params
+            // data: data
+        })
+    },
+    // 获取设备统计 ->监测对象图表数据
+    count(params) {
+        return request({
+            url: `facility/count`,
+            method: 'GET',
+            params: params
+            // data: data
+        })
+    },
+    
+}

+ 8 - 0
src/api/site/Device_motore.js

@@ -51,4 +51,12 @@ export default {
             params: params
         })
     },
+    // 导出数据报表xlsx
+    DataReportExport(params) {
+        return request({
+            url: `rtAnalogData/DataReportExport`,
+            method: 'GET',
+            params: params
+        })
+    },
 }

+ 41 - 0
src/api/site/Event_alarm.js

@@ -0,0 +1,41 @@
+import request from '@/utils/request'
+
+
+export default {
+    // 获取事件告警统计柱状图数据
+    trendIco(params) {
+        return request({
+            url: `alarmPower/trendIco`,
+            method: 'GET',
+            params: params
+            // data: data
+        })
+    },
+    // 获取事件告警列表统计数据
+    count(params) {
+        return request({
+            url: `alarmPower/count`,
+            method: 'GET',
+            params: params
+            // data: data
+        })
+    },
+    // 获取事件告警列表分页数据
+    page(params) {
+        return request({
+            url: `alarmPower/page`,
+            method: 'GET',
+            params: params
+            // data: data
+        })
+    },
+    // 获取事件告警列表导出xlsx表格
+    export(params) {
+        return request({
+            url: `alarmPower/export`,
+            method: 'GET',
+            params: params
+            // data: data
+        })
+    },
+}

+ 20 - 1
src/assets/css/index.css

@@ -141,6 +141,25 @@ header {
     /* border: 1px solid red */
 }
 
+/* 公共el-table 滚动条样式*/
+.el-table__body-wrapper::-webkit-scrollbar {
+    width: 5px;
+    height: 5px;
+}
+.el-table__body-wrapper::-webkit-scrollbar-thumb {
+    border-right: none;
+    background-color: #01f5f1;
+    border-radius: 5px;
+}
+.el-table__body-wrapper::-webkit-scrollbar-track {
+    background-color: rgb(0, 66, 78, 1);
+}
+.el-table__body-wrapper::-webkit-scrollbar-thumb:hover {
+    background-color: rgb(17, 177, 174);
+}
+.el-table__body-wrapper::-webkit-scrollbar-thumb:active {
+    background-color: rgb(9, 136, 134);
+}
 
 /* el-select 下拉框 样式 */
 
@@ -153,7 +172,7 @@ header {
     width: 2rem !important;
     height: 0.375rem !important;
     background-color: transparent !important;
-    color: #4BF4F9 !important;
+    color: #4BF4F9;
     font-size: 0.18rem !important;
     border: 1px #4BF4F9 solid !important;
     border-radius: 0px !important;

BIN
src/assets/images/back_from.png


BIN
src/assets/images/title.png


+ 13 - 8
src/store/index.js

@@ -248,6 +248,18 @@ export default createStore({
             { label: '通讯参数', name: "DDB" },
             { label: '电压突变', name: "VT" },
         ],//设备监控--->历史趋势->默认tabs数据
+
+        trendIco: null,//事件告警--->事件告警统计->echarts->柱状图 api信息存储
+        trendIco_state:null,//事件告警--->事件告警统计->select状态api信息存储
+        trendIco_table:[
+            {label:'发生时间',porp:'soeTime'},
+            {label:'告警描述',porp:'measName'},
+            {label:'设备',porp:'deviceCode'},
+            {label:'告警类型',porp:'alarmName'},
+            {label:'状态',porp:'handlingStatus'},
+            {label:'处理人',porp:'handler'},
+            {label:'处理时间',porp:'handlingTime'},
+        ]//事件告警--->事件告警统计->表格默认值存储
     },
     mutations: {
         /**
@@ -298,12 +310,6 @@ export default createStore({
         HistoricalCurve(state, data) {
             state.HistoricalCurve = data
         },
-        /**
-         * @运行状态统计 -> echarts -> OFF次数分布和运行状态曲线图表 api信息存储
-         */
-        run_off_Status(state, data) {
-            state.run_off_Status = data
-        },
         /**
          * @公共处理时区方法
          */
@@ -449,8 +455,7 @@ export default createStore({
             state.Time_All = [Y, M, D, HH, MM, SS, timestamp]
             state.se_defaultTime = [new Date(Y, M, D, 0, 0, 0), new Date()]//设备监控--->历史趋势时间选择器v-model
             state.th_defaultTime = [new Date(Y, M, D, 0, 0, 0), new Date()]//设备监控--->数据报表时间选择器v-model
-            state.fh_defaultTime = [new Date(Y, M, 1, 0, 0, 0), new Date()]//设备监控--->运行状态统计时间选择器v-model
+            state.fh_defaultTime = [new Date(Y, M, 1, 0, 0, 0), new Date()]//设备监控--->运行状态统计时间选择器v-model  //概览 -> 告警统计折线图
         },
-
     }
 })

+ 16 - 7
src/views/index.vue

@@ -19,7 +19,12 @@
       <div class="router-menu" v-if="home">
         <div class="select">
           <span>当前站点:</span>
-          <el-select v-model="value" @change="el_select" placeholder="请选择">
+          <el-select
+            v-model="value"
+            @change="el_select"
+            placeholder="请选择"
+            popper-class="menu_select"
+          >
             <el-option
               v-for="(item, index) in options"
               :key="index"
@@ -134,6 +139,7 @@ export default {
   },
 };
 </script>
+
 <style scoped lang="less">
 #header {
   .router-index {
@@ -328,18 +334,21 @@ export default {
   }
 }
 </style>
-<style>
-.el-select__popper .el-popper__arrow::before {
+<style lang="less">
+.menu_select .el-popper__arrow::before {
   border-top-color: transparent !important;
   border-left-color: transparent !important;
   background: rgba(0, 244, 253, 1) !important;
 }
 .el-select__popper {
-  border: 1px solid rgba(0, 244, 253, 1) !important;
-  /* background: rgba(0,244,253,0.5) !important; */
-  /* background: rgba(6, 68, 83, 0.8) !important; */
   background-color: #082333 !important;
 }
+.menu_select {
+  border: 1px solid rgba(0, 244, 253, 1) !important;
+  > div {
+    border: transparent !important;
+  }
+}
 .el-select-dropdown__item.selected {
   color: rgba(0, 244, 253, 1) !important;
 }
@@ -354,7 +363,7 @@ export default {
 .el-scrollbar__view {
   background: rgba(0, 244, 253, 0) !important;
 }
-.el-select__popper .el-scrollbar {
+.menu_select .el-scrollbar {
   width: 2rem;
 }
 </style>

+ 24 - 21
src/views/site/Device_motore.vue

@@ -498,8 +498,8 @@ export default {
           .runStatus({ startTime: time[0], endTime: time[1], siteId: siteid })
           .then((requset) => {
             if (requset.status === "SUCCESS") {
-              _this.$store.commit("run_off_Status", requset.data);
-              console.log(requset);
+              _this.$store.state.run_off_Status = requset.data;
+              // console.log(requset);
             } else {
               ElMessage.success({
                 message: requset.msg,
@@ -589,6 +589,27 @@ export default {
         [h.column.label]
       );
     },
+    DataReportExport() {
+      api
+        .DataReportExport({
+          siteId: 3,
+          startTime: "2020-01-14 00:00:00",
+          endTime: "2021-07-11 00:00:00",
+          queryType: "V",
+        })
+        .then((requset) => {
+          if (requset.status === "SUCCESS") {
+            window.location.href =
+              window.PLATFROM_CONFIG.fileUrl + requset.data;
+          } else {
+            ElMessage.success({
+              message: requset.msg,
+              type: "success",
+            });
+          }
+        });
+    },
+    // rtAnalogData/DataReportExport?
   },
   watch: {
     /**
@@ -691,7 +712,7 @@ export default {
 }
 #pane-third .el-table th,
 .el-table tr {
-  background-color: rgb(0, 66, 78, 0.5) !important;
+  background-color: rgb(0, 66, 78, 0.5);
 }
 .el-table__fixed-body-wrapper::-webkit-scrollbar {
   width: 0;
@@ -782,24 +803,6 @@ export default {
 #pane-third .el-table__body tr > td:nth-child(1) {
   background-color: rgb(0, 66, 78, 1) !important;
 }
-#pane-third .el-table__body-wrapper::-webkit-scrollbar {
-  width: 5px;
-  height: 5px;
-}
-#pane-third .el-table__body-wrapper::-webkit-scrollbar-thumb {
-  border-right: none;
-  background-color: #01f5f1;
-  border-radius: 5px;
-}
-#pane-third .el-table__body-wrapper::-webkit-scrollbar-track {
-  background-color: rgb(0, 66, 78, 1);
-}
-#pane-third .el-table__body-wrapper::-webkit-scrollbar-thumb:hover {
-  background-color: rgb(17, 177, 174);
-}
-#pane-third .el-table__body-wrapper::-webkit-scrollbar-thumb:active {
-  background-color: rgb(9, 136, 134);
-}
 
 #pane-third .zwsj {
   margin: 65px 0;

+ 577 - 36
src/views/site/Event_alarm.vue

@@ -20,8 +20,8 @@
             <el-select
               id="state_select"
               popper-class="state_select"
-              v-model="value"
               @change="state_select"
+              v-model="value"
               placeholder="请选择"
             >
               <el-option
@@ -34,20 +34,155 @@
             </el-select>
           </div>
           <div class="Ctn_Time">
-            <el-button type="primary" class="Ctn_btn">查询</el-button>
+            <el-button type="primary" class="Ctn_btn" @click="Api_all"
+              >查询</el-button
+            >
+          </div>
+        </div>
+        <div class="back_all Cont_Two">
+          <div class="title">事件告警统计</div>
+          <div class="back_img"></div>
+          <div>
+            <Eventalarm></Eventalarm>
+          </div>
+        </div>
+        <div class="back_all Cont_Three">
+          <div class="title">事件告警列表</div>
+          <div class="back_img"></div>
+          <div class="three_ctn">
+            <div class="cont_1">
+              总告警: <span>{{ count }}</span> 条
+            </div>
+            <div class="cont_2">
+              未处理告警数: <span>{{ unCount }}</span> 条
+            </div>
+            <el-button type="primary" class="Ctn_btn" @click="export_api"
+              >导出</el-button
+            >
+          </div>
+          <div class="table">
+            <el-table
+              v-loading="table_loading"
+              empty-text=" "
+              element-loading-text="拼命加载中"
+              cell-class-name="Cont_Three_table"
+              ref="multipleTable"
+              :data="tableData"
+              tooltip-effect="dark"
+              max-height="345"
+              @selection-change="handleSelectionChange"
+              @row-dblclick="dblclick"
+            >
+              <el-table-column type="selection"> </el-table-column>
+              <el-table-column
+                v-for="table in $store.state.trendIco_table"
+                :key="table"
+                :prop="table.porp"
+                :label="table.label"
+                show-overflow-tooltip
+              >
+              </el-table-column>
+              <template #empty v-if="table_loading == false">
+                <div class="zwsj">
+                  <img src="./../../assets/images/No_data.png" alt="" />
+                  <p>暂无数据</p>
+                </div>
+              </template>
+            </el-table>
+            <div class="event_block">
+              <el-pagination
+                popper-class="event_page"
+                @size-change="handleSizeChange"
+                @current-change="handleCurrentChange"
+                :current-page="currentPage"
+                :page-sizes="[10, 20, 30, 40]"
+                :page-size="pageSize"
+                layout="total, sizes, prev, pager, next, jumper"
+                :total="total"
+              >
+              </el-pagination>
+            </div>
+            <el-dialog
+              title="告警处置"
+              v-model="dialogFormVisible"
+              custom-class="From_table"
+            >
+              <!-- {label:'处理人',porp:'handler'},
+            {label:'处理人时间',porp:'handlingTime'}, -->
+              <el-form :model="form">
+                <el-form-item label="发生时间: ">
+                  <el-input
+                    v-model="form.soeTime"
+                    autocomplete="off"
+                    :disabled="true"
+                  ></el-input>
+                </el-form-item>
+                <el-form-item label="告警描述: ">
+                  <el-input
+                    v-model="form.measName"
+                    autocomplete="off"
+                    :disabled="true"
+                  ></el-input>
+                </el-form-item>
+                <el-form-item label="设备: ">
+                  <el-input
+                    v-model="form.deviceCode"
+                    autocomplete="off"
+                    :disabled="true"
+                  ></el-input>
+                </el-form-item>
+                <el-form-item label="告警类型: ">
+                  <el-input
+                    v-model="form.alarmName"
+                    autocomplete="off"
+                    :disabled="true"
+                  ></el-input>
+                </el-form-item>
+                <el-form-item label="状态: ">
+                  <el-select
+                    v-model="form.handlingStatus"
+                    placeholder="请选择"
+                    popper-class="state_select"
+                  >
+                    <el-option label="已处理" :value="1"></el-option>
+                    <el-option label="未处理" :value="0"></el-option>
+                  </el-select>
+                </el-form-item>
+                <el-form-item label="描述: ">
+                  <el-input
+                    type="textarea"
+                    v-model="form.describe"
+                    autocomplete="off"
+                    maxlength="30"
+                    show-word-limit
+                  ></el-input>
+                </el-form-item>
+              </el-form>
+              <template #footer>
+                <span class="dialog-footer">
+                  <el-button type="primary" @click="dialogFormVisible = false"
+                    >确 定</el-button
+                  >
+                  <el-button @click="dialogFormVisible = false"
+                    >取 消</el-button
+                  >
+                </span>
+              </template>
+            </el-dialog>
           </div>
         </div>
-        <div class="back_all Cont_Two"></div>
-        <div class="back_all Cont_Three"></div>
       </div>
     </section>
   </div>
 </template>
 <script>
+import Eventalarm from "../site_ehcarts/Event_alarm.vue";
+import api from "../../api/site/Event_alarm";
+import { ElMessage } from "element-plus";
 export default {
   data() {
     return {
-      options: [{label:'已确认',value:0}], //状态下拉列表值存储
+      options: [], //状态下拉列表值存储
       value: 0, //状态下拉列表默认值
       defaultTime: [
         new Date(
@@ -63,14 +198,190 @@ export default {
       disabledDate(date) {
         return date.getTime() > new Date(); //公共时间选择器 控制当前时间之后的时间无法选择
       },
+
+      table_loading: false, //事件告警列表->Loading 加载
+      count: 0, //事件告警列表->总告警->api请求返回值存储
+      unCount: 0, //事件告警列表->未处理告警数->api请求返回值存储
+      tableData: [], //事件告警列表->表格api请求返回值存储
+      multipleSelection: [], //事件告警列表->多选按钮事件处理
+      dialogFormVisible: false, //事件告警列表->双击form表单隐藏显示控制
+      form: {
+        soeTime: "",
+        measName: "",
+        deviceCode: "",
+        alarmName: "",
+        handlingStatus: 0,
+        handler: "",
+        handlingTime: "",
+        describe: "",
+      }, //事件告警列表->form表单值绑定
+      currentPage: 1, //事件告警列表->分页当前页数默认值
+      pageSize: 10, //事件告警列表->每页几条
+      total: 0, //事件告警列表->总条数
     };
   },
   name: "event_alarm",
-  components: {},
-  mounted() {},
+  components: { Eventalarm },
+  mounted() {
+    this.trendIco_api();
+    this.count_api();
+  },
   methods: {
+    /**
+     * @form表单提交
+     */
+    dblclick(row, column, event) {
+      column || event;
+      this.dialogFormVisible = true;
+      this.form.soeTime = row.soeTime;
+      this.form.measName = row.measName;
+      this.form.deviceCode = row.deviceCode;
+      this.form.alarmName = row.alarmName;
+      row.handlingStatus === "已处理"
+        ? (this.form.handlingStatus = 1)
+        : (this.form.handlingStatus = 0);
+      this.form.handler = row.handler;
+      this.form.handlingTime = row.handlingTime;
+    },
+    /**
+     * @状态下拉框
+     */
     state_select(val) {
-      console.log(val);
+      this.$store.state.trendIco_state = val;
+      this.count_api();
+    },
+    /**
+     * @查询按钮api请求
+     */
+    Api_all() {
+      this.trendIco_api();
+      this.count_api();
+    },
+    /**
+     * @事件告警统计api请求
+     */
+    trendIco_api() {
+      var _this = this;
+      this.options = [];
+      this.$store.commit("TimeAll_function", this.defaultTime);
+      var time = this.$store.state.Time_Data;
+      api
+        .trendIco({
+          siteId: _this.$store.state.siteId,
+          startTime: time[0],
+          endTime: time[1],
+          queryType: _this.se_content,
+        })
+        .then((requset) => {
+          if (requset.status === "SUCCESS") {
+            _this.$store.state.trendIco_state = _this.value;
+            _this.$store.state.trendIco = requset.data;
+            requset.data.map((val, ind) => {
+              _this.options.push({ label: val.name, value: ind });
+              return;
+            });
+          } else {
+            ElMessage.success({
+              message: requset.msg,
+              type: "success",
+            });
+          }
+        });
+    },
+    /**
+     * @事件告警列表api请求
+     */
+    count_api() {
+      var _this = this;
+      this.table_loading = true;
+      this.$store.commit("TimeAll_function", this.defaultTime);
+      var time = this.$store.state.Time_Data;
+
+      api
+        .count({
+          siteId: _this.$store.state.siteId,
+        })
+        .then((requset) => {
+          if (requset.status === "SUCCESS") {
+            _this.count = requset.data.count;
+            _this.unCount = requset.data.unCount;
+          } else {
+            ElMessage.success({
+              message: requset.msg,
+              type: "success",
+            });
+          }
+        });
+      api
+        .page({
+          siteId: _this.$store.state.siteId,
+          startTime: time[0],
+          endTime: time[1],
+          status: _this.value,
+          current: _this.currentPage,
+          size: _this.pageSize,
+        })
+        .then((requset) => {
+          if (requset.status === "SUCCESS") {
+            _this.table_loading = false;
+            // console.log(requset);
+            _this.tableData = requset.data.records;
+            _this.total = requset.data.total;
+            _this.tableData.map((val) => {
+              val.handlingStatus == 1
+                ? (val.handlingStatus = "已处理")
+                : (val.handlingStatus = "未处理");
+            });
+            // console.log(requset);
+          } else {
+            ElMessage.success({
+              message: requset.msg,
+              type: "success",
+            });
+          }
+        });
+    },
+    /**
+     * @事件告警列表导出xlsx
+     */
+    export_api() {
+      var _this = this;
+      this.$store.commit("TimeAll_function", this.defaultTime);
+      var time = _this.$store.state.Time_Data;
+      api
+        .export({
+          siteId: _this.$store.state.siteId,
+          startTime: time[0],
+          endTime: time[1],
+          status: _this.value,
+        })
+        .then((requset) => {
+          if (requset.status === "SUCCESS") {
+            window.location.href =
+              window.PLATFROM_CONFIG.fileUrl + requset.data;
+          } else {
+            ElMessage.success({
+              message: requset.msg,
+              type: "success",
+            });
+          }
+        });
+    },
+    /**
+     * @多选按钮事件处理
+     */
+    handleSelectionChange(val) {
+      this.multipleSelection = val;
+    },
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.count_api();
+      // console.log(`每页 ${val} 条`);
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.count_api();
+      // console.log(`当前页: ${val}`);
     },
   },
 };
@@ -78,6 +389,191 @@ export default {
 
 
 <style>
+/**
+ * @分页css样式 
+*/
+.event_block {
+  margin-top: -10px;
+  text-align: center;
+}
+.event_block .el-pagination__sizes .el-input__inner {
+  margin-top: 0;
+  width: 110px !important;
+  border-radius: 3px !important;
+  border: 1px solid rgba(3, 107, 119, 1) !important;
+  color: #fff;
+}
+.event_block button {
+  background-color: transparent !important;
+  color: #fff !important;
+}
+.event_block .btn-prev {
+  margin-right: 10px;
+}
+.event_block .el-pagination button:hover {
+  color: rgba(3, 107, 119, 1) !important;
+}
+
+.event_block .el-pagination__total {
+  color: #fff;
+}
+.event_block .el-pagination__jump .el-input__inner {
+  margin-top: 0;
+  width: 45px !important;
+  color: #fff;
+}
+.event_block .el-pagination .el-pager li {
+  width: 27px;
+  height: 27px;
+  min-width: 27px;
+  line-height: 27px;
+  background: #1c363f;
+  color: #fff;
+  border: 1px solid rgba(3, 107, 119, 1) !important;
+  border-radius: 8px;
+  margin-right: 10px;
+}
+.event_block .el-pagination .el-pager li.active {
+  background: #016f6d;
+}
+.event_block .el-pagination .el-pagination__jump {
+  color: #fff;
+}
+</style>
+
+<style>
+/**
+ * @表单提交css样式
+ */
+.From_table {
+  width: 409px !important;
+  height: 516px;
+  background: transparent;
+  background: url("~@/assets/images/back_from.png") no-repeat;
+  background-size: cover;
+}
+.From_table .el-dialog__title {
+  color: #00f4fd;
+  font-size: 16px;
+  font-family: Microsoft YaHei Regular, Microsoft YaHei Regular-Regular;
+  font-weight: bold;
+  line-height: 10px;
+}
+.From_table .el-dialog__headerbtn {
+  background: url("~@/assets/images/close.png") no-repeat;
+  background-size: cover;
+  width: 16px;
+  height: 16px;
+}
+.From_table .el-dialog__headerbtn .el-dialog__close {
+  color: transparent;
+}
+.From_table .el-form-item__label {
+  width: 80px;
+  color: #00f4fd;
+}
+.From_table .el-form-item {
+  margin-bottom: 10px;
+}
+.From_table .el-input__inner {
+  width: 285px !important;
+  color: #fff;
+}
+.From_table .el-input--suffix .el-input__inner {
+  border-radius: 3px !important;
+  border: 1px solid rgba(3, 107, 119, 1) !important;
+  color: #fff;
+  margin-top: 0px;
+}
+.From_table .el-scrollbar {
+  width: 100%;
+}
+.From_table .el-textarea__inner {
+  border: 1px solid rgba(3, 107, 119, 1);
+  background-color: transparent;
+  height: 103px !important;
+  width: 98.5%;
+  color: #fff;
+}
+.From_table .el-textarea .el-input__count {
+  background-color: transparent;
+}
+.From_table .el-dialog__footer {
+  text-align: center;
+}
+.From_table .el-dialog__footer .el-button:nth-child(1) {
+  margin-right: 100px;
+}
+.From_table .el-button {
+  min-height: 30px;
+  padding: 10px 20px;
+}
+.From_table .el-dialog__body {
+  padding: 15px 20px;
+}
+</style>
+
+<style>
+/**
+ * 表格样式
+ */
+.Cont_Three .table {
+  margin: 0 15px;
+  min-height: 345px;
+  height: 100%;
+  max-height: 85%;
+}
+.Cont_Three .table .el-table {
+  background-color: rgba(0, 66, 78, 0) !important;
+  max-height: 100% !important;
+  height: 89%;
+  overflow: auto;
+}
+.Cont_Three .table .el-table th {
+  background-color: rgba(0, 66, 78, 0.5) !important;
+}
+.Cont_Three .table .el-table tr {
+  background-color: rgba(0, 66, 78, 0) !important;
+}
+.Cont_Three .table .cell {
+  color: #fff;
+}
+.Cont_Three .el-checkbox .el-checkbox__input .el-checkbox__inner {
+  background-color: transparent;
+  border: 1px solid rgba(1, 111, 109, 1);
+}
+.Cont_Three .el-checkbox__input.is-checked .el-checkbox__inner,
+.el-checkbox__input.is-indeterminate .el-checkbox__inner {
+  background-color: rgba(1, 111, 109, 1) !important;
+}
+.Cont_Three .el-checkbox__inner::after {
+  border: 1px solid rgba(0, 244, 253, 1);
+  border-left: 0;
+  border-top: 0;
+}
+.Cont_Three .el-table td,
+.el-table th.is-leaf {
+  border-bottom: 1px solid rgba(1, 111, 109, 0.5);
+}
+.Cont_Three .el-table--border::after,
+.el-table--group::after,
+.el-table::before {
+  background-color: transparent;
+}
+/*鼠标移入某行时的背景色*/
+.Cont_Three .el-table__body tr:hover > td {
+  background-color: rgb(3, 61, 72, 1) !important;
+}
+.Cont_Three .el-table td,
+.el-table th {
+  padding: 5px 0;
+}
+.Cont_Three .el-table__empty-block {
+  padding-top: 80px;
+}
+</style>
+
+<style lang="less">
 /**
  * @下拉框样式
  */
@@ -97,57 +593,102 @@ export default {
   width: 16px !important;
   line-height: 30px !important;
 }
+
 .state_select {
   border: 1px solid rgba(0, 107, 119, 1) !important;
+  > div {
+    border: transparent !important;
+  }
 }
-.state_select .el-scrollbar{
+.state_select .el-scrollbar {
   width: 100%;
 }
 .state_select .el-popper__arrow::before {
+  border: 1px transparent solid !important;
   background: rgba(0, 107, 119, 1) !important;
 }
 </style>
+
 <style scoped lang="less">
 #Event_content {
   width: 98%;
+  height: 100%;
   margin: 0 auto;
-  min-height: 840px;
-}
-#Event_content .back_all {
-  background-color: rgba(0, 244, 253, 0.1);
-  border: 1px solid rgba(0, 244, 253, 0.1);
-}
-#Event_content .Cont_One {
-  min-height: 60px;
-  margin-bottom: 10px;
-  display: flex;
+  .Cont_One {
+    min-height: 60px;
+    margin-bottom: 10px;
+    display: flex;
 
-  .Ctn_Time {
-    margin-left: 10px;
-    margin-right: 40px;
-    line-height: 60px;
+    .Ctn_Time {
+      margin-left: 10px;
+      margin-right: 40px;
+      line-height: 60px;
 
-    span {
-      margin-right: 10px;
+      span {
+        margin-right: 10px;
+      }
     }
-    .Ctn_btn {
-      height: 30px;
+  }
+  .Cont_Two {
+    min-height: 35%;
+    max-height: 35%;
+    margin-bottom: 10px;
+  }
+  .Cont_Three {
+    height: 54%;
+    min-height: 54%;
+    max-height: 55%;
+
+    .three_ctn {
       min-height: 30px;
-      line-height: 3px;
+      display: flex;
+      float: right;
+      margin-top: 5px;
+      margin-right: 15px;
+      margin-bottom: 10px;
+    }
+    .three_ctn > div {
+      display: block;
+      line-height: 30px;
+      font-size: 0.18rem;
+      font-family: Microsoft YaHei Regular, Microsoft YaHei Regular-Regular;
+    }
+    .three_ctn div:nth-child(2) {
+      margin-right: 1.8rem;
+    }
+    .three_ctn div:nth-child(1) {
+      margin-right: 40px;
+    }
+    .three_ctn > div span {
+      color: red;
     }
   }
+  .title {
+    font-family: Microsoft YaHei Regular, Microsoft YaHei Regular-Regular;
+    font-weight: bold;
+    padding-left: 10px;
+    padding-top: 10px;
+    font-size: 16px;
+  }
+  .back_img {
+    width: 100%;
+    height: 19px;
+    background: url("~@/assets/images/title.png") no-repeat;
+    background-size: cover;
+    margin-top: -5px;
+  }
+  .Ctn_btn {
+    height: 30px;
+    min-height: 30px;
+    line-height: 3px;
+  }
 }
-#Event_content .Cont_Two {
-  min-height: 300px;
-  margin-bottom: 10px;
-}
-#Event_content .Cont_Three {
-  min-height: 470px;
+#Event_content .back_all {
+  background-color: rgba(0, 244, 253, 0.1);
+  border: 1px solid rgba(0, 244, 253, 0.1);
 }
 </style>
 
-
-
 <style>
 /* 
   公共时间选择器css样式

+ 20 - 15
src/views/site/Overview.vue

@@ -10,13 +10,13 @@
               <power-top></power-top>
               <div class="powerViewBottom">
                 <div class="filterSec">
-              <select name="" id="">
-                <option value="11">日</option>
-                <option value="22">月</option>
-              </select>
-            </div>
+                  <select name="" id="">
+                    <option value="11">日</option>
+                    <option value="22">月</option>
+                  </select>
+                </div>
                 <div class="eleShareTit">分时电量</div>
-                 <ele-share-chart></ele-share-chart>
+                <ele-share-chart></ele-share-chart>
               </div>
             </div>
             <div class="panel-footer"></div>
@@ -87,11 +87,17 @@
             </div>
             <h2>历史趋势</h2>
             <ul class="histTab">
-              <li  @click="msg=0" :class="{'active':msg===0}">电流</li>
-              <li @click="msg=1" :class="{'active':msg===1}">电压</li>
+              <li @click="msg = 0" :class="{ active: msg === 0 }">电流</li>
+              <li @click="msg = 1" :class="{ active: msg === 1 }">电压</li>
             </ul>
-            <hist-trend-chart v-if="msg===0" style="width:100%"></hist-trend-chart>
-            <hist-trend-chart2 v-if="msg===1" style="width:100%"></hist-trend-chart2>
+            <hist-trend-chart
+              v-if="msg === 0"
+              style="width: 100%"
+            ></hist-trend-chart>
+            <hist-trend-chart2
+              v-if="msg === 1"
+              style="width: 100%"
+            ></hist-trend-chart2>
             <div class="panel-footer"></div>
           </div>
         </div>
@@ -112,8 +118,7 @@ import alarmingChart from "./components/Overview/alarmingChart";
 import pieChart from "./components/Overview/pieChart";
 import pieChart2 from "./components/Overview/pieChart2";
 import modalBox from "./components/Overview/modalBox";
-import EleShareChart from './components/Overview/eleShareChart.vue';
-
+import EleShareChart from "./components/Overview/eleShareChart.vue";
 
 export default {
   name: "index",
@@ -123,7 +128,8 @@ export default {
     barChart,
     modelStaticTop,
     realTimeChart,
-    histTrendChart,histTrendChart2,
+    histTrendChart,
+    histTrendChart2,
     alarmingChart,
     pieChart,
     pieChart2,
@@ -133,7 +139,7 @@ export default {
   data() {
     return {
       show: false,
-       msg: 0
+      msg: 0,
     };
   },
   created() {},
@@ -150,5 +156,4 @@ export default {
 </script>
 
 <style lang="scss">
-
 </style>

+ 59 - 33
src/views/site/components/Overview/alarmingChart.vue

@@ -1,29 +1,62 @@
 <template>
-  <div ref="distion" style="width: 100%; height: 100%"></div>
+  <div ref="alarmingChart" style="width: 100%; height: 100%"></div>
 </template>
 <script>
 import * as echarts from "echarts";
-
+import api from "../../../../api/site/Event_alarm";
+import { ElMessage } from "element-plus";
 export default {
   props: {},
   data() {
     return {};
   },
-
-  mounted() {
-    this.$nextTick(() => {
-      this.initChart();
-    });
-  },
-
+  mounted() {},
   beforeUnmount() {
     window.removeEventListener("resize", this.chart);
   },
-
+  watch: {
+    /**
+     * @监听vuex存储值变化 用于调用api
+     */
+    "$store.state.siteId": {
+      immediate: true, // 首次加载的时候执行函数
+      deep: true, // 深入观察,监听数组值,对象属性值的变化
+      handler: function () {
+        this.trendIco_api();
+      },
+    },
+  },
   methods: {
+    /**
+     * @事件告警统计api请求
+     */
+    trendIco_api() {
+      var _this = this;
+      this.$store.commit("getTimeAll");
+      this.$store.commit("TimeAll_function", this.$store.state.fh_defaultTime);
+      var time = this.$store.state.Time_Data;
+      api
+        .trendIco({
+          siteId: _this.$store.state.siteId,
+          startTime: time[0],
+          endTime: time[1],
+          queryType: null,
+        })
+        .then((requset) => {
+          if (requset.status === "SUCCESS") {
+            var data = requset.data[0];
+            _this.initChart(data.list, data.listDate);
+          } else {
+            ElMessage.success({
+              message: requset.msg,
+              type: "success",
+            });
+          }
+        });
+    },
     //次数分布折线图
-    initChart() {
-      var chart = echarts.init(this.$refs.distion);
+    initChart(data, dataTime) {
+      var chart = echarts.init(this.$refs.alarmingChart);
       var option;
 
       option = {
@@ -42,40 +75,33 @@ export default {
           top: "16%",
           containLabel: true,
         },
-    
+
         xAxis: {
           type: "category",
-          data: ["07-01",
-            "07-02",
-            "07-03",
-            "07-04",
-            "07-05",
-            "07-06",
-            "07-07",
-          ],
+          data: dataTime,
           axisLine: {
             lineStyle: {
-              color:"rgba(0,0,0,0.1)",
+              color: "rgba(0,0,0,0.1)",
             },
           },
           axisTick: {
-                show: false
-            },
+            show: false,
+          },
           axisLabel: {
             textStyle: {
-                 color: '#fff',
+              color: "#fff",
               fontFamily: "Microsoft YaHei",
             },
           },
         },
 
         yAxis: {
-             name: '(条)',
-              nameTextStyle: {
+          name: "(条)",
+          nameTextStyle: {
             color: "#fff",
-            },
+          },
           type: "value",
-        //   max: "800",
+          //   max: "800",
           axisLine: {
             show: false,
             lineStyle: {
@@ -95,7 +121,7 @@ export default {
             name: "昨日",
             type: "bar",
             barWidth: "20%",
-            barGap: '0%',
+            barGap: "0%",
             itemStyle: {
               normal: {
                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
@@ -110,16 +136,16 @@ export default {
                 ]),
               },
             },
-            data: [4, 1, 3, 3, 3, 10, 20, 12, 3,15,25,18],
+            data: data,
           },
-          
         ],
       };
 
-      chart.setOption(option);
+      chart.setOption(option, true);
       window.addEventListener("resize", () => {
         chart.resize();
       });
+      this.chart = chart;
     },
   },
 };

+ 36 - 10
src/views/site/components/Overview/modalBox.vue

@@ -17,15 +17,15 @@
     <div class="siteDetailInfo">
       <div class="infoLine">
         <span>站点名称:</span>
-        <p>培训测试</p>
+        <p>{{ siteName }}</p>
       </div>
       <div class="infoLine">
         <span>站点地址:</span>
-        <p>上海市青浦区徐乐路208号</p>
+        <p>{{ siteAddress }}</p>
       </div>
       <div class="infoLine">
         <span>投运时间:</span>
-        <p>2021-06-30</p>
+        <p>{{ createTime }}</p>
       </div>
       <div class="infoLine">
         <span>监控类型:</span>
@@ -33,28 +33,54 @@
       </div>
       <div class="infoLine">
         <span>联系人:</span>
-        <p>张三</p>
+        <p>{{ userName }}</p>
       </div>
       <div class="infoLine">
         <span>联系电话:</span>
-        <p>13999999999</p>
+        <p>{{ phone }}</p>
       </div>
     </div>
   </div>
 </template>
 <script>
+import api from "../../../../api/Overview/index";
+import { ElMessage } from "element-plus";
 export default {
   props: ["fshow"],
   data() {
     return {
-    //   localShow: this.fshow,
+      //   localShow: this.fshow,
+      userName: "", //联系人
+      phone: "", //联系电话
+      siteName: "", //站点名称
+      siteAddress: "", //站点地址
+      createTime: "", //投运时间
+      deviceType: "", //监控类型
     };
   },
+  mounted() {
+    api.siteOne({ siteId: this.$store.state.siteId }).then((requset) => {
+      if (requset.status === "SUCCESS") {
+        // console.log(requset);
+        var data = requset.data;
+        this.userName = data.userName;
+        this.phone = data.phone;
+        this.siteName = data.siteName;
+        this.siteAddress = data.siteAddress;
+        this.createTime = data.createTime;
+        this.deviceType = data.deviceType;
+      } else {
+        ElMessage.success({
+          message: requset.msg,
+          type: "success",
+        });
+      }
+    });
+  },
   methods: {
     sendMsg() {
-    //   this.localShow = false;
-    //   this.$emit("func", this.localShow);
-
+      //   this.localShow = false;
+      //   this.$emit("func", this.localShow);
       this.fShow = false;
       this.$emit("func", this.fShow);
     },
@@ -66,7 +92,7 @@ export default {
 .siteModelBox {
   padding: 0 0.1875rem;
   position: relative;
-  z-index:999;
+  z-index: 999;
 
   h2 {
     font-size: 0.2rem;

+ 66 - 74
src/views/site/components/Overview/pieChart.vue

@@ -1,80 +1,75 @@
 <template>
-
-  <div ref="distion" style="width: 100%; height: 100%"></div>
+  <div ref="pieChart" :style="{ height: height, width: width }"></div>
 </template>
 <script>
 import * as echarts from "echarts";
-
+import api from "../../../../api/Overview/index";
+import { ElMessage } from "element-plus";
 export default {
   props: {
-    // className: {
-    //   type: String,
-    //   default: "chart",
-    // },
-    // width: {
-    //   type: String,
-    //   default: "100%",
-    // },
-    // height: {
-    //   type: String,
-    //   default: "400px",
-    // },
-    // perData: {
-    //   type: Array,
-    //   default: () => [
-    //     {
-    //       color: "#01ACFF",
-    //       name: "摄像头",
-    //       value: [39],
-    //       // nAmount: 566557.14,
-    //     },
-    //   ],
-    // },
+    width: {
+      type: String,
+      default: "100%",
+    },
+    height: {
+      type: String,
+      default: "100%",
+    },
   },
   data() {
     return {};
   },
-
-  mounted() {
-    this.$nextTick(() => {
-      this.initChart();
-    });
-  },
-
+  mounted() {},
   beforeUnmount() {
     window.removeEventListener("resize", this.chart);
   },
-
+  watch: {
+    /**
+     * @监听vuex存储值变化 用于调用api
+     */
+    "$store.state.siteId": {
+      immediate: true, // 首次加载的时候执行函数
+      deep: true, // 深入观察,监听数组值,对象属性值的变化
+      handler: function () {
+        this.count();
+      },
+    },
+  },
   methods: {
+    count() {
+      var _this = this;
+      api
+        .count({
+          siteId: _this.$store.state.siteId,
+        })
+        .then((requset) => {
+          if (requset.status === "SUCCESS") {
+            var data = requset.data;
+            // console.log(data);
+            _this.initChart(data);
+          } else {
+            ElMessage.success({
+              message: requset.msg,
+              type: "success",
+            });
+          }
+        });
+    },
     //次数分布折线图
-    initChart() {
-      var chart = echarts.init(this.$refs.distion);
+    initChart(list) {
+      var chart = echarts.init(this.$refs.pieChart);
       var option;
 
-      var pie = [
-         {
-          value: 12,
-          name: "配电",
-        },
-        {
-          value: 5,
-          name: "箱变",
-        },
-        {
-          value: 3,
-          name: "杆变",
-        },
-      ];
+      var pie = [];
       var totalNum = 0;
-      pie.forEach(function (value) {
-        totalNum += value.value;
+      list.map((val) => {
+        totalNum += val.count;
+        pie.push({ value: val.count, name: val.name });
+        return;
       });
 
       option = {
-        grid: {
-         
-        },
-
+        grid: {},
         title: [
           {
             text: "{name|" + totalNum + "}\n{val|总数}",
@@ -86,15 +81,14 @@ export default {
                   fontSize: 30,
                   fontWeight: "normal",
                   color: "#FFFFFF",
-                  fontFamily:"impact",
-                   padding: [0, 0,3,0]
-
+                  fontFamily: "impact",
+                  padding: [0, 0, 3, 0],
                 },
                 val: {
                   fontSize: 14,
                   fontWeight: "normal",
                   color: "#FFFFFF",
-                  padding: [3,0,0, 0]
+                  padding: [3, 0, 0, 0],
                 },
               },
             },
@@ -102,8 +96,8 @@ export default {
         ],
         tooltip: {
           // trigger: "item",
-         trigger: 'item',
-         confine:true,//将此限制打开后tooltip将不再溢出
+          trigger: "item",
+          confine: true, //将此限制打开后tooltip将不再溢出
           formatter: function (params) {
             return (
               params.name +
@@ -115,38 +109,36 @@ export default {
             );
           },
         },
-  
 
         series: [
           {
             label: {
               normal: {
                 show: true,
-                textStyle:{
-                  color:'#fff'
+                textStyle: {
+                  color: "#fff",
                 },
-                formatter: " {b}:\n{c} ",   
+                formatter: " {b}:\n{c} ",
               },
               emphasis: {
                 show: true,
               },
             },
             radius: ["43%", "65%"],
-            type: "pie", 
+            type: "pie",
             data: pie,
             labelLine: {
-							normal: {
-								length: 3, //aa折线长度
-								// length2: 1, //aa折线长度
-
-							}
-						},
+              normal: {
+                length: 3, //aa折线长度
+                // length2: 1, //aa折线长度
+              },
+            },
           },
         ],
         color: ["#39BBFE", "#FCCB35", "#FC7735"],
       };
 
-      chart.setOption(option);
+      chart.setOption(option, true);
       window.addEventListener("resize", () => {
         chart.resize();
       });

+ 69 - 44
src/views/site/components/Overview/pieChart2.vue

@@ -1,56 +1,84 @@
 <template>
-
-  <div ref="distion" style="width: 100%; height: 100%"></div>
+  <div ref="pieChart2" :style="{ height: height, width: width }"></div>
 </template>
 <script>
 import * as echarts from "echarts";
-
+import api from "../../../../api/Overview/index";
+import { ElMessage } from "element-plus";
 export default {
   props: {
+    width: {
+      type: String,
+      default: "100%",
+    },
+    height: {
+      type: String,
+      default: "100%",
+    },
   },
   data() {
     return {};
   },
-
-  mounted() {
-    this.$nextTick(() => {
-      this.initChart();
-    });
-  },
-
+  mounted() {},
   beforeUnmount() {
     window.removeEventListener("resize", this.chart);
   },
-
+  watch: {
+    /**
+     * @监听vuex存储值变化 用于调用api
+     */
+    "$store.state.siteId": {
+      immediate: true, // 首次加载的时候执行函数
+      deep: true, // 深入观察,监听数组值,对象属性值的变化
+      handler: function () {
+        this.deviceTypeCount();
+      },
+    },
+  },
   methods: {
+    deviceTypeCount() {
+      var _this = this;
+      api
+        .deviceTypeCount({
+          site: _this.$store.state.siteId,
+        })
+        .then((requset) => {
+          if (requset.status === "SUCCESS") {
+            var data = requset.data;
+            _this.initChart(
+              data.count == null ? 0 : data.count,
+              data.epCount == null ? 0 : data.epCount,
+              data.videoCount == null ? 0 : data.videoCount
+            );
+          } else {
+            ElMessage.success({
+              message: requset.msg,
+              type: "success",
+            });
+          }
+        });
+    },
     //次数分布折线图
-    initChart() {
-      var chart = echarts.init(this.$refs.distion);
+    initChart(count, epCount, videoCount) {
+      var chart = echarts.init(this.$refs.pieChart2);
       var option;
 
       var pie = [
-         {
-          value: 15,
+        {
+          value: epCount,
           name: "电力",
         },
         {
-          value: 5,
+          value: videoCount,
           name: "视频",
         },
       ];
-      var totalNum = 0;
-      pie.forEach(function (value) {
-        totalNum += value.value;
-      });
-
       option = {
-        grid: {
-         
-        },
+        grid: {},
 
         title: [
           {
-            text: "{name|" + totalNum + "}\n{val|总数}",
+            text: "{name|" + count + "}\n{val|总数}",
             top: "center",
             left: "center",
             textStyle: {
@@ -59,15 +87,14 @@ export default {
                   fontSize: 30,
                   fontWeight: "normal",
                   color: "#FFFFFF",
-                  fontFamily:"impact",
-                   padding: [0, 0,3,0]
-
+                  fontFamily: "impact",
+                  padding: [0, 0, 3, 0],
                 },
                 val: {
                   fontSize: 14,
                   fontWeight: "normal",
                   color: "#FFFFFF",
-                  padding: [3,0,0, 0]
+                  padding: [3, 0, 0, 0],
                 },
               },
             },
@@ -75,8 +102,8 @@ export default {
         ],
         tooltip: {
           // trigger: "item",
-         trigger: 'item',
-         confine:true,//将此限制打开后tooltip将不再溢出
+          trigger: "item",
+          confine: true, //将此限制打开后tooltip将不再溢出
           formatter: function (params) {
             return (
               params.name +
@@ -88,38 +115,36 @@ export default {
             );
           },
         },
-  
 
-         series: [
+        series: [
           {
             label: {
               normal: {
                 show: true,
-                textStyle:{
-                  color:'#fff'
+                textStyle: {
+                  color: "#fff",
                 },
-                formatter: " {b}:\n{c} ",   
+                formatter: " {b}:\n{c} ",
               },
               emphasis: {
                 show: true,
               },
             },
             radius: ["43%", "65%"],
-            type: "pie", 
+            type: "pie",
             data: pie,
             labelLine: {
-							normal: {
-								length: 3, //aa折线长度
-								// length2: 1, //aa折线长度
-
-							}
-						},
+              normal: {
+                length: 3, //aa折线长度
+                // length2: 1, //aa折线长度
+              },
+            },
           },
         ],
         color: ["#39FEFC", "#FC3535"],
       };
 
-      chart.setOption(option);
+      chart.setOption(option, true);
       window.addEventListener("resize", () => {
         chart.resize();
       });

+ 213 - 0
src/views/site_ehcarts/Event_alarm.vue

@@ -0,0 +1,213 @@
+<template>
+  <div
+    ref="alarm"
+    :class="className"
+    :style="{ height: height, width: width }"
+  ></div>
+</template>
+<script>
+import * as echarts from "echarts";
+
+export default {
+  props: {
+    defaul_tTime: {
+      type: Array,
+    },
+    className: {
+      type: String,
+      default: "chart",
+    },
+    width: {
+      type: String,
+      default: "100%",
+    },
+    height: {
+      type: String,
+      default: "27vh",
+    },
+    perData: {
+      type: Array,
+      default: () => [
+        {
+          color: "#01ACFF",
+          name: "摄像头",
+          value: [39],
+          // nAmount: 566557.14,
+        },
+      ],
+    },
+  },
+  data() {
+    return {
+      chart: null,
+      color_XY: "rgba(0, 244, 253, 0.1)",
+    };
+  },
+  mounted() {},
+  beforeUnmount() {
+    window.removeEventListener("resize", this.chart);
+  },
+  watch: {
+    "$store.state.trendIco"() {
+      this.initChart();
+    },
+    "$store.state.trendIco_state"() {
+      this.initChart();
+    },
+  },
+  methods: {
+    //次数分布折线图
+    initChart() {
+      var _this = this;
+      var dataAxis = [];
+      var data = [];
+      var chart = echarts.init(this.$refs.alarm);
+      var time = _this.$store.state.Time_Data;
+      this.$store.commit("getAll", [
+        time[0].split(" ")[0],
+        time[1].split(" ")[0],
+      ]); //将time变量中的开始时间和结束时间传给getAll方法
+
+      var trendIco = _this.$store.state.trendIco;
+      var trendIco_state = _this.$store.state.trendIco_state;
+      if (trendIco[trendIco_state].list.length <= 0) {
+        dataAxis = this.$store.state.timearr; //将getAll已便利好的时间区间数组存入变量timeall
+        dataAxis.map(() => {
+          return data.push(0);
+        });
+      } else {
+        dataAxis = trendIco[trendIco_state].listDate;
+        data = trendIco[trendIco_state].list;
+      }
+
+      var option;
+      var yMax = 500;
+      var dataShadow = [];
+      for (var i = 0; i < data.length; i++) {
+        dataShadow.push(yMax);
+      }
+
+      option = {
+        title: [
+          {
+            text: `(条)`,
+            left: "left",
+            padding: [15, 0, 0, "60"],
+            textStyle: {
+              color: "#fff",
+              fontSize: 12,
+            },
+          },
+        ],
+        grid: {
+          top: "16%",
+          left: "3%",
+          right: "4%",
+          bottom: "5%",
+          containLabel: true,
+        },
+        xAxis: {
+          data: dataAxis,
+          axisLabel: {
+            textStyle: {
+              color: "#fff",
+            },
+          },
+          axisTick: {
+            show: false,
+          },
+          axisLine: {
+            show: false,
+          },
+          z: 10,
+        },
+        yAxis: {
+          axisLine: {
+            show: false,
+          },
+          axisTick: {
+            show: false,
+          },
+          splitLine: {
+            lineStyle: {
+              // 使用深浅的间隔色
+              color: [this.color_XY],
+            },
+          },
+          axisLabel: {
+            textStyle: {
+              color: "#fff",
+            },
+          },
+        },
+        tooltip: {
+          backgroundColor: "rgba(0, 244, 253, 0.1)",
+          borderColor: "rgba(0, 244, 253, 0.3)",
+          textStyle: {
+            color: "#fff",
+          },
+          trigger: "axis",
+          formatter: function (params) {
+            // console.log(params);
+            var res = params[0].axisValueLabel;
+            for (let i in params) {
+              res += `
+              <div style="display:flex">
+                  <div style="padding:4px 0px 0px 10px;">${trendIco[trendIco_state].name} :</div>
+                  <div style="padding:4px 0px 0px 10px;">${params[i].data}</div>
+              </div>`; //可以在这个方法中做改变
+            }
+            return res;
+          },
+        },
+        dataZoom: [
+          {
+            type: "inside",
+          },
+        ],
+        series: [
+          {
+            type: "bar",
+            showBackground: false,
+            itemStyle: {
+              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                { offset: 0, color: "#83bff6" },
+                { offset: 0.5, color: "#188df0" },
+                { offset: 1, color: "#188df0" },
+              ]),
+            },
+            emphasis: {
+              itemStyle: {
+                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+                  { offset: 0, color: "#2378f7" },
+                  { offset: 0.7, color: "#2378f7" },
+                  { offset: 1, color: "#83bff6" },
+                ]),
+              },
+            },
+            data: data,
+          },
+        ],
+      };
+
+      chart.setOption(option,true);
+      window.addEventListener("resize", () => {
+        chart.resize();
+      });
+      this.chart = chart;
+      //   var zoomSize = 6;
+      //   chart.on("click", function (params) {
+      //     console.log(dataAxis[Math.max(params.dataIndex - zoomSize / 2, 0)]);
+      //     chart.dispatchAction({
+      //       type: "dataZoom",
+      //       startValue: dataAxis[Math.max(params.dataIndex - zoomSize / 2, 0)],
+      //       endValue:
+      //         dataAxis[
+      //           Math.min(params.dataIndex + zoomSize / 2, data.length - 1)
+      //         ],
+      //     });
+      //   });
+    },
+  },
+};
+</script>

+ 16 - 1
vue.config.js

@@ -1,4 +1,7 @@
-// const path = require('path')
+const path = require('path')
+function resolve(dir) {
+    return path.join(__dirname, dir);
+}
 // 基本结构
 module.exports = {
     // 打包后路径错误导致的空白页面问题。
@@ -16,6 +19,18 @@ module.exports = {
             externals: {
                 'AMap': 'AMap',
                 'AMapUI': 'AMapUI'
+            },
+            resolve: {
+                extensions: ['.js', '.vue', '.json'],
+                alias: {
+                    '@': resolve('src'),
+                    '~': process.cwd(),
+                    public: resolve('public'),
+                    components: resolve('src/components'),
+                    util: resolve('src/utils'),
+                    store: resolve('src/store'),
+                    router: resolve('src/router')
+                }
             }
         })
     },