Compare commits
	
		
			9 Commits
		
	
	
		
			tauri-v1.3
			...
			tauri-v1.3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 22a8cb324a | ||
|  | 5cf3236475 | ||
|  | 6489ec46ae | ||
|  | ac86247876 | ||
|  | c9433e1710 | ||
|  | 60dd22624b | ||
|  | 56760245d4 | ||
|  | d7aebb7dfa | ||
|  | 214341ee0b | 
							
								
								
									
										30
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						| @@ -1,6 +1,36 @@ | |||||||
| # Changelog | # Changelog | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ## [v1.3.11](https://github.com/soybeanjs/soybean-admin/compare/v1.3.10...v1.3.11) (2025-01-19) | ||||||
|  |  | ||||||
|  | ###    🚀 Features | ||||||
|  |  | ||||||
|  | - **projects**: multi language buttons support hiding.  -  by @Azir-11 in https://github.com/soybeanjs/soybean-admin/issues/683 [<samp>(d7aeb)</samp>](https://github.com/soybeanjs/soybean-admin/commit/d7aebb7) | ||||||
|  |  | ||||||
|  | ###    🐞 Bug Fixes | ||||||
|  |  | ||||||
|  | - **hooks**: | ||||||
|  |   - The total number before assigning a value to the table is incorrect.  -  by @Azir-11 in https://github.com/soybeanjs/soybean-admin/issues/687 [<samp>(56760)</samp>](https://github.com/soybeanjs/soybean-admin/commit/5676024) | ||||||
|  | - **projects**: | ||||||
|  |   - fix login success notification. fixed #688  -  by @soybeanjs in https://github.com/soybeanjs/soybean-admin/issues/688 [<samp>(60dd2)</samp>](https://github.com/soybeanjs/soybean-admin/commit/60dd226) | ||||||
|  |   - fix update notifications. fixed #691, fixed #692  -  by @soybeanjs in https://github.com/soybeanjs/soybean-admin/issues/691 and https://github.com/soybeanjs/soybean-admin/issues/692 [<samp>(ac862)</samp>](https://github.com/soybeanjs/soybean-admin/commit/ac86247) | ||||||
|  |  | ||||||
|  | ###    🛠 Optimizations | ||||||
|  |  | ||||||
|  | - **projects**: optimize code  -  by @soybeanjs [<samp>(6489e)</samp>](https://github.com/soybeanjs/soybean-admin/commit/6489ec4) | ||||||
|  |  | ||||||
|  | ###    📖 Documentation | ||||||
|  |  | ||||||
|  | - **projects**: update README  -  by @soybeanjs [<samp>(21434)</samp>](https://github.com/soybeanjs/soybean-admin/commit/214341e) | ||||||
|  |  | ||||||
|  | ###    🏡 Chore | ||||||
|  |  | ||||||
|  | - **deps**: update deps  -  by @soybeanjs [<samp>(c9433)</samp>](https://github.com/soybeanjs/soybean-admin/commit/c9433e1) | ||||||
|  |  | ||||||
|  | ###    ❤️ Contributors | ||||||
|  |  | ||||||
|  | [](https://github.com/soybeanjs)  [](https://github.com/Azir-11)   | ||||||
|  |  | ||||||
| ## [v1.3.10](https://github.com/honghuangdc/soybean-admin/compare/v1.3.9...v1.3.10) (2024-12-16) | ## [v1.3.10](https://github.com/honghuangdc/soybean-admin/compare/v1.3.9...v1.3.10) (2024-12-16) | ||||||
|  |  | ||||||
| ###    🚀 Features | ###    🚀 Features | ||||||
|   | |||||||
| @@ -49,7 +49,7 @@ | |||||||
|   - [Github Repository](https://github.com/soybeanjs/soybean-admin-antd) |   - [Github Repository](https://github.com/soybeanjs/soybean-admin-antd) | ||||||
|   - [Gitee Repository](https://gitee.com/honghuangdc/soybean-admin-antd) |   - [Gitee Repository](https://gitee.com/honghuangdc/soybean-admin-antd) | ||||||
|  |  | ||||||
| - **ElementPlusVue Version:** | - **ElementPlus Version:** | ||||||
|   - [Preview Link](https://elp.soybeanjs.cn/) |   - [Preview Link](https://elp.soybeanjs.cn/) | ||||||
|   - [Github Repository](https://github.com/soybeanjs/soybean-admin-element-plus) |   - [Github Repository](https://github.com/soybeanjs/soybean-admin-element-plus) | ||||||
|  |  | ||||||
| @@ -113,6 +113,10 @@ pnpm dev | |||||||
| pnpm build | pnpm build | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  | **Code Synchronization** | ||||||
|  |  | ||||||
|  | Refer to the [Code Synchronization](https://docs.soybeanjs.cn/guide/sync) document. | ||||||
|  |  | ||||||
| ## Ecosystem | ## Ecosystem | ||||||
|  |  | ||||||
| - [react-soybean-admin](https://github.com/mufeng889/react-soybean-admin): SoybeanAdmin based version of React. | - [react-soybean-admin](https://github.com/mufeng889/react-soybean-admin): SoybeanAdmin based version of React. | ||||||
|   | |||||||
| @@ -45,7 +45,7 @@ | |||||||
|   - [预览地址](https://antd.soybeanjs.cn/) |   - [预览地址](https://antd.soybeanjs.cn/) | ||||||
|   - [Github 仓库](https://github.com/soybeanjs/soybean-admin-antd) |   - [Github 仓库](https://github.com/soybeanjs/soybean-admin-antd) | ||||||
|   - [Gitee 仓库](https://gitee.com/honghuangdc/soybean-admin-antd) |   - [Gitee 仓库](https://gitee.com/honghuangdc/soybean-admin-antd) | ||||||
| - **ElementPlusVue 版本:** | - **ElementPlus 版本:** | ||||||
|   - [预览地址](https://elp.soybeanjs.cn/) |   - [预览地址](https://elp.soybeanjs.cn/) | ||||||
|   - [Github 仓库](https://github.com/soybeanjs/soybean-admin-element-plus) |   - [Github 仓库](https://github.com/soybeanjs/soybean-admin-element-plus) | ||||||
| - **旧版:** | - **旧版:** | ||||||
| @@ -138,6 +138,10 @@ pnpm dev | |||||||
| pnpm build | pnpm build | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  | **代码同步** | ||||||
|  |  | ||||||
|  | 参考 [代码同步](https://docs.soybeanjs.cn/zh/guide/sync) 文档。 | ||||||
|  |  | ||||||
| ## 周边生态 | ## 周边生态 | ||||||
|  |  | ||||||
| - [react-soybean-admin](https://github.com/mufeng889/react-soybean-admin): 基于SoybeanAdmin的React版本. | - [react-soybean-admin](https://github.com/mufeng889/react-soybean-admin): 基于SoybeanAdmin的React版本. | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| import { defineConfig } from '@soybeanjs/eslint-config'; | import { defineConfig } from '@soybeanjs/eslint-config'; | ||||||
|  |  | ||||||
| export default defineConfig( | export default defineConfig( | ||||||
|   { vue: true, unocss: true }, |   { vue: true, unocss: true, ignores: ['src-tauri/target'] }, | ||||||
|   { |   { | ||||||
|     rules: { |     rules: { | ||||||
|       'vue/multi-word-component-names': [ |       'vue/multi-word-component-names': [ | ||||||
|   | |||||||
							
								
								
									
										53
									
								
								package.json
									
									
									
									
									
								
							
							
						
						| @@ -1,7 +1,7 @@ | |||||||
| { | { | ||||||
|   "name": "soybean-admin", |   "name": "soybean-admin", | ||||||
|   "type": "module", |   "type": "module", | ||||||
|   "version": "1.3.10", |   "version": "1.3.11", | ||||||
|   "description": "A fresh and elegant admin template, based on Vue3、Vite3、TypeScript、NaiveUI and UnoCSS. 一个基于Vue3、Vite3、TypeScript、NaiveUI and UnoCSS的清新优雅的中后台模版。", |   "description": "A fresh and elegant admin template, based on Vue3、Vite3、TypeScript、NaiveUI and UnoCSS. 一个基于Vue3、Vite3、TypeScript、NaiveUI and UnoCSS的清新优雅的中后台模版。", | ||||||
|   "author": { |   "author": { | ||||||
|     "name": "Soybean", |     "name": "Soybean", | ||||||
| @@ -32,74 +32,79 @@ | |||||||
|   }, |   }, | ||||||
|   "scripts": { |   "scripts": { | ||||||
|     "build": "vite build --mode prod", |     "build": "vite build --mode prod", | ||||||
|  |     "build:tauri": "pnpm tauri build", | ||||||
|     "build:test": "vite build --mode test", |     "build:test": "vite build --mode test", | ||||||
|     "cleanup": "sa cleanup", |     "cleanup": "sa cleanup", | ||||||
|     "commit": "sa git-commit", |     "commit": "sa git-commit", | ||||||
|     "commit:zh": "sa git-commit -l=zh-cn", |     "commit:zh": "sa git-commit -l=zh-cn", | ||||||
|     "dev": "vite --mode test", |     "dev": "vite --mode test", | ||||||
|     "dev:prod": "vite --mode prod", |     "dev:prod": "vite --mode prod", | ||||||
|  |     "dev:tauri": "pnpm tauri dev", | ||||||
|     "gen-route": "sa gen-route", |     "gen-route": "sa gen-route", | ||||||
|     "lint": "eslint . --fix", |     "lint": "eslint . --fix", | ||||||
|     "prepare": "simple-git-hooks", |     "prepare": "simple-git-hooks", | ||||||
|     "preview": "vite preview", |     "preview": "vite preview", | ||||||
|     "release": "sa release", |     "release": "sa release", | ||||||
|  |     "tauri-icon": "pnpm tauri icon ./public/logo.png", | ||||||
|     "typecheck": "vue-tsc --noEmit --skipLibCheck", |     "typecheck": "vue-tsc --noEmit --skipLibCheck", | ||||||
|     "update-pkg": "sa update-pkg" |     "update-pkg": "sa update-pkg" | ||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@better-scroll/core": "2.5.1", |     "@better-scroll/core": "2.5.1", | ||||||
|     "@iconify/vue": "4.2.0", |     "@iconify/vue": "4.3.0", | ||||||
|     "@sa/axios": "workspace:*", |     "@sa/axios": "workspace:*", | ||||||
|     "@sa/color": "workspace:*", |     "@sa/color": "workspace:*", | ||||||
|     "@sa/hooks": "workspace:*", |     "@sa/hooks": "workspace:*", | ||||||
|     "@sa/materials": "workspace:*", |     "@sa/materials": "workspace:*", | ||||||
|     "@sa/utils": "workspace:*", |     "@sa/utils": "workspace:*", | ||||||
|     "@vueuse/core": "12.0.0", |     "@tauri-apps/api": "2.2.0", | ||||||
|  |     "@vueuse/core": "12.4.0", | ||||||
|     "clipboard": "2.0.11", |     "clipboard": "2.0.11", | ||||||
|     "dayjs": "1.11.13", |     "dayjs": "1.11.13", | ||||||
|     "defu": "6.1.4", |     "defu": "6.1.4", | ||||||
|     "echarts": "5.5.1", |     "echarts": "5.6.0", | ||||||
|     "json5": "2.2.3", |     "json5": "2.2.3", | ||||||
|     "naive-ui": "2.40.3", |     "naive-ui": "2.41.0", | ||||||
|     "nprogress": "0.2.0", |     "nprogress": "0.2.0", | ||||||
|     "pinia": "2.3.0", |     "pinia": "2.3.0", | ||||||
|     "tailwind-merge": "2.5.5", |     "tailwind-merge": "2.6.0", | ||||||
|     "vue": "3.5.13", |     "vue": "3.5.13", | ||||||
|     "vue-draggable-plus": "0.6.0", |     "vue-draggable-plus": "0.6.0", | ||||||
|     "vue-i18n": "10.0.5", |     "vue-i18n": "11.0.1", | ||||||
|     "vue-router": "4.5.0" |     "vue-router": "4.5.0" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@elegant-router/vue": "0.3.8", |     "@elegant-router/vue": "0.3.8", | ||||||
|     "@iconify/json": "2.2.283", |     "@iconify/json": "2.2.297", | ||||||
|     "@sa/scripts": "workspace:*", |     "@sa/scripts": "workspace:*", | ||||||
|     "@sa/uno-preset": "workspace:*", |     "@sa/uno-preset": "workspace:*", | ||||||
|     "@soybeanjs/eslint-config": "1.4.4", |     "@soybeanjs/eslint-config": "1.4.4", | ||||||
|     "@types/node": "22.10.2", |     "@tauri-apps/cli": "2.2.5", | ||||||
|  |     "@types/node": "22.10.7", | ||||||
|     "@types/nprogress": "0.2.3", |     "@types/nprogress": "0.2.3", | ||||||
|     "@unocss/eslint-config": "0.65.1", |     "@unocss/eslint-config": "65.4.2", | ||||||
|     "@unocss/preset-icons": "0.65.1", |     "@unocss/preset-icons": "65.4.2", | ||||||
|     "@unocss/preset-uno": "0.65.1", |     "@unocss/preset-uno": "65.4.2", | ||||||
|     "@unocss/transformer-directives": "0.65.1", |     "@unocss/transformer-directives": "65.4.2", | ||||||
|     "@unocss/transformer-variant-group": "0.65.1", |     "@unocss/transformer-variant-group": "65.4.2", | ||||||
|     "@unocss/vite": "0.65.1", |     "@unocss/vite": "65.4.2", | ||||||
|     "@vitejs/plugin-vue": "5.2.1", |     "@vitejs/plugin-vue": "5.2.1", | ||||||
|     "@vitejs/plugin-vue-jsx": "4.1.1", |     "@vitejs/plugin-vue-jsx": "4.1.1", | ||||||
|     "eslint": "9.17.0", |     "eslint": "9.18.0", | ||||||
|     "eslint-plugin-vue": "9.32.0", |     "eslint-plugin-vue": "9.32.0", | ||||||
|     "lint-staged": "15.2.11", |     "lint-staged": "15.4.1", | ||||||
|     "sass": "1.83.0", |     "sass": "1.83.4", | ||||||
|     "simple-git-hooks": "2.11.1", |     "simple-git-hooks": "2.11.1", | ||||||
|     "tsx": "4.19.2", |     "tsx": "4.19.2", | ||||||
|     "typescript": "5.7.2", |     "typescript": "5.7.3", | ||||||
|     "unplugin-icons": "0.21.0", |     "unplugin-icons": "22.0.0", | ||||||
|     "unplugin-vue-components": "0.28.0", |     "unplugin-vue-components": "28.0.0", | ||||||
|     "vite": "6.0.3", |     "vite": "6.0.7", | ||||||
|     "vite-plugin-progress": "0.0.7", |     "vite-plugin-progress": "0.0.7", | ||||||
|     "vite-plugin-svg-icons": "2.0.1", |     "vite-plugin-svg-icons": "2.0.1", | ||||||
|     "vite-plugin-vue-devtools": "7.6.8", |     "vite-plugin-vue-devtools": "7.7.0", | ||||||
|     "vue-eslint-parser": "9.4.3", |     "vue-eslint-parser": "9.4.3", | ||||||
|     "vue-tsc": "2.1.10" |     "vue-tsc": "2.2.0" | ||||||
|   }, |   }, | ||||||
|   "simple-git-hooks": { |   "simple-git-hooks": { | ||||||
|     "commit-msg": "pnpm sa git-commit-verify", |     "commit-msg": "pnpm sa git-commit-verify", | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "@sa/alova", |   "name": "@sa/alova", | ||||||
|   "version": "1.3.10", |   "version": "1.3.11", | ||||||
|   "exports": { |   "exports": { | ||||||
|     ".": "./src/index.ts", |     ".": "./src/index.ts", | ||||||
|     "./fetch": "./src/fetch.ts", |     "./fetch": "./src/fetch.ts", | ||||||
| @@ -13,8 +13,8 @@ | |||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@alova/mock": "2.0.10", |     "@alova/mock": "2.0.11", | ||||||
|     "@sa/utils": "workspace:*", |     "@sa/utils": "workspace:*", | ||||||
|     "alova": "3.2.6" |     "alova": "3.2.8" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "@sa/axios", |   "name": "@sa/axios", | ||||||
|   "version": "1.3.10", |   "version": "1.3.11", | ||||||
|   "exports": { |   "exports": { | ||||||
|     ".": "./src/index.ts" |     ".": "./src/index.ts" | ||||||
|   }, |   }, | ||||||
| @@ -13,9 +13,9 @@ | |||||||
|     "@sa/utils": "workspace:*", |     "@sa/utils": "workspace:*", | ||||||
|     "axios": "1.7.9", |     "axios": "1.7.9", | ||||||
|     "axios-retry": "4.5.0", |     "axios-retry": "4.5.0", | ||||||
|     "qs": "6.13.1" |     "qs": "6.14.0" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@types/qs": "6.9.17" |     "@types/qs": "6.9.18" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "@sa/color", |   "name": "@sa/color", | ||||||
|   "version": "1.3.10", |   "version": "1.3.11", | ||||||
|   "exports": { |   "exports": { | ||||||
|     ".": "./src/index.ts" |     ".": "./src/index.ts" | ||||||
|   }, |   }, | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "@sa/hooks", |   "name": "@sa/hooks", | ||||||
|   "version": "1.3.10", |   "version": "1.3.11", | ||||||
|   "exports": { |   "exports": { | ||||||
|     ".": "./src/index.ts" |     ".": "./src/index.ts" | ||||||
|   }, |   }, | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "@sa/materials", |   "name": "@sa/materials", | ||||||
|   "version": "1.3.10", |   "version": "1.3.11", | ||||||
|   "exports": { |   "exports": { | ||||||
|     ".": "./src/index.ts" |     ".": "./src/index.ts" | ||||||
|   }, |   }, | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "@sa/fetch", |   "name": "@sa/fetch", | ||||||
|   "version": "1.3.10", |   "version": "1.3.11", | ||||||
|   "exports": { |   "exports": { | ||||||
|     ".": "./src/index.ts" |     ".": "./src/index.ts" | ||||||
|   }, |   }, | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "@sa/scripts", |   "name": "@sa/scripts", | ||||||
|   "version": "1.3.10", |   "version": "1.3.11", | ||||||
|   "bin": { |   "bin": { | ||||||
|     "sa": "./bin.ts" |     "sa": "./bin.ts" | ||||||
|   }, |   }, | ||||||
| @@ -14,14 +14,14 @@ | |||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@soybeanjs/changelog": "0.3.24", |     "@soybeanjs/changelog": "0.3.24", | ||||||
|     "bumpp": "9.9.1", |     "bumpp": "9.10.1", | ||||||
|     "c12": "2.0.1", |     "c12": "2.0.1", | ||||||
|     "cac": "6.7.14", |     "cac": "6.7.14", | ||||||
|     "consola": "3.2.3", |     "consola": "3.4.0", | ||||||
|     "enquirer": "2.4.1", |     "enquirer": "2.4.1", | ||||||
|     "execa": "9.5.2", |     "execa": "9.5.2", | ||||||
|     "kolorist": "1.8.0", |     "kolorist": "1.8.0", | ||||||
|     "npm-check-updates": "17.1.11", |     "npm-check-updates": "17.1.14", | ||||||
|     "rimraf": "6.0.1" |     "rimraf": "6.0.1" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "@sa/uno-preset", |   "name": "@sa/uno-preset", | ||||||
|   "version": "1.3.10", |   "version": "1.3.11", | ||||||
|   "exports": { |   "exports": { | ||||||
|     ".": "./src/index.ts" |     ".": "./src/index.ts" | ||||||
|   }, |   }, | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "@sa/utils", |   "name": "@sa/utils", | ||||||
|   "version": "1.3.10", |   "version": "1.3.11", | ||||||
|   "exports": { |   "exports": { | ||||||
|     ".": "./src/index.ts" |     ".": "./src/index.ts" | ||||||
|   }, |   }, | ||||||
|   | |||||||
							
								
								
									
										2397
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								public/logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 20 KiB | 
							
								
								
									
										3
									
								
								src-tauri/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | # Generated by Cargo | ||||||
|  | # will have compiled files and executables | ||||||
|  | /target/ | ||||||
							
								
								
									
										4580
									
								
								src-tauri/Cargo.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										26
									
								
								src-tauri/Cargo.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,26 @@ | |||||||
|  | [package] | ||||||
|  | name = "app" | ||||||
|  | version = "0.1.0" | ||||||
|  | description = "A Tauri App" | ||||||
|  | authors = ["you"] | ||||||
|  | license = "" | ||||||
|  | repository = "" | ||||||
|  | default-run = "app" | ||||||
|  | edition = "2021" | ||||||
|  | rust-version = "1.60" | ||||||
|  |  | ||||||
|  | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html | ||||||
|  |  | ||||||
|  | [build-dependencies] | ||||||
|  | tauri-build = { version = "2", features = [] } | ||||||
|  |  | ||||||
|  | [dependencies] | ||||||
|  | serde_json = "1.0" | ||||||
|  | serde = { version = "1.0", features = ["derive"] } | ||||||
|  | tauri = { version = "2", features = [] } | ||||||
|  |  | ||||||
|  | [features] | ||||||
|  | # this feature is used for production builds or when `devPath` points to the filesystem and the built-in dev server is disabled. | ||||||
|  | # If you use cargo directly instead of tauri's cli you can use this feature flag to switch between tauri's `dev` and `build` modes. | ||||||
|  | # DO NOT REMOVE!! | ||||||
|  | custom-protocol = [ "tauri/custom-protocol" ] | ||||||
							
								
								
									
										3
									
								
								src-tauri/build.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | |||||||
|  | fn main() { | ||||||
|  |   tauri_build::build() | ||||||
|  | } | ||||||
							
								
								
									
										7
									
								
								src-tauri/capabilities/migrated.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,7 @@ | |||||||
|  | { | ||||||
|  |   "identifier": "migrated", | ||||||
|  |   "description": "permissions that were migrated from v1", | ||||||
|  |   "local": true, | ||||||
|  |   "windows": ["main"], | ||||||
|  |   "permissions": ["core:default"] | ||||||
|  | } | ||||||
							
								
								
									
										1676
									
								
								src-tauri/gen/schemas/acl-manifests.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										9
									
								
								src-tauri/gen/schemas/capabilities.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,9 @@ | |||||||
|  | { | ||||||
|  |   "migrated": { | ||||||
|  |     "identifier": "migrated", | ||||||
|  |     "description": "permissions that were migrated from v1", | ||||||
|  |     "local": true, | ||||||
|  |     "windows": ["main"], | ||||||
|  |     "permissions": ["core:default"] | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										1778
									
								
								src-tauri/gen/schemas/desktop-schema.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										1778
									
								
								src-tauri/gen/schemas/macOS-schema.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/128x128.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 8.8 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/128x128@2x.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 19 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/32x32.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.7 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/Square107x107Logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 7.4 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/Square142x142Logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 9.9 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/Square150x150Logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 10 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/Square284x284Logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 21 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/Square30x30Logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.6 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/Square310x310Logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 23 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/Square44x44Logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.6 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/Square71x71Logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 4.7 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/Square89x89Logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 6.1 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/StoreLogo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 3.0 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/icon.icns
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/icon.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 31 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src-tauri/icons/icon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 39 KiB | 
							
								
								
									
										8
									
								
								src-tauri/src/main.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,8 @@ | |||||||
|  | // Prevents additional console window on Windows in release, DO NOT REMOVE!! | ||||||
|  | #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] | ||||||
|  |  | ||||||
|  | fn main() { | ||||||
|  |   tauri::Builder::default() | ||||||
|  |     .run(tauri::generate_context!()) | ||||||
|  |     .expect("error while running tauri application"); | ||||||
|  | } | ||||||
							
								
								
									
										57
									
								
								src-tauri/tauri.conf.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,57 @@ | |||||||
|  | { | ||||||
|  |   "$schema": "../node_modules/@tauri-apps/cli/config.schema.json", | ||||||
|  |   "build": { | ||||||
|  |     "beforeBuildCommand": "npm run build", | ||||||
|  |     "beforeDevCommand": "npm run dev", | ||||||
|  |     "frontendDist": "../dist", | ||||||
|  |     "devUrl": "http://localhost:9527" | ||||||
|  |   }, | ||||||
|  |   "bundle": { | ||||||
|  |     "active": true, | ||||||
|  |     "category": "DeveloperTool", | ||||||
|  |     "copyright": "", | ||||||
|  |     "targets": "all", | ||||||
|  |     "externalBin": [], | ||||||
|  |     "icon": ["icons/32x32.png", "icons/128x128.png", "icons/128x128@2x.png", "icons/icon.icns", "icons/icon.ico"], | ||||||
|  |     "windows": { | ||||||
|  |       "certificateThumbprint": null, | ||||||
|  |       "digestAlgorithm": "sha256", | ||||||
|  |       "timestampUrl": "" | ||||||
|  |     }, | ||||||
|  |     "longDescription": "", | ||||||
|  |     "macOS": { | ||||||
|  |       "entitlements": null, | ||||||
|  |       "exceptionDomain": "", | ||||||
|  |       "frameworks": [], | ||||||
|  |       "providerShortName": null, | ||||||
|  |       "signingIdentity": null | ||||||
|  |     }, | ||||||
|  |     "resources": [], | ||||||
|  |     "shortDescription": "", | ||||||
|  |     "linux": { | ||||||
|  |       "deb": { | ||||||
|  |         "depends": [] | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   "productName": "soybean-admin", | ||||||
|  |   "mainBinaryName": "soybean-admin", | ||||||
|  |   "version": "1.0.0", | ||||||
|  |   "identifier": "cn.soybeanjs.admin", | ||||||
|  |   "plugins": {}, | ||||||
|  |   "app": { | ||||||
|  |     "windows": [ | ||||||
|  |       { | ||||||
|  |         "fullscreen": false, | ||||||
|  |         "height": 768, | ||||||
|  |         "resizable": true, | ||||||
|  |         "title": "SoybeanAdmin", | ||||||
|  |         "width": 1366, | ||||||
|  |         "useHttpsScheme": true | ||||||
|  |       } | ||||||
|  |     ], | ||||||
|  |     "security": { | ||||||
|  |       "csp": null | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -102,9 +102,9 @@ export function useRouterPush(inSetup = true) { | |||||||
|     const redirect = route.value.query?.redirect as string; |     const redirect = route.value.query?.redirect as string; | ||||||
|  |  | ||||||
|     if (needRedirect && redirect) { |     if (needRedirect && redirect) { | ||||||
|       routerPush(redirect); |       await routerPush(redirect); | ||||||
|     } else { |     } else { | ||||||
|       toHome(); |       await toHome(); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -119,6 +119,7 @@ export function useTable<A extends NaiveUI.TableApiFn>(config: NaiveUI.NaiveTabl | |||||||
|     page: 1, |     page: 1, | ||||||
|     pageSize: 10, |     pageSize: 10, | ||||||
|     showSizePicker: true, |     showSizePicker: true, | ||||||
|  |     itemCount: 0, | ||||||
|     pageSizes: [10, 15, 20, 25, 30], |     pageSizes: [10, 15, 20, 25, 30], | ||||||
|     onUpdatePage: async (page: number) => { |     onUpdatePage: async (page: number) => { | ||||||
|       pagination.page = page; |       pagination.page = page; | ||||||
|   | |||||||
| @@ -40,7 +40,12 @@ const { isFullscreen, toggle } = useFullscreen(); | |||||||
|     <div class="h-full flex-y-center justify-end"> |     <div class="h-full flex-y-center justify-end"> | ||||||
|       <GlobalSearch /> |       <GlobalSearch /> | ||||||
|       <FullScreen v-if="!appStore.isMobile" :full="isFullscreen" @click="toggle" /> |       <FullScreen v-if="!appStore.isMobile" :full="isFullscreen" @click="toggle" /> | ||||||
|       <LangSwitch :lang="appStore.locale" :lang-options="appStore.localeOptions" @change-lang="appStore.changeLocale" /> |       <LangSwitch | ||||||
|  |         v-if="themeStore.header.multilingual.visible" | ||||||
|  |         :lang="appStore.locale" | ||||||
|  |         :lang-options="appStore.localeOptions" | ||||||
|  |         @change-lang="appStore.changeLocale" | ||||||
|  |       /> | ||||||
|       <ThemeSchemaSwitch |       <ThemeSchemaSwitch | ||||||
|         :theme-schema="themeStore.themeScheme" |         :theme-schema="themeStore.themeScheme" | ||||||
|         :is-dark="themeStore.darkMode" |         :is-dark="themeStore.darkMode" | ||||||
|   | |||||||
| @@ -127,6 +127,9 @@ const isWrapperScrollMode = computed(() => themeStore.layout.scrollMode === 'wra | |||||||
|         placeholder="SoybeanAdmin" |         placeholder="SoybeanAdmin" | ||||||
|       /> |       /> | ||||||
|     </SettingItem> |     </SettingItem> | ||||||
|  |     <SettingItem key="9" :label="$t('theme.header.multilingual.visible')"> | ||||||
|  |       <NSwitch v-model:value="themeStore.header.multilingual.visible" /> | ||||||
|  |     </SettingItem> | ||||||
|   </TransitionGroup> |   </TransitionGroup> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -109,6 +109,9 @@ const local: App.I18n.Schema = { | |||||||
|       breadcrumb: { |       breadcrumb: { | ||||||
|         visible: 'Breadcrumb Visible', |         visible: 'Breadcrumb Visible', | ||||||
|         showIcon: 'Breadcrumb Icon Visible' |         showIcon: 'Breadcrumb Icon Visible' | ||||||
|  |       }, | ||||||
|  |       multilingual: { | ||||||
|  |         visible: 'Display multilingual button' | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     tab: { |     tab: { | ||||||
|   | |||||||
| @@ -109,6 +109,9 @@ const local: App.I18n.Schema = { | |||||||
|       breadcrumb: { |       breadcrumb: { | ||||||
|         visible: '显示面包屑', |         visible: '显示面包屑', | ||||||
|         showIcon: '显示面包屑图标' |         showIcon: '显示面包屑图标' | ||||||
|  |       }, | ||||||
|  |       multilingual: { | ||||||
|  |         visible: '显示多语言按钮' | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     tab: { |     tab: { | ||||||
|   | |||||||
| @@ -10,22 +10,18 @@ export function setupAppErrorHandle(app: App) { | |||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | export function setupAppVersionNotification() { | ||||||
|   // Update check interval in milliseconds |   // Update check interval in milliseconds | ||||||
|   const UPDATE_CHECK_INTERVAL = 3 * 60 * 1000; |   const UPDATE_CHECK_INTERVAL = 3 * 60 * 1000; | ||||||
|  |  | ||||||
| export function setupAppVersionNotification() { |   const canAutoUpdateApp = import.meta.env.VITE_AUTOMATICALLY_DETECT_UPDATE === 'Y' && import.meta.env.PROD; | ||||||
|   const canAutoUpdateApp = import.meta.env.VITE_AUTOMATICALLY_DETECT_UPDATE === 'Y'; |  | ||||||
|  |  | ||||||
|   if (!canAutoUpdateApp) return; |   if (!canAutoUpdateApp) return; | ||||||
|  |  | ||||||
|   let isShow = false; |   let isShow = false; | ||||||
|   let updateInterval: ReturnType<typeof setInterval> | undefined; |   let updateInterval: ReturnType<typeof setInterval> | undefined; | ||||||
|  |  | ||||||
|   // Check if updates should be checked |  | ||||||
|   const shouldCheckForUpdates = [!isShow, document.visibilityState === 'visible', !import.meta.env.DEV].every(Boolean); |  | ||||||
|  |  | ||||||
|   const checkForUpdates = async () => { |   const checkForUpdates = async () => { | ||||||
|     if (!shouldCheckForUpdates) return; |     if (isShow) return; | ||||||
|  |  | ||||||
|     const buildTime = await getHtmlBuildTime(); |     const buildTime = await getHtmlBuildTime(); | ||||||
|  |  | ||||||
| @@ -47,6 +43,7 @@ export function setupAppVersionNotification() { | |||||||
|             { |             { | ||||||
|               onClick() { |               onClick() { | ||||||
|                 n?.destroy(); |                 n?.destroy(); | ||||||
|  |                 isShow = false; | ||||||
|               } |               } | ||||||
|             }, |             }, | ||||||
|             () => $t('system.updateCancel') |             () => $t('system.updateCancel') | ||||||
| @@ -77,7 +74,7 @@ export function setupAppVersionNotification() { | |||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   // If updates should be checked, set up the visibility change listener and start the update interval |   // If updates should be checked, set up the visibility change listener and start the update interval | ||||||
|   if (shouldCheckForUpdates) { |   if (!isShow && document.visibilityState === 'visible') { | ||||||
|     // Check for updates when the document is visible |     // Check for updates when the document is visible | ||||||
|     document.addEventListener('visibilitychange', () => { |     document.addEventListener('visibilitychange', () => { | ||||||
|       if (document.visibilityState === 'visible') { |       if (document.visibilityState === 'visible') { | ||||||
|   | |||||||
| @@ -71,14 +71,12 @@ export const useAuthStore = defineStore(SetupStoreId.Auth, () => { | |||||||
|       if (pass) { |       if (pass) { | ||||||
|         await redirectFromLogin(redirect); |         await redirectFromLogin(redirect); | ||||||
|  |  | ||||||
|         if (routeStore.isInitAuthRoute) { |  | ||||||
|         window.$notification?.success({ |         window.$notification?.success({ | ||||||
|           title: $t('page.login.common.loginSuccess'), |           title: $t('page.login.common.loginSuccess'), | ||||||
|           content: $t('page.login.common.welcomeBack', { userName: userInfo.userName }), |           content: $t('page.login.common.welcomeBack', { userName: userInfo.userName }), | ||||||
|           duration: 4500 |           duration: 4500 | ||||||
|         }); |         }); | ||||||
|       } |       } | ||||||
|       } |  | ||||||
|     } else { |     } else { | ||||||
|       resetStore(); |       resetStore(); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -27,6 +27,9 @@ export const themeSettings: App.Theme.ThemeSetting = { | |||||||
|     breadcrumb: { |     breadcrumb: { | ||||||
|       visible: true, |       visible: true, | ||||||
|       showIcon: true |       showIcon: true | ||||||
|  |     }, | ||||||
|  |     multilingual: { | ||||||
|  |       visible: true | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   tab: { |   tab: { | ||||||
|   | |||||||
							
								
								
									
										8
									
								
								src/typings/app.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -53,6 +53,11 @@ declare namespace App { | |||||||
|           /** Whether to show the breadcrumb icon */ |           /** Whether to show the breadcrumb icon */ | ||||||
|           showIcon: boolean; |           showIcon: boolean; | ||||||
|         }; |         }; | ||||||
|  |         /** Multilingual */ | ||||||
|  |         multilingual: { | ||||||
|  |           /** Whether to show the multilingual */ | ||||||
|  |           visible: boolean; | ||||||
|  |         }; | ||||||
|       }; |       }; | ||||||
|       /** Tab */ |       /** Tab */ | ||||||
|       tab: { |       tab: { | ||||||
| @@ -363,6 +368,9 @@ declare namespace App { | |||||||
|             visible: string; |             visible: string; | ||||||
|             showIcon: string; |             showIcon: string; | ||||||
|           }; |           }; | ||||||
|  |           multilingual: { | ||||||
|  |             visible: string; | ||||||
|  |           }; | ||||||
|         }; |         }; | ||||||
|         tab: { |         tab: { | ||||||
|           visible: string; |           visible: string; | ||||||
|   | |||||||