amis2/docs/zh-CN/components/form/fieldset.md

6.1 KiB
Executable File

title description type group menuName icon order
FieldSet 表单项集合 0 null FieldSet 20

FieldSet 是用于分组展示表单项的一种容器型组件,可以折叠。

基本用法

可以通过配置标题title和表单项数组body,实现多个表单项分组展示

{
  "type": "form",
  "api": "/api/mock2/form/saveForm",
  "body": [
    {
      "type": "fieldSet",
      "title": "基本配置",
      "body": [
        {
          "name": "text1",
          "type": "input-text",
          "label": "文本1"
        },

        {
          "name": "text2",
          "type": "input-text",
          "label": "文本2"
        }
      ]
    }
  ]
}

展示模式

可以通过设置mode调整展示模式,用法同 Form 展示模式

下面group我们配置了"mode": "horizontal",观察显示情况

{
  "type": "form",
  "body": [
    {
        "type": "input-text",
        "name": "text",
        "label": "文本"
    },
    {
        "type": "divider"
    },
    {
      "type": "fieldSet",
      "title": "基本配置",
      "mode": "horizontal",
      "body": [
        {
          "name": "text1",
          "type": "input-text",
          "label": "文本1"
        },

        {
          "name": "text2",
          "type": "input-text",
          "label": "文本2"
        }
      ]
    }
  ]
}

可折叠

配置"collapsable": true可以实现点击标题折叠显隐表单项。

{
  "type": "form",
  "api": "/api/mock2/form/saveForm",
  "body": [
    {
      "type": "fieldSet",
      "title": "基本配置",
      "collapsable": true,
      "body": [
        {
          "name": "text1",
          "type": "input-text",
          "label": "文本1"
        },

        {
          "name": "text2",
          "type": "input-text",
          "label": "文本2"
        }
      ]
    }
  ]
}

默认是否折叠

默认是展开的,如果想默认折叠,那么配置"collapsed": true默认折叠。

{
  "type": "form",
  "api": "/api/mock2/form/saveForm",
  "body": [
    {
      "type": "fieldSet",
      "title": "基本配置",
      "collapsable": true,
      "collapsed": true,
      "body": [
        {
          "name": "text1",
          "type": "input-text",
          "label": "文本1"
        },

        {
          "name": "text2",
          "type": "input-text",
          "label": "文本2"
        }
      ]
    }
  ]
}

标题放底部

fieldSet 的另一种标题展现样式,不同的是展开的时候收起文本是在下方的,如果组件比较多的时候更容易收起。

设置 "titlePosition": "bottom"

{
  "type": "form",
  "api": "/api/mock2/form/saveForm",
  "body": [
    {
      "type": "fieldSet",
      "title": "展开更多设置",
      "collapseTitle": "收起设置",
      "titlePosition": "bottom",
      "collapsable": true,
      "collapsed": true,
      "body": [
        {
          "name": "text1",
          "type": "input-text",
          "label": "文本1"
        },

        {
          "name": "text2",
          "type": "input-text",
          "label": "文本2"
        }
      ]
    }
  ]
}

嵌套使用

{
  "type": "form",
  "api": "/api/mock2/form/saveForm",
  "body": [
    {
      "type": "fieldSet",
      "title": "基本配置",
      "collapsable": true,
      "body": [
        {
          "name": "text1",
          "type": "input-text",
          "label": "文本1"
        },

        {
          "name": "text2",
          "type": "input-text",
          "label": "文本2"
        },

        {
          "type": "fieldSet",
          "title": "基本配置",
          "collapsable": true,
          "collapsed": true,
          size: 'base',
          "body": [
            {
              "name": "text1",
              "type": "input-text",
              "label": "文本1"
            },

            {
              "name": "text2",
              "type": "input-text",
              "label": "文本2"
            }
          ]
        }
      ]
    }
  ]
}

属性表

属性名 类型 默认值 说明
className string CSS 类名
headingClassName string 标题 CSS 类名
bodyClassName string 内容区域 CSS 类名
title SchemaNode 标题
body Array<表单项> 表单项集合
mode string 展示默认,同 Form 中的模式
collapsable boolean false 是否可折叠
collapsed booelan false 默认是否折叠
collapseTitle SchemaNode 收起 收起的标题
size string `` 大小,支持 xs、sm、base、lg、xl