69 lines
1.2 KiB
TypeScript
69 lines
1.2 KiB
TypeScript
import type ISysUser from '@/domain/iSysUser';
|
|
|
|
/**
|
|
* 用户选择器的值类型
|
|
* 支持单个ID、ID数组、或完整的用户对象
|
|
*/
|
|
export type UserSelectorValue =
|
|
| number
|
|
| number[]
|
|
| ISysUser
|
|
| ISysUser[]
|
|
| null
|
|
| undefined;
|
|
|
|
/**
|
|
* 用户选择器组件属性
|
|
*/
|
|
export interface UserSelectorProps {
|
|
/**
|
|
* 选中的值
|
|
* - 单选模式:number | ISysUser | null
|
|
* - 多选模式:number[] | ISysUser[]
|
|
*/
|
|
value?: UserSelectorValue;
|
|
|
|
/**
|
|
* 值变化回调
|
|
* - 单选模式:返回 number | null
|
|
* - 多选模式:返回 number[]
|
|
*/
|
|
onChange?: (value: number | number[] | null) => void;
|
|
|
|
/**
|
|
* 选择模式
|
|
* @default 'single'
|
|
*/
|
|
mode?: 'single' | 'multiple';
|
|
|
|
/**
|
|
* 占位符文本
|
|
*/
|
|
placeholder?: string;
|
|
|
|
/**
|
|
* 是否禁用
|
|
* @default false
|
|
*/
|
|
disabled?: boolean;
|
|
|
|
/**
|
|
* 是否只读(只读模式下不能打开选择弹窗)
|
|
* @default false
|
|
*/
|
|
readonly?: boolean;
|
|
|
|
/**
|
|
* 是否显示部门信息
|
|
* @default true
|
|
*/
|
|
showDept?: boolean;
|
|
|
|
/**
|
|
* 多选模式下最多显示的标签数量
|
|
* 超出部分会显示 +N
|
|
* @default 2
|
|
*/
|
|
maxTagCount?: number;
|
|
}
|