组件说明
数组表单组件用于动态添加、删除多个表单项,支持拖拽排序。
用法示例
use plugin\xbCode\builder\Builder;
use plugin\xbCode\builder\Renders\Form;
Builder::form(function (Form $builder) {
// 基础用法
$builder->addRowArray('tags', '标签列表', [], function($component) {
$component->items('input-text'); // 设置单项为文本输入框
$component->addable(true);
$component->removable(true);
$component->minLength(1);
$component->maxLength(10);
});
// 配置对象类型的数组项
$builder->addRowArray('contacts', '联系人', [], [
'items' => [
'type' => 'group',
'body' => [
['type' => 'input-text', 'name' => 'name', 'label' => '姓名'],
['type' => 'input-text', 'name' => 'phone', 'label' => '电话']
]
],
'draggable' => true,
'addButtonText' => '添加联系人'
]);
});
组件参数
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| name | string | - | 字段名称 |
| label | string | - | 字段标签 |
| value | array | [] | 默认值数组 |
| items | mixed | - | 单项表单类型,可以是字符串类型名或完整配置 |
| addable | bool | true | 是否可新增 |
| removable | bool | true | 是否可删除 |
| draggable | bool | false | 是否可以拖动排序 |
| draggableTip | string | - | 可拖拽的提示文字 |
| addButtonText | string | '新增' | 新增按钮文字 |
| minLength | int | - | 限制最小长度 |
| maxLength | int | - | 限制最大长度 |
| scaffold | mixed | - | 新增成员时的默认值 |
| required | bool | false | 是否必填 |
| disabled | bool | false | 是否禁用 |
使用说明
- items可以是简单的类型名(如'input-text'),也可以是完整的表单配置对象
- 设置draggable为true时,可以通过拖拽调整项目顺序
- scaffold用于设置新增项的默认值
- minLength和maxLength可以限制数组项数量