diff --git a/CHANGELOG.md b/CHANGELOG.md
index e37b616..5d004a3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,31 @@
# Changelog
+## [v1.3.14](https://github.com/skyfeiz/soybean-admin-element-plus/compare/v1.3.13...v1.3.14) (2025-08-25)
+
+### 🚀 Features
+
+- **projects**: ✨ sync global search button toggle. - by **一寸灰** [(8abee)](https://github.com/skyfeiz/soybean-admin-element-plus/commit/8abee1b)
+
+### 🛠 Optimizations
+
+- **projects**:
+ - 🎨 optimize tab deletion logic. - by **skyfeiz** [(0313c)](https://github.com/skyfeiz/soybean-admin-element-plus/commit/0313c07)
+ - 🎨 remove redundant authStore declaration in resetStore function - by **skyfeiz** [(e958f)](https://github.com/skyfeiz/soybean-admin-element-plus/commit/e958f75)
+
+### 💅 Refactors
+
+- **hooks**: ♻️ sync refactor useCountDown hook. - by **一寸灰** [(6ae21)](https://github.com/skyfeiz/soybean-admin-element-plus/commit/6ae214c)
+
+### 🏡 Chore
+
+- **deps**: ⬆️ update deps. - by **skyfeiz** [(c675c)](https://github.com/skyfeiz/soybean-admin-element-plus/commit/c675c41)
+
+### ❤️ Contributors
+
+
+[skyfeiz](mailto:webzhangfei@163.com), [一寸灰](mailto:webyicunhui@outlook.com)
+
## [v1.3.13](https://github.com/skyfeiz/soybean-admin-element-plus/compare/v1.3.12...v1.3.13) (2025-08-18)
### 🚀 Features
diff --git a/package.json b/package.json
index d04e444..8ed8d5e 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "@sa/elp",
"type": "module",
- "version": "1.3.13",
+ "version": "1.3.14",
"description": "A fresh and elegant admin template, based on Vue3、Vite6、TypeScript、ElementPlus and UnoCSS. 一个基于Vue3、Vite6、TypeScript、ElementPlus and UnoCSS的清新优雅的中后台模版。",
"author": {
"name": "Soybean",
diff --git a/packages/alova/package.json b/packages/alova/package.json
index 729dd8e..dd405b3 100644
--- a/packages/alova/package.json
+++ b/packages/alova/package.json
@@ -1,6 +1,6 @@
{
"name": "@sa/alova",
- "version": "1.3.13",
+ "version": "1.3.14",
"exports": {
".": "./src/index.ts",
"./fetch": "./src/fetch.ts",
diff --git a/packages/axios/package.json b/packages/axios/package.json
index 207868e..3fb74ae 100644
--- a/packages/axios/package.json
+++ b/packages/axios/package.json
@@ -1,6 +1,6 @@
{
"name": "@sa/axios",
- "version": "1.3.13",
+ "version": "1.3.14",
"exports": {
".": "./src/index.ts"
},
diff --git a/packages/color/package.json b/packages/color/package.json
index 6500ae5..459f582 100644
--- a/packages/color/package.json
+++ b/packages/color/package.json
@@ -1,6 +1,6 @@
{
"name": "@sa/color",
- "version": "1.3.13",
+ "version": "1.3.14",
"exports": {
".": "./src/index.ts"
},
diff --git a/packages/hooks/package.json b/packages/hooks/package.json
index 8cc75ba..f5eb598 100644
--- a/packages/hooks/package.json
+++ b/packages/hooks/package.json
@@ -1,6 +1,6 @@
{
"name": "@sa/hooks",
- "version": "1.3.13",
+ "version": "1.3.14",
"exports": {
".": "./src/index.ts"
},
diff --git a/packages/materials/package.json b/packages/materials/package.json
index 341af63..6c333aa 100644
--- a/packages/materials/package.json
+++ b/packages/materials/package.json
@@ -1,6 +1,6 @@
{
"name": "@sa/materials",
- "version": "1.3.13",
+ "version": "1.3.14",
"exports": {
".": "./src/index.ts"
},
diff --git a/packages/ofetch/package.json b/packages/ofetch/package.json
index cc8f240..1c44e08 100644
--- a/packages/ofetch/package.json
+++ b/packages/ofetch/package.json
@@ -1,6 +1,6 @@
{
"name": "@sa/fetch",
- "version": "1.3.13",
+ "version": "1.3.14",
"exports": {
".": "./src/index.ts"
},
diff --git a/packages/scripts/package.json b/packages/scripts/package.json
index d44ebbf..680ae58 100644
--- a/packages/scripts/package.json
+++ b/packages/scripts/package.json
@@ -1,6 +1,6 @@
{
"name": "@sa/scripts",
- "version": "1.3.13",
+ "version": "1.3.14",
"bin": {
"sa": "./bin.ts"
},
diff --git a/packages/uno-preset/package.json b/packages/uno-preset/package.json
index 808dec0..77de474 100644
--- a/packages/uno-preset/package.json
+++ b/packages/uno-preset/package.json
@@ -1,6 +1,6 @@
{
"name": "@sa/uno-preset",
- "version": "1.3.13",
+ "version": "1.3.14",
"exports": {
".": "./src/index.ts"
},
diff --git a/packages/utils/package.json b/packages/utils/package.json
index f6d3376..454c1f1 100644
--- a/packages/utils/package.json
+++ b/packages/utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@sa/utils",
- "version": "1.3.13",
+ "version": "1.3.14",
"exports": {
".": "./src/index.ts"
},
diff --git a/src/store/modules/auth/index.ts b/src/store/modules/auth/index.ts
index 6a2673d..9085829 100644
--- a/src/store/modules/auth/index.ts
+++ b/src/store/modules/auth/index.ts
@@ -13,6 +13,7 @@ import { clearAuthStorage, getToken } from './shared';
export const useAuthStore = defineStore(SetupStoreId.Auth, () => {
const route = useRoute();
+ const authStore = useAuthStore();
const routeStore = useRouteStore();
const tabStore = useTabStore();
const { toLogin, redirectFromLogin } = useRouterPush(false);
@@ -39,8 +40,6 @@ export const useAuthStore = defineStore(SetupStoreId.Auth, () => {
/** Reset auth store */
async function resetStore() {
- const authStore = useAuthStore();
-
recordUserId();
clearAuthStorage();
diff --git a/src/store/modules/tab/index.ts b/src/store/modules/tab/index.ts
index cd9b45c..8d93a19 100644
--- a/src/store/modules/tab/index.ts
+++ b/src/store/modules/tab/index.ts
@@ -100,7 +100,9 @@ export const useTabStore = defineStore(SetupStoreId.Tab, () => {
const removedTabRouteKey = tabs.value[removeTabIndex].routeKey;
const isRemoveActiveTab = activeTabId.value === tabId;
- const nextTab = tabs.value[removeTabIndex + 1] || homeTab.value;
+
+ // if remove the last tab, then switch to the second last tab
+ const nextTab = tabs.value[removeTabIndex + 1] || tabs.value[removeTabIndex - 1] || homeTab.value;
// remove tab
tabs.value.splice(removeTabIndex, 1);
diff --git a/src/typings/components.d.ts b/src/typings/components.d.ts
index 85fc49b..be3a091 100644
--- a/src/typings/components.d.ts
+++ b/src/typings/components.d.ts
@@ -50,6 +50,7 @@ declare module 'vue' {
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
+ ElSegmented: typeof import('element-plus/es')['ElSegmented']
ElSelect: typeof import('element-plus/es')['ElSelect']
ElSpace: typeof import('element-plus/es')['ElSpace']
ElStatistic: typeof import('element-plus/es')['ElStatistic']