[탭 기능 개선] 탭 초기화 및 활성 탭 변경 로직 추가, 주석 정리
This commit is contained in:
@@ -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,
|
||||
});
|
||||
|
||||
@@ -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" });
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user