import { saveToken, destoryToken } from '@/utils/token'; import { ActionTree, Module, MutationTree } from 'vuex'; import { RootState, TokenPayload, TokenState } from '../typings'; const DEFAULT: TokenState = { token: localStorage.getItem('token') || '', }; const actions: ActionTree = { updateToken({ commit }, payload: TokenPayload) { commit('updateToken', payload); saveToken(payload.token); }, destoryToken({ commit }) { commit('updateToken', { token: '', } as TokenPayload); destoryToken(); }, }; const mutations: MutationTree = { updateToken(state, { token }: TokenPayload) { state.token = token; }, }; export const token: Module = { state: () => DEFAULT, mutations, actions, };