Skip to content

CommonForm 通用表单

配置式表单。以下示例按 Vue 2 文档顺序复刻,参数继续使用 modelfieldscommandsoperateTypeelementProps

基础表单

覆盖旧示例的分组、文本、输入、选择、状态、级联、数值、日期与时间字段,并保留分组命令。

1、基本信息字段类型与 Vue 2 示例保持一致
编号
1001小时
英文名
汉语名
性别
有效期
创建时间
创建年份
角色
是否启用
2、业务信息
用户类型
经销商
业务类型
主打产品
所属区域
设计成本
创建日期区间
~
备注
用户头像
    审核人
    +
    测试时间
    时间选择
    Select
    时间区间
    ~
    运行结果可直接修改字段并执行按钮

    表单校验

    校验规则仍写在字段的 rules 中,通过组件实例的 validate() 统一校验;需要联动单个字段时使用 validateField(fields)

    底部命令显式配置 commandType: 'save' 后,组件会先校验表单,校验通过才发出命名事件。未配置该类型的命令保持原有行为:

    ts
    const commands = [{ text: '保存', command: 'save', commandType: 'save' }]
    1、基本信息字段类型与 Vue 2 示例保持一致
    编号
    1001小时
    英文名
    汉语名
    性别
    有效期
    创建时间
    创建年份
    角色
    是否启用
    2、业务信息
    用户类型
    经销商
    业务类型
    主打产品
    所属区域
    设计成本
    创建日期区间
    ~
    备注
    用户头像
      审核人
      +
      测试时间
      时间选择
      Select
      时间区间
      ~
      运行结果可直接修改字段并执行按钮

      查看状态

      operateType="view" 时所有可编辑字段自动禁用,同时隐藏底部命令。

      1、基本信息字段类型与 Vue 2 示例保持一致
      编号
      1001小时
      英文名
      汉语名
      性别
      有效期
      创建时间
      创建年份
      角色
      是否启用
      2、业务信息
      用户类型
      经销商
      业务类型
      主打产品
      所属区域
      设计成本
      创建日期区间
      ~
      备注
      用户头像
        审核人
        +
        测试时间
        时间选择
        Select
        时间区间
        ~
        运行结果可直接修改字段并执行按钮

        状态校验

        visibleValidatordisableValidator 兼容 Vue 2 的直接 model => boolean 写法。

        启用扩展字段
        英文名
        审核人
        启用说明
        运行结果可直接修改字段并执行按钮

        Attributes

        参数类型默认值说明
        loadingbooleanfalse表单加载状态
        operateTypeadd | edit | viewadd表单操作状态
        rowFieldsCountnumber2每行字段数
        modelobject{}响应式表单模型
        fieldsFormField[][]字段配置
        commandsCommonCommand[][]底部命令
        customCommandsCommonCommand[][]顶部命令
        customComponentsRecord<string, Component>{}自定义控件映射
        elementPropsobject{}透传给 ElForm
        extendPropsobject{}内容区和底部样式
        emitRegisterobject{}接收暴露方法

        Field Options

        参数说明
        type字段类型
        label标签文本
        dataFieldmodel 字段名
        columnSpan占用网格列数
        rulesElement Plus 表单规则
        visibleValidator显示校验,兼容直接接收 model
        disableValidator禁用校验,兼容直接接收 model
        elementProps透传字段控件属性
        extendProps业务扩展参数

        Field ExtendProps Options

        常用参数包括 optionsgroupTitlesubTitlegroupCommandsshowInFooterbeforeTextappendTexthelpTextfromFieldtoFieldonChangeonSelectonEnterinputNumberRange 必须同时配置 fromFieldtoField

        Field Type Options

        支持 inputtextstatusautoCompleteinputNumbertextAreaselectmultiSelectgroupedSelectcascadertreeSelectswitch、单选/多选、时间/日期及区间、groupTitlecustom 与上传类型。text 空值沿用旧版显示“暂无”;upload 绑定文件列表,avatarUploader 绑定图片 URL 并由上传回调更新。

        自定义字段的网格项和控件默认使用 width: 100%min-width: 0,可以在弹窗表单中占满当前列。大型可选表格通常更适合直接放在 Dialog 内容区,操作按钮放在 Dialog footer;内容高度和滚动仍由业务弹窗控制。

        旧版直接传入的 label-position 应迁移到 elementProps.labelPositionrowHeight 不再支持,请使用字段 elementPropsextendProps.formItemStyle 或表单 extendProps.contentStyle 调整布局;开发环境会对这些旧属性给出警告。

        Methods

        validatevalidateFieldclearValidateresetFieldsscrollToField;这些方法也会写入 emitRegister