Browse Source

Merge remote-tracking branch 'origin/develop_wzl' into deveolp_lsy

lisiyan 2 years ago
parent
commit
729a6c06ff

+ 2 - 0
package.json

@@ -13,8 +13,10 @@
   "dependencies": {
     "axios": "^1.2.1",
     "crypto-js": "^4.1.1",
+    "echarts": "^5.4.1",
     "element-ui": "^2.15.12",
     "pinia": "^2.0.16",
+    "qs": "^6.11.0",
     "sass": "^1.57.1",
     "vue": "^2.7.7",
     "vue-cookies": "^1.8.2",

+ 378 - 263
pnpm-lock.yaml

@@ -9,6 +9,7 @@ specifiers:
   axios: ^1.2.1
   crypto-js: ^4.1.1
   cypress: ^10.3.0
+  echarts: ^5.4.1
   element-ui: ^2.15.12
   eslint: ^8.5.0
   eslint-plugin-cypress: ^2.12.1
@@ -16,6 +17,7 @@ specifiers:
   jsdom: ^20.0.0
   pinia: ^2.0.16
   prettier: ^2.5.1
+  qs: ^6.11.0
   sass: ^1.57.1
   start-server-and-test: ^1.14.0
   terser: ^5.14.2
@@ -32,8 +34,10 @@ specifiers:
 dependencies:
   axios: registry.npmmirror.com/axios/1.2.1
   crypto-js: 4.1.1
+  echarts: registry.npmmirror.com/echarts/5.4.1
   element-ui: registry.npmmirror.com/element-ui/2.15.12_vue@2.7.14
   pinia: registry.npmmirror.com/pinia/2.0.28_vue@2.7.14
+  qs: registry.npmmirror.com/qs/6.11.0
   sass: registry.npmmirror.com/sass/1.57.1
   vue: registry.npmmirror.com/vue/2.7.14
   vue-cookies: 1.8.2
@@ -62,241 +66,10 @@ devDependencies:
 
 packages:
 
-  /@colors/colors/1.5.0:
-    resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
-    engines: {node: '>=0.1.90'}
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /@esbuild/android-arm/0.15.18:
-    resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==}
-    engines: {node: '>=12'}
-    cpu: [arm]
-    os: [android]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /@esbuild/linux-loong64/0.15.18:
-    resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==}
-    engines: {node: '>=12'}
-    cpu: [loong64]
-    os: [linux]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /@types/yauzl/2.10.0:
-    resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==}
-    requiresBuild: true
-    dependencies:
-      '@types/node': registry.npmmirror.com/@types/node/14.18.36
-    dev: true
-    optional: true
-
   /crypto-js/4.1.1:
     resolution: {integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==}
     dev: false
 
-  /esbuild-android-64/0.15.18:
-    resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==}
-    engines: {node: '>=12'}
-    cpu: [x64]
-    os: [android]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-android-arm64/0.15.18:
-    resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==}
-    engines: {node: '>=12'}
-    cpu: [arm64]
-    os: [android]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-darwin-64/0.15.18:
-    resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==}
-    engines: {node: '>=12'}
-    cpu: [x64]
-    os: [darwin]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-darwin-arm64/0.15.18:
-    resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==}
-    engines: {node: '>=12'}
-    cpu: [arm64]
-    os: [darwin]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-freebsd-64/0.15.18:
-    resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==}
-    engines: {node: '>=12'}
-    cpu: [x64]
-    os: [freebsd]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-freebsd-arm64/0.15.18:
-    resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==}
-    engines: {node: '>=12'}
-    cpu: [arm64]
-    os: [freebsd]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-linux-32/0.15.18:
-    resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==}
-    engines: {node: '>=12'}
-    cpu: [ia32]
-    os: [linux]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-linux-64/0.15.18:
-    resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==}
-    engines: {node: '>=12'}
-    cpu: [x64]
-    os: [linux]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-linux-arm/0.15.18:
-    resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==}
-    engines: {node: '>=12'}
-    cpu: [arm]
-    os: [linux]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-linux-arm64/0.15.18:
-    resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==}
-    engines: {node: '>=12'}
-    cpu: [arm64]
-    os: [linux]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-linux-mips64le/0.15.18:
-    resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==}
-    engines: {node: '>=12'}
-    cpu: [mips64el]
-    os: [linux]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-linux-ppc64le/0.15.18:
-    resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==}
-    engines: {node: '>=12'}
-    cpu: [ppc64]
-    os: [linux]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-linux-riscv64/0.15.18:
-    resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==}
-    engines: {node: '>=12'}
-    cpu: [riscv64]
-    os: [linux]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-linux-s390x/0.15.18:
-    resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==}
-    engines: {node: '>=12'}
-    cpu: [s390x]
-    os: [linux]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-netbsd-64/0.15.18:
-    resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==}
-    engines: {node: '>=12'}
-    cpu: [x64]
-    os: [netbsd]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-openbsd-64/0.15.18:
-    resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==}
-    engines: {node: '>=12'}
-    cpu: [x64]
-    os: [openbsd]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-sunos-64/0.15.18:
-    resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==}
-    engines: {node: '>=12'}
-    cpu: [x64]
-    os: [sunos]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-windows-32/0.15.18:
-    resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==}
-    engines: {node: '>=12'}
-    cpu: [ia32]
-    os: [win32]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-windows-64/0.15.18:
-    resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==}
-    engines: {node: '>=12'}
-    cpu: [x64]
-    os: [win32]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /esbuild-windows-arm64/0.15.18:
-    resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==}
-    engines: {node: '>=12'}
-    cpu: [arm64]
-    os: [win32]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /fsevents/2.3.2:
-    resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
-    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
-    os: [darwin]
-    requiresBuild: true
-    optional: true
-
-  /graceful-fs/4.2.10:
-    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
-    dev: true
-    optional: true
-
-  /source-map/0.6.1:
-    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
-    engines: {node: '>=0.10.0'}
-    dev: true
-    optional: true
-
   /vue-cookies/1.8.2:
     resolution: {integrity: sha512-+NfoC5l+7ybuVwpnqsf52qndnoYMjEb4EFhX4/j9RzzQP00dNzuJELsWuW2p8omNUzNlSgWGVyyWoOeJr347tw==}
     dev: false
@@ -345,6 +118,15 @@ packages:
       '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.19.1
       to-fast-properties: registry.npmmirror.com/to-fast-properties/2.0.0
 
+  registry.npmmirror.com/@colors/colors/1.5.0:
+    resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@colors/colors/-/colors-1.5.0.tgz}
+    name: '@colors/colors'
+    version: 1.5.0
+    engines: {node: '>=0.1.90'}
+    requiresBuild: true
+    dev: true
+    optional: true
+
   registry.npmmirror.com/@cypress/request/2.88.10:
     resolution: {integrity: sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@cypress/request/-/request-2.88.10.tgz}
     name: '@cypress/request'
@@ -383,6 +165,28 @@ packages:
       - supports-color
     dev: true
 
+  registry.npmmirror.com/@esbuild/android-arm/0.15.18:
+    resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz}
+    name: '@esbuild/android-arm'
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [arm]
+    os: [android]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/@esbuild/linux-loong64/0.15.18:
+    resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz}
+    name: '@esbuild/linux-loong64'
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [loong64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   registry.npmmirror.com/@eslint/eslintrc/1.4.0:
     resolution: {integrity: sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-1.4.0.tgz}
     name: '@eslint/eslintrc'
@@ -620,6 +424,16 @@ packages:
     version: 2.3.3
     dev: true
 
+  registry.npmmirror.com/@types/yauzl/2.10.0:
+    resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/yauzl/-/yauzl-2.10.0.tgz}
+    name: '@types/yauzl'
+    version: 2.10.0
+    requiresBuild: true
+    dependencies:
+      '@types/node': registry.npmmirror.com/@types/node/14.18.36
+    dev: true
+    optional: true
+
   registry.npmmirror.com/@vitejs/plugin-legacy/2.3.1_terser@5.16.1+vite@3.2.5:
     resolution: {integrity: sha512-J5KaGBlSt2tEYPVjM/C8dA6DkRzkFkbPe+Xb4IX5G+XOV5OGbVAfkMjKywdrkO3gGynO8S98i71Lmsff4cWkCQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-2.3.1.tgz}
     id: registry.npmmirror.com/@vitejs/plugin-legacy/2.3.1
@@ -1066,6 +880,15 @@ packages:
     engines: {node: '>=6'}
     dev: true
 
+  registry.npmmirror.com/call-bind/1.0.2:
+    resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz}
+    name: call-bind
+    version: 1.0.2
+    dependencies:
+      function-bind: registry.npmmirror.com/function-bind/1.1.1
+      get-intrinsic: registry.npmmirror.com/get-intrinsic/1.1.3
+    dev: false
+
   registry.npmmirror.com/callsites/3.1.0:
     resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz}
     name: callsites
@@ -1131,7 +954,7 @@ packages:
       normalize-path: registry.npmmirror.com/normalize-path/3.0.0
       readdirp: registry.npmmirror.com/readdirp/3.6.0
     optionalDependencies:
-      fsevents: 2.3.2
+      fsevents: registry.npmmirror.com/fsevents/2.3.2
 
   registry.npmmirror.com/ci-info/3.7.0:
     resolution: {integrity: sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ci-info/-/ci-info-3.7.0.tgz}
@@ -1164,7 +987,7 @@ packages:
     dependencies:
       string-width: registry.npmmirror.com/string-width/4.2.3
     optionalDependencies:
-      '@colors/colors': 1.5.0
+      '@colors/colors': registry.npmmirror.com/@colors/colors/1.5.0
     dev: true
 
   registry.npmmirror.com/cli-truncate/2.1.0:
@@ -1520,6 +1343,15 @@ packages:
       safer-buffer: registry.npmmirror.com/safer-buffer/2.1.2
     dev: true
 
+  registry.npmmirror.com/echarts/5.4.1:
+    resolution: {integrity: sha512-9ltS3M2JB0w2EhcYjCdmtrJ+6haZcW6acBolMGIuf01Hql1yrIV01L1aRj7jsaaIULJslEP9Z3vKlEmnJaWJVQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/echarts/-/echarts-5.4.1.tgz}
+    name: echarts
+    version: 5.4.1
+    dependencies:
+      tslib: registry.npmmirror.com/tslib/2.3.0
+      zrender: registry.npmmirror.com/zrender/5.4.1
+    dev: false
+
   registry.npmmirror.com/editorconfig/0.15.3:
     resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/editorconfig/-/editorconfig-0.15.3.tgz}
     name: editorconfig
@@ -1579,6 +1411,226 @@ packages:
     engines: {node: '>=0.12'}
     dev: true
 
+  registry.npmmirror.com/esbuild-android-64/0.15.18:
+    resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz}
+    name: esbuild-android-64
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [android]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-android-arm64/0.15.18:
+    resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz}
+    name: esbuild-android-arm64
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [android]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-darwin-64/0.15.18:
+    resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz}
+    name: esbuild-darwin-64
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [darwin]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-darwin-arm64/0.15.18:
+    resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz}
+    name: esbuild-darwin-arm64
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [darwin]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-freebsd-64/0.15.18:
+    resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz}
+    name: esbuild-freebsd-64
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [freebsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-freebsd-arm64/0.15.18:
+    resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz}
+    name: esbuild-freebsd-arm64
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [freebsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-linux-32/0.15.18:
+    resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz}
+    name: esbuild-linux-32
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [ia32]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-linux-64/0.15.18:
+    resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz}
+    name: esbuild-linux-64
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-linux-arm/0.15.18:
+    resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz}
+    name: esbuild-linux-arm
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [arm]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-linux-arm64/0.15.18:
+    resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz}
+    name: esbuild-linux-arm64
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-linux-mips64le/0.15.18:
+    resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz}
+    name: esbuild-linux-mips64le
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [mips64el]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-linux-ppc64le/0.15.18:
+    resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz}
+    name: esbuild-linux-ppc64le
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [ppc64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-linux-riscv64/0.15.18:
+    resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz}
+    name: esbuild-linux-riscv64
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [riscv64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-linux-s390x/0.15.18:
+    resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz}
+    name: esbuild-linux-s390x
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [s390x]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-netbsd-64/0.15.18:
+    resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz}
+    name: esbuild-netbsd-64
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [netbsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-openbsd-64/0.15.18:
+    resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz}
+    name: esbuild-openbsd-64
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [openbsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-sunos-64/0.15.18:
+    resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz}
+    name: esbuild-sunos-64
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [sunos]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-windows-32/0.15.18:
+    resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz}
+    name: esbuild-windows-32
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [ia32]
+    os: [win32]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-windows-64/0.15.18:
+    resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz}
+    name: esbuild-windows-64
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [win32]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  registry.npmmirror.com/esbuild-windows-arm64/0.15.18:
+    resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz}
+    name: esbuild-windows-arm64
+    version: 0.15.18
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [win32]
+    requiresBuild: true
+    dev: true
+    optional: true
+
   registry.npmmirror.com/esbuild/0.15.18:
     resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.15.18.tgz}
     name: esbuild
@@ -1587,28 +1639,28 @@ packages:
     hasBin: true
     requiresBuild: true
     optionalDependencies:
-      '@esbuild/android-arm': 0.15.18
-      '@esbuild/linux-loong64': 0.15.18
-      esbuild-android-64: 0.15.18
-      esbuild-android-arm64: 0.15.18
-      esbuild-darwin-64: 0.15.18
-      esbuild-darwin-arm64: 0.15.18
-      esbuild-freebsd-64: 0.15.18
-      esbuild-freebsd-arm64: 0.15.18
-      esbuild-linux-32: 0.15.18
-      esbuild-linux-64: 0.15.18
-      esbuild-linux-arm: 0.15.18
-      esbuild-linux-arm64: 0.15.18
-      esbuild-linux-mips64le: 0.15.18
-      esbuild-linux-ppc64le: 0.15.18
-      esbuild-linux-riscv64: 0.15.18
-      esbuild-linux-s390x: 0.15.18
-      esbuild-netbsd-64: 0.15.18
-      esbuild-openbsd-64: 0.15.18
-      esbuild-sunos-64: 0.15.18
-      esbuild-windows-32: 0.15.18
-      esbuild-windows-64: 0.15.18
-      esbuild-windows-arm64: 0.15.18
+      '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm/0.15.18
+      '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64/0.15.18
+      esbuild-android-64: registry.npmmirror.com/esbuild-android-64/0.15.18
+      esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64/0.15.18
+      esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64/0.15.18
+      esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64/0.15.18
+      esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64/0.15.18
+      esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64/0.15.18
+      esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32/0.15.18
+      esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64/0.15.18
+      esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm/0.15.18
+      esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64/0.15.18
+      esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le/0.15.18
+      esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le/0.15.18
+      esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64/0.15.18
+      esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x/0.15.18
+      esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64/0.15.18
+      esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64/0.15.18
+      esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64/0.15.18
+      esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32/0.15.18
+      esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64/0.15.18
+      esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64/0.15.18
     dev: true
 
   registry.npmmirror.com/escape-string-regexp/1.0.5:
@@ -1637,7 +1689,7 @@ packages:
       esutils: registry.npmmirror.com/esutils/2.0.3
       optionator: registry.npmmirror.com/optionator/0.8.3
     optionalDependencies:
-      source-map: 0.6.1
+      source-map: registry.npmmirror.com/source-map/0.6.1
     dev: true
 
   registry.npmmirror.com/eslint-config-prettier/8.5.0_eslint@8.30.0:
@@ -1939,7 +1991,7 @@ packages:
       get-stream: registry.npmmirror.com/get-stream/5.2.0
       yauzl: registry.npmmirror.com/yauzl/2.10.0
     optionalDependencies:
-      '@types/yauzl': 2.10.0
+      '@types/yauzl': registry.npmmirror.com/@types/yauzl/2.10.0
     transitivePeerDependencies:
       - supports-color
     dev: true
@@ -2118,11 +2170,19 @@ packages:
     version: 1.0.0
     dev: true
 
+  registry.npmmirror.com/fsevents/2.3.2:
+    resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz}
+    name: fsevents
+    version: 2.3.2
+    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+    os: [darwin]
+    requiresBuild: true
+    optional: true
+
   registry.npmmirror.com/function-bind/1.1.1:
     resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz}
     name: function-bind
     version: 1.1.1
-    dev: true
 
   registry.npmmirror.com/get-func-name/2.0.0:
     resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-func-name/-/get-func-name-2.0.0.tgz}
@@ -2130,6 +2190,16 @@ packages:
     version: 2.0.0
     dev: true
 
+  registry.npmmirror.com/get-intrinsic/1.1.3:
+    resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz}
+    name: get-intrinsic
+    version: 1.1.3
+    dependencies:
+      function-bind: registry.npmmirror.com/function-bind/1.1.1
+      has: registry.npmmirror.com/has/1.0.3
+      has-symbols: registry.npmmirror.com/has-symbols/1.0.3
+    dev: false
+
   registry.npmmirror.com/get-stream/5.2.0:
     resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz}
     name: get-stream
@@ -2249,6 +2319,13 @@ packages:
     engines: {node: '>=8'}
     dev: true
 
+  registry.npmmirror.com/has-symbols/1.0.3:
+    resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz}
+    name: has-symbols
+    version: 1.0.3
+    engines: {node: '>= 0.4'}
+    dev: false
+
   registry.npmmirror.com/has/1.0.3:
     resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has/-/has-1.0.3.tgz}
     name: has
@@ -2256,7 +2333,6 @@ packages:
     engines: {node: '>= 0.4.0'}
     dependencies:
       function-bind: registry.npmmirror.com/function-bind/1.1.1
-    dev: true
 
   registry.npmmirror.com/he/1.2.0:
     resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/he/-/he-1.2.0.tgz}
@@ -2657,7 +2733,7 @@ packages:
     dependencies:
       universalify: registry.npmmirror.com/universalify/2.0.0
     optionalDependencies:
-      graceful-fs: 4.2.10
+      graceful-fs: registry.npmmirror.com/graceful-fs/4.2.10
     dev: true
 
   registry.npmmirror.com/jsprim/2.0.2:
@@ -2980,6 +3056,12 @@ packages:
     version: 2.2.2
     dev: true
 
+  registry.npmmirror.com/object-inspect/1.12.3:
+    resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.3.tgz}
+    name: object-inspect
+    version: 1.12.3
+    dev: false
+
   registry.npmmirror.com/once/1.4.0:
     resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz}
     name: once
@@ -3291,6 +3373,15 @@ packages:
     engines: {node: '>=6'}
     dev: true
 
+  registry.npmmirror.com/qs/6.11.0:
+    resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/qs/-/qs-6.11.0.tgz}
+    name: qs
+    version: 6.11.0
+    engines: {node: '>=0.6'}
+    dependencies:
+      side-channel: registry.npmmirror.com/side-channel/1.0.4
+    dev: false
+
   registry.npmmirror.com/qs/6.5.3:
     resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/qs/-/qs-6.5.3.tgz}
     name: qs
@@ -3414,7 +3505,7 @@ packages:
     engines: {node: '>=10.0.0'}
     hasBin: true
     optionalDependencies:
-      fsevents: 2.3.2
+      fsevents: registry.npmmirror.com/fsevents/2.3.2
     dev: true
 
   registry.npmmirror.com/run-parallel/1.2.0:
@@ -3498,6 +3589,16 @@ packages:
     engines: {node: '>=8'}
     dev: true
 
+  registry.npmmirror.com/side-channel/1.0.4:
+    resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz}
+    name: side-channel
+    version: 1.0.4
+    dependencies:
+      call-bind: registry.npmmirror.com/call-bind/1.0.2
+      get-intrinsic: registry.npmmirror.com/get-intrinsic/1.1.3
+      object-inspect: registry.npmmirror.com/object-inspect/1.12.3
+    dev: false
+
   registry.npmmirror.com/sigmund/1.0.1:
     resolution: {integrity: sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sigmund/-/sigmund-1.0.1.tgz}
     name: sigmund
@@ -3790,6 +3891,12 @@ packages:
       punycode: registry.npmmirror.com/punycode/2.1.1
     dev: true
 
+  registry.npmmirror.com/tslib/2.3.0:
+    resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz}
+    name: tslib
+    version: 2.3.0
+    dev: false
+
   registry.npmmirror.com/tslib/2.4.1:
     resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.4.1.tgz}
     name: tslib
@@ -3979,7 +4086,7 @@ packages:
       sass: registry.npmmirror.com/sass/1.57.1
       terser: registry.npmmirror.com/terser/5.16.1
     optionalDependencies:
-      fsevents: 2.3.2
+      fsevents: registry.npmmirror.com/fsevents/2.3.2
     dev: true
 
   registry.npmmirror.com/vite/3.2.5_zxbrnrc4iyldik6mikh3pswz4i:
@@ -4018,7 +4125,7 @@ packages:
       sass: registry.npmmirror.com/sass/1.57.1
       terser: registry.npmmirror.com/terser/5.16.1
     optionalDependencies:
-      fsevents: 2.3.2
+      fsevents: registry.npmmirror.com/fsevents/2.3.2
     dev: true
 
   registry.npmmirror.com/vitest/0.18.1_m56nrrnamstgopt75m5z676faa:
@@ -4299,3 +4406,11 @@ packages:
     version: 0.1.0
     engines: {node: '>=10'}
     dev: true
+
+  registry.npmmirror.com/zrender/5.4.1:
+    resolution: {integrity: sha512-M4Z05BHWtajY2241EmMPHglDQAJ1UyHQcYsxDNzD9XLSkPDqMq4bB28v9Pb4mvHnVQ0GxyTklZ/69xCFP6RXBA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/zrender/-/zrender-5.4.1.tgz}
+    name: zrender
+    version: 5.4.1
+    dependencies:
+      tslib: registry.npmmirror.com/tslib/2.3.0
+    dev: false

+ 3 - 2
src/App.vue

@@ -11,10 +11,11 @@ export default {
 
 <template>
   <div id="app">
-    <el-container>
-      <el-aside width="260px" v-if="$route.fullPath !== '/login' && $route.fullPath !== '/create' && $route.fullPath !== '/forgotpassword'"><SideMenu /></el-aside>
+    <el-container v-if="$route.fullPath !== '/login' && $route.fullPath !== '/create' && $route.fullPath !== '/forgotpassword'">
+      <el-aside width="260px"><SideMenu /></el-aside>
       <el-main><router-view /></el-main>
     </el-container>
+    <router-view v-else />
   </div>
 </template>
 

+ 1 - 7
src/router/index.js

@@ -9,8 +9,7 @@ const router = new VueRouter({
   routes: [
     {
       path: "/",
-      name: "home",
-      component: () => import("../views/HomeView.vue"),
+      redirect: '/dashboard'
     },
     {
       path: "/login",
@@ -37,11 +36,6 @@ const router = new VueRouter({
       name: "forgotpassword",
       component: () => import("../views/Forgotpassword.vue"),
     },
-    {
-      path: "/product",
-      name: "product",
-      component: () => import("../views/Product.vue"),
-    },
     {
       path: "/manage-team",
       name: "ManageTeam",

+ 3 - 5
src/views/Create.vue

@@ -89,8 +89,8 @@ export default {
 </script>
 
 <template>
-  <div class="bg h-full flex justify-center items-center">
-    <div class="bg h-auto m-auto">
+  <div class="bg w-full h-100vh flex justify-center items-center">
+    <div class="h-auto m-auto">
       <div class="w-404px h-auto rounded-8px p-24px bg-[#fff] loginBox">
         <h1 class="text-24px font-bold my-24px">Create account</h1>
         <el-form
@@ -279,9 +279,7 @@ export default {
 
 <style lang="scss" scoped>
 .bg {
-  background: #e7eaee;
-  background-image: url('@/assets/images/background.png');
-  background-repeat: no-repeat;
+  background: #e7eaee url('@/assets/images/background.png') center center no-repeat;
 }
 .el-input::v-deep input {
   border: 0px !important;

+ 176 - 47
src/views/Dashboard.vue

@@ -1,46 +1,172 @@
 <script>
 import { get } from '../../utils/request'
+import * as echarts from 'echarts'
 
 export default {
   data () {
     return {
+      overview: {
+        totalLicenses: null,
+        assignedLicenses: null,
+        availableLicenses: null,
+        activatedDevices: null,
+      },
+      codeList: ['com.brother.pdfreaderpro.mac.product_3'],
+      overviewProduct: {
+        totalLicenses: null,
+        availableLicenses: null,
+        activedLicenses: null,
+        validPeriod: null,
+        expireDate: null,
+        timeLeft: null
+      },
+      chartData: {},
+      teamData: {
+        totalTeam: null,
+        totalMember: null,
+        assignedMember: null
+      },
+      teamMemberData: {
+        teamMember: null,
+        assignedMember: null,
+        teamAvailableLicense: null
+      }
     }
   },
+  created () {
+    this.getOverview()
+    this.getOverviewProduct()
+    this.getChartStatistics(2)
+    this.getTeamData()
+    this.getTeamMemberData()
+  },
+  mounted () {
+    this.drawLine()
+  },
   methods: {
     // 获取全局预览数据,不区分产品
     getOverview () {
       get('http://81.68.234.235:8032/pdf-tech/vppDashboard/getOverview').then((res) => {
-        console.log(res)
+        if (res.data.code === 200) {
+          this.overview.totalLicenses = res.data.result.totalLicenses
+          this.overview.assignedLicenses = res.data.result.assignedLicenses
+          this.overview.availableLicenses = res.data.result.availableLicenses
+          this.overview.activatedDevices = res.data.result.activatedDevices
+        }
       })
     },
     // 获取全局预览数据,区分产品
     getOverviewProduct () {
       get('http://81.68.234.235:8032/pdf-tech/vppDashboard/getOverviewProduct', {
-        codeList: []
+        codeList: this.codeList + ''
       }).then((res) => {
-        console.log(res)
+        if (res.data.code === 200) {
+          this.overviewProduct.totalLicenses = res.data.result.totalLicenses
+          this.overviewProduct.availableLicenses = res.data.result.availableLicenses
+          this.overviewProduct.activedLicenses = res.data.result.activedLicenses
+          this.overviewProduct.validPeriod = res.data.result.validPeriod
+          this.overviewProduct.expireDate = res.data.result.expireDate
+          this.overviewProduct.timeLeft = res.data.result.timeLeft
+        }
       })
     },
     // 获取图表数据
-    getChartStatistics () {
-      get('http://81.68.234.235:8032/pdf-tech/vppDashboard/getChartStatistics/' + type).then((res) => {
+    getChartStatistics (type) {
+      get('http://81.68.234.235:8032/pdf-tech/vppDashboard/getChartStatistics/?type=' + type).then((res) => {
         console.log(res)
       })
     },
     // 获取团队数据
     getTeamData () {
       get('http://81.68.234.235:8032/pdf-tech/vppDashboard/getTeamData').then((res) => {
-        console.log(res)
+        if (res.data.code === 200) {
+          this.teamData.totalTeam = res.data.result.totalTeam
+          this.teamData.totalMember = res.data.result.totalMember
+          this.teamData.assignedMember = res.data.result.assignedMember
+        }
       })
     },
     // 获取团队成员数据
     getTeamMemberData () {
       get('http://81.68.234.235:8032/pdf-tech/vppDashboard/getTeamMemberData', {
-        teamId: '',
-        codeList: []
+        teamId: '1',
+        codeList: this.codeList + ''
       }).then((res) => {
-        console.log(res)
+        if (res.data.code === 200) {
+          this.teamMemberData.teamMember = res.data.result.teamMember
+          this.teamMemberData.assignedMember = res.data.result.assignedMember
+          this.teamMemberData.teamAvailableLicense = res.data.result.teamAvailableLicense
+        }
+      })
+    },
+    // 绘制Echarts图表
+    drawLine () {
+      var myChart = echarts.init(this.$refs.chart)
+      myChart.setOption({
+        title: {
+          text: 'Stacked Line'
+        },
+        tooltip: {
+          trigger: 'axis'
+        },
+        legend: {
+          data: ['Assigned Licenses', 'Activated Licenses']
+        },
+        grid: {
+          left: '3%',
+          right: '4%',
+          bottom: '3%',
+          containLabel: true
+        },
+        toolbox: {
+          feature: {
+            saveAsImage: {}
+          }
+        },
+        xAxis: {
+          type: 'category',
+          boundaryGap: false,
+          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+        },
+        yAxis: {
+          type: 'value'
+        },
+        series: [
+          {
+            name: 'Email',
+            type: 'line',
+            stack: 'Total',
+            data: [120, 132, 101, 134, 90, 230, 210]
+          },
+          {
+            name: 'Union Ads',
+            type: 'line',
+            stack: 'Total',
+            data: [220, 182, 191, 234, 290, 330, 310]
+          },
+          {
+            name: 'Video Ads',
+            type: 'line',
+            stack: 'Total',
+            data: [150, 232, 201, 154, 190, 330, 410]
+          },
+          {
+            name: 'Direct',
+            type: 'line',
+            stack: 'Total',
+            data: [320, 332, 301, 334, 390, 330, 320]
+          },
+          {
+            name: 'Search Engine',
+            type: 'line',
+            stack: 'Total',
+            data: [820, 932, 901, 934, 1290, 1330, 1320]
+          }
+        ]
       })
+      window.onresize = function () {
+        myChart.resize()
+      }
     }
   }
 }
@@ -53,28 +179,28 @@ export default {
       <div class="block flex items-center p-24px basis-full mr-24px">
         <img src="@/../static/images/dashboard/total_licenses.png" alt="total_licenses" class="w-48px h-48px mr-16px">
         <div>
-          <p class="text-32px font-700 leading-36px text-[#232A40]">15</p>
+          <p class="text-32px font-700 leading-36px text-[#232A40]">{{ overview.totalLicenses }}</p>
           <p class="text-16px font-700 leading-20px text-[#505258]">Total licenses</p>
         </div>
       </div>
       <div class="block flex items-center p-24px basis-full mr-24px">
-        <img src="@/../static/images/dashboard/assigned_licenses.png" alt="total_licenses" class="w-48px h-48px mr-16px">
+        <img src="@/../static/images/dashboard/assigned_licenses.png" alt="assigned_licenses" class="w-48px h-48px mr-16px">
         <div>
-          <p class="text-32px font-700 leading-36px text-[#232A40]">15</p>
+          <p class="text-32px font-700 leading-36px text-[#232A40]">{{ overview.assignedLicenses }}</p>
           <p class="text-16px font-700 leading-20px text-[#505258]">Assigned Licenses</p>
         </div>
       </div>
       <div class="block flex items-center p-24px basis-full mr-24px">
-        <img src="@/../static/images/dashboard/availqble_licenses.png" alt="total_licenses" class="w-48px h-48px mr-16px">
+        <img src="@/../static/images/dashboard/availqble_licenses.png" alt="availqble_licenses" class="w-48px h-48px mr-16px">
         <div>
-          <p class="text-32px font-700 leading-36px text-[#232A40]">15</p>
+          <p class="text-32px font-700 leading-36px text-[#232A40]">{{ overview.availableLicenses }}</p>
           <p class="text-16px font-700 leading-20px text-[#505258]">Available Licenses</p>
         </div>
       </div>
       <div class="block flex items-center p-24px basis-full">
-        <img src="@/../static/images/dashboard/activated_devices.png" alt="total_licenses" class="w-48px h-48px mr-16px">
+        <img src="@/../static/images/dashboard/activated_devices.png" alt="activated_devices" class="w-48px h-48px mr-16px">
         <div>
-          <p class="text-32px font-700 leading-36px text-[#232A40]">15</p>
+          <p class="text-32px font-700 leading-36px text-[#232A40]">{{ overview.activatedDevices }}</p>
           <p class="text-16px font-700 leading-20px text-[#505258]">Activated Devices</p>
         </div>
       </div>
@@ -94,31 +220,31 @@ export default {
         <div class="w-70px h-28px border-[#1460F3] border-1px rounded-4px px-10px py-4px text-14px leading-20px text-[#1460F3] cursor-pointer">Confirm</div>
       </div>
       <div class="flex flex-wrap justify-between mt-24px">
-        <div class="h-56px bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex-auto flex justify-between mr-24px leading-20px">
-          <span>Total Licenses</span>
-          <span>10</span>
+        <div class="h-56px flex-1 bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex justify-between mr-24px leading-20px">
+          <span class="text-14px font-bold">Total Licenses</span>
+          <span>{{ overviewProduct.totalLicenses }}</span>
         </div>
-        <div class="h-56px bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex-auto flex justify-between mr-24px leading-20px">
-          <span>Total Licenses</span>
-          <span>10</span>
+        <div class="h-56px flex-1 bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex justify-between mr-24px leading-20px">
+          <span class="text-14px font-bold">Available Licenses</span>
+          <span>{{ overviewProduct.availableLicenses }}</span>
         </div>
-        <div class="h-56px bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex-auto flex justify-between leading-20px">
-          <span>Total Licenses</span>
-          <span>10</span>
+        <div class="h-56px flex-1 bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex justify-between leading-20px">
+          <span class="text-14px font-bold">Actived Licenses</span>
+          <span>{{ overviewProduct.activedLicenses }}</span>
         </div>
       </div>
       <div class="flex flex-wrap justify-between mt-24px">
-        <div class="h-56px bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex-auto flex justify-between mr-24px leading-20px">
-          <span>Total Licenses</span>
-          <span>10</span>
+        <div class="h-56px flex-1 bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex justify-between mr-24px leading-20px">
+          <span class="text-14px font-bold">Valid Period (months)</span>
+          <span>{{ overviewProduct.validPeriod }}</span>
         </div>
-        <div class="h-56px bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex-auto flex justify-between mr-24px leading-20px">
-          <span>Total Licenses</span>
-          <span>10</span>
+        <div class="h-56px flex-1 bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex justify-between mr-24px leading-20px">
+          <span class="text-14px font-bold">Expire date</span>
+          <span>{{ overviewProduct.expireDate }}</span>
         </div>
-        <div class="h-56px bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex-auto flex justify-between leading-20px">
-          <span>Total Licenses</span>
-          <span>10</span>
+        <div class="h-56px flex-1 bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex justify-between leading-20px">
+          <span class="text-14px font-bold">Time Left (day)</span>
+          <span>{{ overviewProduct.timeLeft }}</span>
         </div>
       </div>
     </div>
@@ -128,36 +254,39 @@ export default {
       <div class="flex">
         <div class="flex justify-between">
           <select name="date" class="min-w-180px mr-16px">
-            <option value="1">Last 7 Days</option>
-            <option value="2">2</option>
+            <option value="" selected disabled>Statistics Time</option>
+            <option value="1">Today</option>
+            <option value="2">Last 7 Days</option>
+            <option value="3">Last 30 Days</option>
+            <option value="4">This Month</option>
           </select>
           <div class="w-70px h-28px border-[#1460F3] border-1px rounded-4px px-10px py-4px text-14px leading-20px text-[#1460F3] cursor-pointer">Confirm</div>
         </div>
         <div></div>
       </div>
-      <!-- <div class="chart" ref="chart"></div> -->
+      <div class="w-[100%] h-320px" ref="chart"></div>
     </div>
 
-    <h2>Chart Statistics</h2>
+    <h2>Team Data</h2>
     <div class="flex justify-between mt-12px">
       <div class="block py-24px flex-auto mr-24px text-center">
         <div class="relative inline-block w-96px h-96px inline-flex items-center justify-center mb-12px">
           <img src="@/../static/images/dashboard/team_data_blue.png" class="w-96px h-96px absolute top-0 left-0">
-          <p class="text-32px text-[#1460F3] leading-36px font-700">9</p>
+          <p class="text-32px text-[#1460F3] leading-36px font-700">{{ teamData.totalTeam }}</p>
         </div>
         <p class="text-16px leading-20px font-700 text-[#505258]">Total Team</p>
       </div>
       <div class="block py-24px flex-auto mr-24px text-center">
         <div class="relative inline-block w-96px h-96px inline-flex items-center justify-center mb-12px">
           <img src="@/../static/images/dashboard/team_data_yellow.png" class="w-96px h-96px absolute top-0 left-0">
-          <p class="text-32px text-[#FFAE49] leading-36px font-700">9</p>
+          <p class="text-32px text-[#FFAE49] leading-36px font-700">{{ teamData.totalMember }}</p>
         </div>
         <p class="text-16px leading-20px font-700 text-[#505258]">Total Member</p>
       </div>
       <div class="block py-24px flex-auto text-center">
         <div class="relative inline-block w-96px h-96px inline-flex items-center justify-center mb-12px">
           <img src="@/../static/images/dashboard/team_data_purple.png" class="w-96px h-96px absolute top-0 left-0">
-          <p class="text-32px text-[#664FF5] leading-36px font-700">9</p>
+          <p class="text-32px text-[#664FF5] leading-36px font-700">{{ teamData.assignedMember }}</p>
         </div>
         <p class="text-16px leading-20px font-700 text-[#505258]">Assigned Member</p>
       </div>
@@ -181,16 +310,16 @@ export default {
       </div>
       <div class="flex flex-wrap justify-between mt-24px">
         <div class="h-56px bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex-auto flex justify-between mr-24px leading-20px">
-          <span>Total Licenses</span>
-          <span>10</span>
+          <span>Team Member</span>
+          <span>{{ teamMemberData.teamMember }}</span>
         </div>
         <div class="h-56px bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex-auto flex justify-between mr-24px leading-20px">
-          <span>Total Licenses</span>
-          <span>10</span>
+          <span>Assigned Member</span>
+          <span>{{ teamMemberData.assignedMember }}</span>
         </div>
         <div class="h-56px bg-[#F6F7F9] border-[#D9D9D9] border-1px rounded-4px py-18px pl-24px pr-40px flex-auto flex justify-between leading-20px">
-          <span>Total Licenses</span>
-          <span>10</span>
+          <span>Team Available License</span>
+          <span>{{ teamMemberData.teamAvailableLicense }}</span>
         </div>
       </div>
     </div>

+ 14 - 4
src/views/Device.vue

@@ -17,6 +17,10 @@ onMounted(() => {
   if (pageText) {
     pageText.childNodes[0].nodeValue = '跳至'
   }
+  pagingQuery()
+})
+//分页查询
+const pagingQuery = () => {
   get(
     'http://81.68.234.235:8032/pdf-tech/vppDevice/page?page=' +
       currentPage.value +
@@ -26,7 +30,11 @@ onMounted(() => {
   ).then((res) => {
     tableData.value = res.data.result.list
   })
-})
+}
+//取消设备授权
+const cancelAuthorization = () => {
+  
+} 
 //打开对话框
 const handleClick = (val) => {
   dialogVisible.value = true
@@ -35,9 +43,11 @@ const handleClick = (val) => {
 }
 const handleSizeChange = (value) => {
   size.value = value
+  pagingQuery()
 }
-const handleCurrentChange = () => {
-  console.log(`当前页`)
+const handleCurrentChange = (value) => {
+  currentPage.value = value
+  pagingQuery()
 }
 </script>
 
@@ -152,7 +162,7 @@ const handleCurrentChange = () => {
               >
               <span slot="footer" class="dialog-footer">
                 <el-button @click="dialogVisible = false">No</el-button>
-                <el-button type="primary" @click="dialogVisible = false">
+                <el-button type="primary" @click="cancelAuthorization()">
                   Yes
                 </el-button>
               </span>

+ 0 - 7
src/views/HomeView.vue

@@ -1,7 +0,0 @@
-<script setup>
-
-</script>
-
-<template>
-  <div>Welcome</div>
-</template>

+ 11 - 11
src/views/Login.vue

@@ -68,12 +68,14 @@ export default {
                 } else {
                   localStorage.removeItem('isRemenber')
                 }
-                get('http://81.68.234.235:8032/pdf-tech/vppMember/getMemberInfo').then((res)=>{
-                  if (res.data.result.role == 1 && res.data.result.role == 2) {
-                    this.$router.push('/dashboard')
-                  } else {
-                    this.$router.push('/noadmin')
-                  }
+                setTimeout(()=>{
+                  get('http://81.68.234.235:8032/pdf-tech/vppMember/getMemberInfo').then((res)=>{
+                    if (res.data.result.role == 1 || res.data.result.role == 2) {
+                      this.$router.push('/dashboard')
+                    } else {
+                      this.$router.push('/noadmin')
+                    }
+                  })
                 })
               } else if (
                 res.data.code === 306 &&
@@ -113,8 +115,8 @@ export default {
 </script>
 
 <template>
-  <div class="bg flex justify-center items-center m-auto">
-    <div class="w-404px h-auto rounded-8px p-24px bg-[#fff] loginBox mt-278px">
+  <div class="bg w-full h-100vh flex justify-center items-center m-auto">
+    <div class="w-404px h-auto rounded-8px p-24px bg-[#fff] loginBox">
       <h1 class="text-24px font-bold mb-24px">Sign in</h1>
       <el-form
         :model="ruleForm"
@@ -198,9 +200,7 @@ export default {
 
 <style lang="scss" scoped>
 .bg {
-  background: #e7eaee;
-  background-image: url('@/assets/images/background.png');
-  background-repeat: no-repeat;
+  background: #e7eaee url('@/assets/images/background.png') center center no-repeat;
 }
 .loginBox {
   box-shadow: 0px 0px 12px rgba(35, 97, 169, 0.05);

+ 0 - 121
src/views/Product.vue

@@ -1,121 +0,0 @@
-<script setup>
-import { onMounted, ref } from "vue"
-const tableData = [{
-  product: 'PDF Reader Pro Win',
-  plan: 'Premium',
-  totalAmount: '10',
-  purchasePrice: '$449.25',
-  purchaseDate: '10/10/2022',
-  expirationDate: '10/27/2022'
-}]
-const currentPage = 1
-
-function handleSizeChange(val) {
-  console.log(`每页 ${val} 条`)
-}
-function handleCurrentChange(val) {
-  console.log(`当前页: ${val}`)
-}
-
-onMounted(() => {
-  let pageText = document.getElementsByClassName("el-pagination__jump")[0]
-  if (pageText) {
-    pageText.childNodes[0].nodeValue = "跳至"
-  }
-})
-</script>
-
-<template>
-  <div>
-    <h1>Product Management</h1>
-    <h2 class="mt-32px mb-12px">Content</h2>
-    <div class="block px-24px pt-32px pb-40px">
-      <div class="flex">
-        <select name="product" class="min-w-180px mr-16px">
-          <option value="1">PDF ReaderPro Win</option>
-          <option value="2">2</option>
-        </select>
-        <select name="plan" class="min-w-140px mr-16px">
-          <option value="1">Plan</option>
-          <option value="2">2</option>
-        </select>
-        <div class="w-70px h-28px border-[#1460F3] border-1px rounded-4px px-10px py-4px text-14px leading-20px text-[#1460F3] cursor-pointer">Confirm</div>
-      </div>
-      <el-table
-        :data="tableData"
-        style="width: 100%">
-        <el-table-column
-          prop="product"
-          label="Product"
-          min-width="16%">
-        </el-table-column>
-        <el-table-column
-          prop="plan"
-          label="Plan"
-          min-width="14%">
-        </el-table-column>
-        <el-table-column
-          prop="totalAmount"
-          label="Total amount"
-          min-width="20%">
-        </el-table-column>
-        <el-table-column
-          prop="purchasePrice"
-          label="Purchase Price"
-          min-width="21%">
-        </el-table-column>
-        <el-table-column
-          prop="purchaseDate"
-          label="Purchase date"
-          min-width="18%">
-        </el-table-column>
-        <el-table-column
-          prop="expirationDate"
-          label="Expiration Date"
-          min-width="10%">
-        </el-table-column>
-      </el-table>
-    </div>
-    <el-pagination
-      @size-change="handleSizeChange"
-      @current-change="handleCurrentChange"
-      :current-page.sync="currentPage"
-      :page-sizes="[5, 10, 20]"
-      :page-size="100"
-      :background="true"
-      layout="prev, pager, next, sizes, jumper"
-      :total="100"
-      class="
-        px-24px
-        !rounded-0
-        rounded-b-8px
-        flex
-        justify-end
-      "
-    >
-    </el-pagination>
-  </div>
-</template>
-
-<style scoped>
-.el-pagination::v-deep button {
-  color: #232a40;
-  background-color: #e7eaee !important;
-}
-.el-pagination::v-deep ul > li {
-  color: #232a40;
-  border-radius: 4px;
-  margin-left: 6px;
-  font-weight: normal !important;
-  min-width: 24px !important;
-  height: 24px !important;
-  background-color: #fff;
-}
-.el-pagination::v-deep ul > .active {
-  color: #232a40 !important;
-  background-color: #c6c9cc !important;
-}
-.el-table::v-deep thead {
-  color: #000 !important;
-}
-</style>

+ 14 - 20
src/views/ProductManagement.vue

@@ -17,17 +17,20 @@ onMounted(() => {
   if (pageText) {
     pageText.childNodes[0].nodeValue = '跳至'
   }
-  var formdata = new FormData()
-  formdata.append('code', '')
-  formdata.append('page', currentPage.value)
-  formdata.append('pageSize', size.value)
+  pagingQuery()
+})
+const filter = () => {
   get('http://81.68.234.235:8032/pdf-tech/vppOrderDetail/pageByCompany',formdata).then(
     (res) => {
       tableData.value = res.data.result.list
     }
   )
-})
-const filter = () => {
+}
+const pagingQuery = () => {
+  var formdata = new FormData()
+  formdata.append('code', '')
+  formdata.append('page', currentPage.value)
+  formdata.append('pageSize', size.value)
   get('http://81.68.234.235:8032/pdf-tech/vppOrderDetail/pageByCompany',formdata).then(
     (res) => {
       tableData.value = res.data.result.list
@@ -42,9 +45,11 @@ const handleClick = (val) => {
 }
 const handleSizeChange = (value) => {
   size.value = value
+  pagingQuery()
 }
-const handleCurrentChange = () => {
-  console.log(`当前页`)
+const handleCurrentChange = (value) => {
+  currentPage.value = value
+  pagingQuery()
 }
 </script>
 
@@ -64,17 +69,6 @@ const handleCurrentChange = () => {
         "
       >
         <span>Content</span>
-        <span
-          class="
-            flex
-            justify-center
-            items-center
-            rounded-4px
-            min-w-28px min-h-28px
-            bg-[#fff]
-          "
-          ><Download
-        /></span>
       </div>
       <div class="flex bg-[#fff] pt-32px px-24px rounded-t-8px w-full">
         <select name="" id="" class="w-140px">
@@ -100,7 +94,7 @@ const handleCurrentChange = () => {
           Confirm
         </button>
       </div>
-      <el-table :data="tableData" class="px-24px rounded-b-8px !w-full">
+      <el-table :data="tableData" class="px-24px pb-40px rounded-b-8px !w-full">
         <el-table-column prop="name" label="Product"> </el-table-column>
         <el-table-column prop="memberName" label="Plan"> </el-table-column>
         <el-table-column prop="quantity" label="Total amount"> </el-table-column>

+ 29 - 21
src/views/TeamManagement/ManageTeam.vue

@@ -4,41 +4,44 @@ import Search from '@/components/icon/search.vue'
 import Warning from '@/components/icon/warning.vue'
 import { get } from '../../../utils/request'
 
-const tableData = [{
-  teamName: 'PDF Reader Pro Win',
-  members: 'Premium',
-  licenseAmount: '10',
-  teamDescription: '$449.25',
-  teamAdmin: '10/10/2022',
-  createdDate: '10/27/2022'
-}]
-const currentPage = 1
+const tableData = ref([])
+const currentPage = ref(1)
+const pageSize = ref(5)
+const total = ref(0)
 const search = ref('')
 const dialogVisible = ref(false)
 const teamName = ref('')
 const teamId = ref('')
 
 //打开对话框
-const handleClick = (val) => {
+const handleClick = (index, val) => {
+  console.log(index, val)
+  teamName.value = val.name
   dialogVisible.value = true
-  teamName.value = val.teamName
 }
 
 function handleSizeChange(val) {
   console.log(`每页 ${val} 条`)
+  pageSize.value = val
+  getManageTeamList()
 }
 function handleCurrentChange(val) {
   console.log(`当前页: ${val}`)
+  currentPage.value = val
+  getManageTeamList()
 }
 // 获取团队管理列表
 function getManageTeamList() {
   get('http://81.68.234.235:8032/pdf-tech/vppTeam/getManageTeamList', {
-    page: currentPage,
-    pageSize: 10,
+    page: currentPage.value,
+    pageSize: pageSize.value,
     teamId: teamId.value,
     keyword: search.value
   }).then((res) => {
-    console.log(res)
+    if (res.data.code === 200) {
+      tableData.value = res.data.result.list
+      total.value = res.data.result.total
+    }
   })
 }
 // 团队管理列表导出
@@ -50,6 +53,11 @@ function exportManageTeamList() {
     console.log(res)
   })
 }
+// 删除
+function handleDelete(index, row) {
+  this.tableData.splice(index, 1)
+  dialogVisible.value = false
+}
 
 onMounted(() => {
   let pageText = document.getElementsByClassName("el-pagination__jump")[0]
@@ -102,7 +110,7 @@ onMounted(() => {
         :data="tableData"
         style="width: 100%">
         <el-table-column
-          prop="teamName"
+          prop="name"
           label="Team name"
           min-width="14%">
         </el-table-column>
@@ -117,7 +125,7 @@ onMounted(() => {
           min-width="17%">
         </el-table-column>
         <el-table-column
-          prop="teamDescription"
+          prop="description"
           label="Team Description"
           min-width="18%">
         </el-table-column>
@@ -127,7 +135,7 @@ onMounted(() => {
           min-width="14.5%">
         </el-table-column>
         <el-table-column
-          prop="createdDate"
+          prop="createTime"
           label="Created date"
           min-width="13.5%">
         </el-table-column>
@@ -139,7 +147,7 @@ onMounted(() => {
               <router-link :to="{ name: 'EditManageTeam', params: { flag: 'edit', teamName: scope.row.teamName, teamDescription: scope.row.teamDescription, licenseAmount: scope.row.licenseAmount  } }">
                 <div class="w-61px h-20px border-1 border-[#1460F3] rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer mb-8px">Edit</div>
               </router-link>
-              <div class="w-61px h-20px border-1 border-[#1460F3] rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer" @click="handleClick(scope.row)">Delete</div>
+              <div class="w-61px h-20px border-1 border-[#1460F3] rounded-4px text-center text-14px leading-20px text-[#1460F3] cursor-pointer" @click="handleClick(scope.$index, scope.row)">Delete</div>
             </div>
           </template>
         </el-table-column>
@@ -159,7 +167,7 @@ onMounted(() => {
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="dialogVisible = false">No</el-button>
-        <el-button type="primary" @click="dialogVisible = false">Yes</el-button>
+        <el-button type="primary" @click="handleDelete()">Yes</el-button>
       </span>
     </el-dialog>
     <el-pagination
@@ -167,10 +175,10 @@ onMounted(() => {
       @current-change="handleCurrentChange"
       :current-page.sync="currentPage"
       :page-sizes="[5, 10, 20]"
-      :page-size="100"
+      :page-size="pageSize"
       :background="true"
       layout="prev, pager, next, sizes, jumper"
-      :total="100"
+      :total="total"
       class="
         px-24px
         !rounded-0

+ 2 - 3
src/views/forgotpassword.vue

@@ -68,7 +68,7 @@ export default {
 </script>
 
 <template>
-  <div class="bg w-1440px h-100vh flex justify-center items-center m-auto">
+  <div class="bg w-full h-100vh flex justify-center items-center m-auto">
     <div class="w-404px h-auto rounded-8px p-24px bg-[#fff] loginBox">
       <h1 class="text-24px font-bold mb-24px">Forgot your password</h1>
       <el-form
@@ -131,8 +131,7 @@ export default {
 
 <style lang="scss" scoped>
 .bg {
-  background: #e7eaee;
-  background-image: url('@/assets/images/background.png');
+  background: #e7eaee url('@/assets/images/background.png') center center no-repeat;
 }
 .loginBox {
   box-shadow: 0px 0px 12px rgba(35, 97, 169, 0.05);

+ 2 - 1
utils/request.js

@@ -1,6 +1,7 @@
 import axios from 'axios';
+import cookies from 'vue-cookies'
 
-const token = $cookies.get('accessToken')
+const token = cookies.get('accessToken')
 axios.defaults.headers['authorization'] = `Bearer ${token}`;
 // 创建请求实例
 const instance = axios.create({