[탭 기능 개선] 탭 초기화 및 활성 탭 변경 로직 추가, 주석 정리

This commit is contained in:
2025-09-23 16:01:23 +09:00
parent 9f66ebac8a
commit 24c0f4f5b6
2 changed files with 24 additions and 4 deletions

View File

@@ -15,7 +15,7 @@ export const useTabsStore = defineStore("tabs", {
activeTab: 1,
}),
actions: {
// 새 탭 추가 (기본 페이지는 "/")
// 새 탭 추가 (기본 페이지는 "/")
addTab() {
const { $router } = useNuxtApp();
@@ -33,7 +33,7 @@ export const useTabsStore = defineStore("tabs", {
return key;
},
// 활성 탭 내용 변경 (서브메뉴 클릭)
// 활성 탭 내용 변경 (서브메뉴 클릭)
updateActiveTab(sub: { label: string; to: string; componentName: string }) {
const { $router } = useNuxtApp();
@@ -46,6 +46,7 @@ export const useTabsStore = defineStore("tabs", {
$router.push(`/${tab?.key}${tab?.to}`);
},
// 활설 탭 제거
removeTab(key: number) {
this.tabs = this.tabs.filter(t => t.key !== key);
if (this.activeTab === key) {
@@ -55,6 +56,7 @@ export const useTabsStore = defineStore("tabs", {
}
},
// 활성 탭 변경
setActiveTab(key: number) {
const { $router } = useNuxtApp();
this.activeTab = key;
@@ -62,6 +64,15 @@ export const useTabsStore = defineStore("tabs", {
const tab = this.tabs.find(t => t.key === this.activeTab);
$router.push(`/${tab?.key}${tab?.to}`);
},
// 탭 초기화
resetTabs() {
const { $router } = useNuxtApp();
this.tabs = [defaultTab];
this.activeTab = 1;
$router.push(defaultTab.to);
},
},
persist: true,
});

View File

@@ -1,3 +1,5 @@
import { useTabsStore } from "./tab";
export const useUserStore = defineStore(
"user",
() => {
@@ -11,6 +13,8 @@ export const useUserStore = defineStore(
// 권한 스토어 참조
const permissionsStore = usePermissionsStore();
// 탭 스토어 참조
const tabsStore = useTabsStore();
interface LoginData {
userId: string;
@@ -29,7 +33,10 @@ export const useUserStore = defineStore(
user.value = data;
isLoggedIn.value = true;
// 로그인 성공 시 권한 데이터 가져오기
// 로그인 성공 시
// 탭 초기화
tabsStore.resetTabs();
// 권한 데이터 가져오기
await permissionsStore.fetchPermissions();
return { success, data };
@@ -45,8 +52,10 @@ export const useUserStore = defineStore(
user.value = null;
isLoggedIn.value = false;
// 권한 데이터 초기화
// 권한 데이터 초기화
permissionsStore.clearPermissions();
// 탭 초기화
tabsStore.resetTabs();
useApi("/members/logout", { method: "post" });
};