ruoyi-plus-soybean/src/typings/api.d.ts

223 lines
4.7 KiB
TypeScript
Raw Normal View History

2023-11-17 08:45:00 +08:00
/**
2023-12-14 21:45:29 +08:00
* Namespace Api
*
* All backend api type
2023-11-17 08:45:00 +08:00
*/
declare namespace Api {
2024-01-28 00:44:21 +08:00
namespace Common {
/** common params of paginating */
interface PaginatingCommonParams {
/** current page number */
current: number;
/** page size */
size: number;
/** total count */
total: number;
}
/** common params of paginating query list data */
interface PaginatingQueryRecord<T = any> extends PaginatingCommonParams {
2024-01-28 00:44:21 +08:00
records: T[];
}
2024-01-28 23:38:44 +08:00
/**
* enable status
*
* - "1": enabled
* - "2": disabled
*/
type EnableStatus = '1' | '2';
2024-01-28 00:44:21 +08:00
/** common record */
type CommonRecord<T = any> = {
2024-01-28 00:44:21 +08:00
/** record id */
id: number;
/** record creator */
createBy: string;
/** record create time */
createTime: string;
/** record updater */
updateBy: string;
/** record update time */
updateTime: string;
2024-01-28 23:38:44 +08:00
/** record status */
status: EnableStatus | null;
2024-01-28 00:44:21 +08:00
} & T;
}
2023-11-17 08:45:00 +08:00
/**
2024-01-28 00:44:21 +08:00
* namespace Auth
2023-12-14 21:45:29 +08:00
*
2024-01-28 00:44:21 +08:00
* backend api module: "auth"
2023-11-17 08:45:00 +08:00
*/
namespace Auth {
interface LoginToken {
token: string;
refreshToken: string;
}
2023-11-17 08:45:00 +08:00
interface UserInfo {
userId: string;
userName: string;
roles: string[];
2024-03-24 15:39:41 +08:00
buttons: string[];
2023-11-17 08:45:00 +08:00
}
}
2023-11-17 08:45:00 +08:00
/**
2024-01-28 00:44:21 +08:00
* namespace Route
2023-12-14 21:45:29 +08:00
*
2024-01-28 00:44:21 +08:00
* backend api module: "route"
2023-11-17 08:45:00 +08:00
*/
namespace Route {
type ElegantConstRoute = import('@elegant-router/types').ElegantConstRoute;
interface MenuRoute extends ElegantConstRoute {
id: string;
}
2023-11-17 08:45:00 +08:00
interface UserRoute {
routes: MenuRoute[];
home: import('@elegant-router/types').LastLevelRouteKey;
}
}
2024-01-28 00:44:21 +08:00
/**
* namespace SystemManage
*
* backend api module: "systemManage"
*/
namespace SystemManage {
2024-01-28 16:24:43 +08:00
type CommonSearchParams = Pick<Common.PaginatingCommonParams, 'current' | 'size'>;
2024-01-28 00:44:21 +08:00
/** role */
type Role = Common.CommonRecord<{
/** role name */
roleName: string;
/** role code */
roleCode: string;
/** role description */
roleDesc: string;
}>;
/** role search params */
type RoleSearchParams = CommonType.RecordNullable<
2024-01-28 23:38:44 +08:00
Pick<Api.SystemManage.Role, 'roleName' | 'roleCode' | 'status'> & CommonSearchParams
2024-01-28 00:44:21 +08:00
>;
/** role list */
type RoleList = Common.PaginatingQueryRecord<Role>;
2024-01-28 16:24:43 +08:00
/** all role */
type AllRole = Pick<Role, 'id' | 'roleName' | 'roleCode'>;
/**
* user gender
*
* - "1": "male"
* - "2": "female"
*/
type UserGender = '1' | '2';
/** user */
type User = Common.CommonRecord<{
/** user name */
userName: string;
/** user gender */
userGender: UserGender | null;
/** user nick name */
nickName: string;
/** user phone */
userPhone: string;
/** user email */
userEmail: string;
/** user role code collection */
userRoles: string[];
}>;
/** user search params */
type UserSearchParams = CommonType.RecordNullable<
2024-01-28 23:38:44 +08:00
Pick<Api.SystemManage.User, 'userName' | 'userGender' | 'nickName' | 'userPhone' | 'userEmail' | 'status'> &
2024-01-28 16:24:43 +08:00
CommonSearchParams
>;
/** user list */
type UserList = Common.PaginatingQueryRecord<User>;
2024-01-28 23:38:44 +08:00
/**
* menu type
*
* - "1": directory
* - "2": menu
*/
type MenuType = '1' | '2';
type MenuButton = {
/**
* button code
*
* it can be used to control the button permission
*/
code: string;
/** button description */
desc: string;
};
/**
* icon type
*
* - "1": iconify icon
* - "2": local icon
*/
type IconType = '1' | '2';
type MenuPropsOfRoute = Pick<
import('vue-router').RouteMeta,
| 'i18nKey'
| 'keepAlive'
| 'constant'
| 'order'
| 'href'
| 'hideInMenu'
| 'activeMenu'
| 'multiTab'
| 'fixedIndexInTab'
| 'query'
>;
2024-01-28 23:38:44 +08:00
type Menu = Common.CommonRecord<{
/** parent menu id */
parentId: number;
2024-01-28 23:38:44 +08:00
/** menu type */
menuType: MenuType;
/** menu name */
menuName: string;
/** route name */
routeName: string;
/** route path */
routePath: string;
/** component */
component?: string;
/** iconify icon name or local icon name */
icon: string;
/** icon type */
iconType: IconType;
/** buttons */
buttons?: MenuButton[] | null;
2024-01-28 23:38:44 +08:00
/** children menu */
children?: Menu[] | null;
}> &
MenuPropsOfRoute;
/** menu list */
type MenuList = Common.PaginatingQueryRecord<Menu>;
2024-03-23 15:51:04 +08:00
type MenuTree = {
id: number;
label: string;
pId: number;
children?: MenuTree[];
};
2024-01-28 00:44:21 +08:00
}
}