Browse Source

新增报警查询页面,对页面数据做了显示处理,添加了查询函数

WXW 4 years ago
parent
commit
f74733ce49

+ 13 - 8
README.md

@@ -19,29 +19,34 @@ npm run build
 See [Configuration Reference](https://cli.vuejs.org/config/).
 
 
+cnpm install --save stompjs 
+cnpm install --save json-bigint 
+
+
+
 # 安装文件保存
-cnpm install file-saver 
+cnpm install --save file-saver 
 
 # 安装订阅类的store
-cnpm install le5le-store
+cnpm install --save le5le-store
 
 # 安装网络连接
-cnpm install axios
+cnpm install --save axios
 
 # 安装绘图引擎
-cnpm install @topology/core
+cnpm install --save @topology/core
 
 # 安装图形库 - 流程图
-cnpm install @topology/flow-diagram
+cnpm install --save @topology/flow-diagram
 
 # 安装图形库 - 活动图
-cnpm install @topology/activity-diagram
+cnpm install --save @topology/activity-diagram
 
 # 安装图形库 - 类图
-cnpm install @topology/class-diagram
+cnpm install --save @topology/class-diagram
 
 # 安装图形库 - 时序图
-cnpm install @topology/sequence-diagram
+cnpm install --save @topology/sequence-diagram
 
 # 其他共享图形库
 # ...

+ 134 - 95
package-lock.json

@@ -1159,7 +1159,7 @@
     },
     "@hapi/joi": {
       "version": "15.1.1",
-      "resolved": "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz?cache=0&sync_timestamp=1570297169631&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Fjoi%2Fdownload%2F%40hapi%2Fjoi-15.1.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz",
       "integrity": "sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=",
       "requires": {
         "@hapi/address": "2.x.x",
@@ -1268,6 +1268,23 @@
       "integrity": "sha1-pTUV2yXYA4N0OBtzryC7Ty5QjYc=",
       "dev": true
     },
+    "@topology/activity-diagram": {
+      "version": "0.2.24",
+      "resolved": "https://registry.npmjs.org/@topology/activity-diagram/-/activity-diagram-0.2.24.tgz",
+      "integrity": "sha512-XNKI5+Tsh05xMIqHl0XX3dmDX7yYgJRG6aRcP7yBA2OSK0LvwJXYYbDk9RZpgjGn+QFYb1IeaonGXWJ4lrh36w==",
+      "requires": {
+        "@topology/core": "^0.2.24"
+      }
+    },
+    "@topology/core": {
+      "version": "0.2.31",
+      "resolved": "https://registry.npmjs.org/@topology/core/-/core-0.2.31.tgz",
+      "integrity": "sha512-8Q8wHzBW8qB/NrMZ+N0LIIs/hOM4xjTXoEkZMVEZpcIdt6P1NhNN5L73qxm8bbRMh8jmuWKgwRqOGeiZPsqE+g==",
+      "requires": {
+        "le5le-store": "^1.0.7",
+        "mitt": "^2.1.0"
+      }
+    },
     "@types/anymatch": {
       "version": "1.3.1",
       "resolved": "https://registry.npm.taobao.org/@types/anymatch/download/@types/anymatch-1.3.1.tgz",
@@ -1364,7 +1381,7 @@
     },
     "@types/json-schema": {
       "version": "7.0.5",
-      "resolved": "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.5.tgz?cache=0&sync_timestamp=1596839352489&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz",
+      "resolved": "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.5.tgz",
       "integrity": "sha1-3M5EMOZLRDuolF8CkPtWStW6xt0="
     },
     "@types/mime": {
@@ -1764,7 +1781,7 @@
         },
         "cacache": {
           "version": "13.0.1",
-          "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594429775204&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz",
           "integrity": "sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw=",
           "dev": true,
           "requires": {
@@ -1801,7 +1818,7 @@
         },
         "find-up": {
           "version": "4.1.0",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz",
           "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=",
           "dev": true,
           "requires": {
@@ -1811,7 +1828,7 @@
         },
         "locate-path": {
           "version": "5.0.0",
-          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz?cache=0&sync_timestamp=1597081820326&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-5.0.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz",
           "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=",
           "dev": true,
           "requires": {
@@ -1835,7 +1852,7 @@
         },
         "p-locate": {
           "version": "4.1.0",
-          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1597081369770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz",
           "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=",
           "dev": true,
           "requires": {
@@ -1859,13 +1876,13 @@
         },
         "semver": {
           "version": "6.3.0",
-          "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1565627380363&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
           "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
           "dev": true
         },
         "source-map": {
           "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
           "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
           "dev": true
         },
@@ -1984,7 +2001,7 @@
         },
         "lru-cache": {
           "version": "4.1.5",
-          "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427478507&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz",
+          "resolved": "http://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz",
           "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=",
           "dev": true,
           "requires": {
@@ -1994,7 +2011,7 @@
         },
         "source-map": {
           "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
           "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
           "dev": true
         },
@@ -2298,7 +2315,7 @@
       "dependencies": {
         "color-convert": {
           "version": "1.9.3",
-          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz",
+          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz?cache=0&sync_timestamp=1566248756583&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-1.9.3.tgz",
           "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=",
           "requires": {
             "color-name": "1.1.3"
@@ -2390,7 +2407,7 @@
     },
     "asn1": {
       "version": "0.2.4",
-      "resolved": "http://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz",
+      "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz",
       "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=",
       "requires": {
         "safer-buffer": "~2.1.0"
@@ -2445,7 +2462,7 @@
     },
     "assert-plus": {
       "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz",
       "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
     },
     "assign-symbols": {
@@ -2477,7 +2494,7 @@
     },
     "async-validator": {
       "version": "1.8.5",
-      "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz?cache=0&sync_timestamp=1596623608639&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-validator%2Fdownload%2Fasync-validator-1.8.5.tgz",
+      "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz?cache=0&sync_timestamp=1596623629816&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-validator%2Fdownload%2Fasync-validator-1.8.5.tgz",
       "integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=",
       "requires": {
         "babel-runtime": "6.x"
@@ -2485,7 +2502,7 @@
     },
     "asynckit": {
       "version": "0.4.0",
-      "resolved": "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz",
       "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
     },
     "atob": {
@@ -2511,7 +2528,7 @@
     },
     "aws-sign2": {
       "version": "0.7.0",
-      "resolved": "http://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz",
       "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
     },
     "aws4": {
@@ -2546,9 +2563,16 @@
             "debug": {
               "version": "3.1.0",
               "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
-              "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
+              "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
               "requires": {
                 "ms": "2.0.0"
+              },
+              "dependencies": {
+                "ms": {
+                  "version": "2.0.0",
+                  "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+                  "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+                }
               }
             },
             "ms": {
@@ -2654,7 +2678,7 @@
         },
         "regenerator-runtime": {
           "version": "0.10.5",
-          "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.10.5.tgz?cache=0&sync_timestamp=1595456105304&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.10.5.tgz",
+          "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.10.5.tgz",
           "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg="
         }
       }
@@ -2675,7 +2699,7 @@
         },
         "regenerator-runtime": {
           "version": "0.11.1",
-          "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&sync_timestamp=1595456105304&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz",
           "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk="
         }
       }
@@ -2754,7 +2778,7 @@
     },
     "bcrypt-pbkdf": {
       "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz",
+      "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz",
       "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
       "requires": {
         "tweetnacl": "^0.14.3"
@@ -3275,7 +3299,7 @@
     },
     "caseless": {
       "version": "0.12.0",
-      "resolved": "http://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz",
       "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
     },
     "chalk": {
@@ -3415,7 +3439,7 @@
       "dependencies": {
         "source-map": {
           "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
           "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
           "dev": true
         }
@@ -3610,7 +3634,7 @@
       "dependencies": {
         "color-convert": {
           "version": "1.9.3",
-          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz",
+          "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz?cache=0&sync_timestamp=1566248756583&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-1.9.3.tgz",
           "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=",
           "dev": true,
           "requires": {
@@ -3621,7 +3645,7 @@
     },
     "color-convert": {
       "version": "2.0.1",
-      "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz?cache=0&sync_timestamp=1566248756583&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor-convert%2Fdownload%2Fcolor-convert-2.0.1.tgz",
       "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
       "requires": {
         "color-name": "~1.1.4"
@@ -3737,7 +3761,7 @@
     },
     "compression-webpack-plugin": {
       "version": "3.1.0",
-      "resolved": "https://registry.npm.taobao.org/compression-webpack-plugin/download/compression-webpack-plugin-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression-webpack-plugin%2Fdownload%2Fcompression-webpack-plugin-3.1.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/compression-webpack-plugin/download/compression-webpack-plugin-3.1.0.tgz",
       "integrity": "sha1-n1EBcqe1+uWq07ZwZS6L15l67so=",
       "requires": {
         "cacache": "^13.0.1",
@@ -3750,7 +3774,7 @@
       "dependencies": {
         "ajv": {
           "version": "6.12.4",
-          "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.4.tgz?cache=0&sync_timestamp=1597480799381&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.4.tgz",
+          "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.4.tgz?cache=0&sync_timestamp=1597480849230&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.4.tgz",
           "integrity": "sha1-BhT6zEUiEn+nE0Rca/0+vTduIjQ=",
           "requires": {
             "fast-deep-equal": "^3.1.1",
@@ -3761,7 +3785,7 @@
         },
         "cacache": {
           "version": "13.0.1",
-          "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594428108619&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594429775204&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz",
           "integrity": "sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw=",
           "requires": {
             "chownr": "^1.1.2",
@@ -3786,7 +3810,7 @@
         },
         "fast-deep-equal": {
           "version": "3.1.3",
-          "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599651635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz",
+          "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599707093&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz",
           "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU="
         },
         "find-cache-dir": {
@@ -3801,7 +3825,7 @@
         },
         "find-up": {
           "version": "4.1.0",
-          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&sync_timestamp=1597169884679&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffind-up%2Fdownload%2Ffind-up-4.1.0.tgz",
           "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=",
           "requires": {
             "locate-path": "^5.0.0",
@@ -3810,7 +3834,7 @@
         },
         "locate-path": {
           "version": "5.0.0",
-          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz?cache=0&sync_timestamp=1597081820326&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-5.0.0.tgz",
           "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=",
           "requires": {
             "p-locate": "^4.1.0"
@@ -3826,7 +3850,7 @@
         },
         "p-limit": {
           "version": "2.3.0",
-          "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559711554&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559840010&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz",
           "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=",
           "requires": {
             "p-try": "^2.0.0"
@@ -3834,7 +3858,7 @@
         },
         "p-locate": {
           "version": "4.1.0",
-          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz?cache=0&sync_timestamp=1597081369770&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-locate%2Fdownload%2Fp-locate-4.1.0.tgz",
           "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=",
           "requires": {
             "p-limit": "^2.2.0"
@@ -3875,7 +3899,7 @@
         },
         "serialize-javascript": {
           "version": "2.1.2",
-          "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-2.1.2.tgz?cache=0&sync_timestamp=1591623621018&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-2.1.2.tgz",
+          "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-2.1.2.tgz?cache=0&sync_timestamp=1591623698705&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fserialize-javascript%2Fdownload%2Fserialize-javascript-2.1.2.tgz",
           "integrity": "sha1-7OxTsOAxe9yV73arcHS3OEeF+mE="
         },
         "ssri": {
@@ -4411,12 +4435,17 @@
     },
     "dashdash": {
       "version": "1.14.1",
-      "resolved": "http://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz",
       "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
       "requires": {
         "assert-plus": "^1.0.0"
       }
     },
+    "dayjs": {
+      "version": "1.8.35",
+      "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.35.tgz",
+      "integrity": "sha512-isAbIEenO4ilm6f8cpqvgjZCsuerDAz2Kb7ri201AiNn58aqXuaLJEnCtfIMdCvERZHNGRY5lDMTr/jdAnKSWQ=="
+    },
     "de-indent": {
       "version": "1.0.2",
       "resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz",
@@ -4575,7 +4604,7 @@
     },
     "delayed-stream": {
       "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz",
       "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
     },
     "depd": {
@@ -4680,7 +4709,7 @@
       "dependencies": {
         "domelementtype": {
           "version": "2.0.1",
-          "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.0.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.1.tgz",
           "integrity": "sha1-H4vf6R9aeAYydOgDtL3O326U+U0=",
           "dev": true
         }
@@ -4763,7 +4792,7 @@
     },
     "ecc-jsbn": {
       "version": "0.1.2",
-      "resolved": "http://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz",
+      "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz",
       "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
       "requires": {
         "jsbn": "~0.1.0",
@@ -4862,7 +4891,7 @@
       "dependencies": {
         "memory-fs": {
           "version": "0.5.0",
-          "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.5.0.tgz",
           "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=",
           "dev": true,
           "requires": {
@@ -5038,7 +5067,7 @@
     },
     "execa": {
       "version": "3.4.0",
-      "resolved": "https://registry.npm.taobao.org/execa/download/execa-3.4.0.tgz?cache=0&sync_timestamp=1594145159577&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-3.4.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/execa/download/execa-3.4.0.tgz",
       "integrity": "sha1-wI7UVQ72XYWPrCaf/IVyRG8364k=",
       "requires": {
         "cross-spawn": "^7.0.0",
@@ -5065,7 +5094,7 @@
         },
         "get-stream": {
           "version": "5.2.0",
-          "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz?cache=0&sync_timestamp=1597056585216&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.2.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.2.0.tgz?cache=0&sync_timestamp=1597056574073&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-5.2.0.tgz",
           "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=",
           "requires": {
             "pump": "^3.0.0"
@@ -5078,12 +5107,12 @@
         },
         "mimic-fn": {
           "version": "2.1.0",
-          "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz?cache=0&sync_timestamp=1596093992376&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-2.1.0.tgz",
           "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs="
         },
         "npm-run-path": {
           "version": "4.0.1",
-          "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz?cache=0&sync_timestamp=1577053858893&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-4.0.1.tgz",
           "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=",
           "requires": {
             "path-key": "^3.0.0"
@@ -5091,7 +5120,7 @@
         },
         "onetime": {
           "version": "5.1.2",
-          "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz?cache=0&sync_timestamp=1597003951681&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fonetime%2Fdownload%2Fonetime-5.1.2.tgz",
+          "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.2.tgz?cache=0&sync_timestamp=1597003753766&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fonetime%2Fdownload%2Fonetime-5.1.2.tgz",
           "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=",
           "requires": {
             "mimic-fn": "^2.1.0"
@@ -5109,7 +5138,7 @@
         },
         "which": {
           "version": "2.0.2",
-          "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz",
+          "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1574116262707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz",
           "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=",
           "requires": {
             "isexe": "^2.0.0"
@@ -5230,7 +5259,7 @@
     },
     "extend": {
       "version": "3.0.2",
-      "resolved": "http://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz",
+      "resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz",
       "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo="
     },
     "extend-shallow": {
@@ -5321,7 +5350,7 @@
     },
     "extsprintf": {
       "version": "1.3.0",
-      "resolved": "http://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz",
       "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
     },
     "fast-deep-equal": {
@@ -5508,7 +5537,7 @@
     },
     "forever-agent": {
       "version": "0.6.1",
-      "resolved": "http://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz",
       "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
     },
     "form-data": {
@@ -5613,7 +5642,7 @@
     },
     "get-stream": {
       "version": "4.1.0",
-      "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz?cache=0&sync_timestamp=1597056585216&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz?cache=0&sync_timestamp=1597056574073&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fget-stream%2Fdownload%2Fget-stream-4.1.0.tgz",
       "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=",
       "requires": {
         "pump": "^3.0.0"
@@ -5627,7 +5656,7 @@
     },
     "getpass": {
       "version": "0.1.7",
-      "resolved": "http://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz",
+      "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz",
       "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
       "requires": {
         "assert-plus": "^1.0.0"
@@ -5721,7 +5750,7 @@
     },
     "har-schema": {
       "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz",
       "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
     },
     "har-validator": {
@@ -6105,7 +6134,7 @@
     },
     "http-signature": {
       "version": "1.2.0",
-      "resolved": "http://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz",
       "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
       "requires": {
         "assert-plus": "^1.0.0",
@@ -6161,7 +6190,7 @@
     },
     "image-size": {
       "version": "0.5.5",
-      "resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz",
+      "resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz?cache=0&sync_timestamp=1569841504754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimage-size%2Fdownload%2Fimage-size-0.5.5.tgz",
       "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
       "optional": true
     },
@@ -6427,7 +6456,7 @@
     },
     "is-docker": {
       "version": "2.1.1",
-      "resolved": "https://registry.npm.taobao.org/is-docker/download/is-docker-2.1.1.tgz?cache=0&sync_timestamp=1596559550204&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-docker%2Fdownload%2Fis-docker-2.1.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/is-docker/download/is-docker-2.1.1.tgz?cache=0&sync_timestamp=1596559460885&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-docker%2Fdownload%2Fis-docker-2.1.1.tgz",
       "integrity": "sha1-QSWojkTkUNOE4JBH7eca3C0UQVY="
     },
     "is-extendable": {
@@ -6569,7 +6598,7 @@
     },
     "is-typedarray": {
       "version": "1.0.0",
-      "resolved": "http://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz",
       "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
     },
     "is-windows": {
@@ -6590,7 +6619,7 @@
     },
     "isexe": {
       "version": "2.0.0",
-      "resolved": "http://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz",
       "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
     },
     "isobject": {
@@ -6601,7 +6630,7 @@
     },
     "isstream": {
       "version": "0.1.2",
-      "resolved": "http://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz",
+      "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz",
       "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
     },
     "javascript-stringify": {
@@ -6667,7 +6696,7 @@
     },
     "jsbn": {
       "version": "0.1.1",
-      "resolved": "http://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz",
       "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
     },
     "jsesc": {
@@ -6683,7 +6712,7 @@
     },
     "json-schema": {
       "version": "0.2.3",
-      "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema%2Fdownload%2Fjson-schema-0.2.3.tgz",
+      "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz",
       "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
     },
     "json-schema-traverse": {
@@ -6693,7 +6722,7 @@
     },
     "json-stringify-safe": {
       "version": "5.0.1",
-      "resolved": "http://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz",
       "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
     },
     "json3": {
@@ -6730,7 +6759,7 @@
     },
     "jsprim": {
       "version": "1.4.1",
-      "resolved": "http://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz",
       "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
       "requires": {
         "assert-plus": "1.0.0",
@@ -6769,9 +6798,14 @@
         "launch-editor": "^2.2.1"
       }
     },
+    "le5le-store": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npmjs.org/le5le-store/-/le5le-store-1.0.7.tgz",
+      "integrity": "sha512-8XnDf8RUoHsKXUQHSw2vHEbEw4UbDHGulw/r/YRXf2NA1EUvMD/UUjGvbMAB1vz3UN8smvOxR6CTyjpK/Zhn2w=="
+    },
     "less": {
       "version": "3.12.2",
-      "resolved": "https://registry.npm.taobao.org/less/download/less-3.12.2.tgz?cache=0&sync_timestamp=1594913917424&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fless%2Fdownload%2Fless-3.12.2.tgz",
+      "resolved": "https://registry.npm.taobao.org/less/download/less-3.12.2.tgz?cache=0&sync_timestamp=1594915611266&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fless%2Fdownload%2Fless-3.12.2.tgz",
       "integrity": "sha1-FX5t0ypohp34hZMUrTjnAhGvOrQ=",
       "requires": {
         "errno": "^0.1.1",
@@ -6800,7 +6834,7 @@
     },
     "less-loader": {
       "version": "5.0.0",
-      "resolved": "https://registry.npm.taobao.org/less-loader/download/less-loader-5.0.0.tgz?cache=0&sync_timestamp=1593787647091&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fless-loader%2Fdownload%2Fless-loader-5.0.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/less-loader/download/less-loader-5.0.0.tgz?cache=0&sync_timestamp=1593787582978&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fless-loader%2Fdownload%2Fless-loader-5.0.0.tgz",
       "integrity": "sha1-SY3eOmxsT4h0WO6e0/CGoSrRtGY=",
       "requires": {
         "clone": "^2.1.1",
@@ -7114,7 +7148,7 @@
     },
     "mimic-fn": {
       "version": "3.1.0",
-      "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-3.1.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-3.1.0.tgz?cache=0&sync_timestamp=1596093992376&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-3.1.0.tgz",
       "integrity": "sha1-ZXVRRbvz42lUuUnBZFBCdFHVynQ="
     },
     "mini-css-extract-plugin": {
@@ -7131,7 +7165,7 @@
       "dependencies": {
         "normalize-url": {
           "version": "1.9.1",
-          "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz?cache=0&sync_timestamp=1596373070172&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize-url%2Fdownload%2Fnormalize-url-1.9.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz",
           "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
           "dev": true,
           "requires": {
@@ -7236,6 +7270,11 @@
         "through2": "^2.0.0"
       }
     },
+    "mitt": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/mitt/-/mitt-2.1.0.tgz",
+      "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg=="
+    },
     "mixin-deep": {
       "version": "1.3.2",
       "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz",
@@ -7351,7 +7390,7 @@
     },
     "native-request": {
       "version": "1.0.7",
-      "resolved": "https://registry.npm.taobao.org/native-request/download/native-request-1.0.7.tgz?cache=0&sync_timestamp=1594998140876&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnative-request%2Fdownload%2Fnative-request-1.0.7.tgz",
+      "resolved": "https://registry.npm.taobao.org/native-request/download/native-request-1.0.7.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnative-request%2Fdownload%2Fnative-request-1.0.7.tgz",
       "integrity": "sha1-/3QtxVW0yPLxwUtUhjm6F05XOFY=",
       "optional": true
     },
@@ -7477,7 +7516,7 @@
     },
     "npm-run-path": {
       "version": "2.0.2",
-      "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz",
+      "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&sync_timestamp=1577053858893&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz",
       "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
       "requires": {
         "path-key": "^2.0.0"
@@ -7500,7 +7539,7 @@
     },
     "oauth-sign": {
       "version": "0.9.0",
-      "resolved": "http://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz",
       "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU="
     },
     "object-assign": {
@@ -7635,7 +7674,7 @@
     },
     "once": {
       "version": "1.4.0",
-      "resolved": "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
       "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
       "requires": {
         "wrappy": "1"
@@ -7651,14 +7690,14 @@
       "dependencies": {
         "mimic-fn": {
           "version": "1.2.0",
-          "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz?cache=0&sync_timestamp=1596093992376&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmimic-fn%2Fdownload%2Fmimic-fn-1.2.0.tgz",
           "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI="
         }
       }
     },
     "open": {
       "version": "7.1.0",
-      "resolved": "https://registry.npm.taobao.org/open/download/open-7.1.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/open/download/open-7.1.0.tgz?cache=0&sync_timestamp=1595208423194&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopen%2Fdownload%2Fopen-7.1.0.tgz",
       "integrity": "sha1-aIZffTyyOFIPoSJaY88ovPg2ihw=",
       "requires": {
         "is-docker": "^2.0.0",
@@ -7917,7 +7956,7 @@
     },
     "performance-now": {
       "version": "2.1.0",
-      "resolved": "http://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz",
       "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
     },
     "picomatch": {
@@ -7978,7 +8017,7 @@
       "dependencies": {
         "debug": {
           "version": "3.2.6",
-          "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz",
+          "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=http%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz",
           "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=",
           "dev": true,
           "requires": {
@@ -8021,13 +8060,13 @@
       "dependencies": {
         "source-map": {
           "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
           "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
           "dev": true
         },
         "supports-color": {
           "version": "6.1.0",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1569557239279&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz",
           "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=",
           "dev": true,
           "requires": {
@@ -8724,7 +8763,7 @@
     },
     "qs": {
       "version": "6.5.2",
-      "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz?cache=0&sync_timestamp=1569207136481&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fqs%2Fdownload%2Fqs-6.5.2.tgz",
+      "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz",
       "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY="
     },
     "query-string": {
@@ -9656,7 +9695,7 @@
       "dependencies": {
         "source-map": {
           "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
           "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
           "dev": true
         }
@@ -9753,7 +9792,7 @@
     },
     "sshpk": {
       "version": "1.16.1",
-      "resolved": "http://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz",
       "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=",
       "requires": {
         "asn1": "~0.2.3",
@@ -10177,7 +10216,7 @@
       "dependencies": {
         "source-map": {
           "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
           "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
           "dev": true
         }
@@ -10213,7 +10252,7 @@
         },
         "source-map": {
           "version": "0.6.1",
-          "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
+          "resolved": "http://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
           "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
           "dev": true
         }
@@ -10250,7 +10289,7 @@
     },
     "throttle-debounce": {
       "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz?cache=0&sync_timestamp=1597223480635&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrottle-debounce%2Fdownload%2Fthrottle-debounce-1.1.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz?cache=0&sync_timestamp=1597223562721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthrottle-debounce%2Fdownload%2Fthrottle-debounce-1.1.0.tgz",
       "integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0="
     },
     "through2": {
@@ -10384,7 +10423,7 @@
     },
     "tunnel-agent": {
       "version": "0.6.0",
-      "resolved": "http://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz",
       "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
       "requires": {
         "safe-buffer": "^5.0.1"
@@ -10392,7 +10431,7 @@
     },
     "tweetnacl": {
       "version": "0.14.5",
-      "resolved": "http://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz",
+      "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz",
       "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
     },
     "type-fest": {
@@ -10699,7 +10738,7 @@
     "v-contextmenu": {
       "version": "2.9.0",
       "resolved": "https://registry.npm.taobao.org/v-contextmenu/download/v-contextmenu-2.9.0.tgz",
-      "integrity": "sha1-F1Onr8QgUfHtXLdcIEmKFv1+wzI="
+      "integrity": "sha512-8FnZXOfELGvfX9Zv8mmdmsxpZzS83kSS6eNyxMekHN+yo1+cZM2oeKOdpLH/Rs/n2LSJkhfxxzgS6EeGGRQyVA=="
     },
     "validate-npm-package-license": {
       "version": "3.0.4",
@@ -10724,7 +10763,7 @@
     },
     "verror": {
       "version": "1.10.0",
-      "resolved": "http://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz",
+      "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz",
       "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
       "requires": {
         "assert-plus": "^1.0.0",
@@ -10787,7 +10826,7 @@
       "dependencies": {
         "ansi-styles": {
           "version": "4.2.1",
-          "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz",
+          "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz?cache=0&sync_timestamp=1577902597315&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.2.1.tgz",
           "integrity": "sha1-kK51xCTQCNJiTFvynq0xd+v881k=",
           "dev": true,
           "optional": true,
@@ -10798,7 +10837,7 @@
         },
         "chalk": {
           "version": "3.0.0",
-          "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz?cache=0&sync_timestamp=1591687076871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz?cache=0&sync_timestamp=1591687079130&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-3.0.0.tgz",
           "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=",
           "dev": true,
           "optional": true,
@@ -10823,7 +10862,7 @@
         },
         "supports-color": {
           "version": "7.1.0",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz?cache=0&sync_timestamp=1569557239279&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.1.0.tgz",
           "integrity": "sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E=",
           "dev": true,
           "optional": true,
@@ -10841,7 +10880,7 @@
     "vue-runtime-helpers": {
       "version": "1.1.2",
       "resolved": "https://registry.npm.taobao.org/vue-runtime-helpers/download/vue-runtime-helpers-1.1.2.tgz",
-      "integrity": "sha1-RGt7ggiIqwxSZNLDoyRo5y5BAPM="
+      "integrity": "sha512-pZfGp+PW/IXEOyETE09xQHR1CKkR9HfHZdnMD/FVLUNI+HxYTa82evx5WrF6Kz4s82qtqHvMZ8MZpbk2zT2E1Q=="
     },
     "vue-style-loader": {
       "version": "4.1.2",
@@ -11184,7 +11223,7 @@
       "dependencies": {
         "ansi-regex": {
           "version": "2.1.1",
-          "resolved": "https://registry.npm.taobao.org/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=1570188663907&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz",
           "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
           "dev": true
         },
@@ -11309,7 +11348,7 @@
         },
         "is-absolute-url": {
           "version": "3.0.3",
-          "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz?cache=0&sync_timestamp=1569735737284&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz",
+          "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz?cache=0&sync_timestamp=1569736493122&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-absolute-url%2Fdownload%2Fis-absolute-url-3.0.3.tgz",
           "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=",
           "dev": true
         },
@@ -11346,7 +11385,7 @@
         },
         "semver": {
           "version": "6.3.0",
-          "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1565627380363&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz",
           "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
           "dev": true
         },
@@ -11380,7 +11419,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=1573307732589&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz",
+          "resolved": "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz",
           "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
           "dev": true,
           "requires": {
@@ -11389,7 +11428,7 @@
         },
         "supports-color": {
           "version": "6.1.0",
-          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&sync_timestamp=1569557239279&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz",
+          "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-6.1.0.tgz",
           "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=",
           "dev": true,
           "requires": {
@@ -11506,7 +11545,7 @@
     },
     "which": {
       "version": "1.3.1",
-      "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz",
+      "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1574116262707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz",
       "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=",
       "requires": {
         "isexe": "^2.0.0"
@@ -11584,7 +11623,7 @@
     },
     "wrappy": {
       "version": "1.0.2",
-      "resolved": "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz",
+      "resolved": "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz",
       "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
     },
     "ws": {

+ 10 - 1
package.json

@@ -11,18 +11,26 @@
     "build": "vue-cli-service build"
   },
   "dependencies": {
+    "@topology/activity-diagram": "^0.2.24",
+    "@topology/class-diagram": "^0.2.24",
+    "@topology/core": "^0.2.31",
+    "@topology/flow-diagram": "^0.2.24",
+    "@topology/sequence-diagram": "^0.2.24",
     "@vue/cli-shared-utils": "^4.0.5",
-    "axios": "^0.19.0",
+    "axios": "^0.19.2",
     "babel-polyfill": "^6.26.0",
     "color-convert": "^2.0.1",
     "compression-webpack-plugin": "^3.0.0",
     "core-js": "^3.3.2",
+    "dayjs": "^1.8.35",
     "element-ui": "^2.12.0",
     "end-of-stream": "^1.4.4",
     "escape-string-regexp": "^2.0.0",
     "execa": "^3.2.0",
+    "file-saver": "^2.0.2",
     "isexe": "^2.0.0",
     "json-bigint": "^1.0.0",
+    "le5le-store": "^1.0.7",
     "less": "^3.10.3",
     "less-loader": "^5.0.0",
     "mimic-fn": "^3.0.0",
@@ -31,6 +39,7 @@
     "once": "^1.4.0",
     "open": "^7.0.0",
     "shebang-command": "^2.0.0",
+    "stompjs": "^2.3.3",
     "string.prototype.padstart": "^3.0.0",
     "v-contextmenu": "^2.9.0",
     "vue": "^2.6.10",

+ 24 - 1
src/App.vue

@@ -12,10 +12,33 @@
 </template>
 
 <script>
+import { projectconfig } from "@/static/projectconfig";
+import { calcInit } from "./network/calcClient";
+import { calcGetPopupAlarmStatus } from "./network/calcClient";
+import { alert } from "./network/network"
+
+
 export default {
-  name: 'App'
+  name: 'App',
+  created() {
+    calcInit();
+    let searchCondition={
+      name:"",
+      rank:2,
+      startTime:"",
+      endTime:""
+    }
+
+    alert.getAllActiveAlert(searchCondition,this.c);
+  },
+
+  methods: {
+  },
+
+
 }
 </script>
+
 <style lang="css" scoped>
 #app {
   height: 100%;

+ 112 - 0
src/network/calcClient.js

@@ -0,0 +1,112 @@
+import Stomp from "stompjs";
+import { projectconfig } from "../static/projectconfig";
+import store from '@/store/index'
+import Vue from 'vue'
+import Xaxios from 'axios';
+
+
+// ============================一般使用的变量============================
+export const calcInit = initialize;
+export const calcGetPopupAlarmStatus = getPopupAlarmStatus;
+export const calcSend = send;
+let calcClient = null;
+let number = 0;
+
+// ============================  大函数体   ============================
+function initialize() {
+    calcClient = null;
+    var url = projectconfig.websocket.calcHost;
+    calcClient = Stomp.client(url);
+    if (!projectconfig.allowCalcDebug) {
+        calcClient.debug = null;
+    }
+    calcClient.connect({}, stompFrame => connectCallBackSubscribe(calcClient), error => reconnect(error));
+}
+// 断线重连
+function reconnect(error) {
+    //连接失败时再次调用函数
+    number++;
+    calcClient.connected = false;
+    clearTimeout(setTimeout(initialize(), 1000 * 5));
+    debugX("CalcClient reconnect:" + number + " 次");
+    return;
+}
+/*** 是否连接成功 */
+function isConnect() {
+    return calcClient.connected;
+}
+/*** 发送数据 
+ * @param {string} destination 地址,从配置文件中找
+ * @param {{}} headers 头信息,没有的信息函数自动添加
+ * @param {string} body 数据内容
+ */
+function send(destination, headers, body) {
+    if (calcClient && calcClient.connected) {
+        calcClient.send(destination, headers, body);
+    }
+}
+
+/*** 查询设备详情数据
+ * @param {{}} headers 需要添加一个"condition"头信息,searchCondition,searchCondition.objectId=设备的objectid
+ * @param {any} 查询数据返回解析回调函数
+*/
+
+// 获取弹窗当前的状态
+function setPopupAlarmStatus(frame) {
+    // <long, bool>  key:faultinformation.id
+    var popupAlarmStatusMap = JSON.parse(frame.body);
+    store.dispatch('updatePopupAlarmStatus', popupAlarmStatusMap);
+}
+// ============================  订阅函数体  ============================
+function connectCallBackSubscribe(calcClient)
+{
+    number = 0;
+    calcClient.connected = true;
+    calcClient.subscribe(projectconfig.websocket.calcSubscribeMap.popupAlarm, frame => popupAlarm(frame));                        // 报警弹窗
+}
+
+// ============================   ============================
+/***查询当前弹窗的状态*/
+function getPopupAlarmStatus() {
+    if (store.state.alertMessageKeys.length > 0) {
+        let headers = {};
+        headers["idList"] = JSON.stringify(store.state.alertMessageKeys);
+        if (calcClient && calcClient.connected) {
+            calcClient.subscribe(projectconfig.calcSubmitMap.getPopupAlarmStatus, frame => setPopupAlarmStatus(frame), headers);
+        }
+    }
+}
+// ============================  解析函数体  ============================
+
+// 报警信息弹窗
+function popupAlarm(frame) {
+    var alertMessage = JSON.parse(frame.body);
+    let count = Object.getOwnPropertyNames(alertMessage).length;
+    if (count > 0) {
+        store.dispatch('ReceivePopupAlertMessage', alertMessage);
+    }
+}
+
+
+// 设备报警详情
+function getRealTimeAlarmList(frame) {
+    var realtimeAlertList = JSON.parse(frame.body);
+    store.dispatch('updateMachineAlarmDetailsByAlarmPopup', realtimeAlertList);
+
+    // 此处注释的原因是因为有多处的请求 返回的结果都将成为一个数据源,放在全局中被引用
+    // 每个请求的地方都是有自己特色的head的id开头,返回的heads中的subscription会标识出来
+    // if(frame.headers["subscription"] && frame.headers["subscription"].startsWith(projectconfig.getRealTimeAlarmListEnum.alarmmessageclick))//点击弹窗上的元素而显示的
+    // {
+    //     //List<RealTimeAlertInfo>
+    //     var realtimeAlertList=JSON.parse(frame.body);
+    //     store.dispatch('updateMachineAlarmDetailsByAlarmPopup', runtimeAlarmList);
+    // }
+}
+
+
+
+
+// ============================  其他  ============================
+function debugX(text) {
+    console.log(text);
+}

+ 72 - 23
src/network/network.js

@@ -46,7 +46,7 @@ export const resetUserRequest = objData =>
 //******************************end****************************************//
 
 
-//******************************公用接口************************************//
+//******************************测点查询接口************************************//
 
 export const fetcPointList = query =>
 {
@@ -76,7 +76,6 @@ export const alert_rule_fetchTableData = query =>
     return data;
 };
 
-
 export const alert_rule_postSave = form =>
 {
     return Axios.post(URL + "alertrule2/save", form, {
@@ -87,8 +86,6 @@ export const alert_rule_postSave = form =>
     })
 };
 
-
-
 //******************************end*******************************************//
 
 
@@ -201,29 +198,81 @@ export const monitor = {
 
 }
 //#endregion
-export const alarm = {
-    submitGetRealTimeAlarmList(searchCondition, getRealTimeAlarmListCallback)
+
+
+//#region  报警相关
+export const alert = {
+    async searchAlert(searchCondition,callback)
     {
-        // if (calcClient && calcClient.connected) {
-        //     //需要添加一个"condition"头信息
-        //     const headers = {};
-        //     headers["condition"] = JSON.stringify(searchCondition);
-        //     if (!getRealTimeAlarmListCallback || getRealTimeAlarmListCallback == null || getRealTimeAlarmListCallback == "") {
-        //         calcClient.subscribe(projectconfig.calcSubmitMap.getRealTimeAlarmList, frame => getRealTimeAlarmList(frame), headers);
-        //     }
-        //     else {
-        //         calcClient.subscribe(projectconfig.calcSubmitMap.getRealTimeAlarmList, frame => getRealTimeAlarmListCallback(frame), headers);
-        //     }
-        // }
+        await Axios.get
+            (
+                projectconfig.restful.host + projectconfig.restful.alert.searchActiveAlert,
+                {
+                    params:
+                    {
+                        pagenum: searchCondition.pagenum,
+                        pagesize: searchCondition.pagesize,
+                        name:searchCondition.name,
+                        startTime: searchCondition.startTime,
+                        endTime: searchCondition.endTime
+                    },
+                    headers: {
+                        'content-type': 'application/json',
+                        'token': localStorage.getItem('token')
+                    }
+                }
+            )
+            .then(res =>callback(res))
+            // {
+            //     console.log(res.data);
+            //     if (res.data && res.data.success && res.data.success == true && res.data.data) {
+
+            //         if (res.data.data.length > 0) {
+            //             callback(res.data.data);
+            //         }
+            //     }
+            // })
+            .catch(error =>
+            {
+                console.log("getAllActiveAlert 异常:" + error);
+            });
     },
-    send(destination, headers, body)
+    async getAllActiveAlert(searchCondition,callback)
     {
-        if (calcClient && calcClient.connected) {
-            calcClient.send(destination, headers, body);
-        }
-    }
-}
+        await Axios.get
+            (
+                projectconfig.restful.host + projectconfig.restful.alert.allActiveAlert,
+                {
+                    params:
+                    {
+                        name: searchCondition.name,
+                        rank: searchCondition.rank,
+                        startTime: searchCondition.startTime,
+                        endTime: searchCondition.endTime
+                    },
+                    headers: {
+                        'content-type': 'application/json',
+                        'token': localStorage.getItem('token')
+                    }
+                }
+            )
+            .then(res =>callback(res))
+            // {
+            //     console.log(res.data);
+            //     if (res.data && res.data.success && res.data.success == true && res.data.data) {
 
+            //         if (res.data.data.length > 0) {
+            //             callback(res.data.data);
+            //         }
+            //     }
+            // })
+            .catch(error =>
+            {
+                console.log("getAllActiveAlert 异常:" + error);
+            });
+    },
+}
+//#endregion
 export const nodes = {
     pull(pagination, callBack)
     {

+ 11 - 0
src/router/index.js

@@ -141,6 +141,17 @@ const routes = [
                     keepAlive: false,
                     level: 0
                 }
+            },
+            {
+                path: "/list/alertlist",
+                component: () => import("../views/alert/alertList.vue"),
+                name: "alertslist",
+                hidden: false,
+                meta: {
+                    title: "报警列表",
+                    keepAlive: false,
+                    level: 0
+                }
             }
         ]
     },

+ 22 - 1
src/static/projectconfig.js

@@ -1,6 +1,9 @@
 export const projectconfig =
 { 
-    
+    date:{
+        dayjsFomart:'YYYY-MM-DD HH:mm:ss',
+        format:'yyyy-MM-dd HH:mm:ss'
+    },
     // 跨域问题使用vue.config.js
     restful: {
         host: '/wisdom-water',//'http://127.0.0.1:8033',// /restfull
@@ -8,5 +11,23 @@ export const projectconfig =
         watcher:'/monitor/list',
         postjson:'/monitor/jsonfile',
         nodelist:'/point/list',
+
+        alert:{
+            searchActiveAlert:"/alert/list",
+            allActiveAlert:"/alert/all",
+            allActivePopupMessage:"/alert/popup",            
+            searchHistoryAlert:"/alert/history",
+            confirmAlertMessage:"/alert/confirm",            
+        }
+    },
+    websocket:{
+        calcHost: "ws://127.0.0.1:8033/wisdom-water", // 计算服务地址
+        calcSubscribeMap: {
+            popupAlarm:"/topic/popup"
+        }
+    },
+    allowCalcDebug: true,
+    popupAlarm:{
+        maxCountCash: 150,// 最多缓存多少个报警弹窗,因为存到一定数量后,界面将显示不全
     }
 }

+ 79 - 8
src/store/index.js

@@ -1,12 +1,13 @@
 import Vue from 'vue'
 import Vuex from 'vuex'
+import { projectconfig } from "../static/projectconfig";
 
 Vue.use(Vuex)
 
 export default new Vuex.Store({
     state: {
         token: '',//token
-        pathSummary:{},//
+        pathSummary: {},//
         event:
         {
             name: '',
@@ -287,7 +288,12 @@ export default new Vuex.Store({
         },
         bindingsetting:
         {
-            IO: ["AI", "AO", "DI", "DO", "TC", "RTD"]
+            IO: ["AI", "AO", "DI", "DO", "TC", "RTD"],
+            TechnologicalProcess: {
+                "pretreatment": "预处理",
+                "evaporation": "蒸发",
+                "drying": "干燥"
+            }
         },
         canvas: {
             data: {
@@ -297,7 +303,16 @@ export default new Vuex.Store({
                 locked: 0,
                 bkColor: '',
             }
-        }
+        },
+        alarm: {
+            alertMessageMap: {}, // 报警弹窗缓存,能够存储一定量的弹窗,
+            alertMessageKeys: [], // 报警弹窗缓存,能够存储一定量的弹窗,存key
+            runtimeFault: [], // 实时故障列表
+            runtimeAlarm: [], // 实时报警列表
+            machinmeAlarmDetails: [], // 实时报警结果 //MachineAlarmDetailsForAlarmmessageclick:[],// 设备报警详情,(点击了弹窗的"确认"/"生成缺陷单"而提供给用户勾选的)        
+            warningMap: {}, // 首出报警缓存
+            deviceFaultMap: {} // 首出报警缓存
+        },
     },
     getters: {
         token: state => state.token
@@ -316,9 +331,9 @@ export default new Vuex.Store({
         {
             state.event = event
         },
-        setPathSummary(state,pathSummary)
+        setPathSummary(state, pathSummary)
         {
-            state.pathSummary=pathSummary;
+            state.pathSummary = pathSummary;
         },
 
         //#region  设计器默认的配置
@@ -351,14 +366,52 @@ export default new Vuex.Store({
         setCanvasBackColor(state, color)
         {
             state.canvas.data.bkColor = color;
-        }
+        },
+        // 添加弹窗
+        ReceivePopupAlertMessage(state, alertMessage)
+        {
+            console.log(alertMessage)
+            if (!state.alarm.alertMessageMap[alertMessage.infoId]) {
+                Vue.set(state.alarm.alertMessageMap, alertMessage.infoId, alertMessage);
+                state.alarm.alertMessageKeys.push(alertMessage.infoId);
+            }
+            else {
+                Vue.set(state.alarm.alertMessageMap, alertMessage.infoId, alertMessage);
+            }
+            // 删除之前存储的弹窗信息,防止多占用内存
+            while (projectconfig.popupAlarm.maxCountCash < state.alarm.alertMessageKeys.length) {
+                Vue.delete(state.alarm.alertMessageMap, state.alarm.alertMessageKeys[0])
+                state.alarm.alertMessageKeys.splice(0, 1) // 不可以使用delete关键词  因为数组长度不会变
+            }
+        },
+
+        RemovePopupAlertMessage(state, alertMessageInfoId)
+        {
+            /***
+            * snapid 是一对多的,alertMessageMap中的key是唯一的,但是可能会出现多个弹窗的snapid是相同的
+            * 所以在确定了一个弹窗要关闭的时候,则找到所有相同snapid相同的弹窗,然后移除这些弹窗
+            */
+            let tmpKeysList = [];
+            state.alarm.alertMessageKeys.forEach(element =>
+            {
+                if (state.alarm.alertMessageMap[element].id == alertMessageInfoId) {
+                    tmpKeysList.push(element);
+                }
+            });
+
+            for (let key in tmpKeysList) {
+                Vue.delete(state.alarm.alertMessageMap, state.alarm.alertMessageKeys[key])
+                Vue.delete(state.alarm.alertMessageKeys, key)
+            }
+        },
+
     },
     actions: {
         commitToken: ({ commit }, token) =>
         {
             commit('setToken', token)
         },
-        setPathSummary(context,pathSummary)
+        setPathSummary(context, pathSummary)
         {
             context.commit("setPathSummary", pathSummary);
         },
@@ -394,7 +447,25 @@ export default new Vuex.Store({
             context.commit("setCanvasBackColor", color);
             context.commit("setPaintColor", color);
         },
+        ReceivePopupAlertMessage(context, alertMessage)
+        {
+            context.commit("ReceivePopupAlertMessage", alertMessage)
+        },
+        RemovePopupAlertMessage(context,alertMessageInfoId)
+        {
+            context.commit("RemovePopupAlertMessage", alertMessageInfoId)
+        }
+        
     },
+
+
     modules: {
-    }
+    },
+
 })
+
+/** 打印日志 */
+function D(text)
+{
+    console.log(text);
+}

+ 13 - 7
src/views/alert/DeviceAlarmDetails.vue

@@ -30,7 +30,8 @@
 import { dateFormat } from "@/assets/js/common";
 export default {
   props: ["objectid", "faultInfo"],
-  data() {
+  data()
+  {
     return {
       templateSelection: "",
       templateRadio: ""
@@ -38,17 +39,20 @@ export default {
   },
 
   methods: {
-    singleElection(row) {
+    singleElection(row)
+    {
       this.templateSelection = this.getMachinmeAlarmDetails.indexOf(row);
       this.templateRadio = row.id;
     },
-    openDialog() {
+    openDialog()
+    {
       this.devicealarmdetails = true;
     },
     /** 生成缺陷单 / 确认
      * @param confirmType { Number } 1-确认 2-复位  3-生成缺陷单
      */
-    createOrConfirm(confirmType, userName) {
+    createOrConfirm(confirmType, userName)
+    {
       let requestData = {
         confirmType: confirmType, //
         faultHistoryId: this.faultInfo.id, //故障id View_faultHistory中 snapid  即FaultSnap表Id  faulrInformation.id;
@@ -68,12 +72,14 @@ export default {
     }
   },
   computed: {
-    getMachinmeAlarmDetails() {
-      return this.$store.state.machinmeAlarmDetails;
+    getMachinmeAlarmDetails()
+    {
+      return this.$store.state.alarm.machinmeAlarmDetails;
     }
   },
   filters: {
-    timeFilter(value) {
+    timeFilter(value)
+    {
       if (value) return dateFormat("yyyy-MM-dd HH:mm:ss", new Date(value));
       else return "";
     }

+ 176 - 0
src/views/alert/alarmFaultPage.vue

@@ -0,0 +1,176 @@
+<template>
+  <div class="warntab">
+    <div class="warntab-head">
+      <span>最近报警</span>
+      <div>
+        <el-button
+          @click="tableData2Show=false,tableData1Show=true"
+          :class="{elbtnSel:tableData1Show}"
+        >故障</el-button>
+        <el-button
+          @click="tableData1Show=false,tableData2Show=true"
+          :class="{elbtnSel:tableData2Show}"
+        >报警</el-button>
+      </div>
+    </div>
+    <div class="warntab-table">
+      <el-table tooltip-effect="light" :data="getRuntimeFault" border style="width: 100%" max-height="1000" v-show="tableData1Show">
+        <el-table-column label="时间" width="170"  show-overflow-tooltip>
+          <template slot-scope="scope">
+            <div>{{scope.row.alertTime | timeFilter}}</div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="faultInfo.windturbineName" label="设备" width="130"  show-overflow-tooltip></el-table-column>
+        <el-table-column prop="alertText" label="故障信息" width="200"  show-overflow-tooltip></el-table-column>
+        <el-table-column label="当前报警"  show-overflow-tooltip>
+          <template slot-scope="scope">
+            <div
+              style="cursor: pointer;"
+              @click="godevicealarmdetails(scope.row.faultInfo)"
+            >{{scope.row.agCount}}</div>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-table :data="getRuntimeAlarm" border style="width: 100%"  max-height="1000" v-show="tableData2Show">
+        <el-table-column label="时间" width="170">
+          <template slot-scope="scope">
+            <div>{{scope.row.lastUpdateTime | timeFilter}}</div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="objectName" label="设备" width="150"  show-overflow-tooltip></el-table-column>
+        <el-table-column prop="alertText" label="故障信息"  show-overflow-tooltip></el-table-column>
+      </el-table>
+    </div>
+
+    <el-dialog
+      class="devicealarmdetails"
+      width="1200px"
+      top="18vh"
+      :title="clickid"
+      :visible.sync="devicealarmdetails"
+      :modal-append-to-body="false" 
+    >
+      <devicealarmdetails :objectid="objectid"></devicealarmdetails>
+      <span slot="footer" class="dialog-footer"></span>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import devicealarmdetails from "./DeviceAlarmDetails";
+import { calcsubmitGetRealTimeAlarmList } from "../assets/js/calcClient";
+import { projectconfig } from "../../static/projectconfig";
+import { dateFormat } from "../../assets/js/common";
+export default {
+  data() {
+    return {
+      clickid: "",
+      objectid: "",
+      devicealarmdetails: false,
+      tableData1Show: true,
+      tableData2Show: false,
+      searchCondition: {
+        objectId: "",
+        stationId: "",
+        startTime: "",
+        endTime: "",
+        rank: "",
+        cateGory1: "",
+        cateGory2: "",
+        keyText: "",
+        pageIndex: 1,
+        pageSize: 100,
+        StationName: "全部",
+        RankText: "全部",
+        CateGoryText: "全部"
+      }
+    };
+  },
+  components: {
+    devicealarmdetails
+  },
+  methods: {
+    godevicealarmdetails(faultInfo) {
+      this.$store.state.machinmeAlarmDetails = [];
+        this.clickid = "设备报警详情 -- [" + faultInfo.windturbineName + "]";
+        this.objectid = faultInfo.objectId;
+        this.searchCondition.objectId = this.objectid;
+        this.searchCondition.cateGory1 = faultInfo.category1;
+        this.searchCondition.cateGory1 =
+        this.searchCondition.cateGory1 == "FJ" ? "windturbine": this.searchCondition.cateGory1;
+        calcsubmitGetRealTimeAlarmList(this.searchCondition);
+      
+      this.devicealarmdetails = true;
+    }
+  },
+  computed: {
+    getRuntimeFault() {
+      return this.$store.state.runtimeFault;
+    },
+    getRuntimeAlarm() {
+      return this.$store.state.runtimeAlarm;
+    }
+  },
+  filters: {
+    timeFilter(value) {
+      if (value) return dateFormat("yyyy-MM-dd HH:mm:ss", new Date(value));
+      else return "";
+    }
+  }
+};
+</script>
+<style lang="less" scope>
+.warntab {
+  width: 580px;
+  // height: 765px;
+  background-color: #eee;
+  .warntab-head {
+    width: 500px;
+    height: 30px;
+    padding: 3px 50px 3px 20px;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    .el-button {
+      padding: 7px 30px;
+    }
+    .elbtnSel {
+      color: #409eff;
+      border-color: #c6e2ff;
+      background-color: #ecf5ff;
+    }
+  }
+  .warntab-table {
+    height: 77vh;
+    overflow-y: hidden;
+    overflow-x: hidden;
+    .el-table--scrollable-x .el-table__body-wrapper {
+      overflow-x: hidden;
+    }
+    .el-table td,
+    .el-table th {
+      padding: 0px 0;
+    }
+  }
+}
+.devicealarmdetails {
+  .el-dialog {
+    right: none !important;
+    bottom: none !important;
+    position: relative !important;
+    margin: 18vh auto 50px !important;
+    border-radius: 2px !important;
+    .el-dialog__header {
+      padding: 15px 16px!important;
+      background-color: #5e5e5e!important;
+    }
+    .el-dialog__body {
+      padding: 0px 10px!important;
+      background-color: #eee!important;
+    }
+    .el-dialog__footer {
+      padding: 0!important;
+      background-color: #eee!important;
+    }
+  }
+}
+</style>

+ 8 - 7
src/views/alert/alarmMessagePopue.vue

@@ -5,7 +5,7 @@
       <div v-show="drawer" class="popue">
         <i
           class="el-icon-right"
-          v-if="getalertMessageMap.length>0"
+          v-if="getalertMessageMap.length > 0"
           v-show="drawer"
           type="primary"
           @click="hideDrawer(false)"
@@ -17,8 +17,8 @@
           :class="{ImgBar:!v.opened}"
         >
           <div class="titleFlex">
-            <div>{{v.category1 == "FJ" ? v.windturbineName : v.statiodsanName}}</div>
-            <div>{{v.faultTime | timeFilter}}</div>
+            <div>{{ $store.state.bindingsetting.TechnologicalProcess[v.part]}}</div>
+            <div>{{v.alertTime | timeFilter}}</div>
           </div>
           <span>{{v.alertText}}</span>
           <div class="warn-btn">
@@ -48,7 +48,7 @@
 
 <script type="text">
 import devicealarmdetails from "./DeviceAlarmDetails";
-import { alarm } from "@/network/network";
+import { alert } from "@/network/network";
 import { dateFormat } from "@/assets/js/common";
 import "element-ui/lib/theme-chalk/base.css";
 import { setInterval } from "timers";
@@ -84,12 +84,13 @@ export default {
   },
   computed: {
     getalertMessageMap() {
-      const alertMessageMap = this.$store.state.alertMessageMap;
+      const alertMessageMap = this.$store.state.alarm.alertMessageMap;
       const alertMessageList = [];
       for (let i in alertMessageMap) {
         alertMessageList.push(alertMessageMap[i]);
       }
       this.popueWatch = alertMessageList;
+      console.log(alertMessageList)
       return alertMessageList;
     }
   },
@@ -142,7 +143,7 @@ export default {
           this.searchCondition.cateGory1 == "FJ"
             ? "windturbine"
             : this.searchCondition.cateGory1;
-        alarm.calcsubmitGetRealTimeAlarmList(this.searchCondition);
+        alert.calcsubmitGetRealTimeAlarmList(this.searchCondition);
         this.devicealarmdetails = true;
       }
     },
@@ -159,7 +160,7 @@ export default {
         this.searchCondition.cateGory1 == "FJ"
           ? "windturbine"
           : this.searchCondition.cateGory1;
-      alarm.calcsubmitGetRealTimeAlarmList(this.searchCondition);
+      alert.calcsubmitGetRealTimeAlarmList(this.searchCondition);
 
       this.devicealarmdetails = true;
     },

+ 187 - 0
src/views/alert/alertList.vue

@@ -0,0 +1,187 @@
+<template>
+  <div class="container">
+    <el-row type="flex" justify="space-between">
+      <div class="handle-box" style="margin-bottom:10px">
+        <el-button
+          type="primary"
+          icon="el-icon-refresh"
+          class="handle-refresh"
+          @click="OnPullNodes"
+        >刷新</el-button>
+        <span>
+          共[
+          <span class="handle-waring" style="margin:0 10px">{{pagination.total}}</span> ]条数据
+        </span>
+      </div>
+      <div style="display:flex;flex-direction:row;margin-bottom:10px;">
+        <el-input
+          placeholder="关键词"
+          v-model="pagination.name"
+          class="wdiv searchParamsstyle"
+          clearable
+        ></el-input>
+
+        <div class="block">
+          <span class="demonstration">默认时间段</span>
+          <el-date-picker
+            v-model="pagination.datetime"
+            type="datetimerange"
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+          ></el-date-picker>
+        </div>
+
+        <el-button
+          icon="el-icon-search"
+          type="primary"
+          size="mini"
+          width="100"
+          @click="OnSerch"
+          class="searchParamsstyle"
+        >查询</el-button>
+      </div>
+    </el-row>
+
+    <el-table
+      :data="alertTable"
+      border
+      class="table"
+      :highlight-current-row="true"
+      :default-sort="{prop: 'name', order: 'descending'}"
+    >
+      <el-table-column type="index" width="50"></el-table-column>
+      <el-table-column prop="id" label="报警ID" sortable width="400"></el-table-column>
+      <el-table-column prop="alertText" label="报警规则" sortable width="180"></el-table-column>
+      <el-table-column
+        prop="lastUpdateTime"
+        label="最近更新时间"
+        sortable
+        width="180"
+      ><template slot-scope="scope">{{ scope.row.lastUpdateTime | datetimeString }}</template></el-table-column>
+      <el-table-column prop="opened" label="报警状态" sortable width="180"><template slot-scope="scope">{{ scope.row.opened | isOpend }}</template></el-table-column>
+      <el-table-column prop="part" label="工艺环节" sortable width="180">
+      <!-- 
+          <template slot-scope="scope">{{ scope.row.part | getPartZhName }}</template>
+          -->
+          </el-table-column>
+      <el-table-column prop="rank" label="级别" sortable width="180"></el-table-column>
+      <el-table-column prop="ruleId" label="关联规则ID" sortable width="180"></el-table-column>
+    </el-table>
+    <div class="pagination">
+      <el-pagination
+        background
+        layout="total, prev, pager, next"
+        :current-page="pagination.pagenum"
+        :page-size="pagination.pagesize"
+        :total="pagination.total"
+        @current-change="OnPageChange"
+      ></el-pagination>
+    </div>
+  </div>
+</template>
+
+<style lang="less" scoped>
+.wdiv {
+  width: 200px;
+}
+.searchParamsstyle {
+  width: 150px;
+  margin-left: 10px;
+}
+</style>
+
+
+<script>
+import { nodes } from "@/network/network"
+import { projectconfig } from '@/static/projectconfig'
+import { alert } from '../../network/network'
+import { dateFormat } from '../../assets/js/common'
+
+
+
+var dayjs = require('dayjs');
+//dayjs().format(projectconfig.date.dayjsFomart);
+
+
+export default {
+  data()
+  {
+    return {
+      alertTable: [],
+      pagination: {
+        pagenum: 1,
+        pagesize: 30,
+        name: "",
+        datetime: [dayjs().add(-1, 'day'), dayjs()],
+        total: 0,
+      }
+    }
+  },
+  mounted()
+  {
+
+    // 1596441296000
+    var dtjs = dayjs(1596441296000).format(projectconfig.date.dayjsFomart);
+    console.log(dtjs)
+
+    //   var c=dateFormat('yyyy-MM-dd HH:mm:ss',dayjs(1596441296000));
+    //   console.log(c)
+    // console.log(this.pagination.datetime)
+
+  },
+  methods: {
+    OnPageChange(nextPageIndex)
+    {
+      console.log(nextPageIndex)
+      this.pagination.pagenum = nextPageIndex;
+
+    },
+    OnSerch()
+    {
+      this.pagination.pagenum = 1;
+      // 网络请求数据
+      alert.searchAlert(this.pagination, this.dataBinding)
+    },
+    OnPullNodes()
+    {
+      this.pagination.total = 0;
+      console.log(this.pagination);
+      nodes.pull(this.pagination, res =>
+      {
+        console.log(res.data);
+        this.alertTable = res.data.data.dataList;
+        this.pagination.total = res.data.data.total;
+      });
+    },
+    dataBinding(res)
+    {
+      console.log(res)
+      this.alertTable = res.data.data.dataList;
+      console.log(res.data.data.dataList)
+
+    }
+    ,
+    formatter(row, column) 
+    {
+      return row.address;
+    }
+  },
+  filters: {
+      datetimeString(longTimeStamp)
+      {
+          return dayjs(longTimeStamp).format(projectconfig.date.dayjsFomart)
+      },
+      isOpend(openState)
+      {
+        return  openState == true ? '是':'否';
+      },
+      getPartZhName(partName)
+      {
+          return $store.state.bindingsetting.TechnologicalProcess[partName];
+      }
+  },
+
+}
+</script>
+

+ 25 - 8
src/views/nodes/nodeslist.vue

@@ -30,7 +30,23 @@
             ></el-option>
           </el-select>
         </div>
-        <el-input placeholder="工艺环节" v-model="pagination.part" class="wdiv searchParamsstyle" clearable></el-input>
+
+        <div>
+          <el-select
+            class="wdiv searchParamsstyle"
+            v-model="pagination.part"
+            placeholder="工艺环节"
+            clearable
+          >
+            <el-option
+              v-for="(v,k) in $store.state.bindingsetting.TechnologicalProcess"
+              :key="v"
+              :label="v"
+              :value="k"
+            ></el-option>
+          </el-select>
+        </div>
+        <!-- <el-input placeholder="工艺环节" v-model="pagination.part" class="wdiv searchParamsstyle" clearable></el-input> -->
         <el-button
           icon="el-icon-search"
           type="primary"
@@ -70,7 +86,9 @@
     </div>
   </div>
 </template>
-
+<!--
+  
+   -->
 <style lang="less" scoped>
 .wdiv {
   width: 200px;
@@ -105,10 +123,10 @@ export default {
     this.OnPullNodes();
   },
   methods: {
-    OnPageChange(nextPageIndex)
+    
+    OnPageChange(nextPagenum)
     {
-      console.log(this.pagination)
-      this.pagination.pagenum = nextPageIndex;
+      this.pagination.pagenum=nextPagenum;
       this.OnPullNodes();
     },
     OnSerch()
@@ -118,13 +136,12 @@ export default {
     },
     OnPullNodes()
     {
-      this.pagination.total = 0;
-      console.log(this.pagination);
       nodes.pull(this.pagination, res =>
       {
-        console.log(res.data);
         this.nodetable = res.data.data.dataList;
         this.pagination.total = res.data.data.total;
+        this.pagination.pagenum=res.data.data.pageIndex;
+        this.pagination.pagesize=res.data.data.pageSize;
       });
     },
     formatter(row, column)