mirror of
				https://github.com/soybeanjs/soybean-admin.git
				synced 2025-11-04 15:53:43 +08:00 
			
		
		
		
	fix(projects): 修复页面切换时导致的溢出滚动条
This commit is contained in:
		@@ -53,19 +53,19 @@ Soybean Admin  是一个基于 Vue3、Vite、TypeScript、Naive UI 的免费中
 | 
			
		||||
- [x] 引入ECharts替换AntV G2Plot
 | 
			
		||||
- [ ] 多页签:同一页面支持多个Tab(应用场景:不同query参数的详情页面在不同tab展示)
 | 
			
		||||
- [ ] 缓存主题配置
 | 
			
		||||
- [ ] 最近功能的有关文档更新
 | 
			
		||||
- [ ] 添加锁屏组件、全局Iframe组件
 | 
			
		||||
- [ ] 性能优化(优化递归函数)
 | 
			
		||||
- [ ] 精简版(新分支thin)
 | 
			
		||||
- [ ] 文档完善
 | 
			
		||||
- [ ] 表单、表格示例
 | 
			
		||||
- [ ] 添加锁屏组件、全局Iframe组件
 | 
			
		||||
- [ ] 示例页面完善
 | 
			
		||||
- [ ] 其他UI版本
 | 
			
		||||
- [ ] element-plus版本
 | 
			
		||||
- [ ] 其他UI版本
 | 
			
		||||
- [ ] soybean-admin cli工具(选择不同UI)
 | 
			
		||||
- [ ] 前端可视化创建路由页面
 | 
			
		||||
- [ ] soybean-admin 后台服务java版: [soybean-admin-java](https://github.com/honghuangdc/soybean-admin-java)
 | 
			
		||||
- [ ] soybean-admin 后台服务go版: [soybean-admin-go](https://github.com/honghuangdc/soybean-admin-go)
 | 
			
		||||
- [ ] soybean-admin 后台服务nodejs版: [soybean-admin-nestjs](https://github.com/honghuangdc/soybean-admin-nestjs)
 | 
			
		||||
- [ ] 前端可视化创建路由页面
 | 
			
		||||
 | 
			
		||||
## 安装使用
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								package.json
									
									
									
									
									
								
							@@ -27,7 +27,7 @@
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@better-scroll/core": "^2.4.2",
 | 
			
		||||
    "@soybeanjs/vue-admin-layout": "^1.0.3",
 | 
			
		||||
    "@soybeanjs/vue-admin-layout": "^1.0.4",
 | 
			
		||||
    "@soybeanjs/vue-admin-tab": "^1.0.1",
 | 
			
		||||
    "@vueuse/core": "^8.4.2",
 | 
			
		||||
    "axios": "^0.27.2",
 | 
			
		||||
@@ -54,15 +54,15 @@
 | 
			
		||||
    "@amap/amap-jsapi-types": "^0.0.8",
 | 
			
		||||
    "@commitlint/cli": "^16.2.4",
 | 
			
		||||
    "@commitlint/config-conventional": "^16.2.4",
 | 
			
		||||
    "@iconify/json": "^2.1.39",
 | 
			
		||||
    "@iconify/json": "^2.1.40",
 | 
			
		||||
    "@iconify/vue": "^3.2.1",
 | 
			
		||||
    "@types/bmapgl": "^0.0.5",
 | 
			
		||||
    "@types/crypto-js": "^4.1.1",
 | 
			
		||||
    "@types/node": "^17.0.31",
 | 
			
		||||
    "@types/qs": "^6.9.7",
 | 
			
		||||
    "@types/ua-parser-js": "^0.7.36",
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": "^5.22.0",
 | 
			
		||||
    "@typescript-eslint/parser": "^5.22.0",
 | 
			
		||||
    "@typescript-eslint/eslint-plugin": "^5.23.0",
 | 
			
		||||
    "@typescript-eslint/parser": "^5.23.0",
 | 
			
		||||
    "@vitejs/plugin-vue": "^2.3.2",
 | 
			
		||||
    "@vitejs/plugin-vue-jsx": "^1.3.10",
 | 
			
		||||
    "@vue/eslint-config-prettier": "^7.0.0",
 | 
			
		||||
@@ -95,7 +95,7 @@
 | 
			
		||||
    "vite-plugin-compression": "^0.5.1",
 | 
			
		||||
    "vite-plugin-html": "^3.2.0",
 | 
			
		||||
    "vite-plugin-mock": "^2.9.6",
 | 
			
		||||
    "vue-tsc": "^0.34.11",
 | 
			
		||||
    "vue-tsc": "^0.34.12",
 | 
			
		||||
    "vueuc": "^0.4.32"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										137
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										137
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							@@ -5,17 +5,17 @@ specifiers:
 | 
			
		||||
  '@better-scroll/core': ^2.4.2
 | 
			
		||||
  '@commitlint/cli': ^16.2.4
 | 
			
		||||
  '@commitlint/config-conventional': ^16.2.4
 | 
			
		||||
  '@iconify/json': ^2.1.39
 | 
			
		||||
  '@iconify/json': ^2.1.40
 | 
			
		||||
  '@iconify/vue': ^3.2.1
 | 
			
		||||
  '@soybeanjs/vue-admin-layout': ^1.0.3
 | 
			
		||||
  '@soybeanjs/vue-admin-layout': ^1.0.4
 | 
			
		||||
  '@soybeanjs/vue-admin-tab': ^1.0.1
 | 
			
		||||
  '@types/bmapgl': ^0.0.5
 | 
			
		||||
  '@types/crypto-js': ^4.1.1
 | 
			
		||||
  '@types/node': ^17.0.31
 | 
			
		||||
  '@types/qs': ^6.9.7
 | 
			
		||||
  '@types/ua-parser-js': ^0.7.36
 | 
			
		||||
  '@typescript-eslint/eslint-plugin': ^5.22.0
 | 
			
		||||
  '@typescript-eslint/parser': ^5.22.0
 | 
			
		||||
  '@typescript-eslint/eslint-plugin': ^5.23.0
 | 
			
		||||
  '@typescript-eslint/parser': ^5.23.0
 | 
			
		||||
  '@vitejs/plugin-vue': ^2.3.2
 | 
			
		||||
  '@vitejs/plugin-vue-jsx': ^1.3.10
 | 
			
		||||
  '@vue/eslint-config-prettier': ^7.0.0
 | 
			
		||||
@@ -66,14 +66,14 @@ specifiers:
 | 
			
		||||
  vite-plugin-mock: ^2.9.6
 | 
			
		||||
  vue: 3.2.33
 | 
			
		||||
  vue-router: ^4.0.15
 | 
			
		||||
  vue-tsc: ^0.34.11
 | 
			
		||||
  vue-tsc: ^0.34.12
 | 
			
		||||
  vueuc: ^0.4.32
 | 
			
		||||
  wangeditor: ^4.7.15
 | 
			
		||||
  xgplayer: ^2.31.6
 | 
			
		||||
 | 
			
		||||
dependencies:
 | 
			
		||||
  '@better-scroll/core': 2.4.2
 | 
			
		||||
  '@soybeanjs/vue-admin-layout': 1.0.3_vue@3.2.33
 | 
			
		||||
  '@soybeanjs/vue-admin-layout': 1.0.4_vue@3.2.33
 | 
			
		||||
  '@soybeanjs/vue-admin-tab': 1.0.1_vue@3.2.33
 | 
			
		||||
  '@vueuse/core': 8.4.2_vue@3.2.33
 | 
			
		||||
  axios: 0.27.2
 | 
			
		||||
@@ -100,15 +100,15 @@ devDependencies:
 | 
			
		||||
  '@amap/amap-jsapi-types': 0.0.8
 | 
			
		||||
  '@commitlint/cli': 16.2.4
 | 
			
		||||
  '@commitlint/config-conventional': 16.2.4
 | 
			
		||||
  '@iconify/json': 2.1.39
 | 
			
		||||
  '@iconify/json': 2.1.40
 | 
			
		||||
  '@iconify/vue': 3.2.1_vue@3.2.33
 | 
			
		||||
  '@types/bmapgl': 0.0.5
 | 
			
		||||
  '@types/crypto-js': 4.1.1
 | 
			
		||||
  '@types/node': 17.0.31
 | 
			
		||||
  '@types/qs': 6.9.7
 | 
			
		||||
  '@types/ua-parser-js': 0.7.36
 | 
			
		||||
  '@typescript-eslint/eslint-plugin': 5.22.0_9817cbad956b8aa5d1e3d9ec99e4a1e4
 | 
			
		||||
  '@typescript-eslint/parser': 5.22.0_eslint@8.15.0+typescript@4.6.4
 | 
			
		||||
  '@typescript-eslint/eslint-plugin': 5.23.0_17b6d2ce7129f0b36f2c30ae592c16e7
 | 
			
		||||
  '@typescript-eslint/parser': 5.23.0_eslint@8.15.0+typescript@4.6.4
 | 
			
		||||
  '@vitejs/plugin-vue': 2.3.2_vite@2.9.8+vue@3.2.33
 | 
			
		||||
  '@vitejs/plugin-vue-jsx': 1.3.10
 | 
			
		||||
  '@vue/eslint-config-prettier': 7.0.0_eslint@8.15.0+prettier@2.6.2
 | 
			
		||||
@@ -141,7 +141,7 @@ devDependencies:
 | 
			
		||||
  vite-plugin-compression: 0.5.1_vite@2.9.8
 | 
			
		||||
  vite-plugin-html: 3.2.0_vite@2.9.8
 | 
			
		||||
  vite-plugin-mock: 2.9.6_mockjs@1.1.0+vite@2.9.8
 | 
			
		||||
  vue-tsc: 0.34.11_typescript@4.6.4
 | 
			
		||||
  vue-tsc: 0.34.12_typescript@4.6.4
 | 
			
		||||
  vueuc: 0.4.32_vue@3.2.33
 | 
			
		||||
 | 
			
		||||
packages:
 | 
			
		||||
@@ -706,8 +706,8 @@ packages:
 | 
			
		||||
    engines: {node: '>=6.9.0'}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@iconify/json/2.1.39:
 | 
			
		||||
    resolution: {integrity: sha512-iz5ZpJJ8e6s9H+6ZS+JJ8PSZOblDTsT6XFAnzF+kDavuixmWGsS+RJab2Vg4FGXogrrPqlcUmeV2fMgM9gSvKA==}
 | 
			
		||||
  /@iconify/json/2.1.40:
 | 
			
		||||
    resolution: {integrity: sha512-2G5zYwr4Fl9jQpjzmd+j/+u81pmvJ6SkxVjk+Al1UM4EyE+ByuODHSE2Srp85cEiM9v4YAzkkgVSkleufgPLeQ==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@iconify/types': 1.1.0
 | 
			
		||||
      pathe: 0.2.0
 | 
			
		||||
@@ -828,8 +828,8 @@ packages:
 | 
			
		||||
      picomatch: 2.3.1
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@soybeanjs/vue-admin-layout/1.0.3_vue@3.2.33:
 | 
			
		||||
    resolution: {integrity: sha512-ech9q8XOkQ2rIxF5D2p4ikzV/S5yk08N2sWuQWC6QSzF3c8seG89i+Pl+k0NZRkKlnD3ntz9Ai0VqxET/jhMdw==}
 | 
			
		||||
  /@soybeanjs/vue-admin-layout/1.0.4_vue@3.2.33:
 | 
			
		||||
    resolution: {integrity: sha512-G+Kh2XHYH1I0PgEmOXsBjO68VJLqPi5DnSeao+ZuLLTXIT3cuEFwtp7XNraOWzSLsqipmIHzemHuVxVsWU83cw==}
 | 
			
		||||
    peerDependencies:
 | 
			
		||||
      '@vue/composition-api': ^1.4.6
 | 
			
		||||
      vue: ^2.0.0 || >=3.0.0
 | 
			
		||||
@@ -837,7 +837,7 @@ packages:
 | 
			
		||||
      '@vue/composition-api':
 | 
			
		||||
        optional: true
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@unocss/reset': 0.31.17
 | 
			
		||||
      '@unocss/reset': 0.33.2
 | 
			
		||||
      colord: 2.9.2
 | 
			
		||||
      css-render: 0.15.9
 | 
			
		||||
      vue: 3.2.33
 | 
			
		||||
@@ -944,8 +944,8 @@ packages:
 | 
			
		||||
    resolution: {integrity: sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ==}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@typescript-eslint/eslint-plugin/5.22.0_9817cbad956b8aa5d1e3d9ec99e4a1e4:
 | 
			
		||||
    resolution: {integrity: sha512-YCiy5PUzpAeOPGQ7VSGDEY2NeYUV1B0swde2e0HzokRsHBYjSdF6DZ51OuRZxVPHx0032lXGLvOMls91D8FXlg==}
 | 
			
		||||
  /@typescript-eslint/eslint-plugin/5.23.0_17b6d2ce7129f0b36f2c30ae592c16e7:
 | 
			
		||||
    resolution: {integrity: sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA==}
 | 
			
		||||
    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
 | 
			
		||||
    peerDependencies:
 | 
			
		||||
      '@typescript-eslint/parser': ^5.0.0
 | 
			
		||||
@@ -955,10 +955,10 @@ packages:
 | 
			
		||||
      typescript:
 | 
			
		||||
        optional: true
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@typescript-eslint/parser': 5.22.0_eslint@8.15.0+typescript@4.6.4
 | 
			
		||||
      '@typescript-eslint/scope-manager': 5.22.0
 | 
			
		||||
      '@typescript-eslint/type-utils': 5.22.0_eslint@8.15.0+typescript@4.6.4
 | 
			
		||||
      '@typescript-eslint/utils': 5.22.0_eslint@8.15.0+typescript@4.6.4
 | 
			
		||||
      '@typescript-eslint/parser': 5.23.0_eslint@8.15.0+typescript@4.6.4
 | 
			
		||||
      '@typescript-eslint/scope-manager': 5.23.0
 | 
			
		||||
      '@typescript-eslint/type-utils': 5.23.0_eslint@8.15.0+typescript@4.6.4
 | 
			
		||||
      '@typescript-eslint/utils': 5.23.0_eslint@8.15.0+typescript@4.6.4
 | 
			
		||||
      debug: 4.3.4
 | 
			
		||||
      eslint: 8.15.0
 | 
			
		||||
      functional-red-black-tree: 1.0.1
 | 
			
		||||
@@ -971,8 +971,8 @@ packages:
 | 
			
		||||
      - supports-color
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@typescript-eslint/parser/5.22.0_eslint@8.15.0+typescript@4.6.4:
 | 
			
		||||
    resolution: {integrity: sha512-piwC4krUpRDqPaPbFaycN70KCP87+PC5WZmrWs+DlVOxxmF+zI6b6hETv7Quy4s9wbkV16ikMeZgXsvzwI3icQ==}
 | 
			
		||||
  /@typescript-eslint/parser/5.23.0_eslint@8.15.0+typescript@4.6.4:
 | 
			
		||||
    resolution: {integrity: sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw==}
 | 
			
		||||
    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
 | 
			
		||||
    peerDependencies:
 | 
			
		||||
      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
 | 
			
		||||
@@ -981,9 +981,9 @@ packages:
 | 
			
		||||
      typescript:
 | 
			
		||||
        optional: true
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@typescript-eslint/scope-manager': 5.22.0
 | 
			
		||||
      '@typescript-eslint/types': 5.22.0
 | 
			
		||||
      '@typescript-eslint/typescript-estree': 5.22.0_typescript@4.6.4
 | 
			
		||||
      '@typescript-eslint/scope-manager': 5.23.0
 | 
			
		||||
      '@typescript-eslint/types': 5.23.0
 | 
			
		||||
      '@typescript-eslint/typescript-estree': 5.23.0_typescript@4.6.4
 | 
			
		||||
      debug: 4.3.4
 | 
			
		||||
      eslint: 8.15.0
 | 
			
		||||
      typescript: 4.6.4
 | 
			
		||||
@@ -991,16 +991,16 @@ packages:
 | 
			
		||||
      - supports-color
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@typescript-eslint/scope-manager/5.22.0:
 | 
			
		||||
    resolution: {integrity: sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA==}
 | 
			
		||||
  /@typescript-eslint/scope-manager/5.23.0:
 | 
			
		||||
    resolution: {integrity: sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==}
 | 
			
		||||
    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@typescript-eslint/types': 5.22.0
 | 
			
		||||
      '@typescript-eslint/visitor-keys': 5.22.0
 | 
			
		||||
      '@typescript-eslint/types': 5.23.0
 | 
			
		||||
      '@typescript-eslint/visitor-keys': 5.23.0
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@typescript-eslint/type-utils/5.22.0_eslint@8.15.0+typescript@4.6.4:
 | 
			
		||||
    resolution: {integrity: sha512-iqfLZIsZhK2OEJ4cQ01xOq3NaCuG5FQRKyHicA3xhZxMgaxQazLUHbH/B2k9y5i7l3+o+B5ND9Mf1AWETeMISA==}
 | 
			
		||||
  /@typescript-eslint/type-utils/5.23.0_eslint@8.15.0+typescript@4.6.4:
 | 
			
		||||
    resolution: {integrity: sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw==}
 | 
			
		||||
    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
 | 
			
		||||
    peerDependencies:
 | 
			
		||||
      eslint: '*'
 | 
			
		||||
@@ -1009,7 +1009,7 @@ packages:
 | 
			
		||||
      typescript:
 | 
			
		||||
        optional: true
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@typescript-eslint/utils': 5.22.0_eslint@8.15.0+typescript@4.6.4
 | 
			
		||||
      '@typescript-eslint/utils': 5.23.0_eslint@8.15.0+typescript@4.6.4
 | 
			
		||||
      debug: 4.3.4
 | 
			
		||||
      eslint: 8.15.0
 | 
			
		||||
      tsutils: 3.21.0_typescript@4.6.4
 | 
			
		||||
@@ -1018,13 +1018,13 @@ packages:
 | 
			
		||||
      - supports-color
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@typescript-eslint/types/5.22.0:
 | 
			
		||||
    resolution: {integrity: sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw==}
 | 
			
		||||
  /@typescript-eslint/types/5.23.0:
 | 
			
		||||
    resolution: {integrity: sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==}
 | 
			
		||||
    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@typescript-eslint/typescript-estree/5.22.0_typescript@4.6.4:
 | 
			
		||||
    resolution: {integrity: sha512-EyBEQxvNjg80yinGE2xdhpDYm41so/1kOItl0qrjIiJ1kX/L/L8WWGmJg8ni6eG3DwqmOzDqOhe6763bF92nOw==}
 | 
			
		||||
  /@typescript-eslint/typescript-estree/5.23.0_typescript@4.6.4:
 | 
			
		||||
    resolution: {integrity: sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==}
 | 
			
		||||
    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
 | 
			
		||||
    peerDependencies:
 | 
			
		||||
      typescript: '*'
 | 
			
		||||
@@ -1032,8 +1032,8 @@ packages:
 | 
			
		||||
      typescript:
 | 
			
		||||
        optional: true
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@typescript-eslint/types': 5.22.0
 | 
			
		||||
      '@typescript-eslint/visitor-keys': 5.22.0
 | 
			
		||||
      '@typescript-eslint/types': 5.23.0
 | 
			
		||||
      '@typescript-eslint/visitor-keys': 5.23.0
 | 
			
		||||
      debug: 4.3.4
 | 
			
		||||
      globby: 11.1.0
 | 
			
		||||
      is-glob: 4.0.3
 | 
			
		||||
@@ -1044,16 +1044,16 @@ packages:
 | 
			
		||||
      - supports-color
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@typescript-eslint/utils/5.22.0_eslint@8.15.0+typescript@4.6.4:
 | 
			
		||||
    resolution: {integrity: sha512-HodsGb037iobrWSUMS7QH6Hl1kppikjA1ELiJlNSTYf/UdMEwzgj0WIp+lBNb6WZ3zTwb0tEz51j0Wee3iJ3wQ==}
 | 
			
		||||
  /@typescript-eslint/utils/5.23.0_eslint@8.15.0+typescript@4.6.4:
 | 
			
		||||
    resolution: {integrity: sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA==}
 | 
			
		||||
    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': 7.0.11
 | 
			
		||||
      '@typescript-eslint/scope-manager': 5.22.0
 | 
			
		||||
      '@typescript-eslint/types': 5.22.0
 | 
			
		||||
      '@typescript-eslint/typescript-estree': 5.22.0_typescript@4.6.4
 | 
			
		||||
      '@typescript-eslint/scope-manager': 5.23.0
 | 
			
		||||
      '@typescript-eslint/types': 5.23.0
 | 
			
		||||
      '@typescript-eslint/typescript-estree': 5.23.0_typescript@4.6.4
 | 
			
		||||
      eslint: 8.15.0
 | 
			
		||||
      eslint-scope: 5.1.1
 | 
			
		||||
      eslint-utils: 3.0.0_eslint@8.15.0
 | 
			
		||||
@@ -1062,11 +1062,11 @@ packages:
 | 
			
		||||
      - typescript
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@typescript-eslint/visitor-keys/5.22.0:
 | 
			
		||||
    resolution: {integrity: sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg==}
 | 
			
		||||
  /@typescript-eslint/visitor-keys/5.23.0:
 | 
			
		||||
    resolution: {integrity: sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==}
 | 
			
		||||
    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@typescript-eslint/types': 5.22.0
 | 
			
		||||
      '@typescript-eslint/types': 5.23.0
 | 
			
		||||
      eslint-visitor-keys: 3.3.0
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
@@ -1155,13 +1155,8 @@ packages:
 | 
			
		||||
      '@unocss/preset-mini': 0.33.2
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@unocss/reset/0.31.17:
 | 
			
		||||
    resolution: {integrity: sha512-g3+bqtM6LetSEJ5NYhi2P4vdP8yVLUQLbNZUdMtggcmHXTY08ISWaJKWmnHptrO13rtRoQ+l9gFc4Y7kRpD7NA==}
 | 
			
		||||
    dev: false
 | 
			
		||||
 | 
			
		||||
  /@unocss/reset/0.33.2:
 | 
			
		||||
    resolution: {integrity: sha512-ArrkGVr8OEfCHZ5p3IiCi2sv5qXRJZ45zzhCr6vuwP+7+RbgMiyDKhV5oYqIGu7oxFesgXxeD+nRe/v4tKL33g==}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@unocss/scope/0.33.2:
 | 
			
		||||
    resolution: {integrity: sha512-Pt267ptQwvdefq16dJxxCKTsWEiIdSfUfYv1KLsr7BQB/AFiiJLuRNn1rjUCrdYrLlA7riav9zdVk85x/u0PAg==}
 | 
			
		||||
@@ -1226,32 +1221,32 @@ packages:
 | 
			
		||||
      vue: 3.2.33
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@volar/code-gen/0.34.11:
 | 
			
		||||
    resolution: {integrity: sha512-A4w+y+zP8qCDFyZ0KIm2oydRerp14a+IAYXro9wLt0LLvvqUGHEu/6y87uAj6TDqiX4OL/W8r1cEdhOJqFrBlA==}
 | 
			
		||||
  /@volar/code-gen/0.34.12:
 | 
			
		||||
    resolution: {integrity: sha512-5GAPsSjScnfMmMoh9qLW7CWQjjnT0fTUsPWnDMMjKIOqQF9J5mOyo7rprt1VzX63zwayqFfx7V8W3EVNhUCE3w==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@volar/source-map': 0.34.11
 | 
			
		||||
      '@volar/source-map': 0.34.12
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@volar/source-map/0.34.11:
 | 
			
		||||
    resolution: {integrity: sha512-ZsNZqFPUDDL1y6hK0ok7EriFb3CnCeapTLQrziTAbi3yOhcE4yM4G59XtRzc1i9EB+RXscm9a6Q6TgzD5KvoeA==}
 | 
			
		||||
  /@volar/source-map/0.34.12:
 | 
			
		||||
    resolution: {integrity: sha512-07imKws1cz9g3eo0VWXdioNfc1eCjqwK7GsxVuYSc7OCzKASt9PywUW+F39QGB9g2Kewof+PjCVIPeGqGRECTA==}
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@volar/vue-code-gen/0.34.11:
 | 
			
		||||
    resolution: {integrity: sha512-r/tnLd1eyy/PI0fBUYU7hKXkCyHb0JqBidTiADrazzkYMraRcwL6JNLOj/D7Pk75W0ObzlMUfHJdrAuxKvAHRg==}
 | 
			
		||||
  /@volar/vue-code-gen/0.34.12:
 | 
			
		||||
    resolution: {integrity: sha512-PFcft62eIvQvcB6H2Z88fouTu2JmYwimORziFGr3LlGriQUEVmyDtqddtb+E+j2wGChtLkh6hf1py94C5VpI/Q==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@volar/code-gen': 0.34.11
 | 
			
		||||
      '@volar/source-map': 0.34.11
 | 
			
		||||
      '@volar/code-gen': 0.34.12
 | 
			
		||||
      '@volar/source-map': 0.34.12
 | 
			
		||||
      '@vue/compiler-core': 3.2.33
 | 
			
		||||
      '@vue/compiler-dom': 3.2.33
 | 
			
		||||
      '@vue/shared': 3.2.33
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
  /@volar/vue-typescript/0.34.11:
 | 
			
		||||
    resolution: {integrity: sha512-pZkIeCPIjRRc/Oj9uxyOk6UvE43ecD71B/CSbmtiMU9sqrSwpP8cdDr/B/cqm1jwebkChTaa1gLodNHS8BOLuw==}
 | 
			
		||||
  /@volar/vue-typescript/0.34.12:
 | 
			
		||||
    resolution: {integrity: sha512-mY5cZ2OFOKt1HcCuoX1ViEsccltX3mdACk/FAjrSZTrilTdVHI1zkmQlrpCSnjmE1qowd8I6YoVt7THCaVrHdg==}
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@volar/code-gen': 0.34.11
 | 
			
		||||
      '@volar/source-map': 0.34.11
 | 
			
		||||
      '@volar/vue-code-gen': 0.34.11
 | 
			
		||||
      '@volar/code-gen': 0.34.12
 | 
			
		||||
      '@volar/source-map': 0.34.12
 | 
			
		||||
      '@volar/vue-code-gen': 0.34.12
 | 
			
		||||
      '@vue/compiler-sfc': 3.2.33
 | 
			
		||||
      '@vue/reactivity': 3.2.33
 | 
			
		||||
    dev: true
 | 
			
		||||
@@ -1334,8 +1329,8 @@ packages:
 | 
			
		||||
      eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
 | 
			
		||||
      eslint-plugin-vue: ^8.0.1
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@typescript-eslint/eslint-plugin': 5.22.0_9817cbad956b8aa5d1e3d9ec99e4a1e4
 | 
			
		||||
      '@typescript-eslint/parser': 5.22.0_eslint@8.15.0+typescript@4.6.4
 | 
			
		||||
      '@typescript-eslint/eslint-plugin': 5.23.0_17b6d2ce7129f0b36f2c30ae592c16e7
 | 
			
		||||
      '@typescript-eslint/parser': 5.23.0_eslint@8.15.0+typescript@4.6.4
 | 
			
		||||
      eslint: 8.15.0
 | 
			
		||||
      eslint-plugin-vue: 8.7.1_eslint@8.15.0
 | 
			
		||||
      vue-eslint-parser: 8.3.0_eslint@8.15.0
 | 
			
		||||
@@ -6203,13 +6198,13 @@ packages:
 | 
			
		||||
      vue: 3.2.33
 | 
			
		||||
    dev: false
 | 
			
		||||
 | 
			
		||||
  /vue-tsc/0.34.11_typescript@4.6.4:
 | 
			
		||||
    resolution: {integrity: sha512-5NM4oR8U/c3mTlJ9aNXbXkAGT2bhq+FJpCgZDqOKPpCjW5QDx1BXPC+nrBXNMwg8TRL6pK4fl+x+hrK97Siq/Q==}
 | 
			
		||||
  /vue-tsc/0.34.12_typescript@4.6.4:
 | 
			
		||||
    resolution: {integrity: sha512-CmuqLXHEW5UvS8UpT2RYom5MzOWBD142PLXxDX0ARdZ/u1oLobA3od4XY2XZACQYCFCzjTvfD1H5wrWwiGwoUA==}
 | 
			
		||||
    hasBin: true
 | 
			
		||||
    peerDependencies:
 | 
			
		||||
      typescript: '*'
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@volar/vue-typescript': 0.34.11
 | 
			
		||||
      '@volar/vue-typescript': 0.34.12
 | 
			
		||||
      typescript: 4.6.4
 | 
			
		||||
    dev: true
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,6 +10,7 @@
 | 
			
		||||
    :sider-width="siderWidth"
 | 
			
		||||
    :sider-collapsed-width="siderCollapsedWidth"
 | 
			
		||||
    :sider-collapse="app.siderCollapse"
 | 
			
		||||
    :add-main-overflow-hidden="addMainOverflowHidden"
 | 
			
		||||
    :fixed-footer="theme.footer.fixed"
 | 
			
		||||
  >
 | 
			
		||||
    <template #header>
 | 
			
		||||
@@ -21,7 +22,7 @@
 | 
			
		||||
    <template #sider>
 | 
			
		||||
      <global-sider />
 | 
			
		||||
    </template>
 | 
			
		||||
    <global-content />
 | 
			
		||||
    <global-content @hide-main-overflow="setAddMainOverflowHidden" />
 | 
			
		||||
    <template #footer>
 | 
			
		||||
      <global-footer />
 | 
			
		||||
    </template>
 | 
			
		||||
@@ -33,11 +34,14 @@
 | 
			
		||||
import AdminLayout from '@soybeanjs/vue-admin-layout';
 | 
			
		||||
import { useAppStore, useThemeStore } from '@/store';
 | 
			
		||||
import { useBasicLayout } from '@/composables';
 | 
			
		||||
import { useBoolean } from '@/hooks';
 | 
			
		||||
import { SettingDrawer, GlobalHeader, GlobalTab, GlobalSider, GlobalContent, GlobalFooter } from '../common';
 | 
			
		||||
 | 
			
		||||
const app = useAppStore();
 | 
			
		||||
const theme = useThemeStore();
 | 
			
		||||
 | 
			
		||||
const { mode, headerProps, siderVisible, siderWidth, siderCollapsedWidth } = useBasicLayout();
 | 
			
		||||
 | 
			
		||||
const { bool: addMainOverflowHidden, setBool: setAddMainOverflowHidden } = useBoolean();
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped></style>
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,13 @@
 | 
			
		||||
  >
 | 
			
		||||
    <router-view v-slot="{ Component, route }">
 | 
			
		||||
      <div class="h-full">
 | 
			
		||||
        <transition :name="theme.page.animate ? theme.page.animateMode : undefined" mode="out-in" appear>
 | 
			
		||||
        <transition
 | 
			
		||||
          :name="theme.pageAnimateMode"
 | 
			
		||||
          mode="out-in"
 | 
			
		||||
          :appear="true"
 | 
			
		||||
          @before-leave="handleBeforeLeave"
 | 
			
		||||
          @after-enter="handleAfterEnter"
 | 
			
		||||
        >
 | 
			
		||||
          <keep-alive :include="routeStore.cacheRoutes">
 | 
			
		||||
            <component :is="Component" v-if="app.reloadFlag" :key="route.path" />
 | 
			
		||||
          </keep-alive>
 | 
			
		||||
@@ -23,12 +29,26 @@ interface Props {
 | 
			
		||||
  showPadding?: boolean;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface Emits {
 | 
			
		||||
  /** 禁止主体溢出 */
 | 
			
		||||
  (e: 'hide-main-overflow', hidden: boolean): void;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
withDefaults(defineProps<Props>(), {
 | 
			
		||||
  showPadding: true
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const emit = defineEmits<Emits>();
 | 
			
		||||
 | 
			
		||||
const app = useAppStore();
 | 
			
		||||
const theme = useThemeStore();
 | 
			
		||||
const routeStore = useRouteStore();
 | 
			
		||||
 | 
			
		||||
function handleBeforeLeave() {
 | 
			
		||||
  emit('hide-main-overflow', true);
 | 
			
		||||
}
 | 
			
		||||
function handleAfterEnter() {
 | 
			
		||||
  emit('hide-main-overflow', false);
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped></style>
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,9 @@ export const useThemeStore = defineStore('theme-store', {
 | 
			
		||||
    /** naive-ui暗黑主题 */
 | 
			
		||||
    naiveTheme(state) {
 | 
			
		||||
      return state.darkMode ? darkTheme : undefined;
 | 
			
		||||
    },
 | 
			
		||||
    pageAnimateMode(state) {
 | 
			
		||||
      return state.page.animate ? state.page.animateMode : undefined;
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  actions: {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user