<script lang="ts" setup>
import { ref } from "vue";
import { Form, useForm, FormItem } from "@carefrees/form-utils-vue";
import "@carefrees/form-utils-vue/assets/index.css"
const formData = ref<{ a: string, b: string }>({
a: '',
b: ''
})
const form = useForm();
const onSubmit = async () => {
try {
console.log(form, formData)
const result = await form.value.validate()
if (result) {
console.log(result)
}
} catch (error) {
console.log(error)
}
}
const onSetValue = () => {
formData.value.a = '123'
formData.value.b = '456'
// form.value.updatedFieldValue('b', '123')
}
const onSetValue2 = () => {
// formData.value.a = ''
// formData.value.b = ''
formData.value = {
a: "21",
b: "22"
}
// form.value.updatedFieldValue('b', '123')
}
const onSetValue3 = () => {
form.value.updatedFieldValue('b', '')
}
const rules1 = ref([{ required: true, message: "必填" }])
const rules2 = ref([{ required: true, message: "必填" }])
const onUpdateRules = () => {
rules1.value = [{ required: true, message: "必填2" }]
rules2.value = [{ required: false, message: "不必填" }]
}
</script>
<template>
<Form :formData='formData' :form='form'>
<FormItem label='内容' input='input' name='a' :rules='rules1' />
<FormItem :input='Input' name='b' :rules='rules2'>
<template #label>
<span>s内容2</span>
</template>
<template #helpText>
<span>helpText</span>
</template>
<template #extra>
<span>extra</span>
</template>
</FormItem>
<FormItem name='d'>
<template #label>
<span>d</span>
</template>
<template #helpText>
<span>helpText</span>
</template>
<template #default>
<input placeholder='输入内容' v-model='formData.a' />
</template>
<template #extra>
<span>extra</span>
</template>
</FormItem>
<button type='button' @click='onSubmit'>验证</button>
<button type='button' @click='onSetValue'>设置值</button>
<button type='button' @click='onSetValue2'>设置值2</button>
<button type='button' @click='onSetValue3'>设置值3</button>
<button type='button' @click='onUpdateRules'>更新规则</button>
</Form>
</template>
<style scoped></style>