docs(agents): add design references

This commit is contained in:
2026-08-10 23:34:28 +08:00
parent a2383fc8a1
commit 72a83f5fcd
86 changed files with 8889 additions and 0 deletions

View File

@@ -0,0 +1,103 @@
---
name: arco-vue-transfer
description: "Arco Design Vue 数据穿梭框 Transfer 组件参考。用于 Vue 3、`@arco-design/web-vue``<a-transfer>`、属性、事件、插槽、示例和实现细节。"
user-invocable: false
---
# 数据穿梭框 Transfer
## 简介
数据穿梭框的基本用法。
## 基本用法
```vue
<template>
<a-transfer :data="data" :default-value="value" />
</template>
<script>
export default {
setup() {
const data = Array(8).fill(undefined).map((_, index) => ({
value: `option${index + 1}`,
label: `Option ${index + 1}`
}));
const value = ['option1', 'option3', 'option5'];
return {
data,
value
}
},
}
</script>
```
## API
### `<transfer>` 属性
|参数名|描述|类型|默认值|版本|
|---|---|---|:---:|:---|
|data|穿梭框的数据|`TransferItem[]`|`[]`||
|model-value **(v-model)**|目标选择框中的值|`string[]`|`-`||
|default-value|目标选择框中默认的值(非受控状态)|`string[]`|`[]`||
|selected **(v-model)**|选中的选项值|`string[]`|`-`||
|default-selected|默认选中的选项值(非受控状态)|`string[]`|`[]`||
|disabled|是否禁用|`boolean`|`false`||
|simple|是否开启简单模式(点击选项即移动)|`boolean`|`false`||
|one-way|是否开启单向模式(仅可移动到目标选择框)|`boolean`|`false`||
|show-search|是否显示搜索框|`boolean`|`false`||
|show-select-all|是否展示全选勾选框|`boolean`|`true`|2.39.0|
|title|源选择框和目标选择框的标题|`string[]`|`['Source', 'Target']`||
|source-input-search-props|源选择框的搜索框配置|`object`|`-`|2.51.1|
> 仅列出常用项,低频属性按需查阅官方 API。
### `<transfer>` 事件
|事件名|描述|参数|
|---|---|---|
|change|目标选择框的值改变时触发|value: `string[]`|
|select|选中的值改变时触发|selected: `string[]`|
|search|用户搜索时触发|value: `string`<br>type: `'target'\|'source'`|
### `<transfer>` 插槽
|插槽名|描述|参数|版本|
|---|:---:|---|:---|
|source|源面板|data: `TransferItem[]`<br>selectedKeys: `string[]`<br>onSelect: `(value: string[]) => void`|2.39.0|
|source-title|源标题插槽|countTotal: `number`<br>countSelected: `number`<br>searchValue: `string`<br>checked: `boolean`<br>indeterminate: `boolean`<br>onSelectAllChange: `(checked:boolean) => void`<br>onClear: `() => void`|2.45.0|
|to-target-icon|移至目标图标插槽|-|2.52.0|
|to-source-icon|移至源图标插槽|-|2.52.0|
|target|目标面板|data: `TransferItem[]`<br>selectedKeys: `string[]`<br>onSelect: `(value: string[]) => void`|2.39.0|
|target-title|目标标题插槽|countTotal: `number`<br>countSelected: `number`<br>searchValue: `string`<br>checked: `boolean`<br>indeterminate: `boolean`<br>onSelectAllChange: `(checked:boolean) => void`<br>onClear: `() => void`|2.45.0|
|item|选项|value: `string`<br>label: `string`||
### TransferItem
|参数名|描述|类型|默认值|
|---|---|---|:---:|
|value|选项的值|`string`|`-`|
|label|选项的标签|`string`|`-`|
|disabled|是否禁用|`boolean`|`false`|
## 常用模式
- **基本使用**:数据穿梭框的基本用法。
- **搜索**:通过设置 `show-search` 来使用带搜索框的穿梭框,可以自定义搜索函数。
- **单向**:通过设置 `one-way` ,使用单向模式的穿梭框。
- **自定义选项渲染**:通过 `item` 插槽自定义选项的渲染内容。
- **简单模式**:通过设置 `simple` 来开启简单模式,点击选项即可移动。
- **树型穿梭框**:通过穿梭框自定义接口可以实现树型穿梭框。
- **自定义标题栏**:通过 `source-title` ,`target-title` 插槽自定义标题栏的渲染内容
## 最佳实践
- 新代码优先使用 Vue 3、Composition API 和 `<script setup lang="ts">`
- 模板属性使用 kebab-case事件使用 `@event-name`,插槽使用 `#slot-name`
- 不要套用 React 专属 API例如 JSX children、`Component.Sub``Form.useForm`
- 需要进入表单校验或提交流程的控件,优先放在 `a-form-item` 中并绑定明确的 `field`
- 输入值优先使用 `v-model`;范围、弹窗类状态使用组件文档中的命名 `v-model:*`