amis2/docs/zh-CN/components/form/list-select.md
2024-04-30 11:13:34 +08:00

9.9 KiB
Executable File

title description type group menuName icon order
ListSelect 列表 0 null ListSelect 29

ListSelect 一般用来实现选择,可以单选也可以多选,和 Radio/Checkboxs 最大的不同是在展现方面支持带图片。

基本用法

{
  "type": "form",
  "api": "/api/mock2/form/saveForm",
  "body": [
    {
      "type": "list-select",
      "name": "select",
      "label": "单选",
      "clearable": true,
      "options": [
        {
          "label": "Option A",
          "value": "a"
        },
        {
          "label": "Option B",
          "value": "b"
        }
      ]
    }
  ]
}

选项带图片

{
    "type": "form",
    "api": "/api/mock2/form/saveForm",
    "body": [
      {
        "type": "list-select",
        "name": "select",
        "label": "图片",
        "options": [
          {
            "label": "OptionA",
            "value": "a",
            "image": "https://suda.cdn.bcebos.com/amis/images/alice-macaw.jpg"
          },
          {
            "label": "OptionB",
            "value": "b",
            "image": "https://suda.cdn.bcebos.com/amis/images/alice-macaw.jpg"
          },
          {
            "label": "OptionC",
            "value": "c",
            "image": "https://suda.cdn.bcebos.com/amis/images/alice-macaw.jpg"
          },
          {
            "label": "OptionD",
            "value": "d",
            "image": "https://suda.cdn.bcebos.com/amis/images/alice-macaw.jpg"
          }
        ]
      }
    ]
}

属性表

当做选择器表单项使用时,除了支持 普通表单项属性表 中的配置以外,还支持下面一些配置

属性名 类型 默认值 说明
options Array<object>Array<string> 选项组
source stringAPI 动态选项组
multiple boolean false 多选
labelField string "label" 选项标签字段
valueField string "value" 选项值字段
joinValues boolean true 拼接值
extractValue boolean false 提取值
autoFill object 自动填充
listClassName string 支持配置 list div 的 css 类名。比如: flex justify-between

事件表

当前组件会对外派发以下事件,可以通过onEvent来监听这些事件,并通过actions来配置执行的动作,在actions中可以通过${事件参数名}${event.data.[事件参数名]}来获取事件产生的数据,详细请查看事件动作

[name]表示当前组件绑定的名称,即name属性,如果没有配置name属性,则通过value取值。

事件名称 事件参数 说明
change [name]: string 组件的值 选中值变化时触发

change

{
    "type": "form",
    "debug": true,
    "body": [
      {
        "type": "list-select",
        "name": "select",
        "label": "单选",
        "clearable": true,
        "options": [
          {
            "label": "Option A",
            "value": "a"
          },
          {
            "label": "Option B",
            "value": "b"
          }
        ],
        "onEvent": {
            "change": {
                "actions": [
                    {
                      "actionType": "toast",
                      "args": {
                          "msg": "${event.data.value|json}"
                      }
                    }
                ]
            }
        }
      }
    ]
  }

动作表

当前组件对外暴露以下特性动作,其他组件可以通过指定actionType: 动作名称componentId: 该组件id来触发这些动作,动作配置可以通过args: {动作配置项名称: xxx}来配置具体的参数,详细请查看事件动作

动作名称 动作配置 说明
clear - 清空
reset - 将值重置为初始值。6.3.0 及以下版本为resetValue
reload - 重新加载,调用 source,刷新数据域数据刷新(重新加载)
setValue value: string | string[] 更新的值 更新数据,开启multiple支持设置多项,开启joinValues时,多值用,分隔,否则多值用数组

clear

{
    "type": "form",
    "debug": true,
    "body": [
        {
          "type": "list-select",
          "name": "select",
          "label": "单选",
          "clearable": true,
          "options": [
            {
              "label": "Option A",
              "value": "a"
            },
            {
              "label": "Option B",
              "value": "b"
            }
          ],
          "value": "a",
          "id": "clear_text"
        },
        {
            "type": "button",
            "label": "清空",
            "onEvent": {
                "click": {
                    "actions": [
                        {
                            "actionType": "clear",
                            "componentId": "clear_text"
                        }
                    ]
                }
            }
        }
    ]
}

reset

如果配置了resetValue,则重置时使用resetValue的值,否则使用初始值。

{
    "type": "form",
    "debug": true,
    "body": [
        {
          "type": "list-select",
          "name": "select",
          "label": "单选",
          "clearable": true,
          "options": [
            {
              "label": "Option A",
              "value": "a"
            },
            {
              "label": "Option B",
              "value": "b"
            }
          ],
          "value": "a",
          "id": "reset_text"
        },
        {
            "type": "button",
            "label": "重置",
            "onEvent": {
                "click": {
                    "actions": [
                        {
                            "actionType": "reset",
                            "componentId": "reset_text"
                        }
                    ]
                }
            }
        }
    ]
}

reload

只有选择器模式支持,即配置source,用于重新加载选择器的数据源。

{
    "type": "form",
    "debug": true,
    "body": [
        {
          "type": "list-select",
          "name": "select",
          "label": "单选",
          "clearable": true,
          "id": "reload_type",
          "source": "/api/mock2/form/getOptions?waitSeconds=1",
          "value": "a"
        },
        {
            "type": "button",
            "label": "重新加载",
            "onEvent": {
                "click": {
                    "actions": [
                        {
                            "actionType": "reload",
                            "componentId": "reload_type"
                        }
                    ]
                }
            }
        }
    ]
}

setValue

{
    "type": "form",
    "debug": true,
    "body": [
        {
          "type": "list-select",
          "name": "select",
          "label": "单选",
          "clearable": true,
          "options": [
            {
              "label": "Option A",
              "value": "a"
            },
            {
              "label": "Option B",
              "value": "b"
            }
          ],
          "value": "a",
          "id": "setvalue_text"
        },
        {
            "type": "button",
            "label": "赋值",
            "onEvent": {
                "click": {
                    "actions": [
                        {
                            "actionType": "setValue",
                            "componentId": "setvalue_text",
                            "args": {
                                "value": "b"
                            }
                        }
                    ]
                }
            }
        }
    ]
}