import { FieldValueType } from 'yc-pro-components/es/types'; /** * YcSelectV2 内部使用的值类型 */ export type SelectValueType = string | number | (string | number)[]; /** * 选项数据类型 */ export interface SelectOption { label: string; value: string | number; disabled?: boolean; [key: string]: unknown; } /** * 加载更多参数 */ export interface LoadMoreParams { page: number; pageSize: number; keyword?: string; } /** * 加载更多结果 */ export interface LoadMoreResult { list: SelectOption[]; total?: number; hasMore: boolean; } /** * 加载更多函数类型 */ export type LoadMoreFunction = (params: LoadMoreParams) => Promise; /** * 远程搜索函数类型 */ export type RemoteSearchFunction = (keyword: string, extraParams?: Record) => Promise; /** * YcSelectV2 组件属性 * @description modelValue 接受 FieldValueType 以兼容 PlusColumn 的 renderField 回调 */ export interface YcSelectV2Props { /** 绑定值(兼容 FieldValueType,实际使用时会转换为 SelectValueType) */ modelValue?: FieldValueType; /** 选项列表(本地模式) */ options?: SelectOption[]; /** 搜索模式:local-本地搜索,remote-远程搜索 */ searchMode?: 'local' | 'remote'; /** 分页加载函数 */ loadMore?: LoadMoreFunction; /** 远程搜索函数 */ remoteSearch?: RemoteSearchFunction; /** 额外搜索参数 */ searchParams?: Record; /** 每页条数 */ pageSize?: number; /** 占位文本 */ placeholder?: string; /** 是否可清空 */ clearable?: boolean; /** 是否可搜索 */ filterable?: boolean; /** 是否禁用 */ disabled?: boolean; /** 搜索时是否保留关键词 */ reserveKeyword?: boolean; /** 是否允许创建新选项 */ allowCreate?: boolean; /** 是否在输入框按下回车时,选中第一个匹配项 */ defaultFirstOption?: boolean; /** 是否多选 */ multiple?: boolean; /** 多选时是否折叠标签 */ collapseTags?: boolean; /** 最大折叠标签数 */ maxCollapseTags?: number; /** 初始选项(用于回显) */ initialOptions?: SelectOption[]; /** 是否启用全选功能(仅多选时有效) */ allSelect?: boolean; /** 下拉弹层自定义类名,用于控制 z-index 等样式 */ popperClass?: string; }