|
@@ -4,153 +4,155 @@
|
|
|
*/
|
|
|
import { getUserInfo, login, logout } from '@/api/user'
|
|
|
import {
|
|
|
- getAccessToken,
|
|
|
- removeAccessToken,
|
|
|
- setAccessToken,
|
|
|
+ getAccessToken,
|
|
|
+ removeAccessToken,
|
|
|
+ setAccessToken,
|
|
|
} from '@/utils/accessToken'
|
|
|
import { title, tokenName } from '@/config'
|
|
|
import { message, notification } from 'ant-design-vue'
|
|
|
|
|
|
const state = () => ({
|
|
|
- accessToken: getAccessToken(),
|
|
|
- username: '',
|
|
|
- avatar: '',
|
|
|
+ accessToken: getAccessToken(),
|
|
|
+ username: '',
|
|
|
+ avatar: '',
|
|
|
})
|
|
|
const getters = {
|
|
|
- accessToken: (state) => state.accessToken,
|
|
|
- username: (state) => state.username,
|
|
|
- avatar: (state) => state.avatar,
|
|
|
+ accessToken: (state) => state.accessToken,
|
|
|
+ username: (state) => state.username,
|
|
|
+ avatar: (state) => state.avatar,
|
|
|
}
|
|
|
const mutations = {
|
|
|
- /**
|
|
|
- * @author chuzhixin 1204505056@qq.com
|
|
|
- * @description 设置accessToken
|
|
|
- * @param {*} state
|
|
|
- * @param {*} accessToken
|
|
|
- */
|
|
|
- setAccessToken(state, accessToken) {
|
|
|
- state.accessToken = accessToken
|
|
|
- setAccessToken(accessToken)
|
|
|
- },
|
|
|
- /**
|
|
|
- * @author chuzhixin 1204505056@qq.com
|
|
|
- * @description 设置用户名
|
|
|
- * @param {*} state
|
|
|
- * @param {*} username
|
|
|
- */
|
|
|
- setUsername(state, username) {
|
|
|
- state.username = username
|
|
|
- },
|
|
|
- /**
|
|
|
- * @author chuzhixin 1204505056@qq.com
|
|
|
- * @description 设置头像
|
|
|
- * @param {*} state
|
|
|
- * @param {*} avatar
|
|
|
- */
|
|
|
- setAvatar(state, avatar) {
|
|
|
- state.avatar = avatar
|
|
|
- },
|
|
|
+ /**
|
|
|
+ * @author chuzhixin 1204505056@qq.com
|
|
|
+ * @description 设置accessToken
|
|
|
+ * @param {*} state
|
|
|
+ * @param {*} accessToken
|
|
|
+ */
|
|
|
+ setAccessToken(state, accessToken) {
|
|
|
+ console.log(state, accessToken)
|
|
|
+ state.accessToken = accessToken
|
|
|
+ setAccessToken(accessToken)
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @author chuzhixin 1204505056@qq.com
|
|
|
+ * @description 设置用户名
|
|
|
+ * @param {*} state
|
|
|
+ * @param {*} username
|
|
|
+ */
|
|
|
+ setUsername(state, username) {
|
|
|
+ state.username = username
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @author chuzhixin 1204505056@qq.com
|
|
|
+ * @description 设置头像
|
|
|
+ * @param {*} state
|
|
|
+ * @param {*} avatar
|
|
|
+ */
|
|
|
+ setAvatar(state, avatar) {
|
|
|
+ state.avatar = avatar
|
|
|
+ },
|
|
|
}
|
|
|
const actions = {
|
|
|
- /**
|
|
|
- * @author chuzhixin 1204505056@qq.com
|
|
|
- * @description 登录拦截放行时,设置虚拟角色
|
|
|
- * @param {*} { commit, dispatch }
|
|
|
- */
|
|
|
- setVirtualRoles({ commit, dispatch }) {
|
|
|
- dispatch('acl/setFull', true, { root: true })
|
|
|
- commit('setAvatar', 'https://i.gtimg.cn/club/item/face/img/2/15922_100.gif')
|
|
|
- commit('setUsername', 'admin(未开启登录拦截)')
|
|
|
- },
|
|
|
- /**
|
|
|
- * @author chuzhixin 1204505056@qq.com
|
|
|
- * @description 登录
|
|
|
- * @param {*} { commit }
|
|
|
- * @param {*} userInfo
|
|
|
- */
|
|
|
- async login({ commit }, userInfo) {
|
|
|
- const { data } = await login(userInfo)
|
|
|
- const accessToken = data
|
|
|
- if (accessToken) {
|
|
|
- commit('setAccessToken', accessToken)
|
|
|
- const hour = new Date().getHours()
|
|
|
- const thisTime =
|
|
|
- hour < 8
|
|
|
- ? '早上好'
|
|
|
- : hour <= 11
|
|
|
- ? '上午好'
|
|
|
- : hour <= 13
|
|
|
- ? '中午好'
|
|
|
- : hour < 18
|
|
|
- ? '下午好'
|
|
|
- : '晚上好'
|
|
|
+ /**
|
|
|
+ * @author chuzhixin 1204505056@qq.com
|
|
|
+ * @description 登录拦截放行时,设置虚拟角色
|
|
|
+ * @param {*} { commit, dispatch }
|
|
|
+ */
|
|
|
+ setVirtualRoles({ commit, dispatch }) {
|
|
|
+ dispatch('acl/setFull', true, { root: true })
|
|
|
+ commit('setAvatar', 'https://i.gtimg.cn/club/item/face/img/2/15922_100.gif')
|
|
|
+ commit('setUsername', 'admin(未开启登录拦截)')
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @author chuzhixin 1204505056@qq.com
|
|
|
+ * @description 登录
|
|
|
+ * @param {*} { commit }
|
|
|
+ * @param {*} userInfo
|
|
|
+ */
|
|
|
+ async login({ commit }, userInfo) {
|
|
|
+ const { data } = await login(userInfo)
|
|
|
+ const accessToken = data
|
|
|
+ if (accessToken) {
|
|
|
+ commit('setAccessToken', accessToken)
|
|
|
+ const hour = new Date().getHours()
|
|
|
+ const thisTime =
|
|
|
+ hour < 8 ?
|
|
|
+ '早上好' :
|
|
|
+ hour <= 11 ?
|
|
|
+ '上午好' :
|
|
|
+ hour <= 13 ?
|
|
|
+ '中午好' :
|
|
|
+ hour < 18 ?
|
|
|
+ '下午好' :
|
|
|
+ '晚上好'
|
|
|
|
|
|
- title
|
|
|
- notification.open({
|
|
|
- // message: `欢迎登录${title}`,
|
|
|
- message: `登录成功`,
|
|
|
- description: `${thisTime}!`,
|
|
|
- })
|
|
|
- } else {
|
|
|
- message.error(`登录接口异常,未正确返回${tokenName}...`)
|
|
|
- }
|
|
|
- },
|
|
|
- /**
|
|
|
- * @author chuzhixin 1204505056@qq.com
|
|
|
- * @description 获取用户信息接口 这个接口非常非常重要,如果没有明确底层前逻辑禁止修改此方法,错误的修改可能造成整个框架无法正常使用
|
|
|
- * @param {*} { commit, dispatch, state }
|
|
|
- * @returns
|
|
|
- */
|
|
|
- async getUserInfo({ commit, dispatch, state }) {
|
|
|
- const { data } = await getUserInfo(state.accessToken)
|
|
|
+ title
|
|
|
+ notification.open({
|
|
|
+ // message: `欢迎登录${title}`,
|
|
|
+ message: `登录成功`,
|
|
|
+ description: `${thisTime}!`,
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ message.error(`登录接口异常,未正确返回${tokenName}...`)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @author chuzhixin 1204505056@qq.com
|
|
|
+ * @description 获取用户信息接口 这个接口非常非常重要,如果没有明确底层前逻辑禁止修改此方法,错误的修改可能造成整个框架无法正常使用
|
|
|
+ * @param {*} { commit, dispatch, state }
|
|
|
+ * @returns
|
|
|
+ */
|
|
|
+ async getUserInfo({ commit, dispatch, state }) {
|
|
|
+ const { data } = await getUserInfo(state.accessToken)
|
|
|
|
|
|
- if (!data) {
|
|
|
- message.error(`验证失败,请重新登录...`)
|
|
|
- return false
|
|
|
- }
|
|
|
- // let { username, avatar, roles, ability } = data
|
|
|
- let { permissions, roles, user, ability } = data
|
|
|
- permissions
|
|
|
- let { avatar, userName } = user
|
|
|
+ if (!data) {
|
|
|
+ message.error(`验证失败,请重新登录...`)
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ // let { username, avatar, roles, ability } = data
|
|
|
+ let { permissions, roles, user, ability } = data
|
|
|
+ permissions
|
|
|
+ let { avatar, userName } = user
|
|
|
|
|
|
- if (userName && roles && Array.isArray(roles)) {
|
|
|
- dispatch('acl/setRole', roles, { root: true })
|
|
|
- if (ability && ability.length > 0)
|
|
|
- dispatch('acl/setAbility', ability, { root: true })
|
|
|
- commit('setUsername', userName)
|
|
|
- commit('setAvatar', avatar)
|
|
|
- } else {
|
|
|
- message.error('用户信息接口异常')
|
|
|
- }
|
|
|
- },
|
|
|
+ if (userName && roles && Array.isArray(roles)) {
|
|
|
+ dispatch('acl/setRole', roles, { root: true })
|
|
|
+ if (ability && ability.length > 0)
|
|
|
+ dispatch('acl/setAbility', ability, { root: true })
|
|
|
+ commit('setUsername', userName)
|
|
|
+ commit('setAvatar', avatar)
|
|
|
+ } else {
|
|
|
+ message.error('用户信息接口异常')
|
|
|
+ }
|
|
|
+ },
|
|
|
|
|
|
- /**
|
|
|
- * @author chuzhixin 1204505056@qq.com
|
|
|
- * @description 退出登录
|
|
|
- * @param {*} { dispatch }
|
|
|
- */
|
|
|
- async logout({ dispatch }) {
|
|
|
- await logout(state.accessToken)
|
|
|
- await dispatch('resetAll')
|
|
|
- },
|
|
|
- /**
|
|
|
- * @author chuzhixin 1204505056@qq.com
|
|
|
- * @description 重置accessToken、roles、ability、router等
|
|
|
- * @param {*} { commit, dispatch }
|
|
|
- */
|
|
|
- async resetAll({ dispatch }) {
|
|
|
- await dispatch('setAccessToken', '')
|
|
|
- await dispatch('acl/setFull', false, { root: true })
|
|
|
- await dispatch('acl/setRole', [], { root: true })
|
|
|
- await dispatch('acl/setAbility', [], { root: true })
|
|
|
- removeAccessToken()
|
|
|
- },
|
|
|
- /**
|
|
|
- * @author chuzhixin 1204505056@qq.com
|
|
|
- * @description 设置token
|
|
|
- */
|
|
|
- setAccessToken({ commit }, accessToken) {
|
|
|
- commit('setAccessToken', accessToken)
|
|
|
- },
|
|
|
+ /**
|
|
|
+ * @author chuzhixin 1204505056@qq.com
|
|
|
+ * @description 退出登录
|
|
|
+ * @param {*} { dispatch }
|
|
|
+ */
|
|
|
+ async logout({ dispatch }) {
|
|
|
+ await logout(state.accessToken)
|
|
|
+ await dispatch('resetAll')
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @author chuzhixin 1204505056@qq.com
|
|
|
+ * @description 重置accessToken、roles、ability、router等
|
|
|
+ * @param {*} { commit, dispatch }
|
|
|
+ */
|
|
|
+ async resetAll({ dispatch }) {
|
|
|
+ await dispatch('setAccessToken', '')
|
|
|
+ await dispatch('acl/setFull', false, { root: true })
|
|
|
+ await dispatch('acl/setRole', [], { root: true })
|
|
|
+ await dispatch('acl/setAbility', [], { root: true })
|
|
|
+ removeAccessToken()
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * @author chuzhixin 1204505056@qq.com
|
|
|
+ * @description 设置token
|
|
|
+ */
|
|
|
+ setAccessToken({ commit }, accessToken) {
|
|
|
+ console.log("11111111111111111111111", accessToken)
|
|
|
+ commit('setAccessToken', accessToken)
|
|
|
+ },
|
|
|
}
|
|
|
-export default { state, getters, mutations, actions }
|
|
|
+export default { state, getters, mutations, actions }
|