Transfer 穿梭框
基础用法
▼显示代码
可搜索
在数据很多的情况下,可以对数据进行搜索和过滤。
▼显示代码
可自定义
可以对列表标题文案、按钮文案、数据项的渲染函数、列表顶部的勾选状态文案、列表底部的内容区等进行自定义。
▼显示代码
数据项属性别名
默认情况下,Transfer 仅能识别数据项中的 value、label 和 disabled 字段。如果你的数据的字段名不同,可以使用 props 属性为它们设置别名。
▼显示代码
参数
你可以通过修改$.fn.transfer.defaults来修改全局默认配置,也可以在初始化时传入指定配置$(el).transfer({xx: xx})。
参数默认为 Json ,若为数组,则会被当做data赋值。
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| value | 初始值 | array | - | - |
| data | Transfer 的数据源,见下方【data参数】 | array[string / { value, label, disabled }] | - | [] |
| filterable | 是否可搜索 | boolean | - | false |
| filterPlaceholder | 搜索框占位符 | string/function | - | '请输入搜索内容' |
| filterMethod | 自定义搜索方法 | function(dataItem) | - | - |
| targetOrder | 列表元素的排序策略:若为 original,则保持与数据源相同的顺序;若为 push,则新加入的元素排在最后;若为 unshift,则新加入的元素排在最前 | string | original / push / unshift | 'original' |
| titles | 自定义列表标题 | array[string/function] | - | ['列表 1', '列表 2'] |
| buttonTexts | 自定义按钮文案 | array[string/function] | - | ['', ''] |
| noData | 自定义“无数据”文案 | string/function | - | '无数据' |
| noFilter | 自定义“无匹配数据”文案 | string/function | - | '无匹配数据' |
| renderContent | 自定义数据项渲染函数 | function(dataItem) | - | - |
| format | 列表顶部勾选状态文案 | object{noChecked, hasChecked} | - | { noChecked: '${checked}/${total}', hasChecked: '${checked}/${total}' } |
| props | 数据源的字段别名 | object{value, label, disabled} | - | - |
| defaultChecked | 初始状态下已勾选项的 value 数组 | array | - | [] |
| leftFooter | 左侧列表底部的内容 | string | - | - |
| rightFooter | 右侧列表底部的内容 | string | - | - |
| change | 右侧列表元素变化时触发 | function(value(新值), type(触发方式:'left' / 'right' / 'set')) | - | - |
| leftCheckChange | 左侧列表元素被用户选中 / 取消选中时触发 | function(dataItem(改变的item), checked(当前选中状态), checks(左侧所有已选中值)) | - | - |
| rightCheckChange | 右侧列表元素被用户选中 / 取消选中时触发 | function(dataItem(改变的item), checked(当前选中状态), checks(右侧所有已选中值)) | - | - |
| i18n | 国际化文本 key 值,参数见下方【i18n国际化】 | object | - | - |
data参数
参数默认为 Json ,若为字符串,则会被当做value赋值。
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| value | 值 | string | - | - |
| label | 显示文本 | string | - | - |
| disabled | 禁止使用 | boolean | - | false |
方法
你可以通过调用$(el).transfer('xxx', option)来调用 Transfer 方法。
| 方法 | 说明 | 参数 | 举例 |
|---|---|---|---|
| clearQuery | 清空某个面板的搜索关键词 | 'left' / 'right',指定需要清空的面板 | $(el).transfer('clearQuery', 'left') |
| set | 设置 Transfer 值 | 选中值 value 数组 | $(el).transfer('set', [1, 2]) |
| get | 获取 Transfer 值 | - | $(el).transfer('get') |
i18n国际化
| 参数 | 说明 | 默认值 |
|---|---|---|
| filterPlaceholder | 搜索框提示符 | 'uTransferFilterPlaceholder' |
| title1 | 左侧标题 | 'uTransferTitle1' |
| title2 | 右侧标题 | 'uTransferTitle2' |
| button1 | 到左边按钮文本 | 'uTransferButton1' |
| button2 | 到右边按钮文本 | 'uTransferButton2' |
| noData | 无数据 | 'uTransferNoData' |
| noFilter | 无匹配数据 | 'uTransferNoFilter' |