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 | 1 | import Vue from 'vue' |
| 2 | 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 | 6 | Vue.use(Vuex) // vue的插件机制 |
| 11 | 7 | |
| 12 | 8 | // Vuex.Store 构造器选项 |
| 13 | 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 | 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 | ... | ... |