Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Guten-PigxUI
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄卓然
Guten-PigxUI
Commits
9eff5a70
Commit
9eff5a70
authored
Oct 08, 2018
by
smallwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加axios防止重复请求
parent
8b2e43fe
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
60 additions
and
48 deletions
+60
-48
errorCode.js
src/const/errorCode.js
+1
-0
avue-router.js
src/router/avue-router.js
+42
-41
axios.js
src/router/axios.js
+17
-7
No files found.
src/const/errorCode.js
View file @
9eff5a70
export
default
{
'000'
:
'操作太频繁,请勿重复请求'
,
'401'
:
'当前操作没有权限'
,
'403'
:
'当前操作没有权限'
,
'404'
:
'资源不存在'
,
...
...
src/router/avue-router.js
View file @
9eff5a70
...
...
@@ -57,6 +57,7 @@ RouterPlugin.install = function(router, store) {
},
//动态路由
formatRoutes
:
function
(
aMenu
,
first
)
{
if
(
!
aMenu
)
return
;
const
aRouter
=
[]
const
propsConfig
=
this
.
$website
.
menu
.
props
;
const
propsDefault
=
{
...
...
@@ -71,7 +72,7 @@ RouterPlugin.install = function(router, store) {
name
=
oMenu
[
propsDefault
.
label
],
icon
=
oMenu
[
propsDefault
.
icon
],
children
=
oMenu
[
propsDefault
.
children
];
if
(
component
)
{
const
isChild
=
children
.
length
!==
0
;
const
oRouter
=
{
path
:
path
,
...
...
@@ -112,7 +113,7 @@ RouterPlugin.install = function(router, store) {
})()
}
aRouter
.
push
(
oRouter
)
}
})
return
aRouter
}
...
...
src/router/axios.js
View file @
9eff5a70
...
...
@@ -20,14 +20,21 @@ axios.defaults.timeout = 30000;
//跨域请求,允许保存cookie
axios
.
defaults
.
withCredentials
=
true
;
NProgress
.
configure
({
showSpinner
:
false
})
// NProgress Configuration
//HTTPrequest拦截
const
requestMap
=
new
Map
();
//HTTPrequest拦截
axios
.
interceptors
.
request
.
use
(
config
=>
{
const
keyString
=
JSON
.
stringify
(
Object
.
assign
({},
{
url
:
config
.
url
,
method
:
config
.
method
},
config
.
data
));
if
(
requestMap
.
get
(
keyString
))
{
return
Promise
.
reject
(
'code:000'
)
}
requestMap
.
set
(
keyString
,
true
);
config
=
Object
.
assign
(
config
,
{
_keyString
:
keyString
});
NProgress
.
start
()
// start progress bar
if
(
store
.
getters
.
access_token
)
{
config
.
headers
[
'Authorization'
]
=
'Bearer '
+
getToken
()
// 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
}
if
(
sessionStorage
.
getItem
(
'tenantId'
)){
if
(
sessionStorage
.
getItem
(
'tenantId'
))
{
config
.
headers
[
'TENANT_ID'
]
=
sessionStorage
.
getItem
(
'tenantId'
)
// 租户ID
}
return
config
...
...
@@ -36,9 +43,12 @@ axios.interceptors.request.use(config => {
return
Promise
.
reject
(
error
)
})
//HTTPresponse拦截
axios
.
interceptors
.
response
.
use
(
data
=>
{
axios
.
interceptors
.
response
.
use
(
res
=>
{
NProgress
.
done
();
return
data
// 重置requestMap
const
config
=
Object
.
assign
(
res
.
config
);
requestMap
.
set
(
config
.
_keyString
,
false
);
return
res
},
error
=>
{
NProgress
.
done
()
let
errMsg
=
error
.
toString
()
...
...
@@ -47,7 +57,7 @@ axios.interceptors.response.use(data => {
message
:
errorCode
[
code
]
||
errorCode
[
'default'
],
type
:
'error'
})
if
(
parseInt
(
code
)
===
401
||
parseInt
(
code
)
===
403
)
{
if
(
parseInt
(
code
)
===
401
||
parseInt
(
code
)
===
403
)
{
store
.
dispatch
(
'FedLogOut'
).
then
(()
=>
{
router
.
push
({
path
:
'/login'
});
})
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment