UNPKG

@_lan/web-libs

Version:

<div align="center"> <img src="./public/favicon.svg" width="160" /> <h1>SoybeanAdmin AntDesign</h1> <span>中文 | <a href="./README.en_US.md">English</a></span> </div>

224 lines (199 loc) 4.79 kB
/** * Namespace Api * * All backend api type */ declare namespace Api { 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 { records: T[]; } /** common search params of table */ type CommonSearchParams = Pick<Common.PaginatingCommonParams, 'current' | 'size'>; /** * enable status * * - "1": enabled * - "2": disabled */ type EnableStatus = '1' | '2'; /** common record */ type CommonRecord<T = any> = { /** record id */ id: number; /** record creator */ createBy: string; /** record create time */ createTime: string; /** record updater */ updateBy: string; /** record update time */ updateTime: string; /** record status */ status: EnableStatus; } & T; } /** * Namespace Auth * * Backend api module: "auth" */ namespace Auth { interface LoginToken { token: string; refreshToken: string; } interface UserInfo { userId: string; userName: string; roles: string[]; buttons: string[]; } } /** * Namespace Route * * Backend api module: "route" */ namespace Route { type ElegantConstRoute = import('@elegant-router/types').ElegantConstRoute; interface MenuRoute extends ElegantConstRoute { id: string; } interface UserRoute { routes: MenuRoute[]; home: import('@elegant-router/types').LastLevelRouteKey; } } /** * namespace SystemManage * * backend api module: "systemManage" */ namespace SystemManage { /** role */ type Role = Common.CommonRecord<{ /** role name */ roleName: string; /** role code */ roleCode: string; /** role description */ roleDesc: string; }>; /** role search params */ type RoleSearchParams = Partial< Pick<Api.SystemManage.Role, 'roleName' | 'roleCode' | 'status'> & Common.CommonSearchParams >; /** role list */ type RoleList = Common.PaginatingQueryRecord<Role>; /** 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; /** user nick name */ nickName: string; /** user phone */ userPhone: string; /** user email */ userEmail: string; /** user role code collection */ userRoles: string[]; }>; /** user search params */ type UserSearchParams = Partial< Pick<Api.SystemManage.User, 'userName' | 'userGender' | 'nickName' | 'userPhone' | 'userEmail' | 'status'> & Common.CommonSearchParams >; /** user list */ type UserList = Common.PaginatingQueryRecord<User>; /** * 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' >; type Menu = Common.CommonRecord<{ /** parent menu id */ parentId: number; /** 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; /** children menu */ children?: Menu[]; }> & MenuPropsOfRoute; /** menu list */ type MenuList = Common.PaginatingQueryRecord<Menu>; type MenuTree = { id: number; label: string; pId: number; children?: MenuTree[]; }; } }