Files
m2pool_web_frontend/mining-pool/src/store/index.js

54 lines
1.1 KiB
JavaScript
Raw Normal View History

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
2025-06-06 15:31:04 +08:00
isLoggedIn: false,
userInfo: null
},
getters: {
2025-06-06 15:31:04 +08:00
isLoggedIn: state => state.isLoggedIn,
userInfo: state => state.userInfo
},
mutations: {
2025-06-06 15:31:04 +08:00
SET_LOGIN_STATE(state, isLoggedIn) {
state.isLoggedIn = isLoggedIn
},
SET_USER_INFO(state, userInfo) {
state.userInfo = userInfo
},
CLEAR_USER_DATA(state) {
state.isLoggedIn = false
state.userInfo = null
}
},
actions: {
2025-06-06 15:31:04 +08:00
// 退出登录
async logout({ commit }) {
try {
// 清除本地存储
localStorage.removeItem('token')
localStorage.removeItem('userEmail')
localStorage.removeItem('jurisdiction')
// 清除 Vuex 状态
commit('CLEAR_USER_DATA')
// 触发全局事件,通知其他组件用户已退出
if (Vue.prototype.$bus) {
Vue.prototype.$bus.$emit('user-logged-out')
}
return true
} catch (error) {
console.error('退出登录失败:', error)
return false
}
}
},
modules: {
}
})