Commit c440d9e8 by yuzhenWang

修改permission文件实现自动登录,隐藏侧边栏和头部栏

parent aa34c734
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
ENV = 'development' ENV = 'development'
# base api # base api
VUE_APP_BASE_API = 'https://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.
......
<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>
......
<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
} }
} }
} }
......
...@@ -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
......
...@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment