feat: 动态菜单

fix/0524_ch
向文可 3 years ago
parent 403adddce4
commit 7a50d59086

@ -14,7 +14,7 @@ export default {
/** /**
* 是否使用本地路由 * 是否使用本地路由
*/ */
useLocalRouter: true, useLocalRouter: false,
/** /**
* 项目名称 * 项目名称
*/ */

@ -14,16 +14,16 @@ const mutations = {
const convert = (arr, parent = { path: '/', meta: {} }) => { const convert = (arr, parent = { path: '/', meta: {} }) => {
return arr.map((item) => { return arr.map((item) => {
let route = { let route = {
path: item.routeUrl, path: item.path,
name: item.roleCode, name: item.permission,
component: item.pageUrl, component: item.page,
meta: { meta: {
title: item.title, title: item.title,
icon: item.icon, icon: item.icon,
hidden: item.type === 2, hidden: item.type === 2,
activeMenu: item.activeMenu, activeMenu: item.activeMenu,
layout: item.pageUrl?.toLowerCase() === 'layout', layout: item.page?.toLowerCase() === 'layout',
view: item.pageUrl?.toLowerCase() === 'view', view: item.page?.toLowerCase() === 'view',
}, },
}; };
if (!route.path.startsWith('/')) { if (!route.path.startsWith('/')) {
@ -55,7 +55,7 @@ const mutations = {
} else { } else {
throw new Error('菜单没有配置前端页面'); throw new Error('菜单没有配置前端页面');
} }
route.children = convert(item.children || [], route); route.children = convert(item.menuChild || [], route);
return route; return route;
}); });
}; };
@ -108,7 +108,7 @@ const actions = {
router.push({ name: 'Login', query: { returnUrl } }); router.push({ name: 'Login', query: { returnUrl } });
}, },
getPermission: async ({ commit }) => { getPermission: async ({ commit }) => {
let res = await getPermission({ systemCode: 'msb_shop_admin' }); let res = await getPermission();
if (res) { if (res) {
commit('setPermission', res); commit('setPermission', res);
} else { } else {

@ -151,6 +151,9 @@
<el-form-item label="菜单图标" prop="icon"> <el-form-item label="菜单图标" prop="icon">
<el-input v-model="menuState.form.icon" /> <el-input v-model="menuState.form.icon" />
</el-form-item> </el-form-item>
<el-form-item label="激活菜单" prop="activeMenu">
<el-input v-model="menuState.form.activeMenu" />
</el-form-item>
<el-form-item label="菜单排序" prop="sort"> <el-form-item label="菜单排序" prop="sort">
<el-input-number v-model="menuState.form.sort" /> <el-input-number v-model="menuState.form.sort" />
</el-form-item> </el-form-item>
@ -281,6 +284,7 @@
path: '', path: '',
page: '', page: '',
icon: '', icon: '',
activeMenu: '',
sort: 0, sort: 0,
}, },
rules: { rules: {
@ -306,6 +310,7 @@
path: '', path: '',
page: '', page: '',
icon: '', icon: '',
activeMenu: '',
sort: 0, sort: 0,
} }
); );

Loading…
Cancel
Save