组件说明
链式下拉组件用于实现多级联动选择,适用于省市区、分类等场景。
用法示例
use plugin\xbCode\builder\Builder;
use plugin\xbCode\builder\Renders\Form;
Builder::form(function (Form $builder) {
// 基础用法 - 静态数据
$builder->addRowChainedSelect('area', '地区选择', '', function($component) {
$component->options([
[
'label' => '广东省',
'value' => '44',
'children' => [
['label' => '广州市', 'value' => '4401'],
['label' => '深圳市', 'value' => '4403']
]
],
[
'label' => '湖南省',
'value' => '43',
'children' => [
['label' => '长沙市', 'value' => '4301'],
['label' => '株洲市', 'value' => '4302']
]
]
]);
$component->joinValues(false);
$component->extractValue(true);
});
// 使用API动态加载
$builder->addRowChainedSelect('category', '分类', '', [
'source' => '/api/category/list',
'labelField' => 'name',
'valueField' => 'id',
'delimiter' => ','
]);
});
组件参数
| 参数名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| name | string | - | 字段名称 |
| label | string | - | 字段标签 |
| value | mixed | - | 默认值 |
| options | array | [] | 选项组,支持children嵌套 |
| source | string | - | 动态选项组API地址 |
| autoComplete | string | - | 自动完成API地址 |
| delimiter | string | ',' | 值拼接分隔符 |
| labelField | string | 'label' | 选项标签字段名 |
| valueField | string | 'value' | 选项值字段名 |
| joinValues | bool | true | 是否拼接值 |
| extractValue | bool | false | 是否提取值 |
| required | bool | false | 是否必填 |
| disabled | bool | false | 是否禁用 |
| clearable | bool | false | 是否可清除 |
使用说明
- options数据结构需要包含children字段来表示下级选项
- source支持动态API,后端需返回符合格式的树形数据
- joinValues为true时,多个值会用delimiter连接成字符串
- extractValue为true时,只提取值不包含其他信息
- 适用于省市区、多级分类等联动场景