Commit c440d9e8 by yuzhenWang

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

parent aa34c734
......@@ -2,7 +2,7 @@
ENV = 'development'
# 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,
# to control whether the babel-plugin-dynamic-import-node plugin is enabled.
......
<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" />
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
......@@ -51,7 +52,13 @@ export default {
'avatar',
'device',
'name'
])
]),
hiddenSidler() {
return this.$store.state.user.hiddenSidler
}
},
mounted() {
console.log(this.hiddenSidler) // 获取 hiddenSidler 的值
},
methods: {
toggleSideBar() {
......@@ -69,6 +76,7 @@ export default {
})
}
}
}
</script>
......
<template>
<div :class="{'has-logo':showLogo}">
<!-- v-if="!hiddenSidler" -->
<div v-if="!hiddenSidler" :class="{'has-logo':showLogo}">
<logo v-if="showLogo" :collapse="isCollapse" />
<el-scrollbar wrap-class="scrollbar-wrapper">
<el-menu
......@@ -48,6 +49,9 @@ export default {
},
isCollapse() {
return !this.sidebar.opened
},
hiddenSidler() {
return this.$store.state.user.hiddenSidler
}
}
}
......
......@@ -3,9 +3,8 @@ import store from './store'
import { Message } from 'element-ui'
import NProgress from 'nprogress' // progress bar
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'
NProgress.configure({ showSpinner: false }) // NProgress Configuration
store.dispatch('settings/getSystemSettings')
......@@ -13,6 +12,31 @@ store.dispatch('settings/getSystemSettings')
const whiteList = ['/login', '/auth-redirect'] // no redirect whitelist
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
NProgress.start()
......@@ -21,7 +45,6 @@ router.beforeEach(async(to, from, next) => {
// determine whether the user has logged in
const hasToken = getToken()
if (hasToken) {
if (to.path === '/login') {
// if is logged in, redirect to the home page
......
......@@ -9,7 +9,7 @@ const state = {
introduction: '',
roles: [],
permissions: [],
permisaction: []
hiddenSidler: ''
}
const mutations = {
......@@ -37,6 +37,9 @@ const mutations = {
},
SET_PERMISSIONS: (state, permisaction) => {
state.permisaction = permisaction
},
SET_hiddenSidler: (state, hiddenSidler) => {
state.hiddenSidler = hiddenSidler
}
}
......@@ -44,78 +47,99 @@ const actions = {
// user login
login({ commit }, userInfo) {
return new Promise((resolve, reject) => {
login(userInfo).then(response => {
const { token } = response
commit('SET_TOKEN', token)
setToken(token)
resolve()
}).catch(error => {
reject(error)
})
login(userInfo)
.then((response) => {
const { token } = response
commit('SET_TOKEN', token)
setToken(token)
resolve()
})
.catch((error) => {
reject(error)
})
})
},
setToken({ commit }, token) {
commit('SET_TOKEN', token)
},
setHiddenSidler({ commit }, hiddenSidler) {
commit('SET_hiddenSidler', hiddenSidler)
},
// get user info
getInfo({ commit, state }) {
console.log('====================================')
console.log('getInfo')
console.log('====================================')
return new Promise((resolve, reject) => {
getInfo().then(response => {
if (!response || !response.data) {
getInfo()
.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', '')
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', '')
setToken('')
router.push({ path: '/' })
})
setToken('')
router.push({ path: '/' })
})
})
},
// 退出系统
LogOut({ commit, state }) {
return new Promise((resolve, reject) => {
logout(state.token).then(() => {
commit('SET_TOKEN', '')
commit('SET_ROLES', [])
commit('SET_PERMISSIONS', [])
removeToken()
resolve()
}).catch(error => {
reject(error)
})
logout(state.token)
.then(() => {
commit('SET_TOKEN', '')
commit('SET_ROLES', [])
commit('SET_PERMISSIONS', [])
removeToken()
resolve()
})
.catch((error) => {
reject(error)
})
})
},
// 刷新token
refreshToken({ commit, state }) {
return new Promise((resolve, reject) => {
refreshtoken({ token: state.token }).then(response => {
const { token } = response
commit('SET_TOKEN', token)
setToken(token)
resolve()
}).catch(error => {
reject(error)
})
refreshtoken({ token: state.token })
.then((response) => {
const { token } = response
commit('SET_TOKEN', token)
setToken(token)
resolve()
})
.catch((error) => {
reject(error)
})
})
},
// remove token
resetToken({ commit }) {
return new Promise(resolve => {
return new Promise((resolve) => {
commit('SET_TOKEN', '')
removeToken()
resolve()
......@@ -124,7 +148,7 @@ const actions = {
// dynamically modify permissions
changeRoles({ commit, dispatch }, role) {
return new Promise(async resolve => {
return new Promise(async(resolve) => {
const token = role + '-token'
commit('SET_TOKEN', token)
......@@ -135,7 +159,9 @@ const actions = {
resetRouter()
// 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
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