feat: 新增菜单管理页面

This commit is contained in:
xlsea
2024-09-03 12:19:57 +08:00
parent 89f5e8577e
commit 8ab7ee2268
130 changed files with 1797 additions and 103 deletions

View File

@ -14,7 +14,7 @@ declare namespace Api {
/** role */
type Role = Common.CommonRecord<{
roleId: string | number;
roleId: CommonType.IdType;
roleName: string;
roleKey: string;
roleSort: number;
@ -25,8 +25,8 @@ declare namespace Api {
delFlag: string;
remark?: any;
flag: boolean;
menuIds?: Array<string | number>;
deptIds?: Array<string | number>;
menuIds?: Array<CommonType.IdType>;
deptIds?: Array<CommonType.IdType>;
admin: boolean;
}>;
@ -50,27 +50,37 @@ declare namespace Api {
type UserGender = '1' | '2';
/** user */
type User = Common.CommonRecord<{
userId: string | number;
deptId: number;
userName: string;
nickName: string;
userType: string;
email: string;
phonenumber: string;
sex: string;
avatar: string;
status: string;
delFlag: string;
loginIp: string;
loginDate: string;
remark: string;
deptName: string;
roles: Role[];
roleIds: any;
postIds: any;
roleId: any;
admin: boolean;
type User = Common.CommonTenantRecord<{
/** 用户ID */
userId?: CommonType.IdType;
/** 部门ID */
deptId?: CommonType.IdType;
/** 用户账号 */
userName?: string;
/** 用户昵称 */
nickName?: string;
/** 用户类型sys_user系统用户 */
userType?: string;
/** 用户邮箱 */
email?: string;
/** 手机号码 */
phonenumber?: string;
/** 用户性别0男 1女 2未知 */
sex?: string;
/** 头像地址 */
avatar?: number;
/** 密码 */
password?: string;
/** 帐号状态0正常 1停用 */
status?: string;
/** 删除标志0代表存在 2代表删除 */
delFlag?: string;
/** 最后登录IP */
loginIp?: string;
/** 最后登录时间 */
loginDate?: Date;
/** 备注 */
remark?: string;
}>;
/** user search params */
@ -81,6 +91,48 @@ declare namespace Api {
/** user list */
type UserList = Common.PaginatingQueryRecord<User>;
/** tenant */
interface Tenant {
/** id */
id?: CommonType.IdType;
/** 租户编号 */
tenantId?: string;
/** 联系人 */
contactUserName?: string;
/** 联系电话 */
contactPhone?: string;
/** 企业名称 */
companyName?: string;
/** 统一社会信用代码 */
licenseNumber?: string;
/** 地址 */
address?: string;
/** 域名 */
domain?: string;
/** 企业简介 */
intro?: string;
/** 备注 */
remark?: string;
/** 租户套餐编号 */
packageId?: number;
/** 过期时间 */
expireTime?: Date;
/** 用户数量(-1不限制 */
accountCount?: number;
/** 租户状态0正常 1停用 */
status?: string;
/** 删除标志0代表存在 2代表删除 */
delFlag: string;
}
/**
* icon type
*
* - "1": iconify icon
* - "2": local icon
*/
type IconType = '1' | '2';
/**
* menu type
*
@ -90,34 +142,67 @@ declare namespace Api {
*/
type MenuType = 'M' | 'C' | 'F';
type Menu = Common.CommonRecord<
{
parentName: string;
parentId: string | number;
children: Menu[];
menuId: string | number;
menuName: string;
orderNum: number;
path: string;
component: string;
queryParam: string;
isFrame: string;
isCache: string;
menuType: MenuType;
visible: string;
status: Common.EnableStatus;
perms: string;
icon: string;
componentInfo: string;
remark: string;
keywords?: string;
} & Pick<import('vue-router').RouteMeta, 'i18nKey'>
>;
type Menu = Common.CommonRecord<{
/** 菜单 ID */
menuId?: CommonType.IdType;
/** 父菜单 ID */
parentId?: CommonType.IdType;
/** 菜单名称 */
menuName?: string;
/** 显示顺序 */
orderNum?: number;
/** 路由地址 */
path?: string;
/** 组件路径 */
component?: string;
/** 路由参数 */
queryParam?: string;
/** 是否为外链0是 1否 */
isFrame?: Common.YesOrNoStatus;
/** 是否缓存0缓存 1不缓存 */
isCache?: Common.YesOrNoStatus;
/** 菜单类型M目录 C菜单 F按钮 */
menuType?: MenuType;
/** 显示状态0显示 1隐藏 */
visible?: Common.VisibleStatus;
/** 菜单状态0正常 1停用 */
status?: Common.EnableStatus;
/** 权限标识 */
perms?: string;
/** 菜单图标 */
icon?: string;
/** 备注 */
remark?: string;
/** 父菜单名称 */
parentName?: string;
/** 子菜单 */
children?: Menu[];
}>;
/** menu list */
type MenuList = Common.PaginatingQueryRecord<Menu>;
type MenuList = Menu[];
type MenuSearchParams = CommonType.RecordNullable<Pick<Api.System.Menu, 'menuName' | 'status' | 'keywords'>> &
CommonSearchParams;
/** menu search params */
type MenuSearchParams = CommonType.RecordNullable<Pick<Menu, 'menuName' | 'status' | 'menuType' | 'parentId'>>;
/** menu operate params */
type MenuOperateParams = Pick<
Menu,
| 'menuId'
| 'menuName'
| 'parentId'
| 'orderNum'
| 'path'
| 'component'
| 'queryParam'
| 'isFrame'
| 'isCache'
| 'menuType'
| 'visible'
| 'status'
| 'perms'
| 'icon'
| 'remark'
>;
}
}