chenrui  2 lat temu
rodzic
commit
ccec665b45
100 zmienionych plików z 414 dodań i 25 usunięć
  1. 24 0
      jest.config.js
  2. 9 0
      jsconfig.json
  3. 376 20
      package-lock.json
  4. 4 0
      package.json
  5. 1 5
      src/App.vue
  6. BIN
      src/assets/404_images/404.png
  7. BIN
      src/assets/404_images/404_cloud.png
  8. BIN
      src/assets/account/ic_user_permissions_default.png
  9. BIN
      src/assets/baggage/ic_export.png
  10. BIN
      src/assets/baggage/ic_setting.png
  11. BIN
      src/assets/baggage/ic_time.png
  12. BIN
      src/assets/fonts/Helvetica/Helvetica Bold Oblique.ttf
  13. BIN
      src/assets/fonts/Helvetica/Helvetica Bold Oblique_0.ttf
  14. BIN
      src/assets/fonts/Helvetica/Helvetica Bold.ttf
  15. BIN
      src/assets/fonts/Helvetica/Helvetica Bold_0.ttf
  16. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed Bold Italic.ttf
  17. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed Bold Italic_0.ttf
  18. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed Bold.ttf
  19. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed Bold_0.ttf
  20. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed Italic.ttf
  21. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed Italic_0.ttf
  22. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed.ttf
  23. BIN
      src/assets/fonts/Helvetica/Helvetica Condensed_0.ttf
  24. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Bold Lefty.ttf
  25. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Bold Lefty_0.ttf
  26. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Bold Oblique.ttf
  27. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Bold Oblique_0.ttf
  28. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Bold.ttf
  29. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Bold_0.ttf
  30. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Lefty.ttf
  31. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Lefty_0.ttf
  32. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Oblique.ttf
  33. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow Oblique_0.ttf
  34. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow.ttf
  35. BIN
      src/assets/fonts/Helvetica/Helvetica Narrow_0.ttf
  36. BIN
      src/assets/fonts/Helvetica/Helvetica Oblique.ttf
  37. BIN
      src/assets/fonts/Helvetica/Helvetica Oblique_0.ttf
  38. BIN
      src/assets/fonts/Helvetica/Helvetica-Black-SemiBold.ttf
  39. BIN
      src/assets/fonts/Helvetica/Helvetica-Black-SemiBold_0.ttf
  40. BIN
      src/assets/fonts/Helvetica/Helvetica-BoldOblique.ttf
  41. BIN
      src/assets/fonts/Helvetica/Helvetica-BoldOblique_0.ttf
  42. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Black-Se.ttf
  43. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Black-Se_0.ttf
  44. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Li.ttf
  45. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Li_0.ttf
  46. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Light.ttf
  47. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Light_0.ttf
  48. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Thin.ttf
  49. BIN
      src/assets/fonts/Helvetica/Helvetica-Condensed-Thin_0.ttf
  50. BIN
      src/assets/fonts/Helvetica/Helvetica-Conth.ttf
  51. BIN
      src/assets/fonts/Helvetica/Helvetica-Conth_0.ttf
  52. BIN
      src/assets/fonts/Helvetica/Helvetica-Light-Light-Italic.ttf
  53. BIN
      src/assets/fonts/Helvetica/Helvetica-Light-Light-Italic_0.ttf
  54. BIN
      src/assets/fonts/Helvetica/Helvetica-Narrow-Bold.ttf
  55. BIN
      src/assets/fonts/Helvetica/Helvetica-Narrow-BoldOblique.ttf
  56. BIN
      src/assets/fonts/Helvetica/Helvetica-Narrow-BoldOblique_0.ttf
  57. BIN
      src/assets/fonts/Helvetica/Helvetica-Narrow-Bold_0.ttf
  58. BIN
      src/assets/fonts/Helvetica/Helvetica-Narrow.ttf
  59. BIN
      src/assets/fonts/Helvetica/Helvetica-Narrow_0.ttf
  60. BIN
      src/assets/fonts/Helvetica/Helvetica-Roman-SemiB.ttf
  61. BIN
      src/assets/fonts/Helvetica/Helvetica-Roman-SemiB_0.ttf
  62. BIN
      src/assets/fonts/Helvetica/Helvetica.ttf
  63. BIN
      src/assets/fonts/Helvetica/HelveticaExt-Normal.ttf
  64. BIN
      src/assets/fonts/Helvetica/HelveticaExt-Normal_0.ttf
  65. BIN
      src/assets/fonts/Helvetica/HelveticaExtObl-Heavy.ttf
  66. BIN
      src/assets/fonts/Helvetica/HelveticaExtObl-Heavy_0.ttf
  67. BIN
      src/assets/fonts/Helvetica/HelveticaExtObl-Light.ttf
  68. BIN
      src/assets/fonts/Helvetica/HelveticaExtObl-Light_0.ttf
  69. BIN
      src/assets/fonts/Helvetica/HelveticaExtObl-Normal.ttf
  70. BIN
      src/assets/fonts/Helvetica/HelveticaExtObl-Normal_0.ttf
  71. BIN
      src/assets/fonts/Helvetica/HelveticaHv.ttf
  72. BIN
      src/assets/fonts/Helvetica/HelveticaInserat-Roman-SemiB.ttf
  73. BIN
      src/assets/fonts/Helvetica/HelveticaInserat-Roman-SemiB_0.ttf
  74. BIN
      src/assets/fonts/Helvetica/HelveticaInserat-Roman-SemiBold.ttf
  75. BIN
      src/assets/fonts/Helvetica/HelveticaInserat-Roman-SemiBold_0.ttf
  76. BIN
      src/assets/fonts/Helvetica/HelveticaLTStd-LightCond.otf
  77. BIN
      src/assets/fonts/Helvetica/HelveticaObl-Heavy.ttf
  78. BIN
      src/assets/fonts/Helvetica/HelveticaObl-Heavy_0.ttf
  79. BIN
      src/assets/fonts/Helvetica/HelveticaObl-Thin.ttf
  80. BIN
      src/assets/fonts/Helvetica/HelveticaObl-Thin_0.ttf
  81. BIN
      src/assets/fonts/Helvetica/Helvetica_0.ttf
  82. BIN
      src/assets/fonts/Helvetica/helvetica-light.otf
  83. BIN
      src/assets/fonts/Helvetica/helveticacyrillicbold_.ttf
  84. BIN
      src/assets/header/ic_data_top.png
  85. BIN
      src/assets/header/ic_fullscreen_top.png
  86. BIN
      src/assets/header/ic_message_top.png
  87. BIN
      src/assets/header/ic_search_top.png
  88. BIN
      src/assets/index/ic_close_card.png
  89. BIN
      src/assets/index/ic_close_conner.png
  90. BIN
      src/assets/index/ic_close_hint.png
  91. BIN
      src/assets/index/ic_close_s @2x.png
  92. BIN
      src/assets/index/ic_data@2x.png
  93. BIN
      src/assets/index/ic_date.png
  94. BIN
      src/assets/index/ic_display.png
  95. BIN
      src/assets/index/ic_display_edit.png
  96. BIN
      src/assets/index/ic_screen@2x.png
  97. BIN
      src/assets/index/ic_screen_edit@2x.png
  98. BIN
      src/assets/index/ic_search_searchbar.png
  99. BIN
      src/assets/index/ic_time.png
  100. BIN
      src/assets/index/ic_time@2x.png

+ 24 - 0
jest.config.js

@@ -0,0 +1,24 @@
+module.exports = {
+  moduleFileExtensions: ['js', 'jsx', 'json', 'vue'],
+  transform: {
+    '^.+\\.vue$': 'vue-jest',
+    '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$':
+      'jest-transform-stub',
+    '^.+\\.jsx?$': 'babel-jest'
+  },
+  moduleNameMapper: {
+    '^@/(.*)$': '<rootDir>/src/$1'
+  },
+  snapshotSerializers: ['jest-serializer-vue'],
+  testMatch: [
+    '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
+  ],
+  collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'],
+  coverageDirectory: '<rootDir>/tests/unit/coverage',
+  // 'collectCoverage': true,
+  'coverageReporters': [
+    'lcov',
+    'text-summary'
+  ],
+  testURL: 'http://localhost/'
+}

+ 9 - 0
jsconfig.json

@@ -0,0 +1,9 @@
+{
+  "compilerOptions": {
+    "baseUrl": "./",
+    "paths": {
+        "@/*": ["src/*"]
+    }
+  },
+  "exclude": ["node_modules", "dist"]
+}

+ 376 - 20
package-lock.json

@@ -25,6 +25,28 @@
         "@jridgewell/trace-mapping": "^0.3.9"
       }
     },
+    "@ant-design/colors": {
+      "version": "3.2.2",
+      "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-3.2.2.tgz",
+      "integrity": "sha512-YKgNbG2dlzqMhA9NtI3/pbY16m3Yl/EeWBRa+lB1X1YaYxHrxNexiQYCLTWO/uDvAjLFMEDU+zR901waBtMtjQ==",
+      "requires": {
+        "tinycolor2": "^1.4.1"
+      }
+    },
+    "@ant-design/icons": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-2.1.1.tgz",
+      "integrity": "sha512-jCH+k2Vjlno4YWl6g535nHR09PwCEmTBKAG6VqF+rhkrSPRLfgpU2maagwbZPLjaHuU5Jd1DFQ2KJpQuI6uG8w=="
+    },
+    "@ant-design/icons-vue": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/@ant-design/icons-vue/-/icons-vue-2.0.0.tgz",
+      "integrity": "sha512-2c0QQE5hL4N48k5NkPG5sdpMl9YnvyNhf0U7YkdZYDlLnspoRU7vIA0UK9eHBs6OpFLcJB6o8eJrIl2ajBskPg==",
+      "requires": {
+        "@ant-design/colors": "^3.1.0",
+        "babel-runtime": "^6.26.0"
+      }
+    },
     "@babel/code-frame": {
       "version": "7.18.6",
       "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.18.6.tgz",
@@ -1277,6 +1299,15 @@
       "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
       "dev": true
     },
+    "@simonwep/pickr": {
+      "version": "1.7.4",
+      "resolved": "https://registry.npmjs.org/@simonwep/pickr/-/pickr-1.7.4.tgz",
+      "integrity": "sha512-fq7jgKJT21uWGC1mARBHvvd1JYlEf93o7SuVOB4Lr0x/2UPuNC9Oe9n/GzVeg4oVtqMDfh1wIEJpsdOJEZb+3g==",
+      "requires": {
+        "core-js": "^3.6.5",
+        "nanopop": "^2.1.0"
+      }
+    },
     "@soda/friendly-errors-webpack-plugin": {
       "version": "1.8.1",
       "resolved": "https://registry.npmmirror.com/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz",
@@ -2190,6 +2221,14 @@
       "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
       "dev": true
     },
+    "add-dom-event-listener": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.1.0.tgz",
+      "integrity": "sha512-WCxx1ixHT0GQU9hb0KI/mhgRQhnU+U3GvwY6ZvVjYq8rsihIGoaIOUbY0yMPBxLH5MDtr0kz3fisWGNcbWW7Jw==",
+      "requires": {
+        "object-assign": "4.x"
+      }
+    },
     "address": {
       "version": "1.2.0",
       "resolved": "https://registry.npmmirror.com/address/-/address-1.2.0.tgz",
@@ -2270,6 +2309,43 @@
         "color-convert": "^1.9.0"
       }
     },
+    "ant-design-vue": {
+      "version": "1.7.8",
+      "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-1.7.8.tgz",
+      "integrity": "sha512-F1hmiS9vwbyfuFvlamdW5l9bHKqRlj9wHaGDIE41NZMWXyWy8qL0UFa/+I0Wl8gQWZCqODW5pN6Yfoyn85At3A==",
+      "requires": {
+        "@ant-design/icons": "^2.1.1",
+        "@ant-design/icons-vue": "^2.0.0",
+        "@simonwep/pickr": "~1.7.0",
+        "add-dom-event-listener": "^1.0.2",
+        "array-tree-filter": "^2.1.0",
+        "async-validator": "^3.0.3",
+        "babel-helper-vue-jsx-merge-props": "^2.0.3",
+        "babel-runtime": "6.x",
+        "classnames": "^2.2.5",
+        "component-classes": "^1.2.6",
+        "dom-align": "^1.10.4",
+        "dom-closest": "^0.2.0",
+        "dom-scroll-into-view": "^2.0.0",
+        "enquire.js": "^2.1.6",
+        "intersperse": "^1.0.0",
+        "is-mobile": "^2.2.1",
+        "is-negative-zero": "^2.0.0",
+        "ismobilejs": "^1.0.0",
+        "json2mq": "^0.2.0",
+        "lodash": "^4.17.5",
+        "moment": "^2.21.0",
+        "mutationobserver-shim": "^0.3.2",
+        "node-emoji": "^1.10.0",
+        "omit.js": "^1.0.0",
+        "raf": "^3.4.0",
+        "resize-observer-polyfill": "^1.5.1",
+        "shallow-equal": "^1.0.0",
+        "shallowequal": "^1.0.2",
+        "vue-ref": "^2.0.0",
+        "warning": "^4.0.0"
+      }
+    },
     "any-promise": {
       "version": "1.3.0",
       "resolved": "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz",
@@ -2331,6 +2407,11 @@
       "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
       "dev": true
     },
+    "array-tree-filter": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz",
+      "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw=="
+    },
     "array-union": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/array-union/-/array-union-1.0.2.tgz",
@@ -2460,6 +2541,11 @@
       "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
       "dev": true
     },
+    "async-validator": {
+      "version": "3.5.2",
+      "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-3.5.2.tgz",
+      "integrity": "sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ=="
+    },
     "asynckit": {
       "version": "0.4.0",
       "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
@@ -2521,6 +2607,11 @@
         "resolve": "^1.12.0"
       }
     },
+    "babel-helper-vue-jsx-merge-props": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
+      "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
+    },
     "babel-loader": {
       "version": "8.2.5",
       "resolved": "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.2.5.tgz",
@@ -2572,6 +2663,27 @@
         "@babel/helper-define-polyfill-provider": "^0.3.1"
       }
     },
+    "babel-runtime": {
+      "version": "6.26.0",
+      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+      "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
+      "requires": {
+        "core-js": "^2.4.0",
+        "regenerator-runtime": "^0.11.0"
+      },
+      "dependencies": {
+        "core-js": {
+          "version": "2.6.12",
+          "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
+          "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ=="
+        },
+        "regenerator-runtime": {
+          "version": "0.11.1",
+          "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+          "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
+        }
+      }
+    },
     "balanced-match": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -2676,8 +2788,7 @@
       "version": "2.2.0",
       "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz",
       "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
-      "dev": true,
-      "optional": true
+      "dev": true
     },
     "bluebird": {
       "version": "3.7.2",
@@ -3151,7 +3262,6 @@
       "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz",
       "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
       "dev": true,
-      "optional": true,
       "requires": {
         "anymatch": "~3.1.2",
         "braces": "~3.0.2",
@@ -3168,7 +3278,6 @@
           "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz",
           "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
           "dev": true,
-          "optional": true,
           "requires": {
             "fill-range": "^7.0.1"
           }
@@ -3178,7 +3287,6 @@
           "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
           "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
           "dev": true,
-          "optional": true,
           "requires": {
             "to-regex-range": "^5.0.1"
           }
@@ -3187,15 +3295,13 @@
           "version": "7.0.0",
           "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
           "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
-          "dev": true,
-          "optional": true
+          "dev": true
         },
         "to-regex-range": {
           "version": "5.0.1",
           "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
           "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
           "dev": true,
-          "optional": true,
           "requires": {
             "is-number": "^7.0.0"
           }
@@ -3253,6 +3359,11 @@
         }
       }
     },
+    "classnames": {
+      "version": "2.3.1",
+      "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
+      "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA=="
+    },
     "clean-css": {
       "version": "4.2.4",
       "resolved": "https://registry.npmmirror.com/clean-css/-/clean-css-4.2.4.tgz",
@@ -3432,6 +3543,17 @@
       "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
       "dev": true
     },
+    "clone-deep": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+      "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+      "dev": true,
+      "requires": {
+        "is-plain-object": "^2.0.4",
+        "kind-of": "^6.0.2",
+        "shallow-clone": "^3.0.0"
+      }
+    },
     "coa": {
       "version": "2.0.2",
       "resolved": "https://registry.npmmirror.com/coa/-/coa-2.0.2.tgz",
@@ -3509,12 +3631,25 @@
       "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
       "dev": true
     },
+    "component-classes": {
+      "version": "1.2.6",
+      "resolved": "https://registry.npmjs.org/component-classes/-/component-classes-1.2.6.tgz",
+      "integrity": "sha512-hPFGULxdwugu1QWW3SvVOCUHLzO34+a2J6Wqy0c5ASQkfi9/8nZcBB0ZohaEbXOQlCflMAEMmEWk7u7BVs4koA==",
+      "requires": {
+        "component-indexof": "0.0.3"
+      }
+    },
     "component-emitter": {
       "version": "1.3.0",
       "resolved": "https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.0.tgz",
       "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
       "dev": true
     },
+    "component-indexof": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/component-indexof/-/component-indexof-0.0.3.tgz",
+      "integrity": "sha512-puDQKvx/64HZXb4hBwIcvQLaLgux8o1CbWl39s41hrIIZDl1lJiD5jc22gj3RBeGK0ovxALDYpIbyjqDUUl0rw=="
+    },
     "compressible": {
       "version": "2.0.18",
       "resolved": "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz",
@@ -4592,6 +4727,19 @@
         "esutils": "^2.0.2"
       }
     },
+    "dom-align": {
+      "version": "1.12.3",
+      "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.3.tgz",
+      "integrity": "sha512-Gj9hZN3a07cbR6zviMUBOMPdWxYhbMI+x+WS0NAIu2zFZmbK8ys9R79g+iG9qLnlCwpFoaB+fKy8Pdv470GsPA=="
+    },
+    "dom-closest": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/dom-closest/-/dom-closest-0.2.0.tgz",
+      "integrity": "sha512-6neTn1BtJlTSt+XSISXpnOsF1uni1CHsP/tmzZMGWxasYFHsBOqrHPnzmneqEgKhpagnfnfSfbvRRW0xFsBHAA==",
+      "requires": {
+        "dom-matches": ">=1.0.1"
+      }
+    },
     "dom-converter": {
       "version": "0.2.0",
       "resolved": "https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz",
@@ -4601,6 +4749,16 @@
         "utila": "~0.4"
       }
     },
+    "dom-matches": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/dom-matches/-/dom-matches-2.0.0.tgz",
+      "integrity": "sha512-2VI856xEDCLXi19W+4BechR5/oIS6bKCKqcf16GR8Pg7dGLJ/eBOWVbCmQx2ISvYH6wTNx5Ef7JTOw1dRGRx6A=="
+    },
+    "dom-scroll-into-view": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz",
+      "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w=="
+    },
     "dom-serializer": {
       "version": "0.2.2",
       "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz",
@@ -4713,6 +4871,22 @@
         "safer-buffer": "^2.1.0"
       }
     },
+    "echarts": {
+      "version": "5.3.3",
+      "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.3.3.tgz",
+      "integrity": "sha512-BRw2serInRwO5SIwRviZ6Xgm5Lb7irgz+sLiFMmy/HOaf4SQ+7oYqxKzRHAKp4xHQ05AuHw1xvoQWJjDQq/FGw==",
+      "requires": {
+        "tslib": "2.3.0",
+        "zrender": "5.3.2"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
+          "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+        }
+      }
+    },
     "ee-first": {
       "version": "1.1.1",
       "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
@@ -4804,6 +4978,11 @@
         }
       }
     },
+    "enquire.js": {
+      "version": "2.1.6",
+      "resolved": "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz",
+      "integrity": "sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw=="
+    },
     "entities": {
       "version": "2.2.0",
       "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz",
@@ -6422,6 +6601,12 @@
       "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
       "dev": true
     },
+    "immutable": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz",
+      "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==",
+      "dev": true
+    },
     "import-cwd": {
       "version": "2.1.0",
       "resolved": "https://registry.npmmirror.com/import-cwd/-/import-cwd-2.1.0.tgz",
@@ -6678,6 +6863,11 @@
         "side-channel": "^1.0.4"
       }
     },
+    "intersperse": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/intersperse/-/intersperse-1.0.0.tgz",
+      "integrity": "sha512-LGcfug7OTeWkaQ8PEq8XbTy9Jl6uCNg8DrPnQUmwxSY8UETj1Y+LLmpdD0qHdEj6KVchuH3BE3ZzIXQ1t3oFUw=="
+    },
     "ip": {
       "version": "1.1.8",
       "resolved": "https://registry.npmmirror.com/ip/-/ip-1.1.8.tgz",
@@ -6752,7 +6942,6 @@
       "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
       "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
       "dev": true,
-      "optional": true,
       "requires": {
         "binary-extensions": "^2.0.0"
       }
@@ -6898,11 +7087,15 @@
         "is-extglob": "^2.1.1"
       }
     },
+    "is-mobile": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-2.2.2.tgz",
+      "integrity": "sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg=="
+    },
     "is-negative-zero": {
       "version": "2.0.2",
       "resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
-      "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
-      "dev": true
+      "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA=="
     },
     "is-number": {
       "version": "3.0.0",
@@ -7066,6 +7259,11 @@
       "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
       "dev": true
     },
+    "ismobilejs": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz",
+      "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw=="
+    },
     "isobject": {
       "version": "3.0.1",
       "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz",
@@ -7093,8 +7291,7 @@
     "js-tokens": {
       "version": "4.0.0",
       "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
-      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-      "dev": true
+      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
     },
     "js-yaml": {
       "version": "3.14.1",
@@ -7154,6 +7351,14 @@
       "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
       "dev": true
     },
+    "json2mq": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz",
+      "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==",
+      "requires": {
+        "string-convert": "^0.2.0"
+      }
+    },
     "json5": {
       "version": "2.2.1",
       "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.1.tgz",
@@ -7308,8 +7513,7 @@
     "lodash": {
       "version": "4.17.21",
       "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
-      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
-      "dev": true
+      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
     },
     "lodash.debounce": {
       "version": "4.0.8",
@@ -7368,6 +7572,14 @@
       "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==",
       "dev": true
     },
+    "loose-envify": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+      "requires": {
+        "js-tokens": "^3.0.0 || ^4.0.0"
+      }
+    },
     "lower-case": {
       "version": "1.1.4",
       "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-1.1.4.tgz",
@@ -7696,6 +7908,11 @@
         "minimist": "^1.2.6"
       }
     },
+    "moment": {
+      "version": "2.29.4",
+      "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
+      "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
+    },
     "move-concurrently": {
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz",
@@ -7732,6 +7949,11 @@
       "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==",
       "dev": true
     },
+    "mutationobserver-shim": {
+      "version": "0.3.7",
+      "resolved": "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.7.tgz",
+      "integrity": "sha512-oRIDTyZQU96nAiz2AQyngwx1e89iApl2hN5AOYwyxLUB47UYsU3Wv9lJWqH5y/QdiYkc5HQLi23ZNB3fELdHcQ=="
+    },
     "mute-stream": {
       "version": "0.0.8",
       "resolved": "https://registry.npmmirror.com/mute-stream/-/mute-stream-0.0.8.tgz",
@@ -7773,6 +7995,11 @@
         "to-regex": "^3.0.1"
       }
     },
+    "nanopop": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/nanopop/-/nanopop-2.1.0.tgz",
+      "integrity": "sha512-jGTwpFRexSH+fxappnGQtN9dspgE2ipa1aOjtR24igG0pv6JCxImIAmrLRHX+zUF5+1wtsFVbKyfP51kIGAVNw=="
+    },
     "natural-compare": {
       "version": "1.4.0",
       "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz",
@@ -7806,6 +8033,14 @@
         "lower-case": "^1.1.1"
       }
     },
+    "node-emoji": {
+      "version": "1.11.0",
+      "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz",
+      "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==",
+      "requires": {
+        "lodash": "^4.17.21"
+      }
+    },
     "node-forge": {
       "version": "0.10.0",
       "resolved": "https://registry.npmmirror.com/node-forge/-/node-forge-0.10.0.tgz",
@@ -7928,8 +8163,7 @@
     "object-assign": {
       "version": "4.1.1",
       "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz",
-      "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
-      "dev": true
+      "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
     },
     "object-copy": {
       "version": "0.1.0",
@@ -8049,6 +8283,14 @@
       "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
       "dev": true
     },
+    "omit.js": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/omit.js/-/omit.js-1.0.2.tgz",
+      "integrity": "sha512-/QPc6G2NS+8d4L/cQhbk6Yit1WTB6Us2g84A7A/1+w9d/eRGHyEqC5kkQtHVoHZ5NFWGG7tUGgrhVZwgZanKrQ==",
+      "requires": {
+        "babel-runtime": "^6.23.0"
+      }
+    },
     "on-finished": {
       "version": "2.4.1",
       "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz",
@@ -8386,8 +8628,7 @@
     "performance-now": {
       "version": "2.1.0",
       "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz",
-      "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
-      "dev": true
+      "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
     },
     "picocolors": {
       "version": "1.0.0",
@@ -9247,6 +9488,14 @@
       "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
       "dev": true
     },
+    "raf": {
+      "version": "3.4.1",
+      "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz",
+      "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==",
+      "requires": {
+        "performance-now": "^2.1.0"
+      }
+    },
     "randombytes": {
       "version": "2.1.0",
       "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz",
@@ -9316,7 +9565,6 @@
       "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
       "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
       "dev": true,
-      "optional": true,
       "requires": {
         "picomatch": "^2.2.1"
       }
@@ -9571,6 +9819,11 @@
       "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
       "dev": true
     },
+    "resize-observer-polyfill": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+      "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
+    },
     "resolve": {
       "version": "1.22.1",
       "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz",
@@ -9701,6 +9954,52 @@
       "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
       "dev": true
     },
+    "sass": {
+      "version": "1.53.0",
+      "resolved": "https://registry.npmjs.org/sass/-/sass-1.53.0.tgz",
+      "integrity": "sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==",
+      "dev": true,
+      "requires": {
+        "chokidar": ">=3.0.0 <4.0.0",
+        "immutable": "^4.0.0",
+        "source-map-js": ">=0.6.2 <2.0.0"
+      }
+    },
+    "sass-loader": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz",
+      "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==",
+      "dev": true,
+      "requires": {
+        "clone-deep": "^4.0.1",
+        "loader-utils": "^1.2.3",
+        "neo-async": "^2.6.1",
+        "schema-utils": "^2.6.1",
+        "semver": "^6.3.0"
+      },
+      "dependencies": {
+        "json5": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+          "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+          "dev": true,
+          "requires": {
+            "minimist": "^1.2.0"
+          }
+        },
+        "loader-utils": {
+          "version": "1.4.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+          "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^1.0.1"
+          }
+        }
+      }
+    },
     "sax": {
       "version": "1.2.4",
       "resolved": "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz",
@@ -9931,6 +10230,25 @@
         "safe-buffer": "^5.0.1"
       }
     },
+    "shallow-clone": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+      "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+      "dev": true,
+      "requires": {
+        "kind-of": "^6.0.2"
+      }
+    },
+    "shallow-equal": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz",
+      "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA=="
+    },
+    "shallowequal": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
+      "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
+    },
     "shebang-command": {
       "version": "1.2.0",
       "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz",
@@ -10444,6 +10762,11 @@
       "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
       "dev": true
     },
+    "string-convert": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz",
+      "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A=="
+    },
     "string-width": {
       "version": "4.2.3",
       "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
@@ -10864,6 +11187,11 @@
       "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==",
       "dev": true
     },
+    "tinycolor2": {
+      "version": "1.4.2",
+      "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz",
+      "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA=="
+    },
     "tmp": {
       "version": "0.0.33",
       "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz",
@@ -11537,6 +11865,11 @@
         }
       }
     },
+    "vue-ref": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/vue-ref/-/vue-ref-2.0.0.tgz",
+      "integrity": "sha512-uKNKpFOVeWNqS2mrBZqnpLyXJo5Q+vnkex6JvpENvhXHFNBW/SJTP8vJywLuVT3DpxwXcF9N0dyIiZ4/NpTexQ=="
+    },
     "vue-router": {
       "version": "3.5.4",
       "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-3.5.4.tgz",
@@ -11596,6 +11929,14 @@
       "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
       "dev": true
     },
+    "warning": {
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
+      "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
+      "requires": {
+        "loose-envify": "^1.0.0"
+      }
+    },
     "watchpack": {
       "version": "1.7.5",
       "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-1.7.5.tgz",
@@ -12495,6 +12836,21 @@
           "dev": true
         }
       }
+    },
+    "zrender": {
+      "version": "5.3.2",
+      "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.3.2.tgz",
+      "integrity": "sha512-8IiYdfwHj2rx0UeIGZGGU4WEVSDEdeVCaIg/fomejg1Xu6OifAL1GVzIPHg2D+MyUkbNgPWji90t0a8IDk+39w==",
+      "requires": {
+        "tslib": "2.3.0"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
+          "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
+        }
+      }
     }
   }
 }

+ 4 - 0
package.json

@@ -8,7 +8,9 @@
     "lint": "vue-cli-service lint"
   },
   "dependencies": {
+    "ant-design-vue": "^1.7.8",
     "core-js": "^3.6.5",
+    "echarts": "^5.3.3",
     "vue": "^2.6.11",
     "vue-router": "^3.2.0"
   },
@@ -20,6 +22,8 @@
     "babel-eslint": "^10.1.0",
     "eslint": "^6.7.2",
     "eslint-plugin-vue": "^6.2.2",
+    "sass": "^1.53.0",
+    "sass-loader": "^8.0.2",
     "vue-template-compiler": "^2.6.11"
   }
 }

+ 1 - 5
src/App.vue

@@ -1,10 +1,6 @@
 <template>
   <div id="app">
-    <div id="nav">
-      <router-link to="/">Home</router-link> |
-      <router-link to="/about">About</router-link>
-    </div>
-    <router-view/>
+    <router-view />
   </div>
 </template>
 

BIN
src/assets/404_images/404.png


BIN
src/assets/404_images/404_cloud.png


BIN
src/assets/account/ic_user_permissions_default.png


BIN
src/assets/baggage/ic_export.png


BIN
src/assets/baggage/ic_setting.png


BIN
src/assets/baggage/ic_time.png


BIN
src/assets/fonts/Helvetica/Helvetica Bold Oblique.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Bold Oblique_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Bold.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Bold_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed Bold Italic.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed Bold Italic_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed Bold.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed Bold_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed Italic.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed Italic_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Condensed_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Bold Lefty.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Bold Lefty_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Bold Oblique.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Bold Oblique_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Bold.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Bold_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Lefty.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Lefty_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Oblique.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow Oblique_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Narrow_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Oblique.ttf


BIN
src/assets/fonts/Helvetica/Helvetica Oblique_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Black-SemiBold.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Black-SemiBold_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-BoldOblique.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-BoldOblique_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Black-Se.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Black-Se_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Li.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Li_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Light.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Light-Light_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Thin.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Condensed-Thin_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Conth.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Conth_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Light-Light-Italic.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Light-Light-Italic_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Narrow-Bold.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Narrow-BoldOblique.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Narrow-BoldOblique_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Narrow-Bold_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Narrow.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Narrow_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Roman-SemiB.ttf


BIN
src/assets/fonts/Helvetica/Helvetica-Roman-SemiB_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica.ttf


BIN
src/assets/fonts/Helvetica/HelveticaExt-Normal.ttf


BIN
src/assets/fonts/Helvetica/HelveticaExt-Normal_0.ttf


BIN
src/assets/fonts/Helvetica/HelveticaExtObl-Heavy.ttf


BIN
src/assets/fonts/Helvetica/HelveticaExtObl-Heavy_0.ttf


BIN
src/assets/fonts/Helvetica/HelveticaExtObl-Light.ttf


BIN
src/assets/fonts/Helvetica/HelveticaExtObl-Light_0.ttf


BIN
src/assets/fonts/Helvetica/HelveticaExtObl-Normal.ttf


BIN
src/assets/fonts/Helvetica/HelveticaExtObl-Normal_0.ttf


BIN
src/assets/fonts/Helvetica/HelveticaHv.ttf


BIN
src/assets/fonts/Helvetica/HelveticaInserat-Roman-SemiB.ttf


BIN
src/assets/fonts/Helvetica/HelveticaInserat-Roman-SemiB_0.ttf


BIN
src/assets/fonts/Helvetica/HelveticaInserat-Roman-SemiBold.ttf


BIN
src/assets/fonts/Helvetica/HelveticaInserat-Roman-SemiBold_0.ttf


BIN
src/assets/fonts/Helvetica/HelveticaLTStd-LightCond.otf


BIN
src/assets/fonts/Helvetica/HelveticaObl-Heavy.ttf


BIN
src/assets/fonts/Helvetica/HelveticaObl-Heavy_0.ttf


BIN
src/assets/fonts/Helvetica/HelveticaObl-Thin.ttf


BIN
src/assets/fonts/Helvetica/HelveticaObl-Thin_0.ttf


BIN
src/assets/fonts/Helvetica/Helvetica_0.ttf


BIN
src/assets/fonts/Helvetica/helvetica-light.otf


BIN
src/assets/fonts/Helvetica/helveticacyrillicbold_.ttf


BIN
src/assets/header/ic_data_top.png


BIN
src/assets/header/ic_fullscreen_top.png


BIN
src/assets/header/ic_message_top.png


BIN
src/assets/header/ic_search_top.png


BIN
src/assets/index/ic_close_card.png


BIN
src/assets/index/ic_close_conner.png


BIN
src/assets/index/ic_close_hint.png


BIN
src/assets/index/ic_close_s @2x.png


BIN
src/assets/index/ic_data@2x.png


BIN
src/assets/index/ic_date.png


BIN
src/assets/index/ic_display.png


BIN
src/assets/index/ic_display_edit.png


BIN
src/assets/index/ic_screen@2x.png


BIN
src/assets/index/ic_screen_edit@2x.png


BIN
src/assets/index/ic_search_searchbar.png


BIN
src/assets/index/ic_time.png


BIN
src/assets/index/ic_time@2x.png


Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików