Commit c0e36fad authored by 杨硕's avatar 杨硕

优化中间页面权限问题

parent 10a3db53
...@@ -4,6 +4,7 @@ import { Message } from 'element-ui' ...@@ -4,6 +4,7 @@ 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' import { getToken } from '@/utils/auth'
import Cookies from 'js-cookie'
import de from 'element-ui/src/locale/lang/de' // get token from cookie import de from 'element-ui/src/locale/lang/de' // get token from cookie
// import getPageTitle from '@/utils/get-page-title' // import getPageTitle from '@/utils/get-page-title'
...@@ -21,6 +22,8 @@ router.beforeEach((to, from, next) => { ...@@ -21,6 +22,8 @@ router.beforeEach((to, from, next) => {
} else if (to.path === '/home') { } else if (to.path === '/home') {
next() next()
NProgress.done() NProgress.done()
} else if (to.path === '/') {
next({ path: '/login' })
} else { } else {
if (store.getters.roles.length === 0) { if (store.getters.roles.length === 0) {
// 判断当前用户是否已拉取完user_info信息 // 判断当前用户是否已拉取完user_info信息
...@@ -31,7 +34,7 @@ router.beforeEach((to, from, next) => { ...@@ -31,7 +34,7 @@ router.beforeEach((to, from, next) => {
if (res.data.permissions && res.data.permissions.length > 0) { if (res.data.permissions && res.data.permissions.length > 0) {
// 拉取user_info // 拉取user_info
const roles = res.data.roles const roles = res.data.roles
const menuName = store.getters.menuName const menuName = Cookies.get('menuname')
store.dispatch('GenerateRoutes', { roles, menuName }).then((routers) => { store.dispatch('GenerateRoutes', { roles, menuName }).then((routers) => {
// 判断用户是否有路由 // 判断用户是否有路由
if (routers.accessedRoutes && routers.accessedRoutes.length > 0 && routers.getRouters && routers.getRouters.length > 0) { if (routers.accessedRoutes && routers.accessedRoutes.length > 0 && routers.getRouters && routers.getRouters.length > 0) {
...@@ -40,13 +43,14 @@ router.beforeEach((to, from, next) => { ...@@ -40,13 +43,14 @@ router.beforeEach((to, from, next) => {
// 根据roles权限生成可访问的路由表 // 根据roles权限生成可访问的路由表
router.addRoutes(routers.accessedRoutes) // 动态添加可访问路由表 router.addRoutes(routers.accessedRoutes) // 动态添加可访问路由表
next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
} else {
alert('用户无权限')
store.dispatch('FedLogOut').then(() => {
next({ path: '/login' })
// window.location.href = `${process.env.VUE_APP_LOGIN}?redirect=${to.fullPath}&reLocation=${process.env.VUE_APP_NQ}`
})
} }
// else {
// alert('用户无权限')
// store.dispatch('FedLogOut').then(() => {
// next({ path: '/login' })
// // window.location.href = `${process.env.VUE_APP_LOGIN}?redirect=${to.fullPath}&reLocation=${process.env.VUE_APP_NQ}`
// })
// }
}) })
} else { } else {
alert('用户无权限') alert('用户无权限')
......
...@@ -2,6 +2,8 @@ import { login, logout, getInfo } from '@/api/login' ...@@ -2,6 +2,8 @@ import { login, logout, getInfo } from '@/api/login'
import { getToken, setToken, removeToken } from '@/utils/auth' import { getToken, setToken, removeToken } from '@/utils/auth'
import Layout from '@/layout' import Layout from '@/layout'
import { loadView } from '@/store/modules/permission' import { loadView } from '@/store/modules/permission'
import store from '@/store'
import Cookies from 'js-cookie'
const user = { const user = {
state: { state: {
...@@ -72,6 +74,7 @@ const user = { ...@@ -72,6 +74,7 @@ const user = {
commit('SET_NAME', user.username) commit('SET_NAME', user.username)
commit('SET_SPECIALTAG', user.specialTag) commit('SET_SPECIALTAG', user.specialTag)
commit('SET_AVATAR', avatar) commit('SET_AVATAR', avatar)
res.menuName = store.getters.menuName
resolve(res) resolve(res)
}).catch(error => { }).catch(error => {
reject(error) reject(error)
...@@ -84,9 +87,16 @@ const user = { ...@@ -84,9 +87,16 @@ const user = {
// TODO: clear this log // TODO: clear this log
console.log(`menuName-getInfo`, menuName) console.log(`menuName-getInfo`, menuName)
commit('SET_MENUNAME', menuName) // 存入菜单名 commit('SET_MENUNAME', menuName) // 存入菜单名
Cookies.set('menuname', menuName)
resolve(menuName) resolve(menuName)
}) })
}, },
removeRole({ commit, state }) {
return new Promise((resolve, reject) => {
commit('SET_ROLES', '')
resolve()
})
},
// 退出系统 // 退出系统
LogOut({ commit, state }) { LogOut({ commit, state }) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
......
...@@ -49,7 +49,13 @@ export default { ...@@ -49,7 +49,13 @@ export default {
} }
}, },
created() {
this.removeRole()
},
methods: { methods: {
removeRole() {
this.$store.dispatch('removeRole')
},
gotoIndex(menuName) { gotoIndex(menuName) {
getInfo().then(res => { getInfo().then(res => {
if (res.data.permissions) { if (res.data.permissions) {
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
<!-- @click="handleUpdate"--> <!-- @click="handleUpdate"-->
<!-- >修改--> <!-- >修改-->
<!-- </el-button>--> <!-- </el-button>-->
<coolbutton :type="typeSuccess" :name="updataName" :icon="updateIcon" :size="size" :haspermi="updateHaspermi" @btn-click="handleUpdate" /> <!-- <coolbutton :type="typeSuccess" :name="updataName" :icon="updateIcon" :size="size" :haspermi="updateHaspermi" @btn-click="handleUpdate" />-->
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<!-- <el-button--> <!-- <el-button-->
...@@ -70,12 +70,12 @@ ...@@ -70,12 +70,12 @@
<!-- @click="handleDelete"--> <!-- @click="handleDelete"-->
<!-- >删除--> <!-- >删除-->
<!-- </el-button>--> <!-- </el-button>-->
<coolbutton :type="typeDanger" :name="nameParent" :icon="delicon" :size="size" :haspermi="delHaspermi" @btn-click="handleDelete" /> <!-- <coolbutton :type="typeDanger" :name="nameParent" :icon="delicon" :size="size" :haspermi="delHaspermi" @btn-click="handleDelete" />-->
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
v-has-permi="['sys:dict:export']" v-has-permi="['sys:dict:export']"
type="warning" type="success"
icon="el-icon-download" icon="el-icon-download"
size="mini" size="mini"
@click="handleExport" @click="handleExport"
...@@ -184,15 +184,15 @@ ...@@ -184,15 +184,15 @@
<el-form-item label="参数排序" prop="dictSort"> <el-form-item label="参数排序" prop="dictSort">
<el-input-number v-model="form.dictSort" style="width: 100%" controls-position="right" :min="0" /> <el-input-number v-model="form.dictSort" style="width: 100%" controls-position="right" :min="0" />
</el-form-item> </el-form-item>
<el-form-item label="参数状态" prop="status"> <!-- <el-form-item label="参数状态" prop="status">-->
<el-radio-group v-model="form.status"> <!-- <el-radio-group v-model="form.status">-->
<el-radio <!-- <el-radio-->
v-for="dict in statusOptions.filter(item => { return item.dictValue })" <!-- v-for="dict in statusOptions.filter(item => { return item.dictValue })"-->
:key="dict.dictValue" <!-- :key="dict.dictValue"-->
:label="dict.dictValue" <!-- :label="dict.dictValue"-->
>{{ dict.dictLabel }}</el-radio> <!-- >{{ dict.dictLabel }}</el-radio>-->
</el-radio-group> <!-- </el-radio-group>-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="备注" prop="remarks"> <el-form-item label="备注" prop="remarks">
<el-input v-model.trim="form.remarks" type="textarea" show-word-limit maxlength="200" placeholder="请输入内容" /> <el-input v-model.trim="form.remarks" type="textarea" show-word-limit maxlength="200" placeholder="请输入内容" />
</el-form-item> </el-form-item>
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
<!-- @click="handleUpdate"--> <!-- @click="handleUpdate"-->
<!-- >修改--> <!-- >修改-->
<!-- </el-button>--> <!-- </el-button>-->
<coolbutton :type="typeSuccess" :name="updataName" :icon="updateIcon" :size="size" :haspermi="updateHaspermi" @btn-click="handleUpdate" /> <!-- <coolbutton :type="typeSuccess" :name="updataName" :icon="updateIcon" :size="size" :haspermi="updateHaspermi" @btn-click="handleUpdate" />-->
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<!-- <el-button--> <!-- <el-button-->
...@@ -88,7 +88,7 @@ ...@@ -88,7 +88,7 @@
<!-- @click="handleDelete"--> <!-- @click="handleDelete"-->
<!-- >删除--> <!-- >删除-->
<!-- </el-button>--> <!-- </el-button>-->
<coolbutton :type="typeDanger" :name="nameParent" :icon="delicon" :size="size" :haspermi="delHaspermi" @btn-click="handleDelete" /> <!-- <coolbutton :type="typeDanger" :name="nameParent" :icon="delicon" :size="size" :haspermi="delHaspermi" @btn-click="handleDelete" />-->
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<!-- <el-button--> <!-- <el-button-->
...@@ -185,16 +185,16 @@ ...@@ -185,16 +185,16 @@
<el-form-item label="字典类型" prop="dictType"> <el-form-item label="字典类型" prop="dictType">
<el-input v-model.trim="form.dictType" :maxlength="30" placeholder="请输入字典类型" /> <el-input v-model.trim="form.dictType" :maxlength="30" placeholder="请输入字典类型" />
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="flag"> <!-- <el-form-item label="状态" prop="flag">-->
<el-radio-group v-model="form.flag"> <!-- <el-radio-group v-model="form.flag">-->
<el-radio <!-- <el-radio-->
v-for="dict in statusOptions" <!-- v-for="dict in statusOptions"-->
:key="dict.dictValue" <!-- :key="dict.dictValue"-->
:label="dict.dictValue" <!-- :label="dict.dictValue"-->
>{{ dict.dictLabel }} <!-- >{{ dict.dictLabel }}-->
</el-radio> <!-- </el-radio>-->
</el-radio-group> <!-- </el-radio-group>-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item label="父字典名称"> <el-form-item label="父字典名称">
<el-select v-model="form.parentId" style="width: 100%" clearable placeholder="请选择父字典类型" @change="getOptions"> <el-select v-model="form.parentId" style="width: 100%" clearable placeholder="请选择父字典类型" @change="getOptions">
<el-option <el-option
......
...@@ -986,17 +986,22 @@ export default { ...@@ -986,17 +986,22 @@ export default {
downloadElement.click() // 点击下载 downloadElement.click() // 点击下载
document.body.removeChild(downloadElement) // 下载完成移除元素 document.body.removeChild(downloadElement) // 下载完成移除元素
window.URL.revokeObjectURL(href) // 释放掉blob对象 window.URL.revokeObjectURL(href) // 释放掉blob对象
this.importLoading = false
}) })
} }
this.importLoading = false this.importLoading = false
} else if (res.code === 41020) { } else if (res.code === 41020) {
this.$message.info('上传超时,请重新上传') this.$message.info('上传超时,请重新上传')
this.importLoading = false this.importLoading = false
} else {
this.$message.error(res.message)
this.importLoading = false
} }
}).catch(err => { }).catch(err => {
this.$message.success(err.message) this.$message.success(err.message)
this.importLoading = false this.importLoading = false
}) })
this.importLoading = false
} }
}, },
employeeUpload(file, fileList) { employeeUpload(file, fileList) {
......
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