Skip to content

Commit 8b382e1

Browse files
committed
refine code
1 parent c93d88a commit 8b382e1

File tree

13 files changed

+165
-163
lines changed

13 files changed

+165
-163
lines changed

mock/article.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ for (let i = 0; i < count; i++) {
1313
author: '@first',
1414
reviewer: '@first',
1515
title: '@title(5, 10)',
16-
content_short: '我是测试数据',
16+
content_short: 'mock data',
1717
content: baseContent,
1818
forecast: '@float(0, 100, 2, 2)',
1919
importance: '@integer(1, 3)',

mock/mocks.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import login from './login'
1+
import user from './user'
22
import role from './role'
33
import article from './article'
44
import search from './remoteSearch'
55

66
export default [
7-
...login,
7+
...user,
88
...role,
99
...article,
1010
...search

mock/remoteSearch.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ for (let i = 0; i < count; i++) {
88
name: '@first'
99
}))
1010
}
11-
NameList.push({ name: 'mockPan' })
11+
NameList.push({ name: 'mock-Pan' })
1212

1313
export default [
14+
// username search
1415
{
1516
url: '/search/user',
1617
type: 'get',
@@ -23,14 +24,15 @@ export default [
2324
return { items: mockNameList }
2425
}
2526
},
27+
28+
// transaction list
2629
{
2730
url: '/transaction/list',
2831
type: 'get',
2932
response: _ => {
30-
const count = 20
3133
return {
32-
total: count,
33-
[`items|${count}`]: [{
34+
total: 20,
35+
'items|20': [{
3436
order_no: '@guid()',
3537
timestamp: +Mock.Random.date('T'),
3638
username: '@name()',

mock/login.js renamed to mock/user.js

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,56 @@
1-
const userMap = {
1+
2+
const tokens = {
23
admin: {
4+
token: 'admin-token'
5+
},
6+
editor: {
7+
token: 'editor-token'
8+
}
9+
}
10+
11+
const users = {
12+
'admin-token': {
313
roles: ['admin'],
4-
token: 'admin',
5-
introduction: '我是超级管理员',
14+
introduction: 'I am a super administrator',
615
avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
716
name: 'Super Admin'
817
},
9-
editor: {
18+
'editor-token': {
1019
roles: ['editor'],
11-
token: 'editor',
12-
introduction: '我是编辑',
20+
introduction: 'I am an editor',
1321
avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
1422
name: 'Normal Editor'
1523
}
1624
}
1725

1826
export default [
27+
// user login
1928
{
20-
url: '/login/login',
29+
url: '/user/login',
2130
type: 'post',
2231
response: config => {
2332
const { username } = config.body
24-
return userMap[username]
25-
}
26-
},
27-
{
28-
url: '/login/logout',
29-
type: 'post',
30-
response: _ => {
31-
return {
32-
data: 'success'
33-
}
33+
return tokens[username]
3434
}
3535
},
36+
37+
// get user info
3638
{
3739
url: '/user/info\.*',
3840
type: 'get',
3941
response: config => {
4042
const { token } = config.query
41-
if (userMap[token]) {
42-
return userMap[token]
43-
} else {
44-
return false
43+
return users[token]
44+
}
45+
},
46+
47+
// user logout
48+
{
49+
url: '/user/logout',
50+
type: 'post',
51+
response: _ => {
52+
return {
53+
data: 'success'
4554
}
4655
}
4756
}
Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,25 @@
11
import request from '@/utils/request'
22

3-
export function loginByUsername(username, password) {
4-
const data = {
5-
username,
6-
password
7-
}
3+
export function login(data) {
84
return request({
9-
url: '/login/login',
5+
url: '/user/login',
106
method: 'post',
117
data
128
})
139
}
1410

15-
export function logout() {
11+
export function getInfo(token) {
1612
return request({
17-
url: '/login/logout',
18-
method: 'post'
13+
url: '/user/info',
14+
method: 'get',
15+
params: { token }
1916
})
2017
}
2118

22-
export function getUserInfo(token) {
19+
export function logout() {
2320
return request({
24-
url: '/user/info',
25-
method: 'get',
26-
params: { token }
21+
url: '/user/logout',
22+
method: 'post'
2723
})
2824
}
2925

src/layout/components/Navbar.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ export default {
8383
this.$store.dispatch('toggleSideBar')
8484
},
8585
logout() {
86-
this.$store.dispatch('LogOut').then(() => {
86+
this.$store.dispatch('Logout').then(() => {
8787
location.reload()// In order to re-instantiate the vue-router object to avoid bugs
8888
})
8989
}

src/permission.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,18 @@ router.beforeEach((to, from, next) => {
2929
if (store.getters.roles.length === 0) {
3030
// 判断当前用户是否已拉取完user_info信息
3131
store
32-
.dispatch('GetUserInfo')
32+
.dispatch('getInfo') // dispatch @/store/modules/user login getInfo
3333
.then(res => {
3434
// 拉取user_info
35-
const roles = res.data.roles // note: roles must be a object array! such as: [{id: '1', name: 'editor'}, {id: '2', name: 'developer'}]
36-
store.dispatch('GenerateRoutes', { roles }).then(accessRoutes => {
35+
const { roles } = res // note: roles must be a object array! such as: [{id: '1', name: 'editor'}, {id: '2', name: 'developer'}]
36+
store.dispatch('generateRoutes', { roles }).then(accessRoutes => {
3737
// 根据roles权限生成可访问的路由表
3838
router.addRoutes(accessRoutes) // 动态添加可访问路由表
3939
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
4040
})
4141
})
4242
.catch(err => {
43-
store.dispatch('FedLogOut').then(() => {
43+
store.dispatch('resetToken').then(() => {
4444
Message.error(err)
4545
next({ path: '/' })
4646
})

src/store/modules/permission.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ const permission = {
4646
}
4747
},
4848
actions: {
49-
GenerateRoutes({ commit }, data) {
49+
generateRoutes({ commit }, data) {
5050
return new Promise(resolve => {
5151
const { roles } = data
5252
let accessedRoutes

src/store/modules/user.js

Lines changed: 28 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,22 @@
1-
import { loginByUsername, logout, getUserInfo } from '@/api/login'
1+
import { login, logout, getInfo } from '@/api/user'
22
import { getToken, setToken, removeToken } from '@/utils/auth'
33

44
const user = {
55
state: {
6-
user: '',
7-
status: '',
8-
code: '',
96
token: getToken(),
107
name: '',
118
avatar: '',
129
introduction: '',
13-
roles: [],
14-
setting: {
15-
articlePlatform: []
16-
}
10+
roles: []
1711
},
1812

1913
mutations: {
20-
SET_CODE: (state, code) => {
21-
state.code = code
22-
},
2314
SET_TOKEN: (state, token) => {
2415
state.token = token
2516
},
2617
SET_INTRODUCTION: (state, introduction) => {
2718
state.introduction = introduction
2819
},
29-
SET_SETTING: (state, setting) => {
30-
state.setting = setting
31-
},
32-
SET_STATUS: (state, status) => {
33-
state.status = status
34-
},
3520
SET_NAME: (state, name) => {
3621
state.name = name
3722
},
@@ -44,12 +29,12 @@ const user = {
4429
},
4530

4631
actions: {
47-
// 用户名登录
48-
LoginByUsername({ commit }, userInfo) {
49-
const username = userInfo.username.trim()
32+
// user login
33+
login({ commit }, userInfo) {
34+
const { username, password } = userInfo
5035
return new Promise((resolve, reject) => {
51-
loginByUsername(username, userInfo.password).then(response => {
52-
const data = response.data
36+
login({ username: username.trim(), password: password }).then(response => {
37+
const { data } = response
5338
commit('SET_TOKEN', data.token)
5439
setToken(response.data.token)
5540
resolve()
@@ -59,48 +44,36 @@ const user = {
5944
})
6045
},
6146

62-
// 获取用户信息
63-
GetUserInfo({ commit, state }) {
47+
// get user info
48+
getInfo({ commit, state }) {
6449
return new Promise((resolve, reject) => {
65-
getUserInfo(state.token).then(response => {
66-
// 由于mockjs 不支持自定义状态码只能这样hack
67-
if (!response.data) {
68-
reject('Verification failed, please login again.')
50+
getInfo(state.token).then(response => {
51+
const { data } = response
52+
53+
if (!data) {
54+
reject('Verification failed, please Login again.')
6955
}
70-
const data = response.data
7156

72-
if (data.roles && data.roles.length > 0) { // 验证返回的roles是否是一个非空数组
73-
commit('SET_ROLES', data.roles)
74-
} else {
57+
const { roles } = data
58+
59+
// roles must be a non-empty array
60+
if (!roles || roles.length <= 0) {
7561
reject('getInfo: roles must be a non-null array!')
7662
}
7763

64+
commit('SET_ROLES', data.roles)
7865
commit('SET_NAME', data.name)
7966
commit('SET_AVATAR', data.avatar)
8067
commit('SET_INTRODUCTION', data.introduction)
81-
resolve(response)
68+
resolve(data)
8269
}).catch(error => {
8370
reject(error)
8471
})
8572
})
8673
},
8774

88-
// 第三方验证登录
89-
// LoginByThirdparty({ commit, state }, code) {
90-
// return new Promise((resolve, reject) => {
91-
// commit('SET_CODE', code)
92-
// loginByThirdparty(state.status, state.email, state.code).then(response => {
93-
// commit('SET_TOKEN', response.data.token)
94-
// setToken(response.data.token)
95-
// resolve()
96-
// }).catch(error => {
97-
// reject(error)
98-
// })
99-
// })
100-
// },
101-
102-
// 登出
103-
LogOut({ commit, state }) {
75+
// user logout
76+
Logout({ commit, state }) {
10477
return new Promise((resolve, reject) => {
10578
logout(state.token).then(() => {
10679
commit('SET_TOKEN', '')
@@ -113,27 +86,28 @@ const user = {
11386
})
11487
},
11588

116-
// 前端 登出
117-
FedLogOut({ commit }) {
89+
// remove token
90+
resetToken({ commit }) {
11891
return new Promise(resolve => {
11992
commit('SET_TOKEN', '')
93+
commit('SET_ROLES', [])
12094
removeToken()
12195
resolve()
12296
})
12397
},
12498

12599
// 动态修改权限
126-
ChangeRoles({ commit, dispatch }, role) {
100+
changeRoles({ commit, dispatch }, role) {
127101
return new Promise(resolve => {
128102
commit('SET_TOKEN', role)
129103
setToken(role)
130-
getUserInfo(role).then(response => {
104+
getInfo(role).then(response => {
131105
const data = response.data
132106
commit('SET_ROLES', data.roles)
133107
commit('SET_NAME', data.name)
134108
commit('SET_AVATAR', data.avatar)
135109
commit('SET_INTRODUCTION', data.introduction)
136-
dispatch('GenerateRoutes', data) // 动态修改权限后 重绘侧边菜单
110+
dispatch('generateRoutes', data) // 动态修改权限后 重绘侧边菜单
137111
resolve()
138112
})
139113
})

src/utils/request.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ service.interceptors.response.use(
5353
// cancelButtonText: '取消',
5454
// type: 'warning'
5555
// }).then(() => {
56-
// store.dispatch('FedLogOut').then(() => {
56+
// store.dispatch('resetToken').then(() => {
5757
// location.reload() // 为了重新实例化vue-router对象 避免bug
5858
// })
5959
// })

0 commit comments

Comments
 (0)