Files
cody-crm/frontend/packages/lib-shared/models/system/role.ts
wangziqi 72e2110987
Some checks failed
Synchronize to Gitee / repo-sync (push) Has been cancelled
Typos Checking / Spell Check with Typos (push) Has been cancelled
chore: initial commit
2026-06-23 11:56:23 +08:00

122 lines
2.4 KiB
TypeScript

import type { DeptNodeTypeEnum } from '../../enums/systemEnum';
import type { TableQueryParams } from '../common';
// 角色关联用户分页列表接口参数
export interface RoleMemberTableQueryParams extends TableQueryParams {
roleId?: string;
}
// 角色关联用户接口参数
export interface RelateRoleMemberParams {
roleId: string;
deptIds?: string[];
roleIds?: string[];
userIds?: string[];
}
export interface PermissionItem {
id: string;
name: string;
enable: boolean;
license: boolean;
}
// 权限树节点
export interface PermissionTreeNode {
id: string;
name: string;
license: boolean;
enable: boolean;
permissions: PermissionItem[];
children: PermissionTreeNode[];
}
export interface RolePermissionItem {
id: string;
enable: boolean;
}
export interface Role {
name: string;
dataScope?: string;
deptIds?: string[];
description?: string;
}
export interface RoleCreateParams extends Role {
permissions: RolePermissionItem[];
}
export interface RoleUpdateParams extends Role {
id: string;
permissions?: RolePermissionItem[];
}
export interface RoleDetail extends Role {
id: string;
deptIds: string[];
permissions: PermissionTreeNode[];
}
// 部门用户树成员
export interface DeptTreeMember {
id: string;
name: string;
parentId: string;
organizationId: string;
}
export type DeptNodeType = DeptNodeTypeEnum;
// 部门用户树节点
export interface DeptUserTreeNode {
id: string;
name: string;
parentId: string;
organizationId: string;
children?: DeptTreeMember[];
nodeType?: DeptNodeType;
enabled?: boolean; // 是否启用
}
// 部门树节点
export interface DeptTreeNode {
id: string;
name: string;
parentId: string;
organizationId: string;
}
// 角色列表项
export interface RoleItem {
id: string;
createUser?: string;
updateUser?: string;
createTime?: number;
updateTime?: number;
name: string;
internal: boolean; // 是否内置
dataScope: string;
description?: string;
organizationId?: string;
createUserName?: string;
updateUserName?: string;
[key: string]: any; // 前端扩展字段
}
export interface RoleMemberRoleItem {
id: string;
name: string;
userId: string;
}
export interface RoleMemberItem {
id: string;
userId: string;
userName: string;
enable: boolean;
departmentId: string;
departmentName: string;
position: string;
createTime: number;
roles: RoleMemberRoleItem[];
}