feat(admin): 添加用户管理相关文件
添加用户管理视图、API和状态管理文件
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
export interface Menu {
|
||||
id?: number;
|
||||
parentId?: number;
|
||||
name: string;
|
||||
code: string;
|
||||
type?: 'MENU' | 'BUTTON';
|
||||
path?: string;
|
||||
component?: string;
|
||||
icon?: string;
|
||||
sort?: number;
|
||||
sortOrder?: number;
|
||||
status?: string;
|
||||
description?: string;
|
||||
children?: Menu[];
|
||||
createdAt?: string;
|
||||
updatedAt?: string;
|
||||
}
|
||||
|
||||
export interface MenuTree extends Menu {
|
||||
children?: MenuTree[];
|
||||
}
|
||||
|
||||
export interface MenuQueryParams {
|
||||
name?: string;
|
||||
code?: string;
|
||||
type?: 'MENU' | 'BUTTON';
|
||||
status?: 'ENABLED' | 'DISABLED';
|
||||
current?: number;
|
||||
size?: number;
|
||||
}
|
||||
|
||||
export interface MenuPageResponse {
|
||||
records: Menu[];
|
||||
total: number;
|
||||
current: number;
|
||||
size: number;
|
||||
}
|
||||
|
||||
export const menuApi = {
|
||||
getMenus: (params?: MenuQueryParams) => {
|
||||
return request.get<MenuPageResponse>('/sys/menu', { params });
|
||||
},
|
||||
|
||||
getMenuTree: () => {
|
||||
return request.get<MenuTree[]>('/sys/menu/tree');
|
||||
},
|
||||
|
||||
getMenuById: (id: number) => {
|
||||
return request.get<Menu>(`/sys/menu/${id}`);
|
||||
},
|
||||
|
||||
createMenu: (data: Menu) => {
|
||||
return request.post<Menu>('/sys/menu', data);
|
||||
},
|
||||
|
||||
updateMenu: (id: number, data: Menu) => {
|
||||
return request.put<Menu>(`/sys/menu/${id}`, data);
|
||||
},
|
||||
|
||||
deleteMenu: (id: number) => {
|
||||
return request.delete(`/sys/menu/${id}`);
|
||||
},
|
||||
|
||||
getMenusByRole: (roleId: number) => {
|
||||
return request.get<Menu[]>(`/sys/role/${roleId}/menus`);
|
||||
},
|
||||
|
||||
assignMenusToRole: (roleId: number, menuIds: number[]) => {
|
||||
return request.post(`/sys/role/${roleId}/menus`, { menuIds });
|
||||
},
|
||||
|
||||
assignMenuToRole: (data: { roleId: number; menuIds: number[] }) => {
|
||||
return request.post('/sys/menu/assign', data);
|
||||
},
|
||||
|
||||
getMenusByUserId: (userId: number) => {
|
||||
return request.get<Menu[]>(`/sys/menu/user/${userId}`);
|
||||
},
|
||||
|
||||
removeMenuFromRole: (roleId: number, menuId: number) => {
|
||||
return request.delete(`/sys/menu/role/${roleId}/menu/${menuId}`);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user