63 lines
1.4 KiB
TypeScript
63 lines
1.4 KiB
TypeScript
![]() |
import { sleep } from '@/utils';
|
||
|
import { Controller, Get, HttpCode, HttpStatus, Request } from '@nestjs/common';
|
||
|
|
||
|
@Controller('menu')
|
||
|
export class MenuController {
|
||
|
/**
|
||
|
* 获取用户所有菜单
|
||
|
*/
|
||
|
@Get('getAll')
|
||
|
@HttpCode(HttpStatus.OK)
|
||
|
async getAll(@Request() req: Request) {
|
||
|
// 模拟请求延迟
|
||
|
await sleep(1000);
|
||
|
// 请求用户的id
|
||
|
const userId = req.user.id;
|
||
|
|
||
|
// TODO: 改为表方式获取
|
||
|
const dashboardMenus = [
|
||
|
{
|
||
|
component: 'BasicLayout',
|
||
|
meta: {
|
||
|
order: -1,
|
||
|
title: 'page.dashboard.title',
|
||
|
},
|
||
|
name: 'Dashboard',
|
||
|
path: '/',
|
||
|
redirect: '/analytics',
|
||
|
children: [
|
||
|
{
|
||
|
name: 'Analytics',
|
||
|
path: '/analytics',
|
||
|
component: '/dashboard/analytics/index',
|
||
|
meta: {
|
||
|
affixTab: true,
|
||
|
title: 'page.dashboard.analytics',
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
name: 'Workspace',
|
||
|
path: '/workspace',
|
||
|
component: '/dashboard/workspace/index',
|
||
|
meta: {
|
||
|
title: 'page.dashboard.workspace',
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
];
|
||
|
const MOCK_MENUS = [
|
||
|
{
|
||
|
menus: [...dashboardMenus],
|
||
|
userId: 0,
|
||
|
},
|
||
|
{
|
||
|
menus: [...dashboardMenus],
|
||
|
userId: 1,
|
||
|
},
|
||
|
];
|
||
|
|
||
|
return MOCK_MENUS.find((item) => item.userId === userId)?.menus ?? [];
|
||
|
}
|
||
|
}
|