<template> <a-form :label-col="labelCol" :wrapper-col="wrapperCol"> <a-form-item label="公众号配置" v-bind="validateInfos.name"> <a-input v-model:value="modelRef.name" /> </a-form-item> <a-form-item :wrapper-col="{ span: 14, offset: 4 }"> <a-button type="primary" @click.prevent="onSubmit">提交</a-button> <a-button style="margin-left: 10px" @click="reset">重置</a-button> </a-form-item> </a-form> </template> <script lang="ts"> import { defineComponent, reactive, toRaw } from "vue"; import { Form } from "ant-design-vue"; const useForm = Form.useForm; export default defineComponent({ name:'ContentFooters', setup() { const modelRef = reactive({ name: "", sub: { name: "", }, }); const { resetFields, validate, validateInfos } = useForm( modelRef, reactive({ name: [ { required: true, message: "Please input name", }, ], "sub.name": [ { required: true, message: "Please input sub name", }, ], }) ); const onSubmit = () => { validate() .then((res) => { console.log(res, toRaw(modelRef)); }) .catch((err) => { console.log("error", err); }); }; const reset = () => { resetFields(); }; return { labelCol: { span: 4 }, wrapperCol: { span: 14 }, validateInfos, reset, modelRef, onSubmit, }; }, }) </script>