From ddf3823a552ac2f4c016b439b3011d760adc1636 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E9=93=83=E8=96=AF=E5=A4=B4?= Date: Thu, 6 Jun 2024 15:57:58 +0800 Subject: [PATCH 1/9] fix(projects): fix register name, CodeLogin => Register (#478) --- eslint.config.js | 2 +- src/views/_builtin/login/modules/register.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index cc9dfd08..00537e3f 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -7,7 +7,7 @@ export default defineConfig( 'vue/multi-word-component-names': [ 'warn', { - ignores: ['index', 'App', '[id]', '[url]'] + ignores: ['index', 'App', 'Register', '[id]', '[url]'] } ], 'vue/component-name-in-template-casing': [ diff --git a/src/views/_builtin/login/modules/register.vue b/src/views/_builtin/login/modules/register.vue index 95b19217..5308095c 100644 --- a/src/views/_builtin/login/modules/register.vue +++ b/src/views/_builtin/login/modules/register.vue @@ -6,7 +6,7 @@ import { useFormRules, useNaiveForm } from '@/hooks/common/form'; import { useCaptcha } from '@/hooks/business/captcha'; defineOptions({ - name: 'CodeLogin' + name: 'Register' }); const { toggleLoginModule } = useRouterPush(); From 76649e2a0853c61579cc8985ae31b5d3464ad330 Mon Sep 17 00:00:00 2001 From: Soybean Date: Thu, 6 Jun 2024 19:17:27 +0800 Subject: [PATCH 2/9] chore(projects): update vscode settings: vue official --- .vscode/settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index f7b20e53..1a42d1dc 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,5 +15,5 @@ "prettier.enable": false, "typescript.tsdk": "node_modules/typescript/lib", "unocss.root": ["./"], - "vue.server.hybridMode": false + "vue.server.hybridMode": true } From 060c0a91c7184eaf9b606e739cf9b75ff996f64e Mon Sep 17 00:00:00 2001 From: Soybean Date: Thu, 6 Jun 2024 23:23:13 +0800 Subject: [PATCH 3/9] chore(deps): update deps --- package.json | 2 +- pnpm-lock.yaml | 34 +++++++++++++++++----------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 72c93d2f..114d89e4 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "lint-staged": "15.2.5", "sass": "1.77.4", "simple-git-hooks": "2.11.1", - "tsx": "4.11.2", + "tsx": "4.12.0", "typescript": "5.4.5", "unplugin-icons": "0.19.0", "unplugin-vue-components": "0.27.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 952cd1cd..969510de 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -133,8 +133,8 @@ importers: specifier: 2.11.1 version: 2.11.1 tsx: - specifier: 4.11.2 - version: 4.11.2 + specifier: 4.12.0 + version: 4.12.0 typescript: specifier: 5.4.5 version: 5.4.5 @@ -1500,8 +1500,8 @@ packages: can-use-dom@0.1.0: resolution: {integrity: sha512-ceOhN1DL7Y4O6M0j9ICgmTYziV89WMd96SvSl0REd8PMgrY0B/WBOPoed5S1KUmJqXgUXh8gzSe6E3ae27upsQ==} - caniuse-lite@1.0.30001628: - resolution: {integrity: sha512-S3BnR4Kh26TBxbi5t5kpbcUlLJb9lhtDXISDPwOfI+JoC+ik0QksvkZtUVyikw3hjnkgkMPSJ8oIM9yMm9vflA==} + caniuse-lite@1.0.30001629: + resolution: {integrity: sha512-c3dl911slnQhmxUIT4HhYzT7wnBK/XYpGnYLOj4nJBaRiw52Ibe7YxlDaAeRECvA786zCuExhxIUJ2K7nHMrBw==} chalk@1.1.3: resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} @@ -1897,8 +1897,8 @@ packages: echarts@5.5.0: resolution: {integrity: sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw==} - electron-to-chromium@1.4.790: - resolution: {integrity: sha512-eVGeQxpaBYbomDBa/Mehrs28MdvCXfJmEFzaMFsv8jH/MJDLIylJN81eTJ5kvx7B7p18OiPK0BkC06lydEy63A==} + electron-to-chromium@1.4.792: + resolution: {integrity: sha512-rkg5/N3L+Y844JyfgPUyuKK0Hk0efo3JNxUDKvz3HgP6EmN4rNGhr2D8boLsfTV/hGo7ZGAL8djw+jlg99zQyA==} emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -2816,8 +2816,8 @@ packages: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} - jackspeak@3.3.0: - resolution: {integrity: sha512-glPiBfKguqA7v8JsXO3iLjJWZ9FV1vNpoI0I9hI9Mnk5yetO9uPLSpiCEmiVijAssv2f54HpvtzvAHfhPieiDQ==} + jackspeak@3.4.0: + resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} engines: {node: '>=14'} jiti@1.21.3: @@ -4226,8 +4226,8 @@ packages: tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} - tsx@4.11.2: - resolution: {integrity: sha512-V5DL5v1BuItjsQ2FN9+4OjR7n5cr8hSgN+VGmm/fd2/0cgQdBIWHcQ3bFYm/5ZTmyxkTDBUIaRuW2divgfPe0A==} + tsx@4.12.0: + resolution: {integrity: sha512-642NAWAbDqPZINjmL32Lh/B+pd8vbVj6LHPsWm09IIHqQuWhCrNfcPTjRlHFWvv3FfM4vt9NLReBIjUNj5ZhDg==} engines: {node: '>=18.0.0'} hasBin: true @@ -5949,8 +5949,8 @@ snapshots: browserslist@4.23.0: dependencies: - caniuse-lite: 1.0.30001628 - electron-to-chromium: 1.4.790 + caniuse-lite: 1.0.30001629 + electron-to-chromium: 1.4.792 node-releases: 2.0.14 update-browserslist-db: 1.0.16(browserslist@4.23.0) @@ -6070,7 +6070,7 @@ snapshots: can-use-dom@0.1.0: {} - caniuse-lite@1.0.30001628: {} + caniuse-lite@1.0.30001629: {} chalk@1.1.3: dependencies: @@ -6452,7 +6452,7 @@ snapshots: tslib: 2.3.0 zrender: 5.5.0 - electron-to-chromium@1.4.790: {} + electron-to-chromium@1.4.792: {} emoji-regex@10.3.0: {} @@ -7050,7 +7050,7 @@ snapshots: glob@10.4.1: dependencies: foreground-child: 3.1.1 - jackspeak: 3.3.0 + jackspeak: 3.4.0 minimatch: 9.0.4 minipass: 7.1.2 path-scurry: 1.11.1 @@ -7482,7 +7482,7 @@ snapshots: isobject@3.0.1: {} - jackspeak@3.3.0: + jackspeak@3.4.0: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: @@ -9127,7 +9127,7 @@ snapshots: tslib@2.6.3: {} - tsx@4.11.2: + tsx@4.12.0: dependencies: esbuild: 0.20.2 get-tsconfig: 4.7.5 From 83862ba76e1bd7c0ec2e5b6f9d0db1601b2c8098 Mon Sep 17 00:00:00 2001 From: Soybean Date: Thu, 6 Jun 2024 23:26:15 +0800 Subject: [PATCH 4/9] chore(projects): release v1.1.5 --- CHANGELOG.md | 15 +++++++++++++++ package.json | 2 +- packages/axios/package.json | 2 +- packages/color/package.json | 2 +- packages/hooks/package.json | 2 +- packages/materials/package.json | 2 +- packages/ofetch/package.json | 2 +- packages/scripts/package.json | 2 +- packages/uno-preset/package.json | 2 +- packages/utils/package.json | 2 +- 10 files changed, 24 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ea7e433c..a11e0413 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,21 @@ # Changelog +## [v1.1.5](https://github.com/soybeanjs/soybean-admin/compare/v1.1.4...v1.1.5) (2024-06-06) + +###    🐞 Bug Fixes + +- **projects**: fix register name, CodeLogin => Register  -  by @m-xlsea in https://github.com/soybeanjs/soybean-admin/issues/478 [(ddf38)](https://github.com/soybeanjs/soybean-admin/commit/ddf3823) + +###    🏡 Chore + +- **deps**: update deps  -  by @soybeanjs [(060c0)](https://github.com/soybeanjs/soybean-admin/commit/060c0a9) +- **projects**: update vscode settings: vue official  -  by @soybeanjs [(76649)](https://github.com/soybeanjs/soybean-admin/commit/76649e2) + +###    ❤️ Contributors + +[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![m-xlsea](https://github.com/m-xlsea.png?size=48)](https://github.com/m-xlsea)   + ## [v1.1.4](https://github.com/honghuangdc/soybean-admin/compare/v1.1.3...v1.1.4) (2024-06-06) ###    🐞 Bug Fixes diff --git a/package.json b/package.json index 114d89e4..d6030134 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "soybean-admin", "type": "module", - "version": "1.1.4", + "version": "1.1.5", "description": "A fresh and elegant admin template, based on Vue3、Vite3、TypeScript、NaiveUI and UnoCSS. 一个基于Vue3、Vite3、TypeScript、NaiveUI and UnoCSS的清新优雅的中后台模版。", "author": { "name": "Soybean", diff --git a/packages/axios/package.json b/packages/axios/package.json index 9ee38aef..62d9ad07 100644 --- a/packages/axios/package.json +++ b/packages/axios/package.json @@ -1,6 +1,6 @@ { "name": "@sa/axios", - "version": "1.1.4", + "version": "1.1.5", "exports": { ".": "./src/index.ts" }, diff --git a/packages/color/package.json b/packages/color/package.json index 34996d95..c9876abf 100644 --- a/packages/color/package.json +++ b/packages/color/package.json @@ -1,6 +1,6 @@ { "name": "@sa/color", - "version": "1.1.4", + "version": "1.1.5", "exports": { ".": "./src/index.ts" }, diff --git a/packages/hooks/package.json b/packages/hooks/package.json index 98dd65ec..35cca3cc 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -1,6 +1,6 @@ { "name": "@sa/hooks", - "version": "1.1.4", + "version": "1.1.5", "exports": { ".": "./src/index.ts" }, diff --git a/packages/materials/package.json b/packages/materials/package.json index c8b79f32..3e666adf 100644 --- a/packages/materials/package.json +++ b/packages/materials/package.json @@ -1,6 +1,6 @@ { "name": "@sa/materials", - "version": "1.1.4", + "version": "1.1.5", "exports": { ".": "./src/index.ts" }, diff --git a/packages/ofetch/package.json b/packages/ofetch/package.json index 21d043bd..3b2aa365 100644 --- a/packages/ofetch/package.json +++ b/packages/ofetch/package.json @@ -1,6 +1,6 @@ { "name": "@sa/fetch", - "version": "1.1.4", + "version": "1.1.5", "exports": { ".": "./src/index.ts" }, diff --git a/packages/scripts/package.json b/packages/scripts/package.json index be1ceb41..5cfc3129 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "@sa/scripts", - "version": "1.1.4", + "version": "1.1.5", "bin": { "sa": "./bin.ts" }, diff --git a/packages/uno-preset/package.json b/packages/uno-preset/package.json index 3bc13c46..0d860128 100644 --- a/packages/uno-preset/package.json +++ b/packages/uno-preset/package.json @@ -1,6 +1,6 @@ { "name": "@sa/uno-preset", - "version": "1.1.4", + "version": "1.1.5", "exports": { ".": "./src/index.ts" }, diff --git a/packages/utils/package.json b/packages/utils/package.json index e1135c1b..13fefd90 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@sa/utils", - "version": "1.1.4", + "version": "1.1.5", "exports": { ".": "./src/index.ts" }, From 2bec89903100c0b969b7bc721bbe90563c25abc6 Mon Sep 17 00:00:00 2001 From: Soybean Date: Thu, 6 Jun 2024 23:30:21 +0800 Subject: [PATCH 5/9] docs(projects): update CHANGELOG --- CHANGELOG.zh_CN.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index cd3d2da5..c9f5d41a 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -1,5 +1,50 @@ # 更新日志 +## [v1.1.5](https://github.com/soybeanjs/soybean-admin/compare/v1.1.4...v1.1.5) (2024-06-06) + +###    🐞 错误修复 + +- **项目**: 修复注册组件名,CodeLogin => Register  -  由 @m-xlsea 在 https://github.com/soybeanjs/soybean-admin/issues/478 [(ddf38)](https://github.com/soybeanjs/soybean-admin/commit/ddf3823) + +###    🏡 杂务 + +- **依赖**: 更新依赖  -  由 @soybeanjs [(060c0)](https://github.com/soybeanjs/soybean-admin/commit/060c0a9) +- **项目**: 更新 vscode 设置: vue 官方  -  由 @soybeanjs [(76649)](https://github.com/soybeanjs/soybean-admin/commit/76649e2) + +###    ❤️ 贡献者 + +[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![m-xlsea](https://github.com/m-xlsea.png?size=48)](https://github.com/m-xlsea)   + +## [v1.1.4](https://github.com/honghuangdc/soybean-admin/compare/v1.1.3...v1.1.4) (2024-06-06) + +###    🐞 错误修复 + +- **utils**: 修复了按esc键时modalLogout的错误  -  由 @sigma-plus 在 https://github.com/honghuangdc/soybean-admin/issues/470 中提出 [(bd69c)](https://github.com/honghuangdc/soybean-admin/commit/bd69c00) + +###    🛠 优化 + +- **projects**: 优化了RouteMeta的备注  -  由 @soybeanjs 提出 [(ffb48)](https://github.com/honghuangdc/soybean-admin/commit/ffb48b1) + +###    📖 文档 + +- **projects**: + - 更新了CHANGELOG  -  由 @soybeanjs 提出 [(756f8)](https://github.com/honghuangdc/soybean-admin/commit/756f84a) + - 更新了Node&pnpm版本  -  由 @Azir-11 在 https://github.com/honghuangdc/soybean-admin/issues/472 中提出 [(9b05d)](https://github.com/honghuangdc/soybean-admin/commit/9b05d73) + +###    🏡 杂项 + +- **deps**: + - 更新了依赖  -  由 @soybeanjs 提出 [(d0380)](https://github.com/honghuangdc/soybean-admin/commit/d0380ce) + - 更新了依赖  -  由 @soybeanjs 提出 [(1f464)](https://github.com/honghuangdc/soybean-admin/commit/1f4647b) +- **projects**: + - 关闭了http代理  -  由 @soybeanjs 提出 [(d08a3)](https://github.com/honghuangdc/soybean-admin/commit/d08a381) + - 更新了mock url  -  由 @soybeanjs 提出 [(e6086)](https://github.com/honghuangdc/soybean-admin/commit/e6086f0) + - 更新了vscode设置  -  由 @soybeanjs 提出 [(910df)](https://github.com/honghuangdc/soybean-admin/commit/910dfca) + +###    ❤️ 贡献者 + +[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)  [![Azir-11](https://github.com/Azir-11.png?size=48)](https://github.com/Azir-11)  [![sigma-plus](https://github.com/sigma-plus.png?size=48)](https://github.com/sigma-plus)   + ## [v1.1.3](https://github.com/soybeanjs/soybean-admin/compare/v1.1.2...v1.1.3) (2024-06-02) ###    🐞 错误修复 From 584cd54d6d86b4e440f35a8cfe89611a84c6b4c9 Mon Sep 17 00:00:00 2001 From: Soybean Date: Thu, 6 Jun 2024 20:08:00 +0800 Subject: [PATCH 6/9] feat(projects): support system new version update notification. close #420 --- build/plugins/html.ts | 13 ++++++++++ build/plugins/index.ts | 6 +++-- src/locales/langs/en-us.ts | 6 ++++- src/locales/langs/zh-cn.ts | 6 ++++- src/main.ts | 4 ++- src/plugins/app.ts | 53 ++++++++++++++++++++++++++++++++++++++ src/plugins/index.ts | 1 + src/typings/app.d.ts | 4 +++ vite.config.ts | 2 +- 9 files changed, 89 insertions(+), 6 deletions(-) create mode 100644 build/plugins/html.ts create mode 100644 src/plugins/app.ts diff --git a/build/plugins/html.ts b/build/plugins/html.ts new file mode 100644 index 00000000..b94d24fe --- /dev/null +++ b/build/plugins/html.ts @@ -0,0 +1,13 @@ +import type { Plugin } from 'vite'; + +export function setupHtmlPlugin(buildTime: string) { + const plugin: Plugin = { + name: 'html-plugin', + apply: 'build', + transformIndexHtml(html) { + return html.replace('', `\n `); + } + }; + + return plugin; +} diff --git a/build/plugins/index.ts b/build/plugins/index.ts index d437da70..debec678 100644 --- a/build/plugins/index.ts +++ b/build/plugins/index.ts @@ -6,8 +6,9 @@ import progress from 'vite-plugin-progress'; import { setupElegantRouter } from './router'; import { setupUnocss } from './unocss'; import { setupUnplugin } from './unplugin'; +import { setupHtmlPlugin } from './html'; -export function setupVitePlugins(viteEnv: Env.ImportMeta) { +export function setupVitePlugins(viteEnv: Env.ImportMeta, buildTime: string) { const plugins: PluginOption = [ vue({ script: { @@ -19,7 +20,8 @@ export function setupVitePlugins(viteEnv: Env.ImportMeta) { setupElegantRouter(), setupUnocss(viteEnv), ...setupUnplugin(viteEnv), - progress() + progress(), + setupHtmlPlugin(buildTime) ]; return plugins; diff --git a/src/locales/langs/en-us.ts b/src/locales/langs/en-us.ts index 81508a56..570620e9 100644 --- a/src/locales/langs/en-us.ts +++ b/src/locales/langs/en-us.ts @@ -1,6 +1,10 @@ const local: App.I18n.Schema = { system: { - title: 'SoybeanAdmin' + title: 'SoybeanAdmin', + updateTitle: 'System Version Update Notification', + updateContent: 'A new version of the system has been detected. Do you want to refresh the page immediately?', + updateConfirm: 'Refresh immediately', + updateCancel: 'Later' }, common: { action: 'Action', diff --git a/src/locales/langs/zh-cn.ts b/src/locales/langs/zh-cn.ts index f5ba30e4..fc01bb65 100644 --- a/src/locales/langs/zh-cn.ts +++ b/src/locales/langs/zh-cn.ts @@ -1,6 +1,10 @@ const local: App.I18n.Schema = { system: { - title: 'Soybean 管理系统' + title: 'Soybean 管理系统', + updateTitle: '系统版本更新通知', + updateContent: '检测到系统有新版本发布,是否立即刷新页面?', + updateConfirm: '立即刷新', + updateCancel: '稍后再说' }, common: { action: '操作', diff --git a/src/main.ts b/src/main.ts index efb97f89..b97a0d93 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,6 @@ import { createApp } from 'vue'; import './plugins/assets'; -import { setupDayjs, setupIconifyOffline, setupLoading, setupNProgress } from './plugins'; +import { setupAppVersionNotification, setupDayjs, setupIconifyOffline, setupLoading, setupNProgress } from './plugins'; import { setupStore } from './store'; import { setupRouter } from './router'; import { setupI18n } from './locales'; @@ -23,6 +23,8 @@ async function setupApp() { setupI18n(app); + setupAppVersionNotification(); + app.mount('#app'); } diff --git a/src/plugins/app.ts b/src/plugins/app.ts new file mode 100644 index 00000000..ffe6f586 --- /dev/null +++ b/src/plugins/app.ts @@ -0,0 +1,53 @@ +import { h } from 'vue'; +import { NButton } from 'naive-ui'; +import { $t } from '../locales'; + +export function setupAppVersionNotification() { + document.addEventListener('visibilitychange', async () => { + const buildTime = await getHtmlBuildTime(); + + if (buildTime !== BUILD_TIME && document.visibilityState === 'visible') { + const n = window.$notification?.create({ + title: $t('system.updateTitle'), + content: $t('system.updateContent'), + action() { + return h('div', { style: { display: 'flex', justifyContent: 'end', gap: '12px', width: '325px' } }, [ + h( + NButton, + { + onClick() { + n?.destroy(); + } + }, + $t('system.updateCancel') + ), + h( + NButton, + { + type: 'primary', + onClick() { + location.reload(); + } + }, + $t('system.updateConfirm') + ) + ]); + } + }); + } + }); +} + +async function getHtmlBuildTime() { + const baseURL = import.meta.env.VITE_BASE_URL; + + const res = await fetch(`${baseURL}index.html`); + + const html = await res.text(); + + const match = html.match(//); + + const buildTime = match?.[1] || ''; + + return buildTime; +} diff --git a/src/plugins/index.ts b/src/plugins/index.ts index 5d10c3aa..b2c9f9b5 100644 --- a/src/plugins/index.ts +++ b/src/plugins/index.ts @@ -2,3 +2,4 @@ export * from './loading'; export * from './nprogress'; export * from './iconify'; export * from './dayjs'; +export * from './app'; diff --git a/src/typings/app.d.ts b/src/typings/app.d.ts index e1b4b1ee..035fd8f1 100644 --- a/src/typings/app.d.ts +++ b/src/typings/app.d.ts @@ -251,6 +251,10 @@ declare namespace App { type Schema = { system: { title: string; + updateTitle: string; + updateContent: string; + updateConfirm: string; + updateCancel: string; }; common: { action: string; diff --git a/vite.config.ts b/vite.config.ts index 1393de1e..c3ea6d06 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -25,7 +25,7 @@ export default defineConfig(configEnv => { } } }, - plugins: setupVitePlugins(viteEnv), + plugins: setupVitePlugins(viteEnv, buildTime), define: { BUILD_TIME: JSON.stringify(buildTime) }, From 5531a68641fe510448b5aece4e615b4791b1fca2 Mon Sep 17 00:00:00 2001 From: Soybean Date: Thu, 6 Jun 2024 20:22:28 +0800 Subject: [PATCH 7/9] feat(projects): get user info in router guard and remove in localStorage. close #459 --- src/router/guard/route.ts | 4 ++++ src/store/modules/auth/index.ts | 31 +++++++++++++++++++++++-------- src/store/modules/auth/shared.ts | 19 ------------------- src/typings/storage.d.ts | 2 -- 4 files changed, 27 insertions(+), 29 deletions(-) diff --git a/src/router/guard/route.ts b/src/router/guard/route.ts index 03a5121d..0a00ac71 100644 --- a/src/router/guard/route.ts +++ b/src/router/guard/route.ts @@ -92,6 +92,7 @@ export function createRouteGuard(router: Router) { * @param to to route */ async function initRoute(to: RouteLocationNormalized): Promise { + const authStore = useAuthStore(); const routeStore = useRouteStore(); const notFoundRoute: RouteKey = 'not-found'; @@ -125,6 +126,9 @@ async function initRoute(to: RouteLocationNormalized): Promise { const route = useRoute(); @@ -18,7 +18,12 @@ export const useAuthStore = defineStore(SetupStoreId.Auth, () => { const token = ref(getToken()); - const userInfo: Api.Auth.UserInfo = reactive(getUserInfo()); + const userInfo: Api.Auth.UserInfo = reactive({ + userId: '', + userName: '', + roles: [], + buttons: [] + }); /** is super role in static route */ const isStaticSuper = computed(() => { @@ -87,14 +92,23 @@ export const useAuthStore = defineStore(SetupStoreId.Auth, () => { localStg.set('token', loginToken.token); localStg.set('refreshToken', loginToken.refreshToken); + // 2. get user info and update store + const pass = await updateUserInfo(); + + if (pass) { + token.value = loginToken.token; + + return true; + } + + return false; + } + + async function updateUserInfo() { const { data: info, error } = await fetchGetUserInfo(); if (!error) { - // 2. store user info - localStg.set('userInfo', info); - - // 3. update store - token.value = loginToken.token; + // update store Object.assign(userInfo, info); return true; @@ -110,6 +124,7 @@ export const useAuthStore = defineStore(SetupStoreId.Auth, () => { isLogin, loginLoading, resetStore, - login + login, + updateUserInfo }; }); diff --git a/src/store/modules/auth/shared.ts b/src/store/modules/auth/shared.ts index 4681c922..5cf88522 100644 --- a/src/store/modules/auth/shared.ts +++ b/src/store/modules/auth/shared.ts @@ -5,27 +5,8 @@ export function getToken() { return localStg.get('token') || ''; } -/** Get user info */ -export function getUserInfo() { - const emptyInfo: Api.Auth.UserInfo = { - userId: '', - userName: '', - roles: [], - buttons: [] - }; - const userInfo = localStg.get('userInfo') || emptyInfo; - - // fix new property: buttons, this will be removed in the next version `1.1.0` - if (!userInfo.buttons) { - userInfo.buttons = []; - } - - return userInfo; -} - /** Clear auth storage */ export function clearAuthStorage() { localStg.remove('token'); localStg.remove('refreshToken'); - localStg.remove('userInfo'); } diff --git a/src/typings/storage.d.ts b/src/typings/storage.d.ts index 1eb0bf26..0d52f33c 100644 --- a/src/typings/storage.d.ts +++ b/src/typings/storage.d.ts @@ -18,8 +18,6 @@ declare namespace StorageType { mixSiderFixed: CommonType.YesOrNo; /** The refresh token */ refreshToken: string; - /** The user info */ - userInfo: Api.Auth.UserInfo; /** The theme color */ themeColor: string; /** The theme settings */ From 4b63bbcf673a093d263c337fb5f1a725f2d0c0c9 Mon Sep 17 00:00:00 2001 From: Soybean Date: Thu, 6 Jun 2024 23:31:43 +0800 Subject: [PATCH 8/9] chore(projects): release v1.2.0 --- CHANGELOG.md | 16 ++++++++++++++++ package.json | 2 +- packages/axios/package.json | 2 +- packages/color/package.json | 2 +- packages/hooks/package.json | 2 +- packages/materials/package.json | 2 +- packages/ofetch/package.json | 2 +- packages/scripts/package.json | 2 +- packages/uno-preset/package.json | 2 +- packages/utils/package.json | 2 +- 10 files changed, 25 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a11e0413..40cb9968 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,22 @@ # Changelog +## [v1.2.0](https://github.com/soybeanjs/soybean-admin/compare/v1.1.5...v1.2.0) (2024-06-06) + +###    🚀 Features + +- **projects**: + - support system new version update notification. close #420  -  by @soybeanjs in https://github.com/soybeanjs/soybean-admin/issues/420 [(584cd)](https://github.com/soybeanjs/soybean-admin/commit/584cd54) + - get user info in router guard and remove in localStorage. close #459  -  by @soybeanjs in https://github.com/soybeanjs/soybean-admin/issues/459 [(5531a)](https://github.com/soybeanjs/soybean-admin/commit/5531a68) + +###    📖 Documentation + +- **projects**: update CHANGELOG  -  by @soybeanjs [(2bec8)](https://github.com/soybeanjs/soybean-admin/commit/2bec899) + +###    ❤️ Contributors + +[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   + ## [v1.1.5](https://github.com/soybeanjs/soybean-admin/compare/v1.1.4...v1.1.5) (2024-06-06) ###    🐞 Bug Fixes diff --git a/package.json b/package.json index d6030134..270edf67 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "soybean-admin", "type": "module", - "version": "1.1.5", + "version": "1.2.0", "description": "A fresh and elegant admin template, based on Vue3、Vite3、TypeScript、NaiveUI and UnoCSS. 一个基于Vue3、Vite3、TypeScript、NaiveUI and UnoCSS的清新优雅的中后台模版。", "author": { "name": "Soybean", diff --git a/packages/axios/package.json b/packages/axios/package.json index 62d9ad07..c81267ee 100644 --- a/packages/axios/package.json +++ b/packages/axios/package.json @@ -1,6 +1,6 @@ { "name": "@sa/axios", - "version": "1.1.5", + "version": "1.2.0", "exports": { ".": "./src/index.ts" }, diff --git a/packages/color/package.json b/packages/color/package.json index c9876abf..43d1f58d 100644 --- a/packages/color/package.json +++ b/packages/color/package.json @@ -1,6 +1,6 @@ { "name": "@sa/color", - "version": "1.1.5", + "version": "1.2.0", "exports": { ".": "./src/index.ts" }, diff --git a/packages/hooks/package.json b/packages/hooks/package.json index 35cca3cc..fffe7415 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -1,6 +1,6 @@ { "name": "@sa/hooks", - "version": "1.1.5", + "version": "1.2.0", "exports": { ".": "./src/index.ts" }, diff --git a/packages/materials/package.json b/packages/materials/package.json index 3e666adf..d40c5ec7 100644 --- a/packages/materials/package.json +++ b/packages/materials/package.json @@ -1,6 +1,6 @@ { "name": "@sa/materials", - "version": "1.1.5", + "version": "1.2.0", "exports": { ".": "./src/index.ts" }, diff --git a/packages/ofetch/package.json b/packages/ofetch/package.json index 3b2aa365..2a8b7a5d 100644 --- a/packages/ofetch/package.json +++ b/packages/ofetch/package.json @@ -1,6 +1,6 @@ { "name": "@sa/fetch", - "version": "1.1.5", + "version": "1.2.0", "exports": { ".": "./src/index.ts" }, diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 5cfc3129..354f3158 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "@sa/scripts", - "version": "1.1.5", + "version": "1.2.0", "bin": { "sa": "./bin.ts" }, diff --git a/packages/uno-preset/package.json b/packages/uno-preset/package.json index 0d860128..8b318bc1 100644 --- a/packages/uno-preset/package.json +++ b/packages/uno-preset/package.json @@ -1,6 +1,6 @@ { "name": "@sa/uno-preset", - "version": "1.1.5", + "version": "1.2.0", "exports": { ".": "./src/index.ts" }, diff --git a/packages/utils/package.json b/packages/utils/package.json index 13fefd90..d61af636 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@sa/utils", - "version": "1.1.5", + "version": "1.2.0", "exports": { ".": "./src/index.ts" }, From fe06b8c499f15796faaf935c15ed2ea244ce798a Mon Sep 17 00:00:00 2001 From: Soybean Date: Thu, 6 Jun 2024 23:33:16 +0800 Subject: [PATCH 9/9] docs(projects): update CHANGELOG --- CHANGELOG.zh_CN.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index c9f5d41a..0d11c7d9 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -1,5 +1,22 @@ # 更新日志 + +## [v1.2.0](https://github.com/soybeanjs/soybean-admin/compare/v1.1.5...v1.2.0) (2024-06-06) + +###    🚀 功能 + +- **项目**: + - 支持系统新版本更新通知。关闭 #420  -  由 @soybeanjs 在 https://github.com/soybeanjs/soybean-admin/issues/420 [(584cd)](https://github.com/soybeanjs/soybean-admin/commit/584cd54) + - 在路由守卫中获取用户信息并从localStorage中移除。关闭 #459  -  由 @soybeanjs 在 https://github.com/soybeanjs/soybean-admin/issues/459 [(5531a)](https://github.com/soybeanjs/soybean-admin/commit/5531a68) + +###    📖 文档 + +- **项目**: 更新CHANGELOG  -  由 @soybeanjs [(2bec8)](https://github.com/soybeanjs/soybean-admin/commit/2bec899) + +###    ❤️ 贡献者 + +[![soybeanjs](https://github.com/soybeanjs.png?size=48)](https://github.com/soybeanjs)   + ## [v1.1.5](https://github.com/soybeanjs/soybean-admin/compare/v1.1.4...v1.1.5) (2024-06-06) ###    🐞 错误修复