/** * @author chuzhixin 1204505056@qq.com (不想保留author可删除) * @description 路由拦截状态管理,目前两种模式:all模式与intelligence模式,其中partialRoutes是菜单暂未使用 */ import { asyncRoutes, constantRoutes } from '@/router' import { convertRouter, filterAsyncRoutes } from '@/utils/handleRoutes' const state = () => ({ routes: [], partialRoutes: [], }) const getters = { routes: (state) => state.routes, partialRoutes: (state) => state.partialRoutes, } const mutations = { setRoutes(state, routes) { state.routes = constantRoutes.concat(routes) }, setAllRoutes(state, routes) { // state.routes = constantRoutes.concat(routes) }, setPartialRoutes(state, routes) { state.partialRoutes = constantRoutes.concat(routes) }, } const actions = { async setRoutes({ commit }, permissions) { //开源版只过滤动态路由permissions,admin不再默认拥有全部权限 const finallyAsyncRoutes = await filterAsyncRoutes( [...asyncRoutes], permissions ) commit('setRoutes', finallyAsyncRoutes) return finallyAsyncRoutes }, setPartialRoutes({ commit }, accessRoutes) { commit('setPartialRoutes', accessRoutes) return accessRoutes }, } export default { state, getters, mutations, actions }