Appearance
LazySelect 懒加载选择器
带有分页请求的多选组件,采用 popover 实现,值为默认 { value, label }(批量为[{value, label}]),用于跨页回显。(注:组件需要存入label字段,请确保后端能够存储值和文字。)
提示
演示示例请求逻辑依赖了公共hook的 useLoad 的useLoadMore。
基础用法
请选择用户
当前选择的值:
模式
复制代码
查看代码
API
Props
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| value(v-model) | 选中的值 | { label: string, value: string } | Array<{ label: string, value: string }> | - |
| mode | 选择模式 | 'single' | 'multiple' | 'single' |
| disabled | 是否禁用 | boolean | false |
| placeholder | 占位文本 | string | '请选择' |
| allowClear | 是否显示清除按钮 | boolean | true |
| fieldNames | 自定义字段名 | { label: string, value: string } | { label: 'name', value: 'id' } |
| maxCount | 多选模式下最多显示标签数 | number | 10 |
| maxTagTextLength | 多选模式下标签最大字符数 | number | 10 |
| search | 搜索配置 | { key: string, placeholder?: string } | - |
| fetchFunc | 获取数据的函数 | (params: any) => Promise<{ data: {records: any[], total: number, pages: number },list: success: boolean }> | - |
| fetchParams | 额外请求参数(如果配置了search,这里可以不用再设置) | any | {} |
| afterFetch | 数据获取后的回调(可处理为hook需要的数据结构) | (data: any, res?: any) => any | - |
Slots
| 插槽名 | 说明 | 参数 |
|---|---|---|
| render-option | 自定义选项内容 | { data: any }(当前行数据) |