Commit 49fe926cb86bd3714d7d12a160212a0d5ae7440b
1 parent
a72c68ce
uni-app调整vuex目录结构
Showing
3 changed files
with
112 additions
and
81 deletions
yudao-ui-app/store/getters.js
0 → 100644
yudao-ui-app/store/index.js
| 1 | import Vue from 'vue' | 1 | import Vue from 'vue' |
| 2 | import Vuex from 'vuex' | 2 | import Vuex from 'vuex' |
| 3 | -import { logout } from '@/api/auth' | ||
| 4 | -import { getUserInfo } from '@/api/user' | ||
| 5 | -import { passwordLogin, smsLogin, weixinMiniAppLogin } from '@/api/auth' | ||
| 6 | - | ||
| 7 | -const AccessTokenKey = 'ACCESS_TOKEN' | ||
| 8 | -const RefreshTokenKey = 'REFRESH_TOKEN' | 3 | +import user from './mudules/user' |
| 4 | +import getters from './getters' | ||
| 9 | 5 | ||
| 10 | Vue.use(Vuex) // vue的插件机制 | 6 | Vue.use(Vuex) // vue的插件机制 |
| 11 | 7 | ||
| 12 | // Vuex.Store 构造器选项 | 8 | // Vuex.Store 构造器选项 |
| 13 | const store = new Vuex.Store({ | 9 | const store = new Vuex.Store({ |
| 14 | - state: { | ||
| 15 | - accessToken: uni.getStorageSync(AccessTokenKey), // 访问令牌 | ||
| 16 | - refreshToken: uni.getStorageSync(RefreshTokenKey), // 刷新令牌 | ||
| 17 | - userInfo: {} | ||
| 18 | - }, | ||
| 19 | - getters: { | ||
| 20 | - accessToken: state => state.accessToken, | ||
| 21 | - refreshToken: state => state.refreshToken, | ||
| 22 | - userInfo: state => state.userInfo, | ||
| 23 | - hasLogin: state => !!state.accessToken | 10 | + modules: { |
| 11 | + user | ||
| 24 | }, | 12 | }, |
| 25 | - mutations: { | ||
| 26 | - // 更新 state 的通用方法 | ||
| 27 | - SET_STATE_ATTR(state, param) { | ||
| 28 | - if (param instanceof Array) { | ||
| 29 | - for (let item of param) { | ||
| 30 | - state[item.key] = item.val | ||
| 31 | - } | ||
| 32 | - } else { | ||
| 33 | - state[param.key] = param.val | ||
| 34 | - } | ||
| 35 | - }, | ||
| 36 | - // 更新令牌 | ||
| 37 | - SET_TOKEN(state, data) { | ||
| 38 | - // 设置令牌 | ||
| 39 | - const { accessToken, refreshToken } = data | ||
| 40 | - state.accessToken = accessToken | ||
| 41 | - state.refreshToken = refreshToken | ||
| 42 | - uni.setStorageSync(AccessTokenKey, accessToken) | ||
| 43 | - uni.setStorageSync(RefreshTokenKey, refreshToken) | ||
| 44 | - | ||
| 45 | - // 加载用户信息 | ||
| 46 | - this.dispatch('ObtainUserInfo') | ||
| 47 | - }, | ||
| 48 | - // 更新用户信息 | ||
| 49 | - SET_USER_INFO(state, data) { | ||
| 50 | - state.userInfo = data | ||
| 51 | - }, | ||
| 52 | - // 清空令牌 和 用户信息 | ||
| 53 | - CLEAR_LOGIN_INFO(state) { | ||
| 54 | - uni.removeStorageSync(AccessTokenKey) | ||
| 55 | - uni.removeStorageSync(RefreshTokenKey) | ||
| 56 | - state.accessToken = '' | ||
| 57 | - state.refreshToken = '' | ||
| 58 | - state.userInfo = {} | ||
| 59 | - } | ||
| 60 | - }, | ||
| 61 | - actions: { | ||
| 62 | - //账号登录 | ||
| 63 | - Login({ state, commit }, { type, data }) { | ||
| 64 | - if (type === 0) { | ||
| 65 | - return passwordLogin(data).then(res => { | ||
| 66 | - commit('SET_TOKEN', res.data) | ||
| 67 | - }) | ||
| 68 | - } else if (type === 1) { | ||
| 69 | - return smsLogin(data).then(res => { | ||
| 70 | - commit('SET_TOKEN', res.data) | ||
| 71 | - }) | ||
| 72 | - } else { | ||
| 73 | - return weixinMiniAppLogin(data).then(res => { | ||
| 74 | - commit('SET_TOKEN', res.data) | ||
| 75 | - }) | ||
| 76 | - } | ||
| 77 | - }, | ||
| 78 | - // 退出登录 | ||
| 79 | - async Logout({ state, commit }) { | ||
| 80 | - commit('CLEAR_LOGIN_INFO') | ||
| 81 | - await logout() | ||
| 82 | - }, | ||
| 83 | - // 获得用户基本信息 | ||
| 84 | - async ObtainUserInfo({ state, commit }) { | ||
| 85 | - const res = await getUserInfo() | ||
| 86 | - commit('SET_USER_INFO', res.data) | ||
| 87 | - } | ||
| 88 | - } | 13 | + getters |
| 89 | }) | 14 | }) |
| 90 | - | ||
| 91 | export default store | 15 | export default store |
yudao-ui-app/store/mudules/user.js
0 → 100644
| 1 | +import { getUserInfo } from '@/api/user' | ||
| 2 | +import { passwordLogin, smsLogin, weixinMiniAppLogin, logout } from '@/api/auth' | ||
| 3 | + | ||
| 4 | +const AccessTokenKey = 'ACCESS_TOKEN' | ||
| 5 | +const RefreshTokenKey = 'REFRESH_TOKEN' | ||
| 6 | + | ||
| 7 | +const user = { | ||
| 8 | + state: { | ||
| 9 | + accessToken: uni.getStorageSync(AccessTokenKey), // 访问令牌 | ||
| 10 | + refreshToken: uni.getStorageSync(RefreshTokenKey), // 刷新令牌 | ||
| 11 | + userInfo: {} | ||
| 12 | + }, | ||
| 13 | + mutations: { | ||
| 14 | + // 更新 state 的通用方法 | ||
| 15 | + SET_STATE_ATTR(state, param) { | ||
| 16 | + if (param instanceof Array) { | ||
| 17 | + for (let item of param) { | ||
| 18 | + state[item.key] = item.val | ||
| 19 | + } | ||
| 20 | + } else { | ||
| 21 | + state[param.key] = param.val | ||
| 22 | + } | ||
| 23 | + }, | ||
| 24 | + // 更新令牌 | ||
| 25 | + SET_TOKEN(state, data) { | ||
| 26 | + // 设置令牌 | ||
| 27 | + const { accessToken, refreshToken } = data | ||
| 28 | + state.accessToken = accessToken | ||
| 29 | + state.refreshToken = refreshToken | ||
| 30 | + uni.setStorageSync(AccessTokenKey, accessToken) | ||
| 31 | + uni.setStorageSync(RefreshTokenKey, refreshToken) | ||
| 32 | + | ||
| 33 | + // 加载用户信息 | ||
| 34 | + this.dispatch('ObtainUserInfo') | ||
| 35 | + }, | ||
| 36 | + // 更新用户信息 | ||
| 37 | + SET_USER_INFO(state, data) { | ||
| 38 | + state.userInfo = data | ||
| 39 | + }, | ||
| 40 | + // 清空令牌 和 用户信息 | ||
| 41 | + CLEAR_LOGIN_INFO(state) { | ||
| 42 | + uni.removeStorageSync(AccessTokenKey) | ||
| 43 | + uni.removeStorageSync(RefreshTokenKey) | ||
| 44 | + state.accessToken = '' | ||
| 45 | + state.refreshToken = '' | ||
| 46 | + state.userInfo = {} | ||
| 47 | + } | ||
| 48 | + }, | ||
| 49 | + actions: { | ||
| 50 | + //账号登录 | ||
| 51 | + Login({ state, commit }, { type, data }) { | ||
| 52 | + if (type === 0) { | ||
| 53 | + return passwordLogin(data) | ||
| 54 | + .then(res => { | ||
| 55 | + commit('SET_TOKEN', res.data) | ||
| 56 | + return Promise.resolve(res) | ||
| 57 | + }) | ||
| 58 | + .catch(err => { | ||
| 59 | + return Promise.reject(err) | ||
| 60 | + }) | ||
| 61 | + } else if (type === 1) { | ||
| 62 | + return smsLogin(data) | ||
| 63 | + .then(res => { | ||
| 64 | + commit('SET_TOKEN', res.data) | ||
| 65 | + return Promise.resolve(res) | ||
| 66 | + }) | ||
| 67 | + .catch(err => { | ||
| 68 | + return Promise.reject(err) | ||
| 69 | + }) | ||
| 70 | + } else { | ||
| 71 | + return weixinMiniAppLogin(data) | ||
| 72 | + .then(res => { | ||
| 73 | + commit('SET_TOKEN', res.data) | ||
| 74 | + return Promise.resolve(res) | ||
| 75 | + }) | ||
| 76 | + .catch(err => { | ||
| 77 | + return Promise.reject(err) | ||
| 78 | + }) | ||
| 79 | + } | ||
| 80 | + }, | ||
| 81 | + // 退出登录 | ||
| 82 | + Logout({ state, commit }) { | ||
| 83 | + return logout() | ||
| 84 | + .then(res => { | ||
| 85 | + return Promise.resolve(res) | ||
| 86 | + }) | ||
| 87 | + .catch(err => { | ||
| 88 | + return Promise.reject(err) | ||
| 89 | + }) | ||
| 90 | + .finally(() => { | ||
| 91 | + commit('CLEAR_LOGIN_INFO') | ||
| 92 | + }) | ||
| 93 | + }, | ||
| 94 | + // 获得用户基本信息 | ||
| 95 | + async ObtainUserInfo({ state, commit }) { | ||
| 96 | + const res = await getUserInfo() | ||
| 97 | + commit('SET_USER_INFO', res.data) | ||
| 98 | + } | ||
| 99 | + } | ||
| 100 | +} | ||
| 101 | +export default user |