Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
bdc
/
bdcjg-web
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
8521a4e9
authored
2023-03-14 16:14:49 +0800
by
任超
Browse Files
Options
Browse Files
Tag
Download
Plain Diff
Merge branch 'master' into dev
2 parents
fad6506d
e3eaf360
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
215 additions
and
209 deletions
src/layout/components/Navbar.vue
src/permission.js
src/utils/request.js
src/views/loginjg/index.vue
src/views/loginsb/index.vue
src/layout/components/Navbar.vue
View file @
8521a4e
...
...
@@ -19,244 +19,244 @@
</div>
</
template
>
<
script
>
import
sidebarLeft
from
"./Sidebar/sidebarLeft"
;
import
sidebarRight
from
"./Sidebar/sidebarRight"
;
import
{
logout
}
from
"@/api/login.js"
;
import
{
mapGetters
}
from
"vuex"
;
export
default
{
components
:
{
sidebarLeft
,
sidebarRight
,
import
sidebarLeft
from
"./Sidebar/sidebarLeft"
;
import
sidebarRight
from
"./Sidebar/sidebarRight"
;
import
{
logout
}
from
"@/api/login.js"
;
import
{
mapGetters
}
from
"vuex"
;
export
default
{
components
:
{
sidebarLeft
,
sidebarRight
,
},
computed
:
{
...
mapGetters
([
"sidebar"
,
"dicData"
,
"userInfo"
]),
logoName
()
{
return
this
.
dicData
[
'sysCode'
]
&&
this
.
dicData
[
'sysCode'
].
filter
(
item
=>
item
.
DCODE
==
"systemTitle"
)
},
computed
:
{
...
mapGetters
([
"sidebar"
,
"dicData"
,
"userInfo"
]),
logoName
()
{
return
this
.
dicData
[
'sysCode'
]
&&
this
.
dicData
[
'sysCode'
].
filter
(
item
=>
item
.
DCODE
==
"systemTitle"
)
},
userName
()
{
return
this
.
userInfo
?
this
.
userInfo
.
name
:
""
}
},
methods
:
{
onCancel
()
{
logout
()
.
then
((
res
)
=>
{
sessionStorage
.
removeItem
(
"token"
);
this
.
$store
.
dispatch
(
"user/resetState"
);
this
.
$router
.
replace
({
path
:
"/jg"
,
query
:
{
redirect
:
this
.
$route
.
fullPath
,
},
});
})
.
catch
((
error
)
=>
{
// console.dir(error);
userName
()
{
return
this
.
userInfo
?
this
.
userInfo
.
name
:
""
}
},
methods
:
{
onCancel
()
{
logout
()
.
then
((
res
)
=>
{
sessionStorage
.
removeItem
(
"token"
);
this
.
$store
.
dispatch
(
"user/resetState"
);
this
.
$router
.
replace
({
path
:
"/jg"
,
query
:
{
redirect
:
this
.
$route
.
fullPath
,
},
});
},
})
.
catch
((
error
)
=>
{
// console.dir(error);
});
},
};
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
/
deep
/
.el-menu--horizontal
{
display
:
flex
;
align-items
:
center
;
}
/
deep
/
.el-menu--horizontal
{
display
:
flex
;
align-items
:
center
;
}
.menubg
{
height
:
34px
;
width
:
130px
;
text-align
:
center
;
color
:
#ffffff
;
margin-right
:
20px
;
background
:
url("~@/image/navbar.png")
no-repeat
;
background-size
:
100%
100%
;
}
.menubg
{
height
:
34px
;
width
:
130px
!important
;
text-align
:
center
;
color
:
#ffffff
;
background
:
url("~@/image/navbar.png")
no-repeat
;
background-size
:
100%
100%
;
}
/
deep
/
.el-menu-item
{
@extend
.menubg;
}
/
deep
/
.el-menu-item
{
@extend
.menubg;
}
/
deep
/
.el-submenu
{
@extend
.menubg;
}
/
deep
/
.el-submenu
{
@extend
.menubg;
}
/
deep
/
.el-submenu__title
{
height
:
34px
;
color
:
#ffffff
;
}
/
deep
/
.el-submenu__title
{
height
:
34px
;
color
:
#ffffff
;
}
/
deep
/
.el-submenu__title
span
{
font-size
:
14px
;
}
/
deep
/
.el-submenu__title
span
{
font-size
:
14px
;
}
.sidebarLeft
{
position
:
relative
;
top
:
13px
;
width
:
30%
;
}
.sidebarLeft
{
position
:
relative
;
top
:
13px
;
width
:
30%
;
}
/
deep
/
.el-menu
{
display
:
flex
;
justify-content
:
space-between
;
}
/
deep
/
.el-menu
{
display
:
flex
;
justify-content
:
space-between
;
width
:
100%
;
}
/
deep
/
.el-menu-item
{
flex
:
1
;
width
:
100%
;
}
/
deep
/
.el-menu-item
{
flex
:
1
;
width
:
100%
;
}
.sidebarRight
{
position
:
relative
;
top
:
13px
;
width
:
30%
;
padding-left
:
20px
;
}
.sidebarRight
{
position
:
relative
;
top
:
13px
;
width
:
30%
;
}
//
导航选中背景色
.xuanzhong
{
background
:
url("~@/image/selNavbar.png")
no-repeat
;
background-size
:
100%
100%
;
color
:
#ffffff
!important
;
font-weight
:
700
;
}
//
导航选中背景色
.xuanzhong
{
background
:
url("~@/image/selNavbar.png")
no-repeat
;
background-size
:
100%
100%
;
color
:
#ffffff
!important
;
font-weight
:
700
;
}
/
deep
/
.el-menu-item
:hover
{
@extend
.xuanzhong;
}
/
deep
/
.el-menu-item
:hover
{
@extend
.xuanzhong;
}
/
deep
/
.el-submenu__title
:hover
{
@extend
.xuanzhong;
}
/
deep
/
.el-submenu__title
:hover
{
@extend
.xuanzhong;
}
/
deep
/
.el-menu--horizontal
.el-menu-item
:not
(
.is-disabled
)
:focus
{
@extend
.xuanzhong;
}
/
deep
/
.el-menu--horizontal
.el-menu-item
:not
(
.is-disabled
)
:focus
{
@extend
.xuanzhong;
/
deep
/
.el-menu-item.is-active
{
@extend
.xuanzhong;
}
.navbar
{
height
:
$
headerHeight
;
overflow
:
hidden
;
position
:
relative
;
display
:
flex
;
align-items
:
center
;
padding
:
0
20px
;
justify-content
:
space-between
;
background
:
url("~@/image/header.png")
no-repeat
;
background-size
:
100%
100%
;
.user
{
font-size
:
12px
;
color
:
#ffffff
;
position
:
absolute
;
right
:
20px
;
top
:
0
;
cursor
:
pointer
;
.closeStyle
{
margin-right
:
5px
;
}
}
/
deep
/
.el-menu-item.is-active
{
@extend
.xuanzhong;
.title
{
position
:
absolute
;
left
:
0
;
top
:
10px
;
bottom
:
0
;
right
:
0
;
margin
:
0
auto
;
font-size
:
32px
;
color
:
#ffffff
;
font-weight
:
700
;
text-align
:
center
;
}
.
navbar
{
height
:
$
headerHe
ight
;
overflow
:
hidden
;
position
:
relative
;
.
right-menu
{
float
:
r
ight
;
height
:
100%
;
line-height
:
50px
;
display
:
flex
;
align-items
:
center
;
padding
:
0
20px
;
justify-content
:
space-between
;
background
:
url("~@/image/header.png")
no-repeat
;
background-size
:
100%
100%
;
.user
{
font-size
:
12px
;
color
:
#ffffff
;
position
:
absolute
;
right
:
20px
;
top
:
0
;
.shutdown
{
font-size
:
20px
;
margin-left
:
15px
;
cursor
:
pointer
;
.closeStyle
{
margin-right
:
5px
;
}
}
.title
{
position
:
absolute
;
left
:
0
;
top
:
10px
;
bottom
:
0
;
right
:
0
;
margin
:
0
auto
;
font-size
:
32px
;
color
:
#ffffff
;
font-weight
:
700
;
text-align
:
center
;
.organization-item
{
margin-right
:
40px
;
margin-top
:
-40px
!important
;
}
.
right-menu
{
float
:
right
;
height
:
100%
;
line-height
:
50
px
;
display
:
flex
;
align-items
:
center
;
.
item
{
margin-right
:
40px
;
margin-top
:
-20px
;
line-height
:
18.4
px
;
cursor
:
pointer
;
position
:
relative
;
.shutdown
{
font-size
:
20px
;
margin-left
:
15px
;
.item-box
{
position
:
absolute
;
top
:
-5px
;
left
:
3px
;
width
:
100%
;
min-width
:
25px
;
height
:
25px
;
cursor
:
pointer
;
z-index
:
100
;
}
}
.organization-item
{
margin-right
:
40px
;
margin-top
:
-40px
!important
;
}
&
:focus
{
outline
:
none
;
}
.item
{
margin-right
:
40px
;
margin-top
:
-20px
;
line-height
:
18.4px
;
.right-menu-item
{
display
:
inline-block
;
height
:
100%
;
font-size
:
18px
;
color
:
#fff
;
vertical-align
:
text-bottom
;
&.hover-effect
{
cursor
:
pointer
;
position
:
relative
;
transition
:
background
0.3s
;
display
:
flex
;
align-items
:
center
;
.item-box
{
position
:
absolute
;
top
:
-5px
;
left
:
3px
;
width
:
100%
;
min-width
:
25px
;
height
:
25px
;
cursor
:
pointer
;
z-index
:
100
;
&:hover
{
background
:
rgba
(
0
,
0
,
0
,
0.025
);
}
}
}
&
:focus
{
outline
:
none
;
}
.right-menu-item
{
display
:
inline-block
;
height
:
100%
;
font-size
:
18px
;
color
:
#fff
;
vertical-align
:
text-bottom
;
&.hover-effect
{
cursor
:
pointer
;
transition
:
background
0.3s
;
display
:
flex
;
align-items
:
center
;
.avatar-wrapper
{
position
:
relative
;
display
:
flex
;
height
:
40px
;
align-items
:
center
;
&:hover
{
background
:
rgba
(
0
,
0
,
0
,
0.025
);
}
}
.user-avatar
{
cursor
:
pointer
;
width
:
35px
;
height
:
35px
;
border-radius
:
50%
;
}
.avatar-wrapper
{
position
:
relative
;
display
:
flex
;
height
:
40px
;
align-items
:
center
;
.user-avatar
{
cursor
:
pointer
;
width
:
35px
;
height
:
35px
;
border-radius
:
50%
;
}
.el-icon-caret-bottom
{
cursor
:
pointer
;
position
:
absolute
;
right
:
-15px
;
top
:
17px
;
font-size
:
12px
;
}
.el-icon-caret-bottom
{
cursor
:
pointer
;
position
:
absolute
;
right
:
-15px
;
top
:
17px
;
font-size
:
12px
;
}
}
}
}
</
style
>
...
...
src/permission.js
View file @
8521a4e
...
...
@@ -18,13 +18,13 @@ router.beforeEach(async (to, from, next) => {
let
hasUser
=
store
.
state
.
user
.
hasUser
;
let
hasAddRoute
=
store
.
state
.
permission
.
addRoutes
;
if
(
to
.
path
==
"/sb"
||
to
.
path
==
"/jg"
)
{
session
Storage
.
removeItem
(
"token"
);
local
Storage
.
removeItem
(
"token"
);
sessionStorage
.
setItem
(
"psth"
,
to
.
path
)
next
();
}
else
{
let
code
=
sessionStorage
.
getItem
(
"psth"
)
==
"/sb"
?
"BDCSBPT"
:
"BDCJGPT"
//判断token是否存在
const
hasToken
=
session
Storage
.
getItem
(
"token"
);
const
hasToken
=
local
Storage
.
getItem
(
"token"
);
if
(
hasToken
)
{
//请求用户信息
if
(
!
hasUser
)
{
...
...
src/utils/request.js
View file @
8521a4e
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-03-1
3 14:11:50
* @LastEditTime: 2023-03-1
4 14:39:24
*/
/**
* 此文件主要创建 axios 实例,然后添加请求拦截器和响应拦截器
...
...
@@ -25,7 +25,7 @@ const service = axios.create({
service
.
interceptors
.
request
.
use
(
(
config
)
=>
{
//调用登录接口时无token,也不需要传token,其他接口都传入token
config
.
headers
.
Authorization
=
session
Storage
.
getItem
(
"token"
)
||
""
;
config
.
headers
.
Authorization
=
local
Storage
.
getItem
(
"token"
)
||
""
;
config
.
headers
.
Accept
=
"application/json"
;
return
config
;
},
...
...
@@ -35,6 +35,7 @@ service.interceptors.request.use(
}
);
window
.
tokenValid
=
true
// response interceptor
service
.
interceptors
.
response
.
use
(
(
response
)
=>
{
...
...
@@ -64,15 +65,20 @@ service.interceptors.response.use(
//对错误信息的处理函数
function
handleErrorData
(
status
)
{
switch
(
status
)
{
// case 401:
// Message.error("由于长时间未操作,请重新登录!");
// router.replace({
// path: "/login/jg",
// query: {
// redirect: router.history.current.fullPath,
// },
// });
// break;
case
401
:
// 多个请求不重复提示错误信息
if
(
window
.
tokenValid
)
{
window
.
tokenValid
=
false
;
Message
.
error
(
"由于长时间未操作,请重新登录!"
);
localStorage
.
removeItem
(
"token"
);
router
.
replace
({
path
:
"/jg"
,
query
:
{
redirect
:
router
.
history
.
current
.
fullPath
,
},
});
}
break
;
case
403
:
Message
.
error
(
"拒绝访问"
);
break
;
...
...
src/views/loginjg/index.vue
View file @
8521a4e
...
...
@@ -96,7 +96,7 @@
.
then
((
res
)
=>
{
if
(
res
.
status
===
1
)
{
//存储token
session
Storage
.
setItem
(
"token"
,
`Bearer
${
res
.
content
}
`
);
local
Storage
.
setItem
(
"token"
,
`Bearer
${
res
.
content
}
`
);
//登录成功后需判断有无重定向,没有重定向则跳转首页
this
.
$router
.
replace
(
this
.
$route
.
query
.
redirect
||
"/"
);
}
else
{
...
...
src/views/loginsb/index.vue
View file @
8521a4e
...
...
@@ -103,7 +103,7 @@
if
(
res
.
status
===
1
)
{
this
.
$store
.
dispatch
(
'business/setInitRules'
,
"layout1"
)
//存储token
session
Storage
.
setItem
(
"token"
,
`Bearer
${
res
.
content
}
`
);
local
Storage
.
setItem
(
"token"
,
`Bearer
${
res
.
content
}
`
);
//登录成功后需判断有无重定向,没有重定向则跳转首页
this
.
$router
.
replace
(
this
.
$route
.
query
.
redirect
||
"/"
);
}
else
{
...
...
Please
register
or
sign in
to post a comment