data
This commit is contained in:
@@ -8,12 +8,15 @@ const getters = {
|
||||
token: state => state.user.token,
|
||||
avatar: state => state.user.avatar,
|
||||
name: state => state.user.name,
|
||||
fid: state => state.user.fid,
|
||||
uid: state => state.user.uid,
|
||||
introduction: state => state.user.introduction,
|
||||
status: state => state.user.status,
|
||||
roles: state => state.user.roles,
|
||||
setting: state => state.user.setting,
|
||||
permission_routers: state => state.permission.routers,
|
||||
addRouters: state => state.permission.addRouters,
|
||||
errorLogs: state => state.errorLog.logs
|
||||
errorLogs: state => state.errorLog.logs,
|
||||
user: state => state.user
|
||||
}
|
||||
export default getters
|
||||
|
@@ -7,7 +7,7 @@ const app = {
|
||||
withoutAnimation: false
|
||||
},
|
||||
device: 'desktop',
|
||||
language: Cookies.get('language') || 'en',
|
||||
language: Cookies.get('language') || 'zh',
|
||||
size: Cookies.get('size') || 'medium'
|
||||
},
|
||||
mutations: {
|
||||
|
@@ -7,7 +7,7 @@ import { asyncRouterMap, constantRouterMap } from '@/router'
|
||||
*/
|
||||
function hasPermission(roles, route) {
|
||||
if (route.meta && route.meta.roles) {
|
||||
return roles.some(role => route.meta.roles.includes(role))
|
||||
return roles.some(role => route.meta.roles.indexOf(role) >= 0)
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
@@ -50,7 +50,7 @@ const permission = {
|
||||
return new Promise(resolve => {
|
||||
const { roles } = data
|
||||
let accessedRouters
|
||||
if (roles.includes('admin')) {
|
||||
if (data.roles.includes(1) || data.roles.includes(0)) {
|
||||
accessedRouters = asyncRouterMap
|
||||
} else {
|
||||
accessedRouters = filterAsyncRouter(asyncRouterMap, roles)
|
||||
|
@@ -1,16 +1,19 @@
|
||||
import { loginByUsername, logout, getUserInfo } from '@/api/login'
|
||||
import { Message } from 'element-ui'
|
||||
import { getToken, setToken, removeToken } from '@/utils/auth'
|
||||
|
||||
const user = {
|
||||
state: {
|
||||
user: '',
|
||||
status: '',
|
||||
code: '',
|
||||
token: getToken(),
|
||||
admin: false,
|
||||
name: '',
|
||||
fid: '',
|
||||
uid: '',
|
||||
roles: [],
|
||||
avatar: '',
|
||||
introduction: '',
|
||||
roles: [],
|
||||
setting: {
|
||||
articlePlatform: []
|
||||
}
|
||||
@@ -35,6 +38,16 @@ const user = {
|
||||
SET_NAME: (state, name) => {
|
||||
state.name = name
|
||||
},
|
||||
SET_FID: (state, fid) => {
|
||||
state.fid = fid
|
||||
},
|
||||
SET_ADMIN: (state, admin) => {
|
||||
state.admin = admin
|
||||
},
|
||||
SET_UID: (state, uid) => {
|
||||
state.uid = uid
|
||||
},
|
||||
// 头像
|
||||
SET_AVATAR: (state, avatar) => {
|
||||
state.avatar = avatar
|
||||
},
|
||||
@@ -47,12 +60,27 @@ const user = {
|
||||
// 用户名登录
|
||||
LoginByUsername({ commit }, userInfo) {
|
||||
const username = userInfo.username.trim()
|
||||
userInfo.fid = 1
|
||||
const fid = parseInt(userInfo.fid)
|
||||
return new Promise((resolve, reject) => {
|
||||
loginByUsername(username, userInfo.password).then(response => {
|
||||
const data = response.data
|
||||
commit('SET_TOKEN', data.token)
|
||||
setToken(response.data.token)
|
||||
resolve()
|
||||
loginByUsername(username, userInfo.password, fid).then(response => {
|
||||
if (response.data.code === 200) {
|
||||
const data = response.data.result
|
||||
commit('SET_TOKEN', data.token)
|
||||
commit('SET_FID', fid)
|
||||
commit('SET_NAME', data.name)
|
||||
commit('SET_ADMIN', data.roles.includes(1))
|
||||
commit('SET_UID', data.uid)
|
||||
setToken(data.token)
|
||||
resolve()
|
||||
} else {
|
||||
Message({
|
||||
message: response.data.message,
|
||||
type: 'error',
|
||||
duration: 4 * 1000
|
||||
})
|
||||
resolve()
|
||||
}
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
@@ -63,21 +91,18 @@ const user = {
|
||||
GetUserInfo({ commit, state }) {
|
||||
return new Promise((resolve, reject) => {
|
||||
getUserInfo(state.token).then(response => {
|
||||
// 由于mockjs 不支持自定义状态码只能这样hack
|
||||
if (!response.data) {
|
||||
reject('Verification failed, please login again.')
|
||||
var data = response.data.result
|
||||
if (!data) { // 由于mockjs 不支持自定义状态码只能这样hack
|
||||
reject('error')
|
||||
}
|
||||
const data = response.data
|
||||
|
||||
if (data.roles && data.roles.length > 0) { // 验证返回的roles是否是一个非空数组
|
||||
commit('SET_ROLES', data.roles)
|
||||
} else {
|
||||
reject('getInfo: roles must be a non-null array!')
|
||||
reject('getInfo: roles must be a non-null array !')
|
||||
}
|
||||
|
||||
commit('SET_NAME', data.name)
|
||||
commit('SET_AVATAR', data.avatar)
|
||||
commit('SET_INTRODUCTION', data.introduction)
|
||||
commit('SET_AVATAR', 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif')
|
||||
commit('SET_INTRODUCTION', '我是超级管理员')
|
||||
resolve(response)
|
||||
}).catch(error => {
|
||||
reject(error)
|
||||
|
Reference in New Issue
Block a user