Skip to content

引入组件 ​

局部引入

ts
// parent.vue
const FForm = defineAsyncComponent(() => import('@/components/formaui/f-form/f-form.vue'))
const FFormItem = defineAsyncComponent(() => import('@/components/formaui/f-form-item/f-form-item.vue'))

基础用法 ​

通过 ref 调用 validate 进行校验;isShowMessage 为 false 时由 f-form-item 展示错误信息

html
<f-form ref="formRef" :model="formData" :is-show-message="false">
  <f-form-item label="姓名" is-asterisk prop="name">
    <f-input
      v-model="formData.name"
      padding="0"
      bg-color="transparent"
      :show-border-bottom="false"
      placeholder="请输入姓名" />
  </f-form-item>
  <f-button width="400rpx" height="84rpx" @click="submit">提交</f-button>
</f-form>
ts
import { reactive, ref } from 'vue'
import type { FFormRule } from '@/components/formaui/f-form/types'

const formRef = ref()
const formData = reactive({ name: '' })
const rules: FFormRule[] = [
  {
    name: 'name',
    rule: ['required', 'isChinese', 'minLength:2', 'maxLength:6'],
    msg: ['请输入姓名', '姓名必须全部为中文', '姓名必须2个或以上字符', '姓名不能超过6个字符']
  }
]

const submit = () => {
  // 结合 form-item 展示错误时,第三个参数 checkAll 需为 true
  formRef.value?.validate(formData, rules, true).then((res) => {
    if (res.isPass) {
      uni.showToast({ title: '校验通过!', icon: 'none' })
    }
  })
}

顶部 Tip 提示 ​

isShowMessage 默认 true,messageType 为 tip 时从顶部弹出错误;设为 toast 则使用 uni.showToast

html
<f-form ref="formRef" :model="formData" message-type="tip">
  <!-- form-item ... -->
</f-form>

即时校验 ​

调用 immediateValidate(true, rules) 后,字段值变化时自动校验

ts
formRef.value?.immediateValidate(true, rules)

插槽 ​

名称说明
default表单内容

属性 ​

名称类型说明默认值
modelobject表单数据对象{}
rulesFFormRule[]表单验证规则(优先使用 form-item 的 rules)[]
bgColorstring背景颜色transparent
paddingstring内边距0
isShowMessageboolean是否弹出错误;为 false 时由 form-item 展示错误true
messageType`tip` | `toast`错误弹出方式tip
borderRadiusstring圆角0
disabledboolean是否禁用表单内交互false
tipTopnumber / string顶部错误提示 top(px)H5:44 / 其它:0
tipPaddingstring错误提示内边距20rpx
tipBgColorstring错误提示背景色#f74d54
tipFontSizestring错误提示字号28rpx
tipColorstring错误提示文字色#fff
tipBorderRadiusstring错误提示圆角12rpx
durationnumber / string错误消息显示时长(ms)2000

事件 ​

事件名说明回调参数
---

方法 ​

方法名说明传入参数
validate校验整个表单model、rules、checkAll(结合 item 展示错误时传 true)
validateField校验指定字段props、rules、model
immediateValidate开启/关闭即时校验isOpen、rules
clearValidate清除校验信息;不传则清除全部props(string 或 string[])

内置规则(rule) ​

可传入:required、isMobile、isEmail、isCarNo、isIdCard、isAmount、isNum、isChinese、isNotChinese、isEnglish、isEnAndNo、isEnOrNo、isSpecial、isEmoji、isDate、isUrl、isSame:key、range:[min,max]、minLength:n、maxLength:n、isKeyword:a,b