Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
ferry_web
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
jianan
ferry_web
Commits
c440d9e8
Commit
c440d9e8
authored
May 23, 2025
by
yuzhenWang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改permission文件实现自动登录,隐藏侧边栏和头部栏
parent
aa34c734
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
121 additions
and
60 deletions
+121
-60
.env.development
+1
-1
src/layout/components/Navbar.vue
+10
-2
src/layout/components/Sidebar/index.vue
+5
-1
src/permission.js
+26
-3
src/store/modules/user.js
+79
-53
No files found.
.env.development
View file @
c440d9e8
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
ENV = 'development'
ENV = 'development'
# base api
# base api
VUE_APP_BASE_API = 'http
s://mdev.zuihuibi.cn
'
VUE_APP_BASE_API = 'http
://139.224.145.34:8002
'
# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
# to control whether the babel-plugin-dynamic-import-node plugin is enabled.
# to control whether the babel-plugin-dynamic-import-node plugin is enabled.
...
...
src/layout/components/Navbar.vue
View file @
c440d9e8
<
template
>
<
template
>
<div
class=
"navbar"
>
<!-- v-if="!hiddenSidler" -->
<div
v-if=
"!hiddenSidler"
class=
"navbar"
>
<hamburger
id=
"hamburger-container"
:is-active=
"sidebar.opened"
class=
"hamburger-container"
@
toggleClick=
"toggleSideBar"
/>
<hamburger
id=
"hamburger-container"
:is-active=
"sidebar.opened"
class=
"hamburger-container"
@
toggleClick=
"toggleSideBar"
/>
<breadcrumb
id=
"breadcrumb-container"
class=
"breadcrumb-container"
/>
<breadcrumb
id=
"breadcrumb-container"
class=
"breadcrumb-container"
/>
...
@@ -51,7 +52,13 @@ export default {
...
@@ -51,7 +52,13 @@ export default {
'avatar'
,
'avatar'
,
'device'
,
'device'
,
'name'
'name'
])
]),
hiddenSidler
()
{
return
this
.
$store
.
state
.
user
.
hiddenSidler
}
},
mounted
()
{
console
.
log
(
this
.
hiddenSidler
)
// 获取 hiddenSidler 的值
},
},
methods
:
{
methods
:
{
toggleSideBar
()
{
toggleSideBar
()
{
...
@@ -69,6 +76,7 @@ export default {
...
@@ -69,6 +76,7 @@ export default {
})
})
}
}
}
}
}
}
</
script
>
</
script
>
...
...
src/layout/components/Sidebar/index.vue
View file @
c440d9e8
<
template
>
<
template
>
<div
:class=
"
{'has-logo':showLogo}">
<!-- v-if="!hiddenSidler" -->
<div
v-if=
"!hiddenSidler"
:class=
"
{'has-logo':showLogo}">
<logo
v-if=
"showLogo"
:collapse=
"isCollapse"
/>
<logo
v-if=
"showLogo"
:collapse=
"isCollapse"
/>
<el-scrollbar
wrap-class=
"scrollbar-wrapper"
>
<el-scrollbar
wrap-class=
"scrollbar-wrapper"
>
<el-menu
<el-menu
...
@@ -48,6 +49,9 @@ export default {
...
@@ -48,6 +49,9 @@ export default {
},
},
isCollapse
()
{
isCollapse
()
{
return
!
this
.
sidebar
.
opened
return
!
this
.
sidebar
.
opened
},
hiddenSidler
()
{
return
this
.
$store
.
state
.
user
.
hiddenSidler
}
}
}
}
}
}
...
...
src/permission.js
View file @
c440d9e8
...
@@ -3,9 +3,8 @@ import store from './store'
...
@@ -3,9 +3,8 @@ import store from './store'
import
{
Message
}
from
'element-ui'
import
{
Message
}
from
'element-ui'
import
NProgress
from
'nprogress'
// progress bar
import
NProgress
from
'nprogress'
// progress bar
import
'nprogress/nprogress.css'
// progress bar style
import
'nprogress/nprogress.css'
// progress bar style
import
{
getToken
}
from
'@/utils/auth'
// get token from cookie
import
{
getToken
,
setToken
,
removeToken
}
from
'@/utils/auth'
// get token from cookie
import
getPageTitle
from
'@/utils/get-page-title'
import
getPageTitle
from
'@/utils/get-page-title'
NProgress
.
configure
({
showSpinner
:
false
})
// NProgress Configuration
NProgress
.
configure
({
showSpinner
:
false
})
// NProgress Configuration
store
.
dispatch
(
'settings/getSystemSettings'
)
store
.
dispatch
(
'settings/getSystemSettings'
)
...
@@ -13,6 +12,31 @@ store.dispatch('settings/getSystemSettings')
...
@@ -13,6 +12,31 @@ store.dispatch('settings/getSystemSettings')
const
whiteList
=
[
'/login'
,
'/auth-redirect'
]
// no redirect whitelist
const
whiteList
=
[
'/login'
,
'/auth-redirect'
]
// no redirect whitelist
router
.
beforeEach
(
async
(
to
,
from
,
next
)
=>
{
router
.
beforeEach
(
async
(
to
,
from
,
next
)
=>
{
function
getQueryParam
(
name
)
{
// 获取hash后的部分(包括路径和参数)
const
hash
=
window
.
location
.
hash
// 找到问号位置
const
queryIndex
=
hash
.
indexOf
(
'?'
)
if
(
queryIndex
!==
-
1
)
{
const
queryStr
=
hash
.
substring
(
queryIndex
+
1
)
const
params
=
new
URLSearchParams
(
queryStr
)
return
params
.
get
(
name
)
}
return
null
}
const
token
=
getQueryParam
(
'token'
)
const
hiddenSidler
=
getQueryParam
(
'hiddenSidler'
)
if
(
token
)
{
removeToken
()
store
.
dispatch
(
'user/setToken'
,
token
)
store
.
dispatch
(
'user/setHiddenSidler'
,
hiddenSidler
)
setToken
(
token
)
}
// const newhiddenSidler = store.state.user.hiddenSidler
// console.log(newhiddenSidler)
// start progress bar
// start progress bar
NProgress
.
start
()
NProgress
.
start
()
...
@@ -21,7 +45,6 @@ router.beforeEach(async(to, from, next) => {
...
@@ -21,7 +45,6 @@ router.beforeEach(async(to, from, next) => {
// determine whether the user has logged in
// determine whether the user has logged in
const
hasToken
=
getToken
()
const
hasToken
=
getToken
()
if
(
hasToken
)
{
if
(
hasToken
)
{
if
(
to
.
path
===
'/login'
)
{
if
(
to
.
path
===
'/login'
)
{
// if is logged in, redirect to the home page
// if is logged in, redirect to the home page
...
...
src/store/modules/user.js
View file @
c440d9e8
...
@@ -9,7 +9,7 @@ const state = {
...
@@ -9,7 +9,7 @@ const state = {
introduction
:
''
,
introduction
:
''
,
roles
:
[],
roles
:
[],
permissions
:
[],
permissions
:
[],
permisaction
:
[]
hiddenSidler
:
''
}
}
const
mutations
=
{
const
mutations
=
{
...
@@ -37,6 +37,9 @@ const mutations = {
...
@@ -37,6 +37,9 @@ const mutations = {
},
},
SET_PERMISSIONS
:
(
state
,
permisaction
)
=>
{
SET_PERMISSIONS
:
(
state
,
permisaction
)
=>
{
state
.
permisaction
=
permisaction
state
.
permisaction
=
permisaction
},
SET_hiddenSidler
:
(
state
,
hiddenSidler
)
=>
{
state
.
hiddenSidler
=
hiddenSidler
}
}
}
}
...
@@ -44,78 +47,99 @@ const actions = {
...
@@ -44,78 +47,99 @@ const actions = {
// user login
// user login
login
({
commit
},
userInfo
)
{
login
({
commit
},
userInfo
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
login
(
userInfo
).
then
(
response
=>
{
login
(
userInfo
)
const
{
token
}
=
response
.
then
((
response
)
=>
{
commit
(
'SET_TOKEN'
,
token
)
const
{
token
}
=
response
setToken
(
token
)
commit
(
'SET_TOKEN'
,
token
)
resolve
()
setToken
(
token
)
}).
catch
(
error
=>
{
resolve
()
reject
(
error
)
})
})
.
catch
((
error
)
=>
{
reject
(
error
)
})
})
})
},
},
setToken
({
commit
},
token
)
{
commit
(
'SET_TOKEN'
,
token
)
},
setHiddenSidler
({
commit
},
hiddenSidler
)
{
commit
(
'SET_hiddenSidler'
,
hiddenSidler
)
},
// get user info
// get user info
getInfo
({
commit
,
state
})
{
getInfo
({
commit
,
state
})
{
console
.
log
(
'===================================='
)
console
.
log
(
'getInfo'
)
console
.
log
(
'===================================='
)
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
getInfo
().
then
(
response
=>
{
getInfo
()
if
(
!
response
||
!
response
.
data
)
{
.
then
((
response
)
=>
{
console
.
log
(
'===================================='
)
console
.
log
(
'getInfo'
,
response
)
console
.
log
(
'===================================='
)
if
(
!
response
||
!
response
.
data
)
{
commit
(
'SET_TOKEN'
,
''
)
removeToken
()
resolve
()
}
const
{
userId
,
roles
,
name
,
avatar
,
introduction
,
permissions
}
=
response
.
data
// roles must be a non-empty array
if
(
!
roles
||
roles
.
length
<=
0
)
{
reject
(
'getInfo: roles must be a non-null array!'
)
}
commit
(
'SET_PERMISSIONS'
,
permissions
)
commit
(
'SET_ROLES'
,
roles
)
commit
(
'SET_NAME'
,
name
)
commit
(
'SET_USERID'
,
userId
)
commit
(
'SET_AVATAR'
,
avatar
)
commit
(
'SET_INTRODUCTION'
,
introduction
)
resolve
(
response
)
})
.
catch
(()
=>
{
commit
(
'SET_TOKEN'
,
''
)
commit
(
'SET_TOKEN'
,
''
)
removeToken
()
setToken
(
''
)
resolve
()
router
.
push
({
path
:
'/'
})
}
})
const
{
userId
,
roles
,
name
,
avatar
,
introduction
,
permissions
}
=
response
.
data
// roles must be a non-empty array
if
(
!
roles
||
roles
.
length
<=
0
)
{
reject
(
'getInfo: roles must be a non-null array!'
)
}
commit
(
'SET_PERMISSIONS'
,
permissions
)
commit
(
'SET_ROLES'
,
roles
)
commit
(
'SET_NAME'
,
name
)
commit
(
'SET_USERID'
,
userId
)
commit
(
'SET_AVATAR'
,
avatar
)
commit
(
'SET_INTRODUCTION'
,
introduction
)
resolve
(
response
)
}).
catch
(()
=>
{
commit
(
'SET_TOKEN'
,
''
)
setToken
(
''
)
router
.
push
({
path
:
'/'
})
})
})
})
},
},
// 退出系统
// 退出系统
LogOut
({
commit
,
state
})
{
LogOut
({
commit
,
state
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
logout
(
state
.
token
).
then
(()
=>
{
logout
(
state
.
token
)
commit
(
'SET_TOKEN'
,
''
)
.
then
(()
=>
{
commit
(
'SET_ROLES'
,
[])
commit
(
'SET_TOKEN'
,
''
)
commit
(
'SET_PERMISSIONS'
,
[])
commit
(
'SET_ROLES'
,
[])
removeToken
()
commit
(
'SET_PERMISSIONS'
,
[])
resolve
()
removeToken
()
}).
catch
(
error
=>
{
resolve
()
reject
(
error
)
})
})
.
catch
((
error
)
=>
{
reject
(
error
)
})
})
})
},
},
// 刷新token
// 刷新token
refreshToken
({
commit
,
state
})
{
refreshToken
({
commit
,
state
})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
refreshtoken
({
token
:
state
.
token
}).
then
(
response
=>
{
refreshtoken
({
token
:
state
.
token
})
const
{
token
}
=
response
.
then
((
response
)
=>
{
commit
(
'SET_TOKEN'
,
token
)
const
{
token
}
=
response
setToken
(
token
)
commit
(
'SET_TOKEN'
,
token
)
resolve
()
setToken
(
token
)
}).
catch
(
error
=>
{
resolve
()
reject
(
error
)
})
})
.
catch
((
error
)
=>
{
reject
(
error
)
})
})
})
},
},
// remove token
// remove token
resetToken
({
commit
})
{
resetToken
({
commit
})
{
return
new
Promise
(
resolve
=>
{
return
new
Promise
(
(
resolve
)
=>
{
commit
(
'SET_TOKEN'
,
''
)
commit
(
'SET_TOKEN'
,
''
)
removeToken
()
removeToken
()
resolve
()
resolve
()
...
@@ -124,7 +148,7 @@ const actions = {
...
@@ -124,7 +148,7 @@ const actions = {
// dynamically modify permissions
// dynamically modify permissions
changeRoles
({
commit
,
dispatch
},
role
)
{
changeRoles
({
commit
,
dispatch
},
role
)
{
return
new
Promise
(
async
resolve
=>
{
return
new
Promise
(
async
(
resolve
)
=>
{
const
token
=
role
+
'-token'
const
token
=
role
+
'-token'
commit
(
'SET_TOKEN'
,
token
)
commit
(
'SET_TOKEN'
,
token
)
...
@@ -135,7 +159,9 @@ const actions = {
...
@@ -135,7 +159,9 @@ const actions = {
resetRouter
()
resetRouter
()
// generate accessible routes map based on roles
// generate accessible routes map based on roles
const
accessRoutes
=
await
dispatch
(
'permission/generateRoutes'
,
roles
,
{
root
:
true
})
const
accessRoutes
=
await
dispatch
(
'permission/generateRoutes'
,
roles
,
{
root
:
true
})
// dynamically add accessible routes
// dynamically add accessible routes
router
.
addRoutes
(
accessRoutes
)
router
.
addRoutes
(
accessRoutes
)
...
...
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