UNPKG

uv-ui

Version:

基于vue3的移动端组件库

2 lines (1 loc) 879 B
"use strict";const t=require("vue"),n=require("../cell-group/index.cjs"),u={class:"uv-form"},f={name:"UvForm"},p=Object.assign(f,{props:{model:Object,rules:{type:Object},labelPosition:{type:String,default:"left"},labelWidth:{type:Number},card:{type:Boolean,default:!1},gap:{type:Boolean,default:!1}},setup(s,{expose:o}){const r=s,a=[],d=e=>{a.push(e)},i=e=>{a.splice(a.indexOf(e),1)};return t.provide("form",{props:r,fields:a,addField:d,removeField:i}),o({validate:()=>new Promise((e,c)=>{t.nextTick(()=>{a.map(l=>l.validate()).every(l=>l===!0)?e(!0):c(!1)})}),resetFields:()=>{!r.model||a.forEach(e=>e.resetField())},clearValidate:()=>{a.forEach(e=>e.clearValidate())}}),(e,c)=>(t.openBlock(),t.createElementBlock("div",u,[t.createVNode(t.unref(n),{card:s.card,gap:s.gap},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},8,["card","gap"])]))}});module.exports=p;