Skip to content

Commit 469187f

Browse files
authored
Merge pull request #24 from musnow/dev
Dev
2 parents e4c85b9 + d4aa3c1 commit 469187f

File tree

10 files changed

+316
-277
lines changed

10 files changed

+316
-277
lines changed

.prettierrc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"printWidth": 120,
3+
"semi": false,
4+
"singleQuote": true
5+
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
},
1010
"dependencies": {
1111
"@antv/data-set": "^0.10.1",
12-
"ant-design-vue": "^1.1.10-beta",
12+
"ant-design-vue": "^1.1.10",
1313
"axios": "^0.18.0",
1414
"dayjs": "^1.7.5",
1515
"enquire.js": "^2.1.6",

src/permission.js

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import store from './store'
55
import NProgress from 'nprogress' // progress bar
66
import 'nprogress/nprogress.css' // progress bar style
77
import notification from 'ant-design-vue/es/notification'
8-
import { ACCESS_TOKEN } from "@/store/mutation-types"
8+
import { ACCESS_TOKEN } from '@/store/mutation-types'
99

10-
NProgress.configure({ showSpinner: false })// NProgress Configuration
10+
NProgress.configure({ showSpinner: false }) // NProgress Configuration
1111

12-
const whiteList = ['/user/login', '/user/register', '/user/register-result']// no redirect whitelist
12+
const whiteList = ['/user/login', '/user/register', '/user/register-result'] // no redirect whitelist
1313

1414
router.beforeEach((to, from, next) => {
1515
NProgress.start() // start progress bar
@@ -21,35 +21,48 @@ router.beforeEach((to, from, next) => {
2121
NProgress.done()
2222
} else {
2323
if (store.getters.roles.length === 0) {
24-
store.dispatch('GetInfo').then(res => {
25-
const roles = res.result && res.result.role
26-
store.dispatch('GenerateRoutes', { roles }).then(() => { // 根据roles权限生成可访问的路由表
27-
router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表
28-
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
24+
store
25+
.dispatch('GetInfo')
26+
.then(res => {
27+
const roles = res.result && res.result.role
28+
store.dispatch('GenerateRoutes', { roles }).then(() => {
29+
// 根据roles权限生成可访问的路由表
30+
// 动态添加可访问路由表
31+
router.addRoutes(store.getters.addRouters)
32+
const redirect = decodeURIComponent(from.query.redirect || to.path)
33+
if (to.path === redirect) {
34+
// hack方法 确保addRoutes已完成 ,set the replace: true so the navigation will not leave a history record
35+
next({ ...to, replace: true })
36+
} else {
37+
// 跳转到目的路由
38+
next({ path: redirect })
39+
}
40+
})
2941
})
30-
}).catch(() => {
31-
notification.error({ message: '错误', description: '请求用户信息失败,请重试' })
32-
store.dispatch('Logout').then(() => {
33-
next({ path: '/user/login' })
42+
.catch(() => {
43+
notification.error({
44+
message: '错误',
45+
description: '请求用户信息失败,请重试'
46+
})
47+
store.dispatch('Logout').then(() => {
48+
next({ path: '/user/login', query: { redirect: to.fullPath } })
49+
})
3450
})
35-
})
36-
3751
} else {
3852
next()
3953
}
4054
}
4155
} else {
42-
if (whiteList.indexOf(to.path) !== -1) { // 在免登录白名单,直接进入
56+
if (whiteList.indexOf(to.path) !== -1) {
57+
// 在免登录白名单,直接进入
4358
next()
4459
} else {
45-
next('/user/login')
60+
next({ path: '/user/login', query: { redirect: to.fullPath } })
4661
NProgress.done() // if current page is login will not trigger afterEach hook, so manually handle it
4762
}
48-
4963
}
50-
5164
})
5265

5366
router.afterEach(() => {
5467
NProgress.done() // finish progress bar
55-
})
68+
})

src/utils/request.js

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,26 @@ const service = axios.create({
1313

1414
const err = (error) => {
1515
if (error.response) {
16-
if (error.status === 403) {
17-
notification.error({ message: '拒绝访问', description: '无权限,拒绝访问' })
16+
let data = error.response.data
17+
const token = Vue.ls.get(ACCESS_TOKEN)
18+
if (error.response.status === 403) {
19+
notification.error({ message: 'Forbidden', description: data.message})
1820
}
19-
if (error.status === 401) {
20-
notification.error({ message: '未授权', description: '授权验证失败' })
21-
store.dispatch('Logout').then(() => {
22-
location.reload()
23-
})
21+
if (error.response.status === 401) {
22+
notification.error({ message: 'Unauthorized', description: 'Authorization verification failed' })
23+
if (token) {
24+
store.dispatch('Logout').then(() => {
25+
setTimeout(() => {
26+
window.location.reload()
27+
}, 1500)
28+
})
29+
}
2430
}
2531
}
2632
return Promise.reject(error)
2733
};
2834

29-
// request 拦截器
35+
// request interceptor
3036
service.interceptors.request.use(config => {
3137
const token = Vue.ls.get(ACCESS_TOKEN)
3238
if (token) {
@@ -35,7 +41,7 @@ service.interceptors.request.use(config => {
3541
return config
3642
}, err)
3743

38-
// response 拦截器
44+
// response interceptor
3945
service.interceptors.response.use((response) => {
4046
return response.data
4147
}, err)

src/views/form/BasicForm.vue

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
:labelCol="{lg: {span: 7}, sm: {span: 7}}"
77
:wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
88
<a-input
9-
v-decorator="{
10-
id: 'name',
11-
options: {rules: [{ required: true, message: '请输入标题' }]}
12-
}"
9+
v-decorator="[
10+
'name',
11+
{rules: [{ required: true, message: '请输入标题' }]}
12+
]"
1313
name="name"
1414
placeholder="给目标起个名字" />
1515
</a-form-item>
@@ -20,45 +20,45 @@
2020
<a-range-picker
2121
name="buildTime"
2222
style="width: 100%"
23-
v-decorator="{
24-
id: 'buildTime',
25-
options: {rules: [{ required: true, message: '请选择起止日期' }]}
26-
}" />
23+
v-decorator="[
24+
'buildTime',
25+
{rules: [{ required: true, message: '请选择起止日期' }]}
26+
]" />
2727
</a-form-item>
2828
<a-form-item
2929
label="目标描述"
3030
:labelCol="{lg: {span: 7}, sm: {span: 7}}"
3131
:wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
3232
<a-textarea
33-
v-decorator="{
34-
id: 'description',
35-
options: {rules: [{ required: true, message: '请输入目标描述' }]}
36-
}"
3733
rows="4"
38-
placeholder="请输入你阶段性工作目标" />
34+
placeholder="请输入你阶段性工作目标"
35+
v-decorator="[
36+
'description',
37+
{rules: [{ required: true, message: '请输入目标描述' }]}
38+
]" />
3939
</a-form-item>
4040
<a-form-item
4141
label="衡量标准"
4242
:labelCol="{lg: {span: 7}, sm: {span: 7}}"
4343
:wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
4444
<a-textarea
45-
v-decorator="{
46-
id: 'type',
47-
options: {rules: [{ required: true, message: '请输入衡量标准' }]}
48-
}"
4945
rows="4"
50-
placeholder="请输入衡量标准" />
46+
placeholder="请输入衡量标准"
47+
v-decorator="[
48+
'type',
49+
{rules: [{ required: true, message: '请输入衡量标准' }]}
50+
]" />
5151
</a-form-item>
5252
<a-form-item
5353
label="客户"
5454
:labelCol="{lg: {span: 7}, sm: {span: 7}}"
5555
:wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
5656
<a-input
5757
placeholder="请描述你服务的客户,内部客户直接 @姓名/工号"
58-
v-decorator="{
59-
id: 'customer',
60-
options: {rules: [{ required: true, message: '请描述你服务的客户' }]}
61-
}" />
58+
v-decorator="[
59+
'customer',
60+
{rules: [{ required: true, message: '请描述你服务的客户' }]}
61+
]" />
6262
</a-form-item>
6363
<a-form-item
6464
label="邀评人"

src/views/form/advancedForm/AdvancedForm.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
<span v-else>
3939
<a @click="saveRow(record.key)">保存</a>
4040
<a-divider type="vertical" />
41-
<a @click="cancle(record.key)">取消</a>
41+
<a @click="cancel(record.key)">取消</a>
4242
</span>
4343
</template>
4444
<span v-else>
@@ -50,7 +50,7 @@
5050
</span>
5151
</template>
5252
</a-table>
53-
<a-button style="width: 100%; margin-top: 16px; margin-bottom: 8px" type="dashed" icon="plus" @click="newMeber">新增成员</a-button>
53+
<a-button style="width: 100%; margin-top: 16px; margin-bottom: 8px" type="dashed" icon="plus" @click="newMember">新增成员</a-button>
5454
</form>
5555
</a-card>
5656

@@ -136,7 +136,7 @@
136136
handleSubmit (e) {
137137
e.preventDefault()
138138
},
139-
newMeber () {
139+
newMember () {
140140
this.data.push({
141141
key: '-1',
142142
name: '',
@@ -163,7 +163,7 @@
163163
const data = this.data
164164
return (newData || data).filter(item => item.key === key)[0]
165165
},
166-
cancle (key) {
166+
cancel (key) {
167167
let target = this.data.filter(item => item.key === key)[0]
168168
target.editable = false
169169
},

0 commit comments

Comments
 (0)