diff --git a/README.md b/README.md
index 2b6e28f5..725de5d6 100644
--- a/README.md
+++ b/README.md
@@ -1 +1 @@
-# Vue 3 + Typescript + Vite2 + Pinia2
\ No newline at end of file
+# Vue3 + Typescript + Vite2 + NaiveUI + ECharts  + Axios  + Pinia2 + Plop
\ No newline at end of file
diff --git a/package.json b/package.json
index 208e4565..d4c9fdf2 100644
--- a/package.json
+++ b/package.json
@@ -43,6 +43,7 @@
     "sass-loader": "^12.2.0",
     "typescript": "^4.4.4",
     "vite": "^2.6.10",
+    "vite-plugin-compression": "^0.5.1",
     "vite-plugin-importer": "^0.2.5",
     "vite-plugin-mock": "^2.9.6",
     "vite-plugin-style-import": "^1.2.1",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 18b83099..e7a1ed58 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -31,6 +31,7 @@ specifiers:
   screenfull: ^6.0.0
   typescript: ^4.4.4
   vite: ^2.6.10
+  vite-plugin-compression: ^0.5.1
   vite-plugin-importer: ^0.2.5
   vite-plugin-mock: ^2.9.6
   vite-plugin-style-import: ^1.2.1
@@ -76,6 +77,7 @@ devDependencies:
   sass-loader: rg.cnpmjs.org/sass-loader/12.4.0_sass@1.44.0
   typescript: rg.cnpmjs.org/typescript/4.5.2
   vite: rg.cnpmjs.org/vite/2.7.1_sass@1.44.0
+  vite-plugin-compression: registry.npmjs.org/vite-plugin-compression/0.5.1_vite@2.7.1
   vite-plugin-importer: rg.cnpmjs.org/vite-plugin-importer/0.2.5
   vite-plugin-mock: rg.cnpmjs.org/vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.7.1
   vite-plugin-style-import: rg.cnpmjs.org/vite-plugin-style-import/1.4.0_vite@2.7.1
@@ -100,7 +102,7 @@ packages:
     resolution: {integrity: sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w==}
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
     dependencies:
-      chalk: r2.cnpmjs.org/chalk/4.1.2
+      chalk: registry.npmjs.org/chalk/4.1.2
       diff-sequences: r2.cnpmjs.org/diff-sequences/27.4.0
       jest-get-type: r2.cnpmjs.org/jest-get-type/27.4.0
       pretty-format: registry.npmjs.org/pretty-format/27.4.6
@@ -111,7 +113,7 @@ packages:
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
     dependencies:
       ansi-regex: r2.cnpmjs.org/ansi-regex/5.0.1
-      ansi-styles: r2.cnpmjs.org/ansi-styles/5.2.0
+      ansi-styles: registry.npmjs.org/ansi-styles/5.2.0
       react-is: r2.cnpmjs.org/react-is/17.0.2
     dev: false
 
@@ -269,30 +271,6 @@ packages:
     engines: {node: '>=12'}
     dev: true
 
-  r2.cnpmjs.org/ansi-styles/3.2.1:
-    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz}
-    name: ansi-styles
-    version: 3.2.1
-    engines: {node: '>=4'}
-    dependencies:
-      color-convert: r2.cnpmjs.org/color-convert/1.9.3
-    dev: true
-
-  r2.cnpmjs.org/ansi-styles/4.3.0:
-    resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz}
-    name: ansi-styles
-    version: 4.3.0
-    engines: {node: '>=8'}
-    dependencies:
-      color-convert: r2.cnpmjs.org/color-convert/2.0.1
-
-  r2.cnpmjs.org/ansi-styles/5.2.0:
-    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz}
-    name: ansi-styles
-    version: 5.2.0
-    engines: {node: '>=10'}
-    dev: false
-
   r2.cnpmjs.org/array-each/1.0.1:
     resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/array-each/-/array-each-1.0.1.tgz}
     name: array-each
@@ -408,26 +386,6 @@ packages:
       upper-case-first: r2.cnpmjs.org/upper-case-first/2.0.2
     dev: true
 
-  r2.cnpmjs.org/chalk/2.4.2:
-    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/chalk/-/chalk-2.4.2.tgz}
-    name: chalk
-    version: 2.4.2
-    engines: {node: '>=4'}
-    dependencies:
-      ansi-styles: r2.cnpmjs.org/ansi-styles/3.2.1
-      escape-string-regexp: rg.cnpmjs.org/escape-string-regexp/1.0.5
-      supports-color: r2.cnpmjs.org/supports-color/5.5.0
-    dev: true
-
-  r2.cnpmjs.org/chalk/4.1.2:
-    resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/chalk/-/chalk-4.1.2.tgz}
-    name: chalk
-    version: 4.1.2
-    engines: {node: '>=10'}
-    dependencies:
-      ansi-styles: r2.cnpmjs.org/ansi-styles/4.3.0
-      supports-color: r2.cnpmjs.org/supports-color/7.2.0
-
   r2.cnpmjs.org/chalk/5.0.0:
     resolution: {integrity: sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/chalk/-/chalk-5.0.0.tgz}
     name: chalk
@@ -506,33 +464,6 @@ packages:
     engines: {node: '>=0.8'}
     dev: true
 
-  r2.cnpmjs.org/color-convert/1.9.3:
-    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/color-convert/-/color-convert-1.9.3.tgz}
-    name: color-convert
-    version: 1.9.3
-    dependencies:
-      color-name: r2.cnpmjs.org/color-name/1.1.3
-    dev: true
-
-  r2.cnpmjs.org/color-convert/2.0.1:
-    resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/color-convert/-/color-convert-2.0.1.tgz}
-    name: color-convert
-    version: 2.0.1
-    engines: {node: '>=7.0.0'}
-    dependencies:
-      color-name: r2.cnpmjs.org/color-name/1.1.4
-
-  r2.cnpmjs.org/color-name/1.1.3:
-    resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/color-name/-/color-name-1.1.3.tgz}
-    name: color-name
-    version: 1.1.3
-    dev: true
-
-  r2.cnpmjs.org/color-name/1.1.4:
-    resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/color-name/-/color-name-1.1.4.tgz}
-    name: color-name
-    version: 1.1.4
-
   r2.cnpmjs.org/constant-case/3.0.4:
     resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/constant-case/-/constant-case-3.0.4.tgz}
     name: constant-case
@@ -585,7 +516,7 @@ packages:
     engines: {node: '>=10'}
     dependencies:
       globby: r2.cnpmjs.org/globby/11.0.4
-      graceful-fs: r2.cnpmjs.org/graceful-fs/4.2.8
+      graceful-fs: registry.npmjs.org/graceful-fs/4.2.8
       is-glob: r2.cnpmjs.org/is-glob/4.0.3
       is-path-cwd: r2.cnpmjs.org/is-path-cwd/2.2.0
       is-path-inside: r2.cnpmjs.org/is-path-inside/3.0.3
@@ -830,13 +761,6 @@ packages:
       slash: r2.cnpmjs.org/slash/3.0.0
     dev: true
 
-  r2.cnpmjs.org/graceful-fs/4.2.8:
-    resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz}
-    name: graceful-fs
-    version: 4.2.8
-    requiresBuild: true
-    dev: true
-
   r2.cnpmjs.org/handlebars/4.7.7:
     resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/handlebars/-/handlebars-4.7.7.tgz}
     name: handlebars
@@ -852,19 +776,6 @@ packages:
       uglify-js: registry.npmjs.org/uglify-js/3.15.1
     dev: true
 
-  r2.cnpmjs.org/has-flag/3.0.0:
-    resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/has-flag/-/has-flag-3.0.0.tgz}
-    name: has-flag
-    version: 3.0.0
-    engines: {node: '>=4'}
-    dev: true
-
-  r2.cnpmjs.org/has-flag/4.0.0:
-    resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/has-flag/-/has-flag-4.0.0.tgz}
-    name: has-flag
-    version: 4.0.0
-    engines: {node: '>=8'}
-
   r2.cnpmjs.org/has/1.0.3:
     resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/has/-/has-1.0.3.tgz}
     name: has
@@ -949,7 +860,7 @@ packages:
     engines: {node: '>=8.0.0'}
     dependencies:
       ansi-escapes: r2.cnpmjs.org/ansi-escapes/4.3.2
-      chalk: r2.cnpmjs.org/chalk/4.1.2
+      chalk: registry.npmjs.org/chalk/4.1.2
       cli-cursor: r2.cnpmjs.org/cli-cursor/3.1.0
       cli-width: r2.cnpmjs.org/cli-width/3.0.0
       external-editor: r2.cnpmjs.org/external-editor/3.1.0
@@ -1161,7 +1072,7 @@ packages:
     version: 4.1.0
     engines: {node: '>=10'}
     dependencies:
-      chalk: r2.cnpmjs.org/chalk/4.1.2
+      chalk: registry.npmjs.org/chalk/4.1.2
       is-unicode-supported: r2.cnpmjs.org/is-unicode-supported/0.1.0
     dev: true
 
@@ -1171,7 +1082,7 @@ packages:
     version: 5.1.0
     engines: {node: '>=12'}
     dependencies:
-      chalk: r2.cnpmjs.org/chalk/5.0.0
+      chalk: registry.npmjs.org/chalk/5.0.0
       is-unicode-supported: r2.cnpmjs.org/is-unicode-supported/1.1.0
     dev: true
 
@@ -1336,7 +1247,7 @@ packages:
     engines: {node: '>=10'}
     dependencies:
       bl: r2.cnpmjs.org/bl/4.1.0
-      chalk: r2.cnpmjs.org/chalk/4.1.2
+      chalk: registry.npmjs.org/chalk/4.1.2
       cli-cursor: r2.cnpmjs.org/cli-cursor/3.1.0
       cli-spinners: r2.cnpmjs.org/cli-spinners/2.6.1
       is-interactive: r2.cnpmjs.org/is-interactive/1.0.0
@@ -1353,7 +1264,7 @@ packages:
     engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
     dependencies:
       bl: r2.cnpmjs.org/bl/5.0.0
-      chalk: r2.cnpmjs.org/chalk/4.1.2
+      chalk: registry.npmjs.org/chalk/4.1.2
       cli-cursor: r2.cnpmjs.org/cli-cursor/4.0.0
       cli-spinners: r2.cnpmjs.org/cli-spinners/2.6.1
       is-interactive: r2.cnpmjs.org/is-interactive/2.0.0
@@ -1673,23 +1584,6 @@ packages:
       ansi-regex: r2.cnpmjs.org/ansi-regex/6.0.1
     dev: true
 
-  r2.cnpmjs.org/supports-color/5.5.0:
-    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/supports-color/-/supports-color-5.5.0.tgz}
-    name: supports-color
-    version: 5.5.0
-    engines: {node: '>=4'}
-    dependencies:
-      has-flag: r2.cnpmjs.org/has-flag/3.0.0
-    dev: true
-
-  r2.cnpmjs.org/supports-color/7.2.0:
-    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/supports-color/-/supports-color-7.2.0.tgz}
-    name: supports-color
-    version: 7.2.0
-    engines: {node: '>=8'}
-    dependencies:
-      has-flag: r2.cnpmjs.org/has-flag/4.0.0
-
   r2.cnpmjs.org/through/2.3.8:
     resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, registry: http://r.cnpmjs.org/, tarball: https://r2.cnpmjs.org/through/-/through-2.3.8.tgz}
     name: through
@@ -1892,6 +1786,15 @@ packages:
     engines: {node: '>=8'}
     dev: false
 
+  registry.npmjs.org/ansi-styles/3.2.1:
+    resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz}
+    name: ansi-styles
+    version: 3.2.1
+    engines: {node: '>=4'}
+    dependencies:
+      color-convert: registry.npmjs.org/color-convert/1.9.3
+    dev: true
+
   registry.npmjs.org/ansi-styles/4.3.0:
     resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz}
     name: ansi-styles
@@ -1899,7 +1802,6 @@ packages:
     engines: {node: '>=8'}
     dependencies:
       color-convert: registry.npmjs.org/color-convert/2.0.1
-    dev: false
 
   registry.npmjs.org/ansi-styles/5.2.0:
     resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz}
@@ -1908,6 +1810,17 @@ packages:
     engines: {node: '>=10'}
     dev: false
 
+  registry.npmjs.org/chalk/2.4.2:
+    resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz}
+    name: chalk
+    version: 2.4.2
+    engines: {node: '>=4'}
+    dependencies:
+      ansi-styles: registry.npmjs.org/ansi-styles/3.2.1
+      escape-string-regexp: rg.cnpmjs.org/escape-string-regexp/1.0.5
+      supports-color: registry.npmjs.org/supports-color/5.5.0
+    dev: true
+
   registry.npmjs.org/chalk/4.1.2:
     resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz}
     name: chalk
@@ -1916,7 +1829,21 @@ packages:
     dependencies:
       ansi-styles: registry.npmjs.org/ansi-styles/4.3.0
       supports-color: registry.npmjs.org/supports-color/7.2.0
-    dev: false
+
+  registry.npmjs.org/chalk/5.0.0:
+    resolution: {integrity: sha512-/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz}
+    name: chalk
+    version: 5.0.0
+    engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+    dev: true
+
+  registry.npmjs.org/color-convert/1.9.3:
+    resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz}
+    name: color-convert
+    version: 1.9.3
+    dependencies:
+      color-name: registry.npmjs.org/color-name/1.1.3
+    dev: true
 
   registry.npmjs.org/color-convert/2.0.1:
     resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz}
@@ -1925,13 +1852,17 @@ packages:
     engines: {node: '>=7.0.0'}
     dependencies:
       color-name: registry.npmjs.org/color-name/1.1.4
-    dev: false
+
+  registry.npmjs.org/color-name/1.1.3:
+    resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz}
+    name: color-name
+    version: 1.1.3
+    dev: true
 
   registry.npmjs.org/color-name/1.1.4:
     resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz}
     name: color-name
     version: 1.1.4
-    dev: false
 
   registry.npmjs.org/css-render/0.15.8:
     resolution: {integrity: sha512-k1gp1MgYDPrFZhzheQkSwm6dmP6nPe2XE6WYpJBPwEc3GbMANPJZfxl7ofZlTl8/+tpMRiGTTgUkTlXaVbLxog==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/css-render/-/css-render-0.15.8.tgz}
@@ -1949,6 +1880,36 @@ packages:
     version: 3.0.10
     dev: false
 
+  registry.npmjs.org/debug/2.6.9:
+    resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/debug/-/debug-2.6.9.tgz}
+    name: debug
+    version: 2.6.9
+    dependencies:
+      ms: registry.npmjs.org/ms/2.0.0
+    dev: true
+
+  registry.npmjs.org/debug/3.2.7:
+    resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/debug/-/debug-3.2.7.tgz}
+    name: debug
+    version: 3.2.7
+    dependencies:
+      ms: registry.npmjs.org/ms/2.1.2
+    dev: true
+
+  registry.npmjs.org/debug/4.3.3:
+    resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/debug/-/debug-4.3.3.tgz}
+    name: debug
+    version: 4.3.3
+    engines: {node: '>=6.0'}
+    peerDependencies:
+      supports-color: '*'
+    peerDependenciesMeta:
+      supports-color:
+        optional: true
+    dependencies:
+      ms: registry.npmjs.org/ms/2.1.2
+    dev: true
+
   registry.npmjs.org/diff-sequences/27.5.1:
     resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz}
     name: diff-sequences
@@ -2141,6 +2102,17 @@ packages:
     version: 0.2.3
     dev: false
 
+  registry.npmjs.org/fs-extra/10.0.0:
+    resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz}
+    name: fs-extra
+    version: 10.0.0
+    engines: {node: '>=12'}
+    dependencies:
+      graceful-fs: registry.npmjs.org/graceful-fs/4.2.8
+      jsonfile: registry.npmjs.org/jsonfile/6.1.0
+      universalify: registry.npmjs.org/universalify/2.0.0
+    dev: true
+
   registry.npmjs.org/fsevents/2.3.2:
     resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz}
     name: fsevents
@@ -2157,14 +2129,19 @@ packages:
     version: 4.2.8
     requiresBuild: true
     dev: true
-    optional: true
+
+  registry.npmjs.org/has-flag/3.0.0:
+    resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz}
+    name: has-flag
+    version: 3.0.0
+    engines: {node: '>=4'}
+    dev: true
 
   registry.npmjs.org/has-flag/4.0.0:
     resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz}
     name: has-flag
     version: 4.0.0
     engines: {node: '>=8'}
-    dev: false
 
   registry.npmjs.org/jest-diff/27.5.1:
     resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz}
@@ -2185,6 +2162,28 @@ packages:
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
     dev: false
 
+  registry.npmjs.org/jsonfile/6.1.0:
+    resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz}
+    name: jsonfile
+    version: 6.1.0
+    dependencies:
+      universalify: registry.npmjs.org/universalify/2.0.0
+    optionalDependencies:
+      graceful-fs: registry.npmjs.org/graceful-fs/4.2.8
+    dev: true
+
+  registry.npmjs.org/ms/2.0.0:
+    resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/ms/-/ms-2.0.0.tgz}
+    name: ms
+    version: 2.0.0
+    dev: true
+
+  registry.npmjs.org/ms/2.1.2:
+    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/ms/-/ms-2.1.2.tgz}
+    name: ms
+    version: 2.1.2
+    dev: true
+
   registry.npmjs.org/naive-ui/2.25.2_vue@3.2.24:
     resolution: {integrity: sha512-Jv/hMVHECh1Q7lPtIkGIa+eQVwFpQs6qEAn3r+eaEGmSuTAFJOrIKRL4ob10O5jQ1BxjLyWb+kzSxuwoi/VHWg==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/naive-ui/-/naive-ui-2.25.2.tgz}
     id: registry.npmjs.org/naive-ui/2.25.2
@@ -2221,7 +2220,7 @@ packages:
     engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
     dependencies:
       ansi-regex: r2.cnpmjs.org/ansi-regex/5.0.1
-      ansi-styles: r2.cnpmjs.org/ansi-styles/5.2.0
+      ansi-styles: registry.npmjs.org/ansi-styles/5.2.0
       react-is: r2.cnpmjs.org/react-is/17.0.2
     dev: false
 
@@ -2256,6 +2255,15 @@ packages:
       '@types/jest': registry.npmjs.org/@types/jest/27.4.0
     dev: false
 
+  registry.npmjs.org/supports-color/5.5.0:
+    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz}
+    name: supports-color
+    version: 5.5.0
+    engines: {node: '>=4'}
+    dependencies:
+      has-flag: registry.npmjs.org/has-flag/3.0.0
+    dev: true
+
   registry.npmjs.org/supports-color/7.2.0:
     resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz}
     name: supports-color
@@ -2263,7 +2271,6 @@ packages:
     engines: {node: '>=8'}
     dependencies:
       has-flag: registry.npmjs.org/has-flag/4.0.0
-    dev: false
 
   registry.npmjs.org/tslib/2.3.0:
     resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz}
@@ -2287,6 +2294,13 @@ packages:
     dev: true
     optional: true
 
+  registry.npmjs.org/universalify/2.0.0:
+    resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz}
+    name: universalify
+    version: 2.0.0
+    engines: {node: '>= 10.0.0'}
+    dev: true
+
   registry.npmjs.org/vdirs/0.1.7_vue@3.2.24:
     resolution: {integrity: sha512-MEUaLhV1jJyUqA2Ar4DfvlQx8jWs+PpCZ2dbM0ILelpMWGOybzt8ddL456VxeIbY/tkuDGT/Wzb8GG4LCuLuHw==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/vdirs/-/vdirs-0.1.7.tgz}
     id: registry.npmjs.org/vdirs/0.1.7
@@ -2299,6 +2313,22 @@ packages:
       vue: rg.cnpmjs.org/vue/3.2.24
     dev: false
 
+  registry.npmjs.org/vite-plugin-compression/0.5.1_vite@2.7.1:
+    resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz}
+    id: registry.npmjs.org/vite-plugin-compression/0.5.1
+    name: vite-plugin-compression
+    version: 0.5.1
+    peerDependencies:
+      vite: '>=2.0.0'
+    dependencies:
+      chalk: registry.npmjs.org/chalk/4.1.2
+      debug: registry.npmjs.org/debug/4.3.3
+      fs-extra: registry.npmjs.org/fs-extra/10.0.0
+      vite: rg.cnpmjs.org/vite/2.7.1_sass@1.44.0
+    transitivePeerDependencies:
+      - supports-color
+    dev: true
+
   registry.npmjs.org/vooks/0.2.12_vue@3.2.24:
     resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==, registry: https://skimdb.npmjs.com/registry/, tarball: https://registry.npmjs.org/vooks/-/vooks-0.2.12.tgz}
     id: registry.npmjs.org/vooks/0.2.12
@@ -2369,7 +2399,7 @@ packages:
       '@babel/traverse': rg.cnpmjs.org/@babel/traverse/7.16.3
       '@babel/types': rg.cnpmjs.org/@babel/types/7.16.0
       convert-source-map: rg.cnpmjs.org/convert-source-map/1.8.0
-      debug: rg.cnpmjs.org/debug/4.3.3
+      debug: registry.npmjs.org/debug/4.3.3
       gensync: rg.cnpmjs.org/gensync/1.0.0-beta.2
       json5: rg.cnpmjs.org/json5/2.2.0
       semver: rg.cnpmjs.org/semver/6.3.0
@@ -2581,7 +2611,7 @@ packages:
     engines: {node: '>=6.9.0'}
     dependencies:
       '@babel/helper-validator-identifier': rg.cnpmjs.org/@babel/helper-validator-identifier/7.15.7
-      chalk: r2.cnpmjs.org/chalk/2.4.2
+      chalk: registry.npmjs.org/chalk/2.4.2
       js-tokens: rg.cnpmjs.org/js-tokens/4.0.0
     dev: true
 
@@ -2680,7 +2710,7 @@ packages:
       '@babel/helper-split-export-declaration': rg.cnpmjs.org/@babel/helper-split-export-declaration/7.16.0
       '@babel/parser': rg.cnpmjs.org/@babel/parser/7.16.4
       '@babel/types': rg.cnpmjs.org/@babel/types/7.16.0
-      debug: rg.cnpmjs.org/debug/4.3.3
+      debug: registry.npmjs.org/debug/4.3.3
       globals: rg.cnpmjs.org/globals/11.12.0
     transitivePeerDependencies:
       - supports-color
@@ -2725,7 +2755,7 @@ packages:
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dependencies:
       ajv: rg.cnpmjs.org/ajv/6.12.6
-      debug: rg.cnpmjs.org/debug/4.3.3
+      debug: registry.npmjs.org/debug/4.3.3
       espree: rg.cnpmjs.org/espree/9.2.0
       globals: rg.cnpmjs.org/globals/13.12.0
       ignore: rg.cnpmjs.org/ignore/4.0.6
@@ -2744,7 +2774,7 @@ packages:
     engines: {node: '>=10.10.0'}
     dependencies:
       '@humanwhocodes/object-schema': rg.cnpmjs.org/@humanwhocodes/object-schema/1.2.1
-      debug: rg.cnpmjs.org/debug/4.3.3
+      debug: registry.npmjs.org/debug/4.3.3
       minimatch: rg.cnpmjs.org/minimatch/3.0.4
     transitivePeerDependencies:
       - supports-color
@@ -3035,7 +3065,7 @@ packages:
     dependencies:
       '@typescript-eslint/types': rg.cnpmjs.org/@typescript-eslint/types/5.6.0
       '@typescript-eslint/visitor-keys': rg.cnpmjs.org/@typescript-eslint/visitor-keys/5.6.0
-      debug: rg.cnpmjs.org/debug/4.3.3
+      debug: registry.npmjs.org/debug/4.3.3
       globby: rg.cnpmjs.org/globby/11.0.4
       is-glob: rg.cnpmjs.org/is-glob/4.0.3
       semver: rg.cnpmjs.org/semver/7.3.5
@@ -3367,15 +3397,6 @@ packages:
     engines: {node: '>=8'}
     dev: true
 
-  rg.cnpmjs.org/ansi-styles/4.3.0:
-    resolution: {integrity: sha1-7dgDYornHATIWuegkG7a00tkiTc=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/ansi-styles/download/ansi-styles-4.3.0.tgz}
-    name: ansi-styles
-    version: 4.3.0
-    engines: {node: '>=8'}
-    dependencies:
-      color-convert: rg.cnpmjs.org/color-convert/2.0.1
-    dev: true
-
   rg.cnpmjs.org/anymatch/3.1.2:
     resolution: {integrity: sha1-wFV8CWrzLxBhmPT04qODU343hxY=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/anymatch/download/anymatch-3.1.2.tgz}
     name: anymatch
@@ -3575,8 +3596,8 @@ packages:
     version: 4.1.2
     engines: {node: '>=10'}
     dependencies:
-      ansi-styles: rg.cnpmjs.org/ansi-styles/4.3.0
-      supports-color: rg.cnpmjs.org/supports-color/7.2.0
+      ansi-styles: registry.npmjs.org/ansi-styles/4.3.0
+      supports-color: registry.npmjs.org/supports-color/7.2.0
     dev: true
 
   rg.cnpmjs.org/change-case/4.1.2:
@@ -3623,21 +3644,6 @@ packages:
       fsevents: registry.npmjs.org/fsevents/2.3.2
     dev: true
 
-  rg.cnpmjs.org/color-convert/2.0.1:
-    resolution: {integrity: sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/color-convert/download/color-convert-2.0.1.tgz}
-    name: color-convert
-    version: 2.0.1
-    engines: {node: '>=7.0.0'}
-    dependencies:
-      color-name: rg.cnpmjs.org/color-name/1.1.4
-    dev: true
-
-  rg.cnpmjs.org/color-name/1.1.4:
-    resolution: {integrity: sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/color-name/download/color-name-1.1.4.tgz}
-    name: color-name
-    version: 1.1.4
-    dev: true
-
   rg.cnpmjs.org/commander/8.3.0:
     resolution: {integrity: sha1-SDfqGy2me5xhamevuw+v7lZ7ymY=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/commander/download/commander-8.3.0.tgz}
     name: commander
@@ -3657,7 +3663,7 @@ packages:
     version: 3.7.0
     engines: {node: '>= 0.10.0'}
     dependencies:
-      debug: rg.cnpmjs.org/debug/2.6.9
+      debug: registry.npmjs.org/debug/2.6.9
       finalhandler: rg.cnpmjs.org/finalhandler/1.1.2
       parseurl: rg.cnpmjs.org/parseurl/1.3.3
       utils-merge: rg.cnpmjs.org/utils-merge/1.0.1
@@ -3730,15 +3736,7 @@ packages:
     name: debug
     version: 2.6.9
     dependencies:
-      ms: rg.cnpmjs.org/ms/2.0.0
-    dev: true
-
-  rg.cnpmjs.org/debug/3.2.7:
-    resolution: {integrity: sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/debug/download/debug-3.2.7.tgz}
-    name: debug
-    version: 3.2.7
-    dependencies:
-      ms: rg.cnpmjs.org/ms/2.1.2
+      ms: registry.npmjs.org/ms/2.0.0
     dev: true
 
   rg.cnpmjs.org/debug/4.3.3:
@@ -4033,7 +4031,7 @@ packages:
     name: eslint-import-resolver-node
     version: 0.3.6
     dependencies:
-      debug: rg.cnpmjs.org/debug/3.2.7
+      debug: registry.npmjs.org/debug/3.2.7
       resolve: rg.cnpmjs.org/resolve/1.20.0
     dev: true
 
@@ -4043,7 +4041,7 @@ packages:
     version: 2.7.1
     engines: {node: '>=4'}
     dependencies:
-      debug: rg.cnpmjs.org/debug/3.2.7
+      debug: registry.npmjs.org/debug/3.2.7
       find-up: rg.cnpmjs.org/find-up/2.1.0
       pkg-dir: rg.cnpmjs.org/pkg-dir/2.0.0
     dev: true
@@ -4353,7 +4351,7 @@ packages:
     version: 1.1.2
     engines: {node: '>= 0.8'}
     dependencies:
-      debug: rg.cnpmjs.org/debug/2.6.9
+      debug: registry.npmjs.org/debug/2.6.9
       encodeurl: rg.cnpmjs.org/encodeurl/1.0.2
       escape-html: rg.cnpmjs.org/escape-html/1.0.3
       on-finished: rg.cnpmjs.org/on-finished/2.3.0
@@ -4405,9 +4403,9 @@ packages:
     version: 10.0.0
     engines: {node: '>=12'}
     dependencies:
-      graceful-fs: rg.cnpmjs.org/graceful-fs/4.2.8
-      jsonfile: rg.cnpmjs.org/jsonfile/6.1.0
-      universalify: rg.cnpmjs.org/universalify/2.0.0
+      graceful-fs: registry.npmjs.org/graceful-fs/4.2.8
+      jsonfile: registry.npmjs.org/jsonfile/6.1.0
+      universalify: registry.npmjs.org/universalify/2.0.0
     dev: true
 
   rg.cnpmjs.org/fs.realpath/1.0.0:
@@ -4516,25 +4514,12 @@ packages:
       slash: rg.cnpmjs.org/slash/3.0.0
     dev: true
 
-  rg.cnpmjs.org/graceful-fs/4.2.8:
-    resolution: {integrity: sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/graceful-fs/download/graceful-fs-4.2.8.tgz}
-    name: graceful-fs
-    version: 4.2.8
-    dev: true
-
   rg.cnpmjs.org/has-bigints/1.0.1:
     resolution: {integrity: sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/has-bigints/download/has-bigints-1.0.1.tgz}
     name: has-bigints
     version: 1.0.1
     dev: true
 
-  rg.cnpmjs.org/has-flag/4.0.0:
-    resolution: {integrity: sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/has-flag/download/has-flag-4.0.0.tgz}
-    name: has-flag
-    version: 4.0.0
-    engines: {node: '>=8'}
-    dev: true
-
   rg.cnpmjs.org/has-symbols/1.0.2:
     resolution: {integrity: sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/has-symbols/download/has-symbols-1.0.2.tgz}
     name: has-symbols
@@ -4894,16 +4879,6 @@ packages:
     version: 3.0.0
     dev: true
 
-  rg.cnpmjs.org/jsonfile/6.1.0:
-    resolution: {integrity: sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/jsonfile/download/jsonfile-6.1.0.tgz}
-    name: jsonfile
-    version: 6.1.0
-    dependencies:
-      universalify: rg.cnpmjs.org/universalify/2.0.0
-    optionalDependencies:
-      graceful-fs: registry.npmjs.org/graceful-fs/4.2.8
-    dev: true
-
   rg.cnpmjs.org/jstransformer/1.0.0:
     resolution: {integrity: sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/jstransformer/download/jstransformer-1.0.0.tgz}
     name: jstransformer
@@ -5021,12 +4996,6 @@ packages:
       commander: rg.cnpmjs.org/commander/8.3.0
     dev: true
 
-  rg.cnpmjs.org/ms/2.0.0:
-    resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/ms/download/ms-2.0.0.tgz}
-    name: ms
-    version: 2.0.0
-    dev: true
-
   rg.cnpmjs.org/ms/2.1.2:
     resolution: {integrity: sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/ms/download/ms-2.1.2.tgz}
     name: ms
@@ -5756,15 +5725,6 @@ packages:
     engines: {node: '>=8'}
     dev: true
 
-  rg.cnpmjs.org/supports-color/7.2.0:
-    resolution: {integrity: sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/supports-color/download/supports-color-7.2.0.tgz}
-    name: supports-color
-    version: 7.2.0
-    engines: {node: '>=8'}
-    dependencies:
-      has-flag: rg.cnpmjs.org/has-flag/4.0.0
-    dev: true
-
   rg.cnpmjs.org/svg-tags/1.0.0:
     resolution: {integrity: sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/svg-tags/download/svg-tags-1.0.0.tgz}
     name: svg-tags
@@ -5864,13 +5824,6 @@ packages:
       which-boxed-primitive: rg.cnpmjs.org/which-boxed-primitive/1.0.2
     dev: true
 
-  rg.cnpmjs.org/universalify/2.0.0:
-    resolution: {integrity: sha1-daSYTv7cSwiXXFrrc/Uw0C3yVxc=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/universalify/download/universalify-2.0.0.tgz}
-    name: universalify
-    version: 2.0.0
-    engines: {node: '>= 10.0.0'}
-    dev: true
-
   rg.cnpmjs.org/unpipe/1.0.0:
     resolution: {integrity: sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=, registry: http://r.cnpmjs.org/, tarball: https://rg.cnpmjs.org/unpipe/download/unpipe-1.0.0.tgz}
     name: unpipe
@@ -6186,7 +6139,7 @@ packages:
     peerDependencies:
       eslint: '>=6.0.0'
     dependencies:
-      debug: rg.cnpmjs.org/debug/4.3.3
+      debug: registry.npmjs.org/debug/4.3.3
       eslint: rg.cnpmjs.org/eslint/8.4.1
       eslint-scope: rg.cnpmjs.org/eslint-scope/6.0.0
       eslint-visitor-keys: rg.cnpmjs.org/eslint-visitor-keys/3.1.0
diff --git a/src/assets/images/canvas/noImage.png b/src/assets/images/canvas/noImage.png
index a927780b..ee1bc8f4 100644
Binary files a/src/assets/images/canvas/noImage.png and b/src/assets/images/canvas/noImage.png differ
diff --git a/src/assets/images/canvas/pageBg.png b/src/assets/images/canvas/pageBg.png
deleted file mode 100644
index d393f2b2..00000000
Binary files a/src/assets/images/canvas/pageBg.png and /dev/null differ
diff --git a/src/settings/systemSetting.ts b/src/settings/systemSetting.ts
index 696f200e..1f0e2d32 100644
--- a/src/settings/systemSetting.ts
+++ b/src/settings/systemSetting.ts
@@ -7,4 +7,4 @@ export const asideAllCollapsed = true
 export const hidePackageOneCategory = true
 
 // 切换语言是否进行路由刷新
-export const changeLangReload = true
+export const changeLangReload = false
diff --git a/src/utils/utils.ts b/src/utils/utils.ts
index 656be1b4..f860df41 100644
--- a/src/utils/utils.ts
+++ b/src/utils/utils.ts
@@ -2,12 +2,13 @@ import { h } from 'vue'
 import { NIcon } from 'naive-ui'
 import screenfull from 'screenfull'
 import throttle from 'lodash/throttle'
+import Image_404 from '../assets/images/exception/image-404.png'
 
 /**
  * * 生成一个不重复的ID
  * @param { Number } randomLength
  */
-export const getUUID = (randomLength = 10) =>{
+export const getUUID = (randomLength = 10) => {
   return Number(
     Math.random().toString().substr(2, randomLength) + Date.now()
   ).toString(36)
@@ -32,14 +33,15 @@ export const renderLang = (lang: string, set = {}, tag = 'span') => {
 }
 
 /**
+ * ! 编译会报错,暂不使用
  * * 处理 vite 中无法使用 require 的问题,utils 文件为根路径
  * @param path
  * @param name
  * @returns url
  */
-export const requireUrl = (path: string, name: string) => {
-  return new URL(`${path}/${name}`, import.meta.url).href
-}
+// export const requireUrl = (path: string, name: string) => {
+//   return new URL(`${path}/${name}`, import.meta.url).href
+// }
 
 /**
  * * 获取错误处理图片,默认 404 图
@@ -47,12 +49,8 @@ export const requireUrl = (path: string, name: string) => {
  * @param name
  * @returns url
  */
-export const requireFallbackImg = (path?: string, name?: string) => {
-  const url = path && name
-  return new URL(
-    url ? `${path}/${name}` : '../assets/images/exception/image-404.png',
-    import.meta.url
-  ).href
+export const requireFallbackImg = () => {
+  return Image_404
 }
 
 /**
@@ -78,11 +76,14 @@ export const screenfullFn = (isFullscreen?: boolean, isEnabled?: boolean) => {
 
 /**
  * * 设置元素属性
- * @param HTMLElement 元素 
+ * @param HTMLElement 元素
  * @param key 键名
  * @param value 键值
  */
-export const setDomAttribute = <K extends keyof CSSStyleDeclaration, V extends CSSStyleDeclaration[K]>(
+export const setDomAttribute = <
+  K extends keyof CSSStyleDeclaration,
+  V extends CSSStyleDeclaration[K]
+>(
   HTMLElement: HTMLElement,
   key: K,
   value: V
@@ -100,28 +101,28 @@ export const isMac = () => {
   return /macintosh|mac os x/i.test(navigator.userAgent)
 }
 
-/** 
+/**
  * * file转url
-*/
-export const fileToUrl = (file:File): string => {
-  const Url = URL || window.URL || window.webkitURL;
-  const ImageUrl = Url.createObjectURL(file);
+ */
+export const fileToUrl = (file: File): string => {
+  const Url = URL || window.URL || window.webkitURL
+  const ImageUrl = Url.createObjectURL(file)
   return ImageUrl
-};
+}
 
-/** 
+/**
  * * file转base64
-*/
-export const fileTobase64 = (file:File, callback: Function) => {
-  let reader = new FileReader();
-  reader.readAsDataURL(file);
+ */
+export const fileTobase64 = (file: File, callback: Function) => {
+  let reader = new FileReader()
+  reader.readAsDataURL(file)
   reader.onload = function (e: ProgressEvent<FileReader>) {
-    if(e.target) {
-      let base64 = e.target.result;
+    if (e.target) {
+      let base64 = e.target.result
       callback(base64)
     }
-  };
-};
+  }
+}
 
 /**
  * * 挂载监听
diff --git a/src/views/chart/ContentEdit/components/EditBottom/index.vue b/src/views/chart/ContentEdit/components/EditBottom/index.vue
index 7627fae5..3a805f56 100644
--- a/src/views/chart/ContentEdit/components/EditBottom/index.vue
+++ b/src/views/chart/ContentEdit/components/EditBottom/index.vue
@@ -48,7 +48,7 @@
         :min="10"
         :max="200"
         :step="5"
-        :format-tooltip="v => `${v}%`"
+        :format-tooltip="sliderFormatTooltip"
         :disabled="lockScale"
         :marks="sliderMaks"
         @update:value="sliderHandle"
@@ -124,6 +124,9 @@ const lockHandle = () => {
 // 拖动
 const sliderValue = ref(100)
 
+// 拖动格式化
+const sliderFormatTooltip =  (v: string) => `${v}%`
+
 // 拖动处理
 const sliderHandle = (v: number) => {
   chartEditStore.setScale(v / 100)
diff --git a/src/views/chart/ContentEdit/components/EditRange/index.vue b/src/views/chart/ContentEdit/components/EditRange/index.vue
index 492a08fe..5d5c2bcd 100644
--- a/src/views/chart/ContentEdit/components/EditRange/index.vue
+++ b/src/views/chart/ContentEdit/components/EditRange/index.vue
@@ -30,7 +30,7 @@ const rangeStyle = computed(() => {
   const background = getEditCanvasConfig.value.background
   const backgroundImage = getEditCanvasConfig.value.backgroundImage
   const selectColor = getEditCanvasConfig.value.selectColor
-  const backgroundColor = background ? background : null
+  const backgroundColor = background ? background : undefined
   const computedBackground = selectColor
     ? { background: backgroundColor }
     : { background: `url(${backgroundImage}) no-repeat center/100% !important` }
@@ -51,7 +51,6 @@ const rangeModelStyle = computed(() => {
   position: relative;
   border: 1px solid;
   border-radius: 15px;
-  background: url('@/assets/images/canvas/pageBg.png');
   @include fetch-theme('box-shadow');
   @include filter-border-color('hover-border-color');
   @include fetch-theme-custom('border-color', 'background-color4');
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index fa57848b..a2522074 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -118,7 +118,6 @@
 import { reactive, ref, onMounted } from 'vue'
 import {
   routerTurnByName,
-  requireUrl,
   cryptoEncode,
   setLocalStorage
 } from '@/utils'
@@ -199,7 +198,7 @@ const bgList = ref([
 
 // 处理url获取
 const getImageUrl = (name: string, folder: string) => {
-  return requireUrl(`../assets/images/${folder}/`, `${name}.png`)
+  return new URL(`../../assets/images/${folder}/${name}.png`, import.meta.url).href
 }
 
 // 打乱
diff --git a/src/views/project/items/components/Card/index.vue b/src/views/project/items/components/Card/index.vue
index 097d5aa2..a459faf2 100644
--- a/src/views/project/items/components/Card/index.vue
+++ b/src/views/project/items/components/Card/index.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="go-items-list-card">
+  <div v-if="cardData" class="go-items-list-card">
     <n-card hoverable size="small">
       <div class="list-content">
         <!-- 顶部按钮 -->
@@ -18,7 +18,7 @@
             height="200"
             preview-disabled
             :src="
-              requireUrl('../assets/images/project', 'moke-20211219181327.png')
+              requireUrl('project/moke-20211219181327.png')
             "
             :alt="cardData.title"
             :fallback-src="requireFallbackImg()"
@@ -83,7 +83,7 @@
 
 <script setup lang="ts">
 import { reactive, ref, PropType } from 'vue'
-import { renderIcon, renderLang, requireUrl, requireFallbackImg } from '@/utils'
+import { renderIcon, renderLang,  requireFallbackImg } from '@/utils'
 import { icon } from '@/plugins'
 import { MacOsControlBtn } from '@/components/MacOsControlBtn'
 import { Chartype } from '../../index.d'
@@ -99,12 +99,17 @@ const {
 } = icon.ionicons5
 
 const emit = defineEmits(['delete', 'resize', 'edit'])
-const t = window['$t']
 
 const props = defineProps({
   // todo 定义列表ITEN的 type
   cardData: Object as PropType<Chartype>
 })
+
+// 处理url获取
+const requireUrl = (name: string) => {
+  return new URL(`../../../../../assets/images/${name}`, import.meta.url).href
+}
+
 const fnBtnList = reactive([
   {
     label: renderLang('global.r_edit'),
diff --git a/src/views/project/items/components/List/hooks/useData.hook.ts b/src/views/project/items/components/List/hooks/useData.hook.ts
index d07936a9..79a5dcbc 100644
--- a/src/views/project/items/components/List/hooks/useData.hook.ts
+++ b/src/views/project/items/components/List/hooks/useData.hook.ts
@@ -1,34 +1,39 @@
-import { ref, Ref } from 'vue'
+import { ref } from 'vue'
 import { goDialog } from '@/utils'
 import { DialogEnum } from '@/enums/pluginEnum'
-
+import { ChartList } from '../../../index.d'
 // 数据初始化
 export const useDataListInit = () => {
-  const list = ref<{id: number, title:string, release: boolean}[]>([
+  const list = ref<ChartList>([
     {
       id: 1,
       title: '物料1',
-      release: true
+      release: true,
+      label: '官方案例'
     },
     {
       id: 2,
       title: '物料2',
-      release: false
+      release: false,
+      label: '官方案例'
     },
     {
       id: 3,
       title: '物料3',
-      release: false
+      release: false,
+      label: '官方案例'
     },
     {
       id: 4,
       title: '物料4',
-      release: false
+      release: false,
+      label: '官方案例'
     },
     {
       id: 5,
       title: '物料5',
-      release: false
+      release: false,
+      label: '官方案例'
     }
   ])
 
diff --git a/src/views/project/items/components/List/hooks/useModal.hook.ts b/src/views/project/items/components/List/hooks/useModal.hook.ts
index 76f63c9a..2c64bf8e 100644
--- a/src/views/project/items/components/List/hooks/useModal.hook.ts
+++ b/src/views/project/items/components/List/hooks/useModal.hook.ts
@@ -1,10 +1,10 @@
 import { ref, Ref } from 'vue'
 import { ChartEnum } from '@/enums/pageEnum'
 import { fetchPathByName, routerTurnByPath } from '@/utils'
+import { Chartype } from '../../../index.d'
 export const useModalDataInit = () => {
   const modalShow = ref<boolean>(false)
-  // TODO 补充 modalData 类型格式
-  const modalData = ref<object | null>(null)
+  const modalData = ref<Chartype | null>(null)
 
   // 关闭 modal
   const closeModal = () => {
@@ -13,15 +13,17 @@ export const useModalDataInit = () => {
   }
 
   // 打开 modal
-  const resizeHandle = (cardData: Ref<object | null>) => {
+  const resizeHandle = (cardData: Chartype) => {
+    if(!cardData) return
     modalShow.value = true
     modalData.value = cardData
   }
 
   // 打开 modal
-  const editHandle = (cardData: Ref<object | null>) => {
+  const editHandle = (cardData: Chartype) => {
+    if(!cardData) return
     const path = fetchPathByName(ChartEnum.CHART_HOME_NAME, 'href')
-    routerTurnByPath(path, [(<any>cardData).id], undefined, true)
+    routerTurnByPath(path, [cardData.id], undefined, true)
   }
 
   return {
diff --git a/src/views/project/items/components/List/index.vue b/src/views/project/items/components/List/index.vue
index cc13e758..9cdd4fef 100644
--- a/src/views/project/items/components/List/index.vue
+++ b/src/views/project/items/components/List/index.vue
@@ -17,6 +17,7 @@
     </n-grid>
   </div>
   <ModalCard
+    v-if="modalData"
     v-model:modalShow="modalShow"
     :cardData="modalData"
     @close="closeModal"
diff --git a/src/views/project/items/components/ModalCard/index.vue b/src/views/project/items/components/ModalCard/index.vue
index c31704b9..d6c94809 100644
--- a/src/views/project/items/components/ModalCard/index.vue
+++ b/src/views/project/items/components/ModalCard/index.vue
@@ -27,7 +27,7 @@
         <div class="list-content-img">
           <img
             :src="
-              requireUrl('../assets/images/project', 'moke-20211219181327.png')
+              requireUrl('/project/moke-20211219181327.png')
             "
             :alt="cardData?.title"
           />
@@ -76,7 +76,7 @@
 
 <script setup lang="ts">
 import { reactive } from 'vue'
-import { renderIcon, renderLang, requireUrl } from '@/utils'
+import { renderIcon, renderLang } from '@/utils'
 import { icon } from '@/plugins'
 import { MacOsControlBtn } from '@/components/MacOsControlBtn'
 
@@ -89,6 +89,11 @@ const props = defineProps({
   cardData: Object
 })
 
+// 处理url获取
+const requireUrl = (name: string) => {
+  return new URL(`../../../../../assets/images/${name}`, import.meta.url).href
+}
+
 const fnBtnList = reactive([
   {
     label: renderLang('global.r_edit'),
diff --git a/src/views/project/items/index.d.ts b/src/views/project/items/index.d.ts
index abd887ed..1795c4a5 100644
--- a/src/views/project/items/index.d.ts
+++ b/src/views/project/items/index.d.ts
@@ -1,11 +1,8 @@
 export type Chartype = {
   id: number | string
   title: string // 标题
-  lableId: string | number
   label: string // 标签
-  release: number // 0未发布 | 1已发布
-  icon: any
-  ['string']: string
+  release: boolean // 0未发布 | 1已发布
 }
 
 export type ChartList = Chartype[]
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
index 343709df..fdf7649f 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -9,8 +9,10 @@
     "sourceMap": true,
     "resolveJsonModule": true,
     "esModuleInterop": true,
+    "skipLibCheck": true,
     "lib": [
-      "esnext",
+      "es6",
+      "ESNext",
       "dom"
     ],
     "types": [