/// /** * @title: 选项数据类型 * @description: * @return {*} * @Author: WangHan * @Date: 2025-10-11 14:18 */ export interface HolderOption { /** 显示的标签文本 */ label: string; /** 选项的值(唯一标识) */ value: any; /** 头像地址 */ avatar?: string; /** 副标题/描述 */ subtitle?: string; /** 其他字段 */ [key: string]: any; } /** * @title: 模态框配置 * @description: * @return {*} * @Author: WangHan * @Date: 2025-10-10 14:32 */ export interface HolderModalProps { title?: string; confirmText?: string; showClose?: boolean; } /** * @title: 字段展示配置 * @description: * @return {*} * @Author: WangHan * @Date: 2025-10-10 14:32 */ export interface HolderDisplayProps { showAvatar?: boolean; showTitle?: boolean; showSubtitle?: boolean; isSkipable?: boolean; direction?: 'horizontal' | 'vertical'; selectType?: 'single' | 'multiple'; showExtraFields?: boolean; extraFields?: any[]; } /** * @title: SelectHolder 组件属性 * @description: * @return {*} * @Author: WangHan * @Date: 2025-10-11 14:18 */ export interface PisellSelectHolderProps { /** 选项列表 */ dataSource?: HolderOption[]; /** 是否打开模态框 */ open?: boolean; /** 关闭事件(右上角 X 按钮) */ onClose?: () => void; /** 确认事件,返回选中的值 */ onConfirm?: (selected: any) => void; /** 跳过事件(底部跳过按钮) */ onSkip?: () => void; /** 点击添加按钮事件 */ onAdd?: () => void; /** 当前选中的值(单选) 或 选中的值数组(多选) */ value?: any; modalConfig?: HolderModalProps; displayConfig?: HolderDisplayProps; /** 是否禁用确认按钮 */ disabled?: boolean; /** 错误提示文案 */ errorTipText?: string; /** 是否显示添加按钮 */ allowAdd?: boolean; /** 添加按钮文案 */ addText?: string; /** 每行显示的列数 */ columns?: number; /** 水平间距 */ horizontalGap?: number; /** 垂直间距 */ verticalGap?: number; /** 最大可选数量 */ maxSelectedCount?: number; /** 是否内联模式(不显示弹窗,直接渲染内容,用于页面级别) */ isInline?: boolean; /** 内联模式的容器样式类名 */ className?: string; /** 内联模式的容器样式 */ style?: React.CSSProperties; } export interface HolderItemProps { item: HolderOption; displayDirection?: 'horizontal' | 'vertical'; displayConfig?: HolderDisplayProps; onClick?: (value?: any) => void; value?: any; isAddItem?: boolean; }