|
- import { login, getInfo, getUserMsg, getUsers, addUsers, removeUsers, updateUsers, updatePassword, getNavMenus } from '@/api/user'
- import { getToken, setToken, removeToken } from '@/utils/auth'
- import { resetRouter } from '@/router'
-
- const getDefaultState = () => {
- return {
- token: getToken(),
- name: '',
- avatar: '',
- userInfo: '',
- createState: false,
- userData: '',
- userMsg: '',
- navMenuData: ''
- }
- }
-
- const state = getDefaultState()
-
- const mutations = {
- RESET_STATE: (state) => {
- Object.assign(state, getDefaultState())
- },
- SET_TOKEN: (state, token) => {
- state.token = token
- },
- SET_NAME: (state, name) => {
- state.name = name
- },
- SET_AVATAR: (state, avatar) => {
- state.avatar = avatar
- },
- SET_USER_INFO: (state, userInfo) => {
- state.userInfo = userInfo
- },
- SET_CREATE_STATE: (state, payload) => {
- state.createState = payload
- },
- SET_USER_DATA: (state, payload) => {
- state.userData = payload
- },
- SET_USER_MSG: (state, payload) => {
- state.userMsg = payload
- },
- SET_NAV_MENU_DATA: (state, payload) => {
- state.navMenuData = payload
- }
- }
-
- const actions = {
- // user login
- login({ commit }, userInfo) {
- const { username, password, captcha, uuid } = userInfo
- return new Promise((resolve, reject) => {
- login({ username: username.trim(), password, captcha, uuid }).then(response => {
- commit('SET_TOKEN', response.token)
- setToken(response.token)
- resolve()
- }).catch(error => {
- reject(error)
- })
- })
- },
-
- // get user info
- getInfo({ commit, state }) {
- return new Promise((resolve, reject) => {
- getInfo(state.token).then(response => {
- const { user } = response
- if (!user) {
- reject('验证失败,请重新登录.')
- }
-
- const { username, avatar } = user
-
- commit('SET_NAME', username)
- commit('SET_AVATAR', avatar)
- commit('SET_USER_INFO', user)
- resolve(user)
- }).catch(error => {
- reject(error)
- })
- })
- },
-
- // user logout
- logout({ commit, state }) {
- return new Promise((resolve, reject) => {
- removeToken() // must remove token first
- resetRouter()
- commit('RESET_STATE')
- resolve()
- // logout(state.token).then(() => {
- // }).catch(error => {
- // reject(error)
- // })
- })
- },
-
- // remove token
- resetToken({ commit }) {
- return new Promise(resolve => {
- removeToken() // must remove token first
- commit('RESET_STATE')
- resolve()
- })
- },
-
- fetchUserList({ commit }, option) {
- return new Promise((resolve, reject) => {
- getUsers(option).then((res) => {
- const { page } = res
- commit('SET_USER_DATA', page)
- resolve()
- }).catch((err) => {
- reject(err)
- })
- })
- },
-
- fetchUserMsg({ commit }, userId) {
- return new Promise((resolve, reject) => {
- getUserMsg(userId).then((res) => {
- const { user } = res
- commit('SET_USER_MSG', user)
- resolve()
- }).catch((err) => {
- reject(err)
- })
- })
- },
- saveUsers({ commit }, userMsg) {
- return new Promise((resolve, reject) => {
- addUsers(userMsg).then(res => {
- resolve(res)
- }).catch(err => {
- reject(err)
- })
- })
- },
- removeUsers({ commit }, userId) {
- return new Promise((resolve, reject) => {
- removeUsers(userId).then(res => {
- resolve(res)
- }).catch(err => {
- reject(err)
- })
- })
- },
- updateUsers({ commit }, userMsg) {
- return new Promise((resolve, reject) => {
- updateUsers(userMsg).then(res => {
- resolve(res)
- }).catch(err => {
- reject(err)
- })
- })
- },
- updatePassword({ commit }, pass) {
- return new Promise((resolve, reject) => {
- updatePassword(pass).then(res => {
- resolve(res)
- }).catch(err => {
- reject(err)
- })
- })
- },
- fetchNavMenus({ commit }) {
- return new Promise((resolve, reject) => {
- getNavMenus().then((res) => {
- const { menuList } = res
- commit('SET_NAV_MENU_DATA', menuList)
- resolve()
- }).catch((err) => {
- reject(err)
- })
- })
- }
- }
-
- export default {
- namespaced: true,
- state,
- mutations,
- actions
- }
|