Skip to content

表单 Form

将一个或多个表单控件组合,实现具有收集、校验、保存提交功能的表单。

基础用法

基础的表单使用方式。

<template>
  <bp-form ref="formRef" :model="form" :label-col="3" :wrapper-col="21">
    <bp-form-item field="name" label="Name" :rules="[{ type: 'string', required: true, message: 'Please input your name.' }]">
      <bp-input :style="{ width: '100%' }" v-model="form.name" clearable placeholder="Please enter"></bp-input>
    </bp-form-item>
    <bp-form-item field="intro" label="Introduction">
      <bp-textarea
        :style="{ width: '100%' }"
        :maxlength="500"
        show-limit
        v-model="form.intro"
        clearable
        placeholder="Please enter"
      ></bp-textarea>
    </bp-form-item>
    <bp-form-item>
      <bp-space size="mini">
        <bp-button @click="onSubmit">Submit</bp-button>
        <bp-button type="text" @click="onReset">Reset</bp-button>
      </bp-space>
    </bp-form-item>
  </bp-form>
</template>

<script setup lang="ts">
import { ref } from "vue";

const formRef = ref();
const form = ref({
  name: "",
  year: 1,
  intro: "",
});

const onSubmit = async () => {
  const check = await formRef.value.validate();
};
const onReset = () => {
  formRef.value.resetFields();
};
</script>

Form 属性

model
表单数据对象
Object
-
rules
表单校验规则
Record<string, RuleItem[]>
-
layout
布局方式
Enum
horizontal
labelCol
标签区域栏位数
Number
4
wrapperCol
控件区域栏位数
Number
20

FormItem 属性

label
标签文本
String
-
field
数据对象路径
String
-
rules
表单校验规则
Record<string, RuleItem[]>
-
labelCol
标签区域栏位数
Number
4
wrapperCol
控件区域栏位数
Number
20

Form 方法

validate
表单异步验证
callback?:ValidateCallback
Promise<undefined | ValidateError[]>
resetFields
重置表单
-
-