/** * @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 };