数组表单项

组件说明

数组表单组件用于动态添加、删除多个表单项,支持拖拽排序。

用法示例

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' => '添加联系人'
    ]);
});

组件参数

参数名类型默认值说明
namestring-字段名称
labelstring-字段标签
valuearray[]默认值数组
itemsmixed-单项表单类型,可以是字符串类型名或完整配置
addablebooltrue是否可新增
removablebooltrue是否可删除
draggableboolfalse是否可以拖动排序
draggableTipstring-可拖拽的提示文字
addButtonTextstring'新增'新增按钮文字
minLengthint-限制最小长度
maxLengthint-限制最大长度
scaffoldmixed-新增成员时的默认值
requiredboolfalse是否必填
disabledboolfalse是否禁用

使用说明

  1. items可以是简单的类型名(如'input-text'),也可以是完整的表单配置对象
  2. 设置draggable为true时,可以通过拖拽调整项目顺序
  3. scaffold用于设置新增项的默认值
  4. minLength和maxLength可以限制数组项数量