From d1448cb0ef10f358bb7bddb4e1ec268515e0b787 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期二, 15 七月 2025 11:46:57 +0800 Subject: [PATCH] 项目初始化 --- store/modules/user.js | 70 +++++++++++++++++++++++++++++++++++ 1 files changed, 70 insertions(+), 0 deletions(-) diff --git a/store/modules/user.js b/store/modules/user.js new file mode 100644 index 0000000..161ab41 --- /dev/null +++ b/store/modules/user.js @@ -0,0 +1,70 @@ +import { ACCESS_TOKEN } from '@/store/mutation-types' +import storage from '@/utils/storage' +import * as LoginApi from '@/api/login' +import * as UserApi from '@/api/user' + +// 鐧婚檰鎴愬姛鍚庢墽琛� +const loginSuccess = (commit, { token }) => { + // 杩囨湡鏃堕棿30澶� + const expiryTime = 30 * 86400 + // 淇濆瓨tokne鍜寀serId鍒扮紦瀛� + storage.set(ACCESS_TOKEN, token, expiryTime) + // 璁板綍鍒皊tore鍏ㄥ眬鍙橀噺 + commit('SET_TOKEN', token) +} + +export const state = { + // 鐢ㄦ埛璁よ瘉token + token: '', + // 鐢ㄦ埛淇℃伅 + userInfo: null +} + +export const mutations = { + SET_TOKEN: (state, value) => { + state.token = value + }, + SET_USER: (state, value) => { + state.userInfo = value + }, +} + +export const actions = { + + // 鐢ㄦ埛鐧诲綍(鏅�氱櫥褰�: 杈撳叆璐﹀彿銆佸瘑鐮佸拰楠岃瘉鐮�) + Login({ commit }, data) { + return new Promise((resolve, reject) => { + LoginApi.login(data, { custom: { catch: true } }).then(response => { + const result = response; + loginSuccess(commit, result) + resolve(response) + }).catch(reject) + }) + }, + + // 鐢ㄦ埛淇℃伅 + Info({ commit, state }) { + return new Promise((resolve, reject) => { + if (state.userInfo) { + return resolve(state.userInfo) + } + UserApi.getInfo().then(response => { + const result = response; + commit('SET_USER', result) + resolve(response) + }).catch(reject) + }) + }, + + // 閫�鍑虹櫥褰� + Logout({ commit }, data) { + return new Promise((resolve, reject) => { + LoginApi.logout(data, { custom: { catch: true } }).then(response => { + storage.remove(ACCESS_TOKEN) + commit('SET_TOKEN', '') + resolve(response) + }).catch(reject) + }) + } + +} -- Gitblit v1.9.3