Skip to content

DynamicField 动态表单

根据模型中某个字段的值,动态生成一组表单字段。

基础用法

当“类型”发生变化时,“动态字段”会根据 `returnFields` 返回的配置生成不同的输入框。

[
  {
    type: "select",
    name: "type",
    text: "类型",
    options: [
      {
        label: "类型A",
        value: "a"
      },
      {
        label: "类型B",
        value: "b"
      }
    ]
  },
  {
    type: "dynamic-field",
    text: "动态字段",
    dynamicKey: "type",
    returnFields: async (config, model, request) => {
        if (model.type === "a") {
          return [{ name: "fieldA", label: "字段A", defaultValue: "valueA" }];
        } else if (model.type === "b") {
          return [{ name: "fieldB", label: "字段B", defaultValue: "valueB" }];
        }
        return [];
      }
  }
]
显示配置

WARNING

特别注意:dynamic-field 的上一级配置必须设置 extensible: true,才能保存未在 schema 中声明的动态字段。

Attributes

参数说明类型可选值默认值
type组件类型stringdynamic-field
text表单标签string
dynamicKey监听的字段名。当该字段值变化时,触发 returnFields 重新计算string
returnFields返回字段列表的函数(config, model, request) => Promise<Field[]>

Field 对象结构

参数说明类型默认值
name字段名string
label标签名string
defaultValue默认值any

Powered by 腾讯视频会员平台技术中心