This commit is contained in:
2026-06-26 09:20:50 +08:00
parent 4efb360b93
commit 6fcc3f8a0c
4 changed files with 26 additions and 45 deletions
@@ -258,21 +258,7 @@ const AppLayout: React.FC = () => {
useEffect(() => {
getMenuConfigs().then(data => {
let items = data.filter((m: any) => m.is_active !== false && m.isActive !== false);
// Filter by user's allowed menus if set
if (user?.allowedMenus && user.allowedMenus.length > 0) {
const allowed = new Set(user.allowedMenus);
const groupIds = new Set<string>();
items.forEach((m: any) => {
const pid = m.parent_id ?? m.parentId;
if (pid && allowed.has(m.path)) groupIds.add(pid);
});
items = items.filter((m: any) => {
const mt = m.menu_type ?? m.menuType;
if (mt === 'group' && groupIds.has(m.id)) return true;
return allowed.has(m.path);
});
}
const items = data.filter((m: any) => m.is_active !== false && m.isActive !== false);
setMenuItems(items);
}).catch(() => { });
getRechargePackages().then(data => {
@@ -486,13 +472,13 @@ const AppLayout: React.FC = () => {
// Render groups with children
groups.sort((a, b) => {
const orderA = a.sortOrder !== undefined ? a.sortOrder : Infinity;
const orderB = b.sortOrder !== undefined ? b.sortOrder : Infinity;
const orderA = typeof a.sortOrder === 'number' ? a.sortOrder : Infinity;
const orderB = typeof b.sortOrder === 'number' ? b.sortOrder : Infinity;
return orderA - orderB;
}).forEach(g => {
const children = (childMap[g.id] || []).sort((a, b) => {
const orderA = a.sortOrder !== undefined ? a.sortOrder : Infinity;
const orderB = b.sortOrder !== undefined ? b.sortOrder : Infinity;
const orderA = typeof a.sortOrder === 'number' ? a.sortOrder : Infinity;
const orderB = typeof b.sortOrder === 'number' ? b.sortOrder : Infinity;
return orderA - orderB;
});
items.push(
@@ -510,8 +496,8 @@ const AppLayout: React.FC = () => {
// Render top-level pages
topLevel.sort((a, b) => {
const orderA = a.sortOrder !== undefined ? a.sortOrder : Infinity;
const orderB = b.sortOrder !== undefined ? b.sortOrder : Infinity;
const orderA = typeof a.sortOrder === 'number' ? a.sortOrder : Infinity;
const orderB = typeof b.sortOrder === 'number' ? b.sortOrder : Infinity;
return orderA - orderB;
}).forEach(m => {
items.push(renderMenuItem(m));