np-form 表单

配置驱动视图的表单,通过 columns 动态生成表单,用法简单且具有高扩展性。

基础用法

表单项主要通过 label, key, type 用以设置表单显示标签、表单属性和表单项类型。 更多配置在设置了 type 表单项类型后,根据实际类型的 props 而定。

浏览器不支持,请手动复制 basic.vue

组件配置

Props

属性说明类型默认值
option配置参数FormOption-

Methods

通过 ref 获取表单实例后,可调用以下主动方法,详见 主动方法。

方法说明类型
submit主动提交表单() => Promise<void>
reset重置表单并触发 onReset() => Promise<void>
validateFields校验指定字段,支持 __ 前缀匹配(fields: string | string[]) => Promise<void>

类型定义

组件导出以下类型定义

import type { FormOption } from 'naive-plus'

FormOption

属性说明类型默认值
columns表单项Array<FormColumn>-
onSubmit提交事件(data)=>Promise<void>-
onReset重置事件(data)=>Promise<void>-
props表单属性object-
grid栅格布局配置,详见 栅格布局object-

FormColumn

属性说明类型默认值
label字段标签名称string / VNode-
key表单字段名称string-
type表单项类型string / (data)=>VNode-
defaultValue表单项默认值any-
options字典项,例如 checkbox、select 等Array<any> / ()=>Promise<Array<any>>-
props组件 Props,会透传给实际组件object-
formItemProps表单项 Props,会透传给 n-form-item-gi,支持 span / offsetobject-

全局默认值

可通过 NpConfigProvider 统一配置 enterSubmitMode / grid / props,以及每个表单项的默认 column,option 中的同名配置优先级更高。

<np-config-provider
  :component-options="{
    Form: {
      enterSubmitMode: 'all',
      grid: { cols: 24, xGap: 12 },
      props: { labelWidth: 100 },
      column: { formItemProps: { labelWidth: 100 }, props: { size: 'small' } },
    },
  }"
>
  <np-form v-model="data" :option="option" />
</np-config-provider>