目录
vue-element-admin后台生成动态路由及菜单
我使用的是官方国际化分支vue-element-admin-i18n
根据自己需求将路由及菜单修改成动态生成
如果直接使用的基础模板 vue-admin-template 自己再下载一份 vue-element-admin 将没有的文件复制到自己的项目里面
定位:src/router/index.js
constantRoutes:通用页面路由
asyncRoutes:动态路由
将 asyncRoutes =[…] 的值复制到文本中,并且把里面 component: () => import(‘@/views/dashboard/index’), 内容改为 component: (‘dashboard/index’), 凡是有import的都改一下,以及 component: Layout 我直接改为component: ‘Layout’
对我为什么不全部保留 而是把 @/views/ 删掉 后面会给出答案 当然也可以自己尝试 记忆犹新
并将其修改为 asyncRoutes=[]
定位:mock/user.js
根据自己需求新增接口 在这里只是为了快速配置 所以直接使用了 url: ‘/vue-element-admin/user/info.*’ 这个接口
原接口内容
// get user info
{
url: '/vue-element-admin/user/info\.*',
type: 'get',
response: config => {
const {
token } = config.query
const info = users[token]
return {
code: 20000,
data: info
}
}
},
修改后接口内容
// get user info
{
url: '/vue-element-admin/user/info\.*',
type: 'get',
response: config => {
const {
token } = config.query
const info = users[token]
const rdata = [.....]//这里是前面复制到文本中的asyncRoutes值 自行加入
// mock error
if (!info) {
return {
code: 50008,
message: 'Login failed, unable to get user details.'
}
}
info.routs = rdata //给info多加一个返回值 我随便命名为routs
return {
code: 20000,
data: info
}
}
}