79 lines
2.2 KiB
TypeScript
79 lines
2.2 KiB
TypeScript
|
|
import {
|
||
|
|
Controller,
|
||
|
|
Get,
|
||
|
|
Param,
|
||
|
|
Post,
|
||
|
|
Put,
|
||
|
|
Delete,
|
||
|
|
Body,
|
||
|
|
} from '@nestjs/common';
|
||
|
|
import { ApiOperation, ApiTags } from '@nestjs/swagger';
|
||
|
|
import { SysMenuService } from '../../services/admin/sysMenu.service';
|
||
|
|
import { SysMenu } from '../../entity/sysMenu.entity';
|
||
|
|
|
||
|
|
@ApiTags('系统菜单')
|
||
|
|
@Controller('adminapi/sys/menu')
|
||
|
|
export class SysMenuController {
|
||
|
|
constructor(private readonly sysMenuService: SysMenuService) {}
|
||
|
|
|
||
|
|
@Get(':type')
|
||
|
|
@ApiOperation({ summary: '获取全部菜单(按应用类型)' })
|
||
|
|
async getMenus(@Param('type') type: string): Promise<SysMenu[]> {
|
||
|
|
return this.sysMenuService.list(type);
|
||
|
|
}
|
||
|
|
|
||
|
|
@Get(':app_type/info/:menu_key')
|
||
|
|
@ApiOperation({ summary: '获取菜单信息' })
|
||
|
|
getMenuInfo(
|
||
|
|
@Param('app_type') appType: string,
|
||
|
|
@Param('menu_key') menuKey: string,
|
||
|
|
): Promise<SysMenu | null> {
|
||
|
|
return this.sysMenuService.findOne(appType, menuKey);
|
||
|
|
}
|
||
|
|
|
||
|
|
@Post()
|
||
|
|
@ApiOperation({ summary: '添加菜单' })
|
||
|
|
addMenu(@Body() payload: Partial<SysMenu>) {
|
||
|
|
return this.sysMenuService.createByKey(payload);
|
||
|
|
}
|
||
|
|
|
||
|
|
@Put(':app_type/:menu_key')
|
||
|
|
@ApiOperation({ summary: '更新菜单' })
|
||
|
|
editMenu(
|
||
|
|
@Param('app_type') appType: string,
|
||
|
|
@Param('menu_key') menuKey: string,
|
||
|
|
@Body() payload: Partial<SysMenu>,
|
||
|
|
) {
|
||
|
|
return this.sysMenuService.updateByKey(appType, menuKey, payload);
|
||
|
|
}
|
||
|
|
|
||
|
|
@Delete(':app_type/:menu_key')
|
||
|
|
@ApiOperation({ summary: '删除菜单' })
|
||
|
|
deleteMenu(
|
||
|
|
@Param('app_type') appType: string,
|
||
|
|
@Param('menu_key') menuKey: string,
|
||
|
|
) {
|
||
|
|
return this.sysMenuService.deleteByKey(appType, menuKey);
|
||
|
|
}
|
||
|
|
|
||
|
|
@Get('system_menu')
|
||
|
|
@ApiOperation({ summary: '获取系统菜单' })
|
||
|
|
async getSystemMenu(): Promise<SysMenu[]> {
|
||
|
|
return this.sysMenuService.list('system');
|
||
|
|
}
|
||
|
|
|
||
|
|
@Get('addon_menu/:key')
|
||
|
|
@ApiOperation({ summary: '获取应用菜单' })
|
||
|
|
async getAddonMenu(@Param('key') key: string): Promise<SysMenu[]> {
|
||
|
|
return this.sysMenuService.list(key);
|
||
|
|
}
|
||
|
|
|
||
|
|
@Get('dir/:key')
|
||
|
|
@ApiOperation({ summary: '获取类型为目录的菜单' })
|
||
|
|
getDirMenus(@Param('key') key: string): Promise<SysMenu[]> {
|
||
|
|
return this.sysMenuService.listDir(key || 'system');
|
||
|
|
}
|
||
|
|
|
||
|
|
// no tree route in contract
|
||
|
|
}
|