import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ state: { user: JSON.parse(localStorage.getItem('store_user') || 'null'), storeInfo: JSON.parse(localStorage.getItem('store_info') || 'null'), token: localStorage.getItem('store_token') || '', scheduleDialogVisible: false, scheduleDialogMode: 'view' }, getters: { isLoggedIn: state => !!state.token, userName: state => state.user?.userName || state.user?.realName || '', userInfo: state => state.user || {}, storeInfo: state => state.storeInfo || {} }, mutations: { SET_USER(state, user) { state.user = user if (user) localStorage.setItem('store_user', JSON.stringify(user)) else localStorage.removeItem('store_user') }, SET_STORE(state, store) { state.storeInfo = store if (store) localStorage.setItem('store_info', JSON.stringify(store)) else localStorage.removeItem('store_info') }, SET_TOKEN(state, token) { state.token = token if (token) localStorage.setItem('store_token', token) else localStorage.removeItem('store_token') }, LOGOUT(state) { state.user = null state.storeInfo = null state.token = '' localStorage.removeItem('store_token') localStorage.removeItem('store_user') localStorage.removeItem('store_info') }, SET_SCHEDULE_DIALOG(state, visible) { state.scheduleDialogVisible = visible }, SET_SCHEDULE_DIALOG_MODE(state, mode) { state.scheduleDialogMode = mode || 'view' } }, actions: {} })