/* * @Description: app Mutations * @Author: ZY * @Date: 2020-12-23 10:25:37 * @LastEditors: ZY * @LastEditTime: 2020-12-28 11:45:02 */ import { MutationTree } from 'vuex' import { UserState } from './state' import { UserMutationTypes } from './mutation-types' import {SysMenu, SysRole, SysUser} from "../../../api/sysTypes"; import {removeToken} from "../../../utils/auth"; export type Mutations = { [UserMutationTypes.SET_TOKEN](state: S, token: string): void [UserMutationTypes.SET_USERINFO](state: S, userInfo: SysUser): void [UserMutationTypes.SET_MENUS](state: S, menus: SysMenu[]): void [UserMutationTypes.SET_ROLES](state: S, roles: string[]): void [UserMutationTypes.SET_MODULE_MENUS](state: S, moduleMenus: SysMenu[]): void [UserMutationTypes.SET_LOGOUT](state: S,v:string): void [UserMutationTypes.SET_ISRELOGIN](state: S,v:boolean): void } export const mutations: MutationTree & Mutations = { [UserMutationTypes.SET_ISRELOGIN](state: UserState, v: boolean) { state.isRelogin = v }, [UserMutationTypes.SET_TOKEN](state: UserState, token: string) { state.token = token }, [UserMutationTypes.SET_USERINFO](state: UserState, info: SysUser) { state.userInfo = info }, [UserMutationTypes.SET_ROLES](state: UserState, roles: [string]) { state.roles = roles }, [UserMutationTypes.SET_MENUS](state: UserState, menus: [SysMenu]) { state.menus = menus }, [UserMutationTypes.SET_MODULE_MENUS](state: UserState, menus: [SysMenu]) { state.moduleMenus = menus }, [UserMutationTypes.SET_PERMISSIONS](state: UserState, permissions: [string]) { state.permissions = permissions }, [UserMutationTypes.SET_LOGOUT](state: UserState) { state.token =''; state.menus = []; state.roles = []; state.moduleMenus = []; state.userInfo = null; removeToken(); localStorage.removeItem('tabs'); localStorage.removeItem('vuex'); sessionStorage.removeItem('vuex'); } }