import { createStore } from "vuex"; import createPersistedState from "vuex-persistedstate"; import { logOutProc } from "../../resources/api/user"; export default createStore({ plugins: [createPersistedState()], state: { authorization: null, userId: null, // 사용자 ID 추가 loginId: null, // 로그인 ID 추가 userNm: null, // 사용자 이름 추가 roles: [], // 사용자 권한 }, getters: { getAuthorization(state) { return state.authorization; // authorization 반환 }, getUserNm(state) { return state.userNm; // 사용자 이름 반환 }, getRoles(state) { return state.roles; // 사용자 권한 반환 }, }, mutations: { setAuthorization(state, newValue) { state.authorization = newValue; // authorization 설정 }, setLoginId(state, newValue) { state.loginId = newValue; // 로그인 ID 설정 }, setUserNm(state, newValue) { state.userNm = newValue; // 사용자 이름 설정 }, setUserId(state, newValue) { state.userId = newValue; // 사용자 ID 설정 }, setRoles(state, newValue) { state.roles = newValue; // 사용자 권한 설정 }, setStoreReset(state) { state.authorization = null; state.userNm = null; state.userId = null; state.roles = []; state.loginId = null; }, }, actions: { async logout({ commit }) { try { const res = await logOutProc(); alert(res.data.message); if (res.status === 200) { commit("setStoreReset"); } } catch (error) { console.error("Logout error:", error); // 에러 로그 추가 const errorData = error.response.data; if (errorData.message) { alert(errorData.message); } else { alert("에러가 발생했습니다.\n관리자에게 문의해주세요."); } } }, setStoreReset({ commit }) { commit("setStoreReset"); }, }, });