Transfer 穿梭框
双栏多选选择器,直观展示已选与未选,支持搜索、分组、拖拽。
何时使用
- 需要在两栏之间移动数据、批量选择时。
基础用法
数据项需传入 label、value、key。
待选项 (20)
选项 1
选项 2
选项 3
选项 4
选项 5
选项 6
选项 7
选项 8
选项 9
选项 10
选项 11
选项 12
选项 13
选项 14
选项 15
选项 16
选项 17
选项 18
选项 19
选项 20
已选项 (3)
选项 1
选项 2
选项 3
分组模式
设置 type 为 groupList,数据源使用分组结构。
可搜索
设置 filter 开启搜索功能。
拖拽排序
设置 draggable 开启右侧已选项的拖拽排序功能。
左侧分页
设置 pagination 开启左侧分页功能。
受控页码
通过 currentPage 和 onPageChange 受控管理页码。
禁用
设置 disabled 禁用整个组件。
默认值
使用 default-value 设置非受控默认选中值。
自定义标题
通过 title-text 自定义左右两侧标题。
禁用单个选项
在数据项中设置 disabled: true 可禁用单个选项。
导入
Props
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
modelValue | (string | number)[] | [] | 选中值(v-model) |
dataSource | TransferItem[] | TransferGroupItem[] | [] | 数据源 |
defaultValue | (string | number)[] | [] | 默认选中值 |
type | "list" | "groupList" | "list" | 列表 / 分组模式 |
disabled | boolean | false | 是否禁用 |
filter | boolean | false | 可搜索 |
searchPlaceholder | string | 搜索 | 搜索占位文字 |
filterProp | string | label | 搜索匹配属性 |
titleText | [string, string] | ["源", "目标"] | 左右标题 |
draggable | boolean | false | 可拖拽排序 |
pagination | TransferPagination | boolean | false | 分页配置 |
showAllSelect | boolean | true | 显示全选按钮 |
showClear | boolean | true | 显示清空按钮 |
emptyText | [string, string] | ["暂无数据", "暂无数据"] | 空数据文案 |
height | number | string | 400 | 高度 |
class | string | - | 附加类名 |
Events
| 事件 | 说明 | 回调参数 |
|---|---|---|
change | 选中变化 | (value, items) |
search | 搜索 | (direction, value) |
pageChange | 页码变化 | (page) |
类型
TransferItem
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
label | string | - | 标签 |
value | string | number | - | 值 |
key | string | 用 value | 唯一标识 |
disabled | boolean | false | 是否禁用 |
TransferGroupItem
| 属性 | 类型 | 说明 |
|---|---|---|
title | string | 分组标题 |
children | TransferItem[] | 子项 |
TransferPagination
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
pageSize | number | 10 | 每页条数 |
currentPage | number | - | 当前页码(受控) |
defaultCurrentPage | number | 1 | 默认页码 |
onPageChange | (page: number) => void | - | 页码变化回调 |
国际化
搜索占位、标题、空状态、全选/取消全选等文案默认跟随全局语言(zh-CN / zh-TW / en-US),传 prop 可覆盖。
