浏览代码

😁同步升级vue-next-admin v2.4.31

zuohuaijun 3 年之前
父节点
当前提交
9ec9b251d5

+ 12 - 0
Web/CHANGELOG.md

@@ -2,6 +2,18 @@
 
 🎉🎉🔥 `vue-next-admin` 基于 vue3.x 、Typescript、vite、Element plus 等,适配手机、平板、pc 的后台开源免费模板库(vue2.x 请切换 vue-prev-admin 分支)
 
+## 2.4.31
+
+`2023.03.10`
+
+- 🌟 更新 依赖更新最新版本
+- 🐞 修复 顶栏背景渐变设置不生效
+- 🐞 修复 顶栏背景渐变、菜单背景渐变时,深色主题不生效
+- 🐞 修复 顶栏搜索框移动端显示问题
+- 🎯 优化 `main.ts`,相关 issues [#I6KNFH](https://gitee.com/lyt-top/vue-next-admin/issues/I6KNFH)、[#I6JRH6](https://gitee.com/lyt-top/vue-next-admin/issues/I6JRH6)
+- 🎯 优化 菜单横向模式显示(horizontal)
+- 🎯 优化 分栏布局,[希望分栏布局做一下优化,在没有二级菜单的时候,直接全屏展示一级菜单链接](https://gitee.com/lyt-top/vue-next-admin/issues/I6HW7H),感谢[@jiuping](https://gitee.com/jiuping),`tagsview` 点击时处理 `收起/展开` 菜单
+
 ## 2.4.3
 
 `2023.02.22`

+ 6 - 19
Web/README.md

@@ -34,6 +34,7 @@
 
 - vue3.x 版本预览(vue-next-admin)<a href="https://lyt-top.gitee.io/vue-next-admin-preview/#/login" target="_blank">https://lyt-top.gitee.io/vue-next-admin-preview/#/login</a>
 - vue2.x 版本预览(vue-prev-admin)<a href="https://lyt-top.gitee.io/vue-prev-admin-preview/#/login" target="_blank">https://lyt-top.gitee.io/vue-prev-admin-preview/#/login</a>
+- vue3.x + uni-app 商城 H5(vue-next-admin-shop)<a href="https://lyt-top.gitee.io/vue-next-admin-shop-preview" target="_blank">https://lyt-top.gitee.io/vue-next-admin-shop-preview</a>
 
 #### 💒 代码仓库
 
@@ -82,25 +83,11 @@ cnpm run build
 
 #### 💯 学习交流加 QQ 群
 
-> 若加群了没同意(一般秒过),那就是群满了(500 人群),请换一个群试试。群会定期清理半年(6 个月)未发言的群友,资源有限,请谅解。建议勿加多群,可能会误伤!微信群由于只有 `7天有效` 就不放这里了。
-
-- 1 群:<a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=RdUY97Vx0T0vZ_1OOu-X1yFNkWgDwbjC&jump_from=webapi">665452019</a>
-- 2 群:<a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=zVfy3gNy7pNWVK3kMduDzwU369PZg2fw&jump_from=webapi">766356862</a>
-- 3 群:<a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=02EWb5P2JkP-8iwzaDadgFdxA0HSHPpn&jump_from=webapi">795345435</a>
-- 4 群:<a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=0gTFO04WwkeZZ6R4lju6gucbeXHK-wNd&jump_from=webapi">736626228</a>
-
-  <a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=RdUY97Vx0T0vZ_1OOu-X1yFNkWgDwbjC&jump_from=webapi">
-  	<img src="https://img-blog.csdnimg.cn/35e00f12a3fe4820892ec630ca72f15f.png" width="220" height="220" alt="vue-next-admin 讨论群1" title="vue-next-admin 讨论群1"/>
-  </a>
-  <a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=zVfy3gNy7pNWVK3kMduDzwU369PZg2fw&jump_from=webapi">
-  	<img src="https://img-blog.csdnimg.cn/5f1b548abd9f434eb41edde31d1c1fa9.png" width="220" height="220" alt="vue-next-admin 讨论群2" title="vue-next-admin 讨论群2"/>
-  </a>
-  <a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=02EWb5P2JkP-8iwzaDadgFdxA0HSHPpn&jump_from=webapi">
-  	<img src="https://img-blog.csdnimg.cn/70c8a012dd304246bddeac2184c4ab3a.png" width="220" height="220" alt="vue-next-admin 讨论群3" title="vue-next-admin 讨论群3"/>
-  </a>
-  <a target="_blank" href="https://qm.qq.com/cgi-bin/qm/qr?k=0gTFO04WwkeZZ6R4lju6gucbeXHK-wNd&jump_from=webapi">
-  	<img src="https://img-blog.csdnimg.cn/e5c9704eed1342bc9d9e74b37203402d.png" width="220" height="220" alt="vue-next-admin 讨论群4" title="vue-next-admin 讨论群4"/>
-  </a>
+> 1 - 4 交流群已满,请加 vue-next-admin 交流群 5
+
+群号:556254895
+
+其它交流群请查看文档首页 [vueNextAdmin 解疑问](https://lyt-top.gitee.io/vue-next-admin-doc-preview/)
 
 #### 💒 集成后端
 

+ 11 - 11
Web/package.json

@@ -1,6 +1,6 @@
 {
 	"name": "vue-next-admin",
-	"version": "2.4.3",
+	"version": "2.4.31",
 	"description": "vue3 vite next admin template",
 	"author": "lyt_20201208",
 	"license": "MIT",
@@ -10,28 +10,28 @@
 		"lint-fix": "eslint --fix --ext .js --ext .jsx --ext .vue src/"
 	},
 	"dependencies": {
-		"@element-plus/icons-vue": "^2.0.10",
+		"@element-plus/icons-vue": "^2.1.0",
 		"@microsoft/signalr": "^6.0.10",
 		"@wangeditor/editor": "^5.1.23",
 		"@wangeditor/editor-for-vue": "^5.1.12",
 		"animate.css": "^4.1.1",
-		"axios": "^1.3.3",
-		"countup.js": "^2.4.2",
+		"axios": "^1.3.4",
+		"countup.js": "^2.5.0",
 		"cropperjs": "^1.5.13",
 		"echarts": "^5.4.1",
 		"echarts-gl": "^2.0.9",
 		"echarts-wordcloud": "^2.1.0",
-		"element-plus": "^2.2.32",
+		"element-plus": "^2.2.36",
 		"js-cookie": "^3.0.1",
 		"js-table2excel": "^1.0.3",
 		"jsplumb": "^2.15.6",
 		"mitt": "^3.0.0",
 		"monaco-editor": "^0.34.1",
 		"nprogress": "^0.2.0",
-		"pinia": "^2.0.32",
+		"pinia": "^2.0.33",
 		"print-js": "^1.6.0",
 		"qrcodejs2-fixes": "^0.0.2",
-		"qs": "^6.11.0",
+		"qs": "^6.11.1",
 		"screenfull": "^6.0.2",
 		"sortablejs": "^1.15.0",
 		"splitpanes": "^3.1.5",
@@ -46,14 +46,14 @@
 		"vue3-tree-org": "^4.1.1"
 	},
 	"devDependencies": {
-		"@types/node": "^18.14.0",
+		"@types/node": "^18.15.0",
 		"@types/nprogress": "^0.2.0",
 		"@types/sortablejs": "^1.15.0",
-		"@typescript-eslint/eslint-plugin": "^5.53.0",
-		"@typescript-eslint/parser": "^5.53.0",
+		"@typescript-eslint/eslint-plugin": "^5.54.1",
+		"@typescript-eslint/parser": "^5.54.1",
 		"@vitejs/plugin-vue": "^4.0.0",
 		"@vue/compiler-sfc": "^3.2.47",
-		"eslint": "^8.34.0",
+		"eslint": "^8.35.0",
 		"eslint-plugin-vue": "^9.9.0",
 		"prettier": "^2.8.4",
 		"sass": "^1.58.3",

+ 157 - 118
Web/pnpm-lock.yaml

@@ -1,26 +1,26 @@
 lockfileVersion: 5.4
 
 specifiers:
-  '@element-plus/icons-vue': ^2.0.10
+  '@element-plus/icons-vue': ^2.1.0
   '@microsoft/signalr': ^6.0.10
-  '@types/node': ^18.14.0
+  '@types/node': ^18.15.0
   '@types/nprogress': ^0.2.0
   '@types/sortablejs': ^1.15.0
-  '@typescript-eslint/eslint-plugin': ^5.53.0
-  '@typescript-eslint/parser': ^5.53.0
+  '@typescript-eslint/eslint-plugin': ^5.54.1
+  '@typescript-eslint/parser': ^5.54.1
   '@vitejs/plugin-vue': ^4.0.0
   '@vue/compiler-sfc': ^3.2.47
   '@wangeditor/editor': ^5.1.23
   '@wangeditor/editor-for-vue': ^5.1.12
   animate.css: ^4.1.1
-  axios: ^1.3.3
-  countup.js: ^2.4.2
+  axios: ^1.3.4
+  countup.js: ^2.5.0
   cropperjs: ^1.5.13
   echarts: ^5.4.1
   echarts-gl: ^2.0.9
   echarts-wordcloud: ^2.1.0
-  element-plus: ^2.2.32
-  eslint: ^8.34.0
+  element-plus: ^2.2.36
+  eslint: ^8.35.0
   eslint-plugin-vue: ^9.9.0
   js-cookie: ^3.0.1
   js-table2excel: ^1.0.3
@@ -28,11 +28,11 @@ specifiers:
   mitt: ^3.0.0
   monaco-editor: ^0.34.1
   nprogress: ^0.2.0
-  pinia: ^2.0.32
+  pinia: ^2.0.33
   prettier: ^2.8.4
   print-js: ^1.6.0
   qrcodejs2-fixes: ^0.0.2
-  qs: ^6.11.0
+  qs: ^6.11.1
   sass: ^1.58.3
   screenfull: ^6.0.2
   sortablejs: ^1.15.0
@@ -52,28 +52,28 @@ specifiers:
   vue3-tree-org: ^4.1.1
 
 dependencies:
-  '@element-plus/icons-vue': registry.npmmirror.com/@element-plus/icons-vue/2.0.10_vue@3.2.47
+  '@element-plus/icons-vue': registry.npmmirror.com/@element-plus/icons-vue/2.1.0_vue@3.2.47
   '@microsoft/signalr': registry.npmmirror.com/@microsoft/signalr/6.0.14
   '@wangeditor/editor': registry.npmmirror.com/@wangeditor/editor/5.1.23
   '@wangeditor/editor-for-vue': registry.npmmirror.com/@wangeditor/editor-for-vue/5.1.12_77ywgcaevzgjoxs6yixvgo4fve
   animate.css: registry.npmmirror.com/animate.css/4.1.1
   axios: registry.npmmirror.com/axios/1.3.4
-  countup.js: registry.npmmirror.com/countup.js/2.4.2
+  countup.js: registry.npmmirror.com/countup.js/2.5.0
   cropperjs: registry.npmmirror.com/cropperjs/1.5.13
   echarts: registry.npmmirror.com/echarts/5.4.1
   echarts-gl: registry.npmmirror.com/echarts-gl/2.0.9_echarts@5.4.1
   echarts-wordcloud: registry.npmmirror.com/echarts-wordcloud/2.1.0_echarts@5.4.1
-  element-plus: registry.npmmirror.com/element-plus/2.2.32_vue@3.2.47
+  element-plus: registry.npmmirror.com/element-plus/2.2.36_vue@3.2.47
   js-cookie: registry.npmmirror.com/js-cookie/3.0.1
   js-table2excel: registry.npmmirror.com/js-table2excel/1.0.3
   jsplumb: registry.npmmirror.com/jsplumb/2.15.6
   mitt: registry.npmmirror.com/mitt/3.0.0
   monaco-editor: registry.npmmirror.com/monaco-editor/0.34.1
   nprogress: registry.npmmirror.com/nprogress/0.2.0
-  pinia: registry.npmmirror.com/pinia/2.0.32_hmuptsblhheur2tugfgucj7gc4
+  pinia: registry.npmmirror.com/pinia/2.0.33_hmuptsblhheur2tugfgucj7gc4
   print-js: registry.npmmirror.com/print-js/1.6.0
   qrcodejs2-fixes: registry.npmmirror.com/qrcodejs2-fixes/0.0.2
-  qs: registry.npmmirror.com/qs/6.11.0
+  qs: registry.npmmirror.com/qs/6.11.1
   screenfull: registry.npmmirror.com/screenfull/6.0.2
   sortablejs: registry.npmmirror.com/sortablejs/1.15.0
   splitpanes: registry.npmmirror.com/splitpanes/3.1.5
@@ -88,21 +88,21 @@ dependencies:
   vue3-tree-org: registry.npmmirror.com/vue3-tree-org/4.2.1_vue@3.2.47
 
 devDependencies:
-  '@types/node': registry.npmmirror.com/@types/node/18.14.1
+  '@types/node': registry.npmmirror.com/@types/node/18.15.0
   '@types/nprogress': registry.npmmirror.com/@types/nprogress/0.2.0
   '@types/sortablejs': registry.npmmirror.com/@types/sortablejs/1.15.0
-  '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.53.0_ny4s7qc6yg74faf3d6xty2ofzy
-  '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser/5.53.0_7kw3g6rralp5ps6mg3uyzz6azm
+  '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.54.1_4rfaf6mlw2mmutqjcopwvbftpu
+  '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser/5.54.1_vgl77cfdswitgr47lm5swmv43m
   '@vitejs/plugin-vue': registry.npmmirror.com/@vitejs/plugin-vue/4.0.0_vite@4.1.4+vue@3.2.47
   '@vue/compiler-sfc': registry.npmmirror.com/@vue/compiler-sfc/3.2.47
-  eslint: registry.npmmirror.com/eslint/8.34.0
-  eslint-plugin-vue: registry.npmmirror.com/eslint-plugin-vue/9.9.0_eslint@8.34.0
+  eslint: registry.npmmirror.com/eslint/8.36.0
+  eslint-plugin-vue: registry.npmmirror.com/eslint-plugin-vue/9.9.0_eslint@8.36.0
   prettier: registry.npmmirror.com/prettier/2.8.4
   sass: registry.npmmirror.com/sass/1.58.3
   typescript: registry.npmmirror.com/typescript/4.9.5
-  vite: registry.npmmirror.com/vite/4.1.4_435aevtanapkguv7m72cl6trbi
+  vite: registry.npmmirror.com/vite/4.1.4_6e4omgvd5jf4hig7wpb5tmdc3q
   vite-plugin-vue-setup-extend: registry.npmmirror.com/vite-plugin-vue-setup-extend/0.4.0_vite@4.1.4
-  vue-eslint-parser: registry.npmmirror.com/vue-eslint-parser/9.1.0_eslint@8.34.0
+  vue-eslint-parser: registry.npmmirror.com/vue-eslint-parser/9.1.0_eslint@8.36.0
 
 packages:
 
@@ -153,11 +153,11 @@ packages:
     engines: {node: '>=10'}
     dev: false
 
-  registry.npmmirror.com/@element-plus/icons-vue/2.0.10_vue@3.2.47:
-    resolution: {integrity: sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.0.10.tgz}
-    id: registry.npmmirror.com/@element-plus/icons-vue/2.0.10
+  registry.npmmirror.com/@element-plus/icons-vue/2.1.0_vue@3.2.47:
+    resolution: {integrity: sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.1.0.tgz}
+    id: registry.npmmirror.com/@element-plus/icons-vue/2.1.0
     name: '@element-plus/icons-vue'
-    version: 2.0.10
+    version: 2.1.0
     peerDependencies:
       vue: ^3.2.0
     dependencies:
@@ -406,15 +406,35 @@ packages:
     dev: true
     optional: true
 
-  registry.npmmirror.com/@eslint/eslintrc/1.4.1:
-    resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz}
+  registry.npmmirror.com/@eslint-community/eslint-utils/4.2.0_eslint@8.36.0:
+    resolution: {integrity: sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz}
+    id: registry.npmmirror.com/@eslint-community/eslint-utils/4.2.0
+    name: '@eslint-community/eslint-utils'
+    version: 4.2.0
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+    peerDependencies:
+      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+    dependencies:
+      eslint: registry.npmmirror.com/eslint/8.36.0
+      eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.3.0
+    dev: true
+
+  registry.npmmirror.com/@eslint-community/regexpp/4.4.0:
+    resolution: {integrity: sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.4.0.tgz}
+    name: '@eslint-community/regexpp'
+    version: 4.4.0
+    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+    dev: true
+
+  registry.npmmirror.com/@eslint/eslintrc/2.0.1:
+    resolution: {integrity: sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-2.0.1.tgz}
     name: '@eslint/eslintrc'
-    version: 1.4.1
+    version: 2.0.1
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dependencies:
       ajv: registry.npmmirror.com/ajv/6.12.6
       debug: registry.npmmirror.com/debug/4.3.4
-      espree: registry.npmmirror.com/espree/9.4.1
+      espree: registry.npmmirror.com/espree/9.5.0
       globals: registry.npmmirror.com/globals/13.20.0
       ignore: registry.npmmirror.com/ignore/5.2.4
       import-fresh: registry.npmmirror.com/import-fresh/3.3.0
@@ -425,6 +445,13 @@ packages:
       - supports-color
     dev: true
 
+  registry.npmmirror.com/@eslint/js/8.36.0:
+    resolution: {integrity: sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint/js/-/js-8.36.0.tgz}
+    name: '@eslint/js'
+    version: 8.36.0
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+    dev: true
+
   registry.npmmirror.com/@floating-ui/core/1.2.1:
     resolution: {integrity: sha512-LSqwPZkK3rYfD7GKoIeExXOyYx6Q1O4iqZWwIehDNuv3Dv425FIAE8PRwtAx1imEolFTHgBEcoFHm9MDnYgPCg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/core/-/core-1.2.1.tgz}
     name: '@floating-ui/core'
@@ -855,10 +882,10 @@ packages:
     version: 4.14.191
     dev: false
 
-  registry.npmmirror.com/@types/node/18.14.1:
-    resolution: {integrity: sha512-QH+37Qds3E0eDlReeboBxfHbX9omAcBCXEzswCu6jySP642jiM3cYSIkU/REqwhCUqXdonHFuBfJDiAJxMNhaQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-18.14.1.tgz}
+  registry.npmmirror.com/@types/node/18.15.0:
+    resolution: {integrity: sha512-z6nr0TTEOBGkzLGmbypWOGnpSpSIBorEhC4L+4HeQ2iezKCi4f77kyslRwvHeNitymGQ+oFyIWGP96l/DPSV9w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-18.15.0.tgz}
     name: '@types/node'
-    version: 18.14.1
+    version: 18.15.0
     dev: true
 
   registry.npmmirror.com/@types/nprogress/0.2.0:
@@ -885,11 +912,11 @@ packages:
     version: 0.0.16
     dev: false
 
-  registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.53.0_ny4s7qc6yg74faf3d6xty2ofzy:
-    resolution: {integrity: sha512-alFpFWNucPLdUOySmXCJpzr6HKC3bu7XooShWM+3w/EL6J2HIoB2PFxpLnq4JauWVk6DiVeNKzQlFEaE+X9sGw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.53.0.tgz}
-    id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.53.0
+  registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.54.1_4rfaf6mlw2mmutqjcopwvbftpu:
+    resolution: {integrity: sha512-a2RQAkosH3d3ZIV08s3DcL/mcGc2M/UC528VkPULFxR9VnVPT8pBu0IyBAJJmVsCmhVfwQX1v6q+QGnmSe1bew==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.54.1.tgz}
+    id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.54.1
     name: '@typescript-eslint/eslint-plugin'
-    version: 5.53.0
+    version: 5.54.1
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     peerDependencies:
       '@typescript-eslint/parser': ^5.0.0
@@ -899,12 +926,12 @@ packages:
       typescript:
         optional: true
     dependencies:
-      '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser/5.53.0_7kw3g6rralp5ps6mg3uyzz6azm
-      '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager/5.53.0
-      '@typescript-eslint/type-utils': registry.npmmirror.com/@typescript-eslint/type-utils/5.53.0_7kw3g6rralp5ps6mg3uyzz6azm
-      '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils/5.53.0_7kw3g6rralp5ps6mg3uyzz6azm
+      '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser/5.54.1_vgl77cfdswitgr47lm5swmv43m
+      '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager/5.54.1
+      '@typescript-eslint/type-utils': registry.npmmirror.com/@typescript-eslint/type-utils/5.54.1_vgl77cfdswitgr47lm5swmv43m
+      '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils/5.54.1_vgl77cfdswitgr47lm5swmv43m
       debug: registry.npmmirror.com/debug/4.3.4
-      eslint: registry.npmmirror.com/eslint/8.34.0
+      eslint: registry.npmmirror.com/eslint/8.36.0
       grapheme-splitter: registry.npmmirror.com/grapheme-splitter/1.0.4
       ignore: registry.npmmirror.com/ignore/5.2.4
       natural-compare-lite: registry.npmmirror.com/natural-compare-lite/1.4.0
@@ -916,11 +943,11 @@ packages:
       - supports-color
     dev: true
 
-  registry.npmmirror.com/@typescript-eslint/parser/5.53.0_7kw3g6rralp5ps6mg3uyzz6azm:
-    resolution: {integrity: sha512-MKBw9i0DLYlmdOb3Oq/526+al20AJZpANdT6Ct9ffxcV8nKCHz63t/S0IhlTFNsBIHJv+GY5SFJ0XfqVeydQrQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.53.0.tgz}
-    id: registry.npmmirror.com/@typescript-eslint/parser/5.53.0
+  registry.npmmirror.com/@typescript-eslint/parser/5.54.1_vgl77cfdswitgr47lm5swmv43m:
+    resolution: {integrity: sha512-8zaIXJp/nG9Ff9vQNh7TI+C3nA6q6iIsGJ4B4L6MhZ7mHnTMR4YP5vp2xydmFXIy8rpyIVbNAG44871LMt6ujg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.54.1.tgz}
+    id: registry.npmmirror.com/@typescript-eslint/parser/5.54.1
     name: '@typescript-eslint/parser'
-    version: 5.53.0
+    version: 5.54.1
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     peerDependencies:
       eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
@@ -929,31 +956,31 @@ packages:
       typescript:
         optional: true
     dependencies:
-      '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager/5.53.0
-      '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.53.0
-      '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree/5.53.0_typescript@4.9.5
+      '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager/5.54.1
+      '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.54.1
+      '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree/5.54.1_typescript@4.9.5
       debug: registry.npmmirror.com/debug/4.3.4
-      eslint: registry.npmmirror.com/eslint/8.34.0
+      eslint: registry.npmmirror.com/eslint/8.36.0
       typescript: registry.npmmirror.com/typescript/4.9.5
     transitivePeerDependencies:
       - supports-color
     dev: true
 
-  registry.npmmirror.com/@typescript-eslint/scope-manager/5.53.0:
-    resolution: {integrity: sha512-Opy3dqNsp/9kBBeCPhkCNR7fmdSQqA+47r21hr9a14Bx0xnkElEQmhoHga+VoaoQ6uDHjDKmQPIYcUcKJifS7w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.53.0.tgz}
+  registry.npmmirror.com/@typescript-eslint/scope-manager/5.54.1:
+    resolution: {integrity: sha512-zWKuGliXxvuxyM71UA/EcPxaviw39dB2504LqAmFDjmkpO8qNLHcmzlh6pbHs1h/7YQ9bnsO8CCcYCSA8sykUg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.54.1.tgz}
     name: '@typescript-eslint/scope-manager'
-    version: 5.53.0
+    version: 5.54.1
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dependencies:
-      '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.53.0
-      '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys/5.53.0
+      '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.54.1
+      '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys/5.54.1
     dev: true
 
-  registry.npmmirror.com/@typescript-eslint/type-utils/5.53.0_7kw3g6rralp5ps6mg3uyzz6azm:
-    resolution: {integrity: sha512-HO2hh0fmtqNLzTAme/KnND5uFNwbsdYhCZghK2SoxGp3Ifn2emv+hi0PBUjzzSh0dstUIFqOj3bp0AwQlK4OWw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.53.0.tgz}
-    id: registry.npmmirror.com/@typescript-eslint/type-utils/5.53.0
+  registry.npmmirror.com/@typescript-eslint/type-utils/5.54.1_vgl77cfdswitgr47lm5swmv43m:
+    resolution: {integrity: sha512-WREHsTz0GqVYLIbzIZYbmUUr95DKEKIXZNH57W3s+4bVnuF1TKe2jH8ZNH8rO1CeMY3U4j4UQeqPNkHMiGem3g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.54.1.tgz}
+    id: registry.npmmirror.com/@typescript-eslint/type-utils/5.54.1
     name: '@typescript-eslint/type-utils'
-    version: 5.53.0
+    version: 5.54.1
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     peerDependencies:
       eslint: '*'
@@ -962,28 +989,28 @@ packages:
       typescript:
         optional: true
     dependencies:
-      '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree/5.53.0_typescript@4.9.5
-      '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils/5.53.0_7kw3g6rralp5ps6mg3uyzz6azm
+      '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree/5.54.1_typescript@4.9.5
+      '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils/5.54.1_vgl77cfdswitgr47lm5swmv43m
       debug: registry.npmmirror.com/debug/4.3.4
-      eslint: registry.npmmirror.com/eslint/8.34.0
+      eslint: registry.npmmirror.com/eslint/8.36.0
       tsutils: registry.npmmirror.com/tsutils/3.21.0_typescript@4.9.5
       typescript: registry.npmmirror.com/typescript/4.9.5
     transitivePeerDependencies:
       - supports-color
     dev: true
 
-  registry.npmmirror.com/@typescript-eslint/types/5.53.0:
-    resolution: {integrity: sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.53.0.tgz}
+  registry.npmmirror.com/@typescript-eslint/types/5.54.1:
+    resolution: {integrity: sha512-G9+1vVazrfAfbtmCapJX8jRo2E4MDXxgm/IMOF4oGh3kq7XuK3JRkOg6y2Qu1VsTRmWETyTkWt1wxy7X7/yLkw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.54.1.tgz}
     name: '@typescript-eslint/types'
-    version: 5.53.0
+    version: 5.54.1
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dev: true
 
-  registry.npmmirror.com/@typescript-eslint/typescript-estree/5.53.0_typescript@4.9.5:
-    resolution: {integrity: sha512-eKmipH7QyScpHSkhbptBBYh9v8FxtngLquq292YTEQ1pxVs39yFBlLC1xeIZcPPz1RWGqb7YgERJRGkjw8ZV7w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.53.0.tgz}
-    id: registry.npmmirror.com/@typescript-eslint/typescript-estree/5.53.0
+  registry.npmmirror.com/@typescript-eslint/typescript-estree/5.54.1_typescript@4.9.5:
+    resolution: {integrity: sha512-bjK5t+S6ffHnVwA0qRPTZrxKSaFYocwFIkZx5k7pvWfsB1I57pO/0M0Skatzzw1sCkjJ83AfGTL0oFIFiDX3bg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.54.1.tgz}
+    id: registry.npmmirror.com/@typescript-eslint/typescript-estree/5.54.1
     name: '@typescript-eslint/typescript-estree'
-    version: 5.53.0
+    version: 5.54.1
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     peerDependencies:
       typescript: '*'
@@ -991,8 +1018,8 @@ packages:
       typescript:
         optional: true
     dependencies:
-      '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.53.0
-      '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys/5.53.0
+      '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.54.1
+      '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys/5.54.1
       debug: registry.npmmirror.com/debug/4.3.4
       globby: registry.npmmirror.com/globby/11.1.0
       is-glob: registry.npmmirror.com/is-glob/4.0.3
@@ -1003,36 +1030,36 @@ packages:
       - supports-color
     dev: true
 
-  registry.npmmirror.com/@typescript-eslint/utils/5.53.0_7kw3g6rralp5ps6mg3uyzz6azm:
-    resolution: {integrity: sha512-VUOOtPv27UNWLxFwQK/8+7kvxVC+hPHNsJjzlJyotlaHjLSIgOCKj9I0DBUjwOOA64qjBwx5afAPjksqOxMO0g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.53.0.tgz}
-    id: registry.npmmirror.com/@typescript-eslint/utils/5.53.0
+  registry.npmmirror.com/@typescript-eslint/utils/5.54.1_vgl77cfdswitgr47lm5swmv43m:
+    resolution: {integrity: sha512-IY5dyQM8XD1zfDe5X8jegX6r2EVU5o/WJnLu/znLPWCBF7KNGC+adacXnt5jEYS9JixDcoccI6CvE4RCjHMzCQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.54.1.tgz}
+    id: registry.npmmirror.com/@typescript-eslint/utils/5.54.1
     name: '@typescript-eslint/utils'
-    version: 5.53.0
+    version: 5.54.1
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     peerDependencies:
       eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
     dependencies:
       '@types/json-schema': registry.npmmirror.com/@types/json-schema/7.0.11
       '@types/semver': registry.npmmirror.com/@types/semver/7.3.13
-      '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager/5.53.0
-      '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.53.0
-      '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree/5.53.0_typescript@4.9.5
-      eslint: registry.npmmirror.com/eslint/8.34.0
+      '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager/5.54.1
+      '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.54.1
+      '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree/5.54.1_typescript@4.9.5
+      eslint: registry.npmmirror.com/eslint/8.36.0
       eslint-scope: registry.npmmirror.com/eslint-scope/5.1.1
-      eslint-utils: registry.npmmirror.com/eslint-utils/3.0.0_eslint@8.34.0
+      eslint-utils: registry.npmmirror.com/eslint-utils/3.0.0_eslint@8.36.0
       semver: registry.npmmirror.com/semver/7.3.8
     transitivePeerDependencies:
       - supports-color
       - typescript
     dev: true
 
-  registry.npmmirror.com/@typescript-eslint/visitor-keys/5.53.0:
-    resolution: {integrity: sha512-JqNLnX3leaHFZEN0gCh81sIvgrp/2GOACZNgO4+Tkf64u51kTpAyWFOY8XHx8XuXr3N2C9zgPPHtcpMg6z1g0w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.53.0.tgz}
+  registry.npmmirror.com/@typescript-eslint/visitor-keys/5.54.1:
+    resolution: {integrity: sha512-q8iSoHTgwCfgcRJ2l2x+xCbu8nBlRAlsQ33k24Adj8eoVBE0f8dUeI+bAa8F84Mv05UGbAx57g2zrRsYIooqQg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.54.1.tgz}
     name: '@typescript-eslint/visitor-keys'
-    version: 5.53.0
+    version: 5.54.1
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dependencies:
-      '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.53.0
+      '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types/5.54.1
       eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.3.0
     dev: true
 
@@ -1098,7 +1125,7 @@ packages:
       vite: ^4.0.0
       vue: ^3.2.25
     dependencies:
-      vite: registry.npmmirror.com/vite/4.1.4_435aevtanapkguv7m72cl6trbi
+      vite: registry.npmmirror.com/vite/4.1.4_6e4omgvd5jf4hig7wpb5tmdc3q
       vue: registry.npmmirror.com/vue/3.2.47
     dev: true
 
@@ -1700,10 +1727,10 @@ packages:
     requiresBuild: true
     dev: false
 
-  registry.npmmirror.com/countup.js/2.4.2:
-    resolution: {integrity: sha512-EExCcu5rd7ffBj65B3CVNuS1HddN1Y4WuTfJEuocJXwZlNnlXZQ4sD9M/Cq32ZS0zR38F9vGMCw/iFcVImrNbw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/countup.js/-/countup.js-2.4.2.tgz}
+  registry.npmmirror.com/countup.js/2.5.0:
+    resolution: {integrity: sha512-/59H8Q6wzu6VfHeqGUgXoyh6kgboGr5mALmRKi8YA11DlcaXSnT1PZG6mTyBRLco4ZjExKlmfNHeMbQgZvis9Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/countup.js/-/countup.js-2.5.0.tgz}
     name: countup.js
-    version: 2.4.2
+    version: 2.5.0
     dev: false
 
   registry.npmmirror.com/cropperjs/1.5.13:
@@ -1843,16 +1870,16 @@ packages:
       zrender: registry.npmmirror.com/zrender/5.4.1
     dev: false
 
-  registry.npmmirror.com/element-plus/2.2.32_vue@3.2.47:
-    resolution: {integrity: sha512-DTJMhYOy6MApbmh6z/95hPTK5WrBiNHGzV4IN+uEkup1WoimQ+Qyt8RxKdTe/X1LWEJ8YgWv/Cl8P4ocrt5z5g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/element-plus/-/element-plus-2.2.32.tgz}
-    id: registry.npmmirror.com/element-plus/2.2.32
+  registry.npmmirror.com/element-plus/2.2.36_vue@3.2.47:
+    resolution: {integrity: sha512-9DzLqOVuw8P5Ck8Uqd9XdnDYVg2Z3iosZ1gtk2xDCWNqeoACpldP5gxa/Hbfgp4QeA3xC+f3g+UeoKKu79l28g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/element-plus/-/element-plus-2.2.36.tgz}
+    id: registry.npmmirror.com/element-plus/2.2.36
     name: element-plus
-    version: 2.2.32
+    version: 2.2.36
     peerDependencies:
       vue: ^3.2.0
     dependencies:
       '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor/3.6.0
-      '@element-plus/icons-vue': registry.npmmirror.com/@element-plus/icons-vue/2.0.10_vue@3.2.47
+      '@element-plus/icons-vue': registry.npmmirror.com/@element-plus/icons-vue/2.1.0_vue@3.2.47
       '@floating-ui/dom': registry.npmmirror.com/@floating-ui/dom/1.2.1
       '@popperjs/core': registry.npmmirror.com/@sxzz/popperjs-es/2.11.7
       '@types/lodash': registry.npmmirror.com/@types/lodash/4.14.191
@@ -1955,7 +1982,7 @@ packages:
     engines: {node: '>=10'}
     dev: true
 
-  registry.npmmirror.com/eslint-plugin-vue/9.9.0_eslint@8.34.0:
+  registry.npmmirror.com/eslint-plugin-vue/9.9.0_eslint@8.36.0:
     resolution: {integrity: sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.9.0.tgz}
     id: registry.npmmirror.com/eslint-plugin-vue/9.9.0
     name: eslint-plugin-vue
@@ -1964,13 +1991,13 @@ packages:
     peerDependencies:
       eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
     dependencies:
-      eslint: registry.npmmirror.com/eslint/8.34.0
-      eslint-utils: registry.npmmirror.com/eslint-utils/3.0.0_eslint@8.34.0
+      eslint: registry.npmmirror.com/eslint/8.36.0
+      eslint-utils: registry.npmmirror.com/eslint-utils/3.0.0_eslint@8.36.0
       natural-compare: registry.npmmirror.com/natural-compare/1.4.0
       nth-check: registry.npmmirror.com/nth-check/2.1.1
       postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser/6.0.11
       semver: registry.npmmirror.com/semver/7.3.8
-      vue-eslint-parser: registry.npmmirror.com/vue-eslint-parser/9.1.0_eslint@8.34.0
+      vue-eslint-parser: registry.npmmirror.com/vue-eslint-parser/9.1.0_eslint@8.36.0
       xml-name-validator: registry.npmmirror.com/xml-name-validator/4.0.0
     transitivePeerDependencies:
       - supports-color
@@ -1996,7 +2023,7 @@ packages:
       estraverse: registry.npmmirror.com/estraverse/5.3.0
     dev: true
 
-  registry.npmmirror.com/eslint-utils/3.0.0_eslint@8.34.0:
+  registry.npmmirror.com/eslint-utils/3.0.0_eslint@8.36.0:
     resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz}
     id: registry.npmmirror.com/eslint-utils/3.0.0
     name: eslint-utils
@@ -2005,7 +2032,7 @@ packages:
     peerDependencies:
       eslint: '>=5'
     dependencies:
-      eslint: registry.npmmirror.com/eslint/8.34.0
+      eslint: registry.npmmirror.com/eslint/8.36.0
       eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/2.1.0
     dev: true
 
@@ -2023,14 +2050,17 @@ packages:
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     dev: true
 
-  registry.npmmirror.com/eslint/8.34.0:
-    resolution: {integrity: sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint/-/eslint-8.34.0.tgz}
+  registry.npmmirror.com/eslint/8.36.0:
+    resolution: {integrity: sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint/-/eslint-8.36.0.tgz}
     name: eslint
-    version: 8.34.0
+    version: 8.36.0
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     hasBin: true
     dependencies:
-      '@eslint/eslintrc': registry.npmmirror.com/@eslint/eslintrc/1.4.1
+      '@eslint-community/eslint-utils': registry.npmmirror.com/@eslint-community/eslint-utils/4.2.0_eslint@8.36.0
+      '@eslint-community/regexpp': registry.npmmirror.com/@eslint-community/regexpp/4.4.0
+      '@eslint/eslintrc': registry.npmmirror.com/@eslint/eslintrc/2.0.1
+      '@eslint/js': registry.npmmirror.com/@eslint/js/8.36.0
       '@humanwhocodes/config-array': registry.npmmirror.com/@humanwhocodes/config-array/0.11.8
       '@humanwhocodes/module-importer': registry.npmmirror.com/@humanwhocodes/module-importer/1.0.1
       '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk/1.2.8
@@ -2041,9 +2071,8 @@ packages:
       doctrine: registry.npmmirror.com/doctrine/3.0.0
       escape-string-regexp: registry.npmmirror.com/escape-string-regexp/4.0.0
       eslint-scope: registry.npmmirror.com/eslint-scope/7.1.1
-      eslint-utils: registry.npmmirror.com/eslint-utils/3.0.0_eslint@8.34.0
       eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.3.0
-      espree: registry.npmmirror.com/espree/9.4.1
+      espree: registry.npmmirror.com/espree/9.5.0
       esquery: registry.npmmirror.com/esquery/1.4.2
       esutils: registry.npmmirror.com/esutils/2.0.3
       fast-deep-equal: registry.npmmirror.com/fast-deep-equal/3.1.3
@@ -2065,7 +2094,6 @@ packages:
       minimatch: registry.npmmirror.com/minimatch/3.1.2
       natural-compare: registry.npmmirror.com/natural-compare/1.4.0
       optionator: registry.npmmirror.com/optionator/0.9.1
-      regexpp: registry.npmmirror.com/regexpp/3.2.0
       strip-ansi: registry.npmmirror.com/strip-ansi/6.0.1
       strip-json-comments: registry.npmmirror.com/strip-json-comments/3.1.1
       text-table: registry.npmmirror.com/text-table/0.2.0
@@ -2084,6 +2112,17 @@ packages:
       eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.3.0
     dev: true
 
+  registry.npmmirror.com/espree/9.5.0:
+    resolution: {integrity: sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/espree/-/espree-9.5.0.tgz}
+    name: espree
+    version: 9.5.0
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+    dependencies:
+      acorn: registry.npmmirror.com/acorn/8.8.2
+      acorn-jsx: registry.npmmirror.com/acorn-jsx/5.3.2_acorn@8.8.2
+      eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.3.0
+    dev: true
+
   registry.npmmirror.com/esquery/1.4.2:
     resolution: {integrity: sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esquery/-/esquery-1.4.2.tgz}
     name: esquery
@@ -2945,11 +2984,11 @@ packages:
     engines: {node: '>=8.6'}
     dev: true
 
-  registry.npmmirror.com/pinia/2.0.32_hmuptsblhheur2tugfgucj7gc4:
-    resolution: {integrity: sha512-8Tw4OrpCSJ028UUyp0gYPP/wyjigLoEceuO/x1G+FlHVf73337e5vLm4uDmrRIoBG1hvaed/eSHnrCFjOc4nkA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pinia/-/pinia-2.0.32.tgz}
-    id: registry.npmmirror.com/pinia/2.0.32
+  registry.npmmirror.com/pinia/2.0.33_hmuptsblhheur2tugfgucj7gc4:
+    resolution: {integrity: sha512-HOj1yVV2itw6rNIrR2f7+MirGNxhORjrULL8GWgRwXsGSvEqIQ+SE0MYt6cwtpegzCda3i+rVTZM+AM7CG+kRg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pinia/-/pinia-2.0.33.tgz}
+    id: registry.npmmirror.com/pinia/2.0.33
     name: pinia
-    version: 2.0.32
+    version: 2.0.33
     peerDependencies:
       '@vue/composition-api': ^1.4.0
       typescript: '>=4.4.4'
@@ -3044,10 +3083,10 @@ packages:
     version: 0.0.2
     dev: false
 
-  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}
+  registry.npmmirror.com/qs/6.11.1:
+    resolution: {integrity: sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/qs/-/qs-6.11.1.tgz}
     name: qs
-    version: 6.11.0
+    version: 6.11.1
     engines: {node: '>=0.6'}
     dependencies:
       side-channel: registry.npmmirror.com/side-channel/1.0.4
@@ -3481,10 +3520,10 @@ packages:
     dependencies:
       '@vue/compiler-sfc': registry.npmmirror.com/@vue/compiler-sfc/3.2.47
       magic-string: registry.npmmirror.com/magic-string/0.25.9
-      vite: registry.npmmirror.com/vite/4.1.4_435aevtanapkguv7m72cl6trbi
+      vite: registry.npmmirror.com/vite/4.1.4_6e4omgvd5jf4hig7wpb5tmdc3q
     dev: true
 
-  registry.npmmirror.com/vite/4.1.4_435aevtanapkguv7m72cl6trbi:
+  registry.npmmirror.com/vite/4.1.4_6e4omgvd5jf4hig7wpb5tmdc3q:
     resolution: {integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-4.1.4.tgz}
     id: registry.npmmirror.com/vite/4.1.4
     name: vite
@@ -3512,7 +3551,7 @@ packages:
       terser:
         optional: true
     dependencies:
-      '@types/node': registry.npmmirror.com/@types/node/18.14.1
+      '@types/node': registry.npmmirror.com/@types/node/18.15.0
       esbuild: registry.npmmirror.com/esbuild/0.16.17
       postcss: registry.npmmirror.com/postcss/8.4.21
       resolve: registry.npmmirror.com/resolve/1.22.1
@@ -3548,7 +3587,7 @@ packages:
       vue: registry.npmmirror.com/vue/3.2.47
     dev: false
 
-  registry.npmmirror.com/vue-eslint-parser/9.1.0_eslint@8.34.0:
+  registry.npmmirror.com/vue-eslint-parser/9.1.0_eslint@8.36.0:
     resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz}
     id: registry.npmmirror.com/vue-eslint-parser/9.1.0
     name: vue-eslint-parser
@@ -3558,7 +3597,7 @@ packages:
       eslint: '>=6.0.0'
     dependencies:
       debug: registry.npmmirror.com/debug/4.3.4
-      eslint: registry.npmmirror.com/eslint/8.34.0
+      eslint: registry.npmmirror.com/eslint/8.36.0
       eslint-scope: registry.npmmirror.com/eslint-scope/7.1.1
       eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.3.0
       espree: registry.npmmirror.com/espree/9.4.1

+ 5 - 1
Web/src/layout/component/aside.vue

@@ -107,7 +107,8 @@ const onAsideEnterLeave = (bool: Boolean) => {
 	let { layout } = themeConfig.value;
 	if (layout !== 'columns') return false;
 	if (!bool) mittBus.emit('restoreDefault');
-	stores.setColumnsMenuHover(bool);
+	// 开启 `分栏菜单鼠标悬停预加载` 才设置,防止 columnsAside.vue 监听 pinia.state
+	if (themeConfig.value.isColumnsMenuHoverPreload) stores.setColumnsMenuHover(bool);
 };
 // 页面加载前
 onBeforeMount(() => {
@@ -118,6 +119,7 @@ onBeforeMount(() => {
 	mittBus.on('setSendColumnsChildren', (res: MittMenu) => {
 		state.menuList = res.children;
 	});
+	// 开启经典布局分割菜单时,设置菜单数据
 	mittBus.on('setSendClassicChildren', (res: MittMenu) => {
 		let { layout, isClassicSplitMenu } = themeConfig.value;
 		if (layout === 'classic' && isClassicSplitMenu) {
@@ -125,9 +127,11 @@ onBeforeMount(() => {
 			state.menuList = res.children;
 		}
 	});
+	// 开启经典布局分割菜单时,重新处理菜单数据
 	mittBus.on('getBreadcrumbIndexSetFilterRoutes', () => {
 		setFilterRoutes();
 	});
+	// 监听窗口大小改变时(适配移动端)
 	mittBus.on('layoutMobileResize', (res: LayoutMobileResize) => {
 		initMenuFixed(res.clientWidth);
 		closeLayoutAsideMobileMode();

+ 10 - 3
Web/src/layout/component/columnsAside.vue

@@ -6,7 +6,7 @@
 				<li
 					v-for="(v, k) in state.columnsAsideList"
 					:key="k"
-					@click="onColumnsAsideMenuClick(v, k)"
+					@click="onColumnsAsideMenuClick(v)"
 					@mouseenter="onColumnsAsideMenuMouseenter(v, k)"
 					:ref="
 						(el) => {
@@ -73,11 +73,14 @@ const setColumnsAsideMove = (k: number) => {
 	columnsAsideActiveRef.value.style.top = `${columnsAsideOffsetTopRefs.value[k].offsetTop + state.difference}px`;
 };
 // 菜单高亮点击事件
-const onColumnsAsideMenuClick = (v: RouteItem, k: number) => {
-	setColumnsAsideMove(k);
+const onColumnsAsideMenuClick = async (v: RouteItem) => {
 	let { path, redirect } = v;
 	if (redirect) router.push(redirect);
 	else router.push(path);
+	// 一个路由设置自动收起菜单
+	// https://gitee.com/lyt-top/vue-next-admin/issues/I6HW7H
+	if (!v.children) themeConfig.value.isCollapse = true;
+	else if (v.children.length > 1) themeConfig.value.isCollapse = false;
 };
 // 鼠标移入时,显示当前的子级菜单
 const onColumnsAsideMenuMouseenter = (v: RouteRecordRaw, k: number) => {
@@ -92,6 +95,7 @@ const onColumnsAsideMenuMouseenter = (v: RouteRecordRaw, k: number) => {
 };
 // 鼠标移走时,显示原来的子级菜单
 const onColumnsAsideMenuMouseleave = async () => {
+	if (!themeConfig.value.isColumnsMenuHoverPreload) return false;
 	await stores.setColumnsNavHover(false);
 	// 添加延时器,防止拿到的 store.state.routesList 值不是最新的
 	setTimeout(() => {
@@ -110,6 +114,9 @@ const setFilterRoutes = () => {
 	const resData: MittMenu = setSendChildren(route.path);
 	if (Object.keys(resData).length <= 0) return false;
 	onColumnsAsideDown(resData.item?.k);
+	// 刷新时,初始化一个路由设置自动收起菜单
+	// https://gitee.com/lyt-top/vue-next-admin/issues/I6HW7H
+	resData.children.length <= 1 ? (themeConfig.value.isCollapse = true) : (themeConfig.value.isCollapse = false);
 	mittBus.emit('setSendColumnsChildren', resData);
 };
 // 传送当前子级数据到菜单中

+ 1 - 1
Web/src/layout/main/classic.vue

@@ -43,7 +43,7 @@ const initScrollBarHeight = () => {
 		setTimeout(() => {
 			updateScrollbar();
 			// '!' not null 断言操作符,不执行运行时检查
-			layoutMainRef.value!.layoutMainScrollbarRef.wrapRef.scrollTop = 0;
+			if (layoutMainRef.value) layoutMainRef.value!.layoutMainScrollbarRef.wrapRef.scrollTop = 0;
 		}, 500);
 	});
 };

+ 1 - 1
Web/src/layout/main/columns.vue

@@ -35,7 +35,7 @@ const updateScrollbar = () => {
 	// 更新父级 scrollbar
 	layoutScrollbarRef.value.update();
 	// 更新子级 scrollbar
-	layoutMainRef.value?.layoutMainScrollbarRef.update();
+	layoutMainRef.value && layoutMainRef.value!.layoutMainScrollbarRef.update();
 };
 // 重置滚动条高度,由于组件是异步引入的
 const initScrollBarHeight = () => {

+ 1 - 0
Web/src/layout/navBars/breadcrumb/search.vue

@@ -107,6 +107,7 @@ defineExpose({
 			display: none;
 		}
 		.el-dialog__footer {
+			width: 100%;
 			position: absolute;
 			left: 50%;
 			transform: translateX(-50%);

+ 10 - 8
Web/src/layout/navBars/breadcrumb/setings.vue

@@ -451,14 +451,16 @@ const onColumnsMenuBarGradualChange = () => {
 };
 // 2、菜单 / 顶栏 --> 背景渐变函数
 const setGraduaFun = (el: string, bool: boolean, color: string) => {
-	setTimeout(() => {
-		let els = document.querySelector(el);
-		if (!els) return false;
-		document.documentElement.style.setProperty('--el-menu-bg-color', document.documentElement.style.getPropertyValue('--next-bg-menuBar'));
-		if (bool) els.setAttribute('style', `background:linear-gradient(to bottom left , ${color}, ${getLightColor(color, 0.6)}) !important;`);
-		else els.setAttribute('style', ``);
-		setLocalThemeConfig();
-	}, 200);
+	nextTick(() => {
+		setTimeout(() => {
+			let els = document.querySelector(el);
+			if (!els) return false;
+			document.documentElement.style.setProperty('--el-menu-bg-color', document.documentElement.style.getPropertyValue('--next-bg-menuBar'));
+			if (bool) els.setAttribute('style', `background:linear-gradient(to bottom , ${color}, ${getLightColor(color, 0.5)})`);
+			else els.setAttribute('style', ``);
+			setLocalThemeConfig();
+		}, 300);
+	});
 };
 // 2、分栏设置 ->
 const onColumnsMenuHoverPreloadChange = () => {

+ 8 - 0
Web/src/layout/navBars/tagsView/tagsView.vue

@@ -52,6 +52,7 @@ import pinia from '/@/stores/index';
 import { useTagsViewRoutes } from '/@/stores/tagsViewRoutes';
 import { useThemeConfig } from '/@/stores/themeConfig';
 import { useKeepALiveNames } from '/@/stores/keepAliveNames';
+import { useRoutesList } from '/@/stores/routesList';
 import { Session } from '/@/utils/storage';
 import { isObjectValueEqual } from '/@/utils/arrayOperation';
 import other from '/@/utils/other';
@@ -68,8 +69,10 @@ const tagsUlRef = ref();
 const stores = useTagsViewRoutes();
 const storesThemeConfig = useThemeConfig();
 const storesTagsViewRoutes = useTagsViewRoutes();
+const storesRoutesList = useRoutesList();
 const { themeConfig } = storeToRefs(storesThemeConfig);
 const { tagsViewRoutes } = storeToRefs(storesTagsViewRoutes);
+const { routesList } = storeToRefs(storesRoutesList);
 const storesKeepALiveNames = useKeepALiveNames();
 const route = useRoute();
 const router = useRouter();
@@ -372,6 +375,11 @@ const onMousedownMenu = (v: RouteItem, e: MouseEvent) => {
 const onTagsClick = (v: RouteItem, k: number) => {
 	state.tagsRefsIndex = k;
 	router.push(v);
+	// 分栏布局时,收起/展开菜单
+	if (getThemeConfig.value.layout === 'columns') {
+		const item: RouteItem = routesList.value.find((r: RouteItem) => r.path.indexOf(`/${v.path.split('/')[1]}`) > -1);
+		!item.children ? (getThemeConfig.value.isCollapse = true) : (getThemeConfig.value.isCollapse = false);
+	}
 };
 // 处理 url,地址栏链接有参数时,tagsview 右键菜单刷新功能失效问题,感谢 @ZzZz-RIPPER、@dejavuuuuu
 // https://gitee.com/lyt-top/vue-next-admin/issues/I5K3YO

+ 21 - 41
Web/src/layout/navMenu/horizontal.vue

@@ -1,37 +1,35 @@
 <template>
 	<div class="el-menu-horizontal-warp">
-		<el-scrollbar @wheel.native.prevent="onElMenuHorizontalScroll" ref="elMenuHorizontalScrollRef">
-			<el-menu router :default-active="state.defaultActive" :ellipsis="false" background-color="transparent" mode="horizontal">
-				<template v-for="val in menuLists">
-					<el-sub-menu :index="val.path" v-if="val.children && val.children.length > 0" :key="val.path">
-						<template #title>
+		<el-menu router :default-active="state.defaultActive" background-color="transparent" mode="horizontal">
+			<template v-for="val in menuLists">
+				<el-sub-menu :index="val.path" v-if="val.children && val.children.length > 0" :key="val.path">
+					<template #title>
+						<SvgIcon :name="val.meta.icon" />
+						<span>{{ $t(val.meta.title) }}</span>
+					</template>
+					<SubItem :chil="val.children" />
+				</el-sub-menu>
+				<template v-else>
+					<el-menu-item :index="val.path" :key="val.path">
+						<template #title v-if="!val.meta.isLink || (val.meta.isLink && val.meta.isIframe)">
 							<SvgIcon :name="val.meta.icon" />
-							<span>{{ $t(val.meta.title) }}</span>
+							{{ $t(val.meta.title) }}
 						</template>
-						<SubItem :chil="val.children" />
-					</el-sub-menu>
-					<template v-else>
-						<el-menu-item :index="val.path" :key="val.path">
-							<template #title v-if="!val.meta.isLink || (val.meta.isLink && val.meta.isIframe)">
+						<template #title v-else>
+							<a class="w100" @click.prevent="onALinkClick(val)">
 								<SvgIcon :name="val.meta.icon" />
 								{{ $t(val.meta.title) }}
-							</template>
-							<template #title v-else>
-								<a class="w100" @click.prevent="onALinkClick(val)">
-									<SvgIcon :name="val.meta.icon" />
-									{{ $t(val.meta.title) }}
-								</a>
-							</template>
-						</el-menu-item>
-					</template>
+							</a>
+						</template>
+					</el-menu-item>
 				</template>
-			</el-menu>
-		</el-scrollbar>
+			</template>
+		</el-menu>
 	</div>
 </template>
 
 <script setup lang="ts" name="navMenuHorizontal">
-import { defineAsyncComponent, reactive, computed, onMounted, nextTick, onBeforeMount, ref } from 'vue';
+import { defineAsyncComponent, reactive, computed, onBeforeMount } from 'vue';
 import { useRoute, onBeforeRouteUpdate, RouteRecordRaw } from 'vue-router';
 import { storeToRefs } from 'pinia';
 import { useRoutesList } from '/@/stores/routesList';
@@ -52,7 +50,6 @@ const props = defineProps({
 });
 
 // 定义变量内容
-const elMenuHorizontalScrollRef = ref();
 const stores = useRoutesList();
 const storesThemeConfig = useThemeConfig();
 const { routesList } = storeToRefs(stores);
@@ -66,19 +63,6 @@ const state = reactive({
 const menuLists = computed(() => {
 	return <RouteItems>props.menuList;
 });
-// 设置横向滚动条可以鼠标滚轮滚动
-const onElMenuHorizontalScroll = (e: WheelEventType) => {
-	const eventDelta = e.wheelDelta || -e.deltaY * 40;
-	elMenuHorizontalScrollRef.value.$refs.wrapRef.scrollLeft = elMenuHorizontalScrollRef.value.$refs.wrapRef.scrollLeft + eventDelta / 4;
-};
-// 初始化数据,页面刷新时,滚动条滚动到对应位置
-const initElMenuOffsetLeft = () => {
-	nextTick(() => {
-		let els = <HTMLElement>document.querySelector('.el-menu.el-menu--horizontal li.is-active');
-		if (!els) return false;
-		elMenuHorizontalScrollRef.value.$refs.wrapRef.scrollLeft = els.offsetLeft;
-	});
-};
 // 路由过滤递归函数
 const filterRoutesFun = <T extends RouteItem>(arr: T[]): T[] => {
 	return arr
@@ -122,10 +106,6 @@ const onALinkClick = (val: RouteItem) => {
 onBeforeMount(() => {
 	setCurrentRouterHighlight(route);
 });
-// 页面加载时
-onMounted(() => {
-	initElMenuOffsetLeft();
-});
 // 路由更新时
 onBeforeRouteUpdate((to) => {
 	// 修复:https://gitee.com/lyt-top/vue-next-admin/issues/I3YX6G

+ 4 - 5
Web/src/main.ts

@@ -1,13 +1,12 @@
 import { createApp } from 'vue';
 import pinia from '/@/stores/index';
-import App from './App.vue';
-import router from './router';
+import App from '/@/App.vue';
+import router from '/@/router';
 import { directive } from '/@/directive/index';
 import { i18n } from '/@/i18n/index';
 import other from '/@/utils/other';
 
 import ElementPlus from 'element-plus';
-import 'element-plus/dist/index.css';
 import '/@/theme/index.scss';
 import VueGridLayout from 'vue-grid-layout';
 
@@ -17,11 +16,11 @@ import VueSignaturePad from 'vue-signature-pad'; // 电子签名
 import vue3TreeOrg from 'vue3-tree-org'; // 组织架构图
 import 'vue3-tree-org/lib/vue3-tree-org.css'; // 组织架构图样式
 import 'animate.css'; // 动画库
-import '/@/assets/styles/main.scss';    //自定义样式
+import '/@/assets/styles/main.scss'; //自定义样式
 
 const app = createApp(App);
 
 directive(app);
 other.elSvg(app);
 
-app.use(pinia).use(router).use(ElementPlus, { i18n: i18n.global.t }).use(i18n).use(VueGridLayout).use(VForm3).use(VueSignaturePad).use(vue3TreeOrg).mount('#app');
+app.use(pinia).use(router).use(ElementPlus).use(i18n).use(VueGridLayout).use(VForm3).use(VueSignaturePad).use(vue3TreeOrg).mount('#app');

+ 6 - 0
Web/src/theme/dark.scss

@@ -106,9 +106,15 @@
 		background-color: var(--next-color-disabled) !important;
 	}
 
+	// topBar
+	.layout-navbars-breadcrumb-index {
+		background: none !important;
+	}
+
 	// menu
 	.layout-aside {
 		border-right: 1px solid var(--next-border-color-light) !important;
+		@extend .layout-navbars-breadcrumb-index;
 	}
 
 	// colorPicker

+ 5 - 5
Web/src/theme/element.scss

@@ -157,12 +157,12 @@
 		background: var(--next-bg-topBar);
 		.el-menu-item,
 		.el-sub-menu {
-			height: 50px !important;
-			line-height: 50px !important;
+			height: 48px !important;
+			line-height: 48px !important;
 			color: var(--next-bg-topBarColor);
 			.el-sub-menu__title {
-				height: 50px !important;
-				line-height: 50px !important;
+				height: 48px !important;
+				line-height: 48px !important;
 				color: var(--next-bg-topBarColor);
 			}
 			.el-popper.is-pure.is-light {
@@ -194,7 +194,7 @@
 	width: 100% !important;
 	.el-menu-item,
 	.el-sub-menu__title {
-		height: 50px !important;
+		height: 48px !important;
 		color: var(--next-bg-topBarColor);
 	}
 	.el-menu-item:not(.is-active):hover,

+ 1 - 0
Web/src/theme/index.scss

@@ -1,3 +1,4 @@
+@import 'element-plus/dist/index.css';
 @import './app.scss';
 @import 'common/transition.scss';
 @import './other.scss';

+ 1 - 0
Web/src/types/global.d.ts

@@ -6,6 +6,7 @@ declare module 'js-cookie';
 declare module '@wangeditor/editor-for-vue';
 declare module 'js-table2excel';
 declare module 'qs';
+declare module 'sortablejs';
 
 // 声明一个模块,防止引入文件时报错
 declare module '*.json';