| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- import { login, logout } from '@/api/user/auth'
- import { register, resetPassword } from '@/api/user/account'
- import { getMyInfo } from '@/api/user/user'
- import { getToken, setToken, removeToken } from '@/utils/auth'
- const getDefaultState = () => {
- return {
- userInfo: null,
- token: getToken(),
- name: '',
- roles: [],
- avatar: ''
- }
- }
- const state = getDefaultState()
- const mutations = {
- RESET_STATE: (state) => {
- Object.assign(state, getDefaultState())
- },
- SET_USER_INFO: (state, userInfo) => {
- state.userInfo = userInfo
- },
- SET_TOKEN: (state, token) => {
- state.token = token
- },
- SET_NAME: (state, name) => {
- state.name = name
- },
- SET_ROLES: (state, roles) => {
- state.roles = roles
- },
- SET_AVATAR: (state, avatar) => {
- state.avatar = avatar
- },
- SET_VIP: (state, vipInfo) => {
- state.userInfo.vip = vipInfo.vip
- state.userInfo.expiredAt = vipInfo.expiredAt
- }
- }
- const actions = {
- // 用户注册
- register({ commit }, registerData) {
- return new Promise((resolve, reject) => {
- register(registerData).then(res => {
- if (res.code === 0) {
- resolve()
- } else {
- alert(res.data)
- }
- }).catch(error => {
- reject(error)
- })
- })
- },
- // 重置密码
- resetPassword({ commit }, resetPasswordData) {
- return new Promise((resolve, reject) => {
- resetPassword(resetPasswordData).then(res => {
- if (res.code === 0) {
- resolve()
- } else {
- alert(res.data)
- }
- }).catch(error => {
- reject(error)
- })
- })
- },
- // 用户登录
- login({ commit }, loginData) {
- return new Promise((resolve, reject) => {
- login(loginData).then(res => {
- if (res.code === 0) {
- const token = res.data.token
- commit('SET_TOKEN', token)
- setToken(token)
- getMyInfo().then(res => {
- if (res.code === 0) {
- const userInfo = res.data
- commit('SET_USER_INFO', userInfo)
- resolve()
- } else {
- reject(res.data)
- }
- }).catch(error => {
- reject(error)
- })
- } else {
- // 登录失败
- reject(res.data)
- }
- }).catch(error => {
- // 登录请求错误
- reject(error)
- })
- })
- },
- // 获取用户信息
- getInfo({ commit, state }) {
- return new Promise((resolve, reject) => {
- resolve()
- })
- },
- // 用户注销
- logout({ commit, state }) {
- return new Promise((resolve, reject) => {
- logout(state.token).then(() => {
- removeToken() // must remove token first
- commit('RESET_STATE')
- resolve()
- }).catch(error => {
- reject(error)
- console.log('注销错误 -> ')
- console.log(error)
- })
- })
- },
- // 删除本地存储的 token
- resetToken({ commit }) {
- return new Promise(resolve => {
- removeToken() // must remove token first
- commit('RESET_STATE')
- resolve()
- })
- }
- }
- export default {
- namespaced: true,
- state,
- mutations,
- actions
- }
|