feat: add function of async router and async menu; 🌟
新增:异步路由和菜单功能;
This commit is contained in:
@@ -1,36 +1,73 @@
|
||||
import PouchDB from 'pouchdb'
|
||||
|
||||
let db = new PouchDB('adminDb')
|
||||
|
||||
export default {
|
||||
namespaced: true,
|
||||
state: {
|
||||
user: {
|
||||
name: '',
|
||||
avatar: '',
|
||||
position: '',
|
||||
address: ''
|
||||
user: undefined,
|
||||
permissions: [],
|
||||
roles: [],
|
||||
routesConfig: []
|
||||
},
|
||||
getters: {
|
||||
user: state => {
|
||||
if (!state.user) {
|
||||
try {
|
||||
const user = localStorage.getItem(process.env.VUE_APP_USER_KEY)
|
||||
state.user = JSON.parse(user)
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
}
|
||||
return state.user
|
||||
},
|
||||
permissions: state => {
|
||||
if (!state.permissions || state.permissions.length === 0) {
|
||||
try {
|
||||
const permissions = localStorage.getItem(process.env.VUE_APP_PERMISSIONS_KEY)
|
||||
state.permissions = JSON.parse(permissions)
|
||||
} catch (e) {
|
||||
console.error(e.message)
|
||||
}
|
||||
}
|
||||
return state.permissions
|
||||
},
|
||||
roles: state => {
|
||||
if (!state.roles || state.roles.length === 0) {
|
||||
try {
|
||||
const roles = localStorage.getItem(process.env.VUE_APP_ROLES_KEY)
|
||||
state.roles = JSON.parse(roles)
|
||||
} catch (e) {
|
||||
console.error(e.message)
|
||||
}
|
||||
}
|
||||
return state.roles
|
||||
},
|
||||
routesConfig: state => {
|
||||
if (!state.routesConfig || state.routesConfig.length === 0) {
|
||||
try {
|
||||
const routesConfig = localStorage.getItem(process.env.VUE_APP_ROUTES_KEY)
|
||||
state.routesConfig = eval(routesConfig) ? JSON.parse(routesConfig) : state.routesConfig
|
||||
} catch (e) {
|
||||
console.error(e.message)
|
||||
}
|
||||
}
|
||||
return state.routesConfig
|
||||
}
|
||||
},
|
||||
mutations: {
|
||||
setUser (state, user) {
|
||||
state.user = user
|
||||
db.get('currUser').then(doc => {
|
||||
db.put({
|
||||
_id: 'currUser',
|
||||
_rev: doc._rev,
|
||||
user: user
|
||||
})
|
||||
}).catch(e => {
|
||||
if (e.status === 404) {
|
||||
db.put({
|
||||
_id: 'currUser',
|
||||
user: user
|
||||
})
|
||||
} else {
|
||||
throw e
|
||||
}
|
||||
})
|
||||
localStorage.setItem(process.env.VUE_APP_USER_KEY, JSON.stringify(user))
|
||||
},
|
||||
setPermissions(state, permissions) {
|
||||
state.permissions = permissions
|
||||
localStorage.setItem(process.env.VUE_APP_PERMISSIONS_KEY, JSON.stringify(permissions))
|
||||
},
|
||||
setRoles(state, roles) {
|
||||
state.roles = roles
|
||||
localStorage.setItem(process.env.VUE_APP_ROLES_KEY, JSON.stringify(roles))
|
||||
},
|
||||
setRoutesConfig(state, routesConfig) {
|
||||
state.routesConfig = routesConfig
|
||||
localStorage.setItem(process.env.VUE_APP_ROUTES_KEY, JSON.stringify(routesConfig))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ export default {
|
||||
palettes: ADMIN.palettes,
|
||||
dustbins: [],
|
||||
pageMinHeight: 0,
|
||||
menuData: [],
|
||||
...config,
|
||||
},
|
||||
mutations: {
|
||||
@@ -46,6 +47,12 @@ export default {
|
||||
},
|
||||
correctPageMinHeight(state, minHeight) {
|
||||
state.pageMinHeight += minHeight
|
||||
},
|
||||
setMenuData(state, menuData) {
|
||||
state.menuData = menuData
|
||||
},
|
||||
setAsyncRoutes(state, asyncRoutes) {
|
||||
state.asyncRoutes = asyncRoutes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user