<article data-v-608e4900="">
    <section class="markdown">
        <h1>Form <span class="subtitle">表单</span></h1>
        <section class="markdown">
            <p>高性能表单控件，自带数据域管理。包含数据录入、校验以及对应样式。</p>
            <h2 id="何时使用">何时使用</h2>
            <ul>
                <li>用于创建一个实体或收集信息。</li>
                <li>需要对输入的数据类型进行校验时。</li>
            </ul>
            <h2 id="表单">表单</h2>
            <p>我们为 <code>form</code> 提供了以下三种排列方式：</p>
            <ul>
                <li>水平排列：标签和表单控件水平排列；（默认）</li>
                <li>垂直排列：标签和表单控件上下垂直排列；</li>
                <li>行内排列：表单项水平行内排列。</li>
            </ul>
            <h2 id="表单域">表单域</h2>
            <p>表单一定会包含表单域，表单域可以是输入控件，标准表单域，标签，下拉菜单，文本域等。</p>
        </section>
    </section>
    <section class="markdown">
        <h2>代码演示</h2>
    </section>
    <div class="ant-row" data-v-608e4900="" style="margin-left: -8px; margin-right: -8px; row-gap: 0px;">
        <div class="ant-col ant-col-24 code-boxes-col-1-1" style="padding-left: 8px; padding-right: 8px;">
            <section class="code-box" id="components-form-demo-basic">
                <section class="code-box-demo">
                    <form class="ant-form ant-form-horizontal">
                        <div class="ant-row ant-form-item" style="row-gap: 0px;">
                            <div class="ant-col ant-col-4 ant-form-item-label"><label class="" title="Activity name">Activity name<!----></label></div>
                            <div class="ant-col ant-col-14 ant-form-item-control">
                                <div class="ant-form-item-control-input">
                                    <div class="ant-form-item-control-input-content"><input type="text" class="ant-input"></div>
                                    <!---->
                                </div>
                                <!---->
                                <!---->
                            </div>
                        </div>
                        <div class="ant-row ant-form-item" style="row-gap: 0px;">
                            <div class="ant-col ant-col-4 ant-form-item-label"><label class="" title="Activity zone">Activity zone<!----></label></div>
                            <div class="ant-col ant-col-14 ant-form-item-control">
                                <div class="ant-form-item-control-input">
                                    <div class="ant-form-item-control-input-content">
                                        <div class="ant-select ant-select-single ant-select-show-arrow">
                                            <!---->
                                            <!---->
                                            <div class="ant-select-selector"><span class="ant-select-selection-search"><input id="rc_select_11" autocomplete="off" class="ant-select-selection-search-input" role="combobox" aria-haspopup="listbox" aria-owns="rc_select_11_list" aria-autocomplete="list" aria-controls="rc_select_11_list" aria-activedescendant="rc_select_11_list_0" readonly="" unselectable="on" type="search" style="opacity: 0;"></span>
                                                <!----><span class="ant-select-selection-placeholder">please select your zone</span></div><span class="ant-select-arrow" unselectable="on" aria-hidden="true" style="user-select: none;"><span role="img" aria-label="down" class="anticon anticon-down ant-select-suffix"><svg focusable="false" class="" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></span></span>
                                            <!---->
                                        </div>
                                    </div>
                                    <!---->
                                </div>
                                <!---->
                                <!---->
                            </div>
                        </div>
                        <div class="ant-row ant-form-item" style="row-gap: 0px;">
                            <div class="ant-col ant-col-4 ant-form-item-label"><label class="" title="Activity time">Activity time<!----></label></div>
                            <div class="ant-col ant-col-14 ant-form-item-control">
                                <div class="ant-form-item-control-input">
                                    <div class="ant-form-item-control-input-content"><span class="ant-calendar-picker" style="min-width: 195px; width: 100%;"><!----><div><input readonly="" placeholder="Pick a date" class="ant-calendar-picker-input ant-input"><!----><span role="img" aria-label="calendar" class="anticon anticon-calendar ant-calendar-picker-icon"><svg focusable="false" class="" data-icon="calendar" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z"></path></svg></span></div>
                                    </span>
                                </div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
        </div>
        <div class="ant-row ant-form-item" style="row-gap: 0px;">
            <div class="ant-col ant-col-4 ant-form-item-label"><label class="" title="Instant delivery">Instant delivery<!----></label></div>
            <div class="ant-col ant-col-14 ant-form-item-control">
                <div class="ant-form-item-control-input">
                    <div class="ant-form-item-control-input-content"><button type="button" role="switch" aria-checked="false" class="ant-switch"><!----><span class="ant-switch-inner"><!----></span></button></div>
                    <!---->
                </div>
                <!---->
                <!---->
            </div>
        </div>
        <div class="ant-row ant-form-item" style="row-gap: 0px;">
            <div class="ant-col ant-col-4 ant-form-item-label"><label class="" title="Activity type">Activity type<!----></label></div>
            <div class="ant-col ant-col-14 ant-form-item-control">
                <div class="ant-form-item-control-input">
                    <div class="ant-form-item-control-input-content">
                        <div class="ant-checkbox-group"><label class="ant-checkbox-wrapper"><span class="ant-checkbox"><input type="checkbox" class="ant-checkbox-input" value="1"><span class="ant-checkbox-inner"></span></span><span>Online</span></label><label class="ant-checkbox-wrapper"><span class="ant-checkbox"><input type="checkbox" class="ant-checkbox-input" value="2"><span class="ant-checkbox-inner"></span></span><span>Promotion</span></label>
                            <label class="ant-checkbox-wrapper"><span class="ant-checkbox"><input type="checkbox" class="ant-checkbox-input" value="3"><span class="ant-checkbox-inner"></span></span><span>Offline</span></label>
                        </div>
                    </div>
                    <!---->
                </div>
                <!---->
                <!---->
            </div>
        </div>
        <div class="ant-row ant-form-item" style="row-gap: 0px;">
            <div class="ant-col ant-col-4 ant-form-item-label"><label class="" title="Resources">Resources<!----></label></div>
            <div class="ant-col ant-col-14 ant-form-item-control">
                <div class="ant-form-item-control-input">
                    <div class="ant-form-item-control-input-content">
                        <div class="ant-radio-group ant-radio-group-outline ant-radio-group-default"><label class="ant-radio-wrapper"><span class="ant-radio"><input type="radio" class="ant-radio-input" value="1"><span class="ant-radio-inner"></span></span><span>Sponsor</span></label><label class="ant-radio-wrapper"><span class="ant-radio"><input type="radio" class="ant-radio-input" value="2"><span class="ant-radio-inner"></span></span><span>Venue</span></label></div>
                    </div>
                    <!---->
                </div>
                <!---->
                <!---->
            </div>
        </div>
        <div class="ant-row ant-form-item" style="row-gap: 0px;">
            <div class="ant-col ant-col-4 ant-form-item-label"><label class="" title="Activity form">Activity form<!----></label></div>
            <div class="ant-col ant-col-14 ant-form-item-control">
                <div class="ant-form-item-control-input">
                    <div class="ant-form-item-control-input-content"><input type="textarea" class="ant-input"></div>
                    <!---->
                </div>
                <!---->
                <!---->
            </div>
        </div>
        <div class="ant-row ant-form-item" style="row-gap: 0px;">
            <!---->
            <div class="ant-col ant-col-14 ant-col-offset-4 ant-form-item-control">
                <div class="ant-form-item-control-input">
                    <div class="ant-form-item-control-input-content"><button class="ant-btn ant-btn-primary" type="button"><!----><span>Create</span></button><button class="ant-btn" type="button" style="margin-left: 10px;"><!----><span>Cancel</span></button></div>
                    <!---->
                </div>
                <!---->
                <!---->
            </div>
        </div>
        </form>
        </section>
        <section class="code-box-meta markdown">
            <div class="code-box-title"><a href="#components-form-demo-basic">基本使用</a></div>
            <div class="code-box-description">
                <p>基本的表单数据域控制展示，包含布局、初始化、验证、提交。</p>
            </div>
        </section>
        <section class="highlight-wrapper">
            <div class="highlight">
                <pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form</span> <span class="token attr-name">:model</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState<span class="token punctuation">"</span></span> <span class="token attr-name">:label-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>labelCol<span class="token punctuation">"</span></span> <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>wrapperCol<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity name<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.name<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity zone<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-select</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.region<span class="token punctuation">"</span></span> <span class="token attr-name">placeholder</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>please select your zone<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-select-option</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>shanghai<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Zone one<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-select-option</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-select-option</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>beijing<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Zone two<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-select-option</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-select</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity time<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-date-picker</span>
        <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.date1<span class="token punctuation">"</span></span>
        <span class="token attr-name">show-time</span>
        <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>date<span class="token punctuation">"</span></span>
        <span class="token attr-name">placeholder</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Pick a date<span class="token punctuation">"</span></span>
        <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">width</span><span class="token punctuation">:</span> 100%</span><span class="token punctuation">"</span></span></span>
      <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Instant delivery<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-switch</span> <span class="token attr-name"><span class="token namespace">v-model:</span>checked</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.delivery<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox-group</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>1<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Online<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>2<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Promotion<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>3<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Offline<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox-group</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Resources<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-radio-group</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.resource<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-radio</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>1<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Sponsor<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-radio</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-radio</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>2<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Venue<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-radio</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-radio-group</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity form<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.desc<span class="token punctuation">"</span></span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>textarea<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>{ span: 14, offset: 4 }<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>primary<span class="token punctuation">"</span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>onSubmit<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Create<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">margin-left</span><span class="token punctuation">:</span> 10px</span><span class="token punctuation">"</span></span></span><span class="token punctuation">&gt;</span></span>Cancel<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ts<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
<span class="token keyword">import</span> <span class="token punctuation">{</span> Moment <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'moment'</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> defineComponent<span class="token punctuation">,</span> reactive<span class="token punctuation">,</span> toRaw<span class="token punctuation">,</span> UnwrapRef <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'vue'</span><span class="token punctuation">;</span>
<span class="token keyword">interface</span> <span class="token class-name">FormState</span> <span class="token punctuation">{</span>
  name<span class="token operator">:</span> string<span class="token punctuation">;</span>
  region<span class="token operator">:</span> string <span class="token operator">|</span> <span class="token keyword">undefined</span><span class="token punctuation">;</span>
  date1<span class="token operator">:</span> Moment <span class="token operator">|</span> <span class="token keyword">undefined</span><span class="token punctuation">;</span>
  delivery<span class="token operator">:</span> boolean<span class="token punctuation">;</span>
  type<span class="token operator">:</span> string<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
  resource<span class="token operator">:</span> string<span class="token punctuation">;</span>
  desc<span class="token operator">:</span> string<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token function">defineComponent</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
  <span class="token function">setup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">const</span> formState<span class="token operator">:</span> UnwrapRef<span class="token operator">&lt;</span>FormState<span class="token operator">&gt;</span> <span class="token operator">=</span> <span class="token function">reactive</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
      name<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
      region<span class="token operator">:</span> <span class="token keyword">undefined</span><span class="token punctuation">,</span>
      date1<span class="token operator">:</span> <span class="token keyword">undefined</span><span class="token punctuation">,</span>
      delivery<span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
      type<span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
      resource<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
      desc<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">onSubmit</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'submit!'</span><span class="token punctuation">,</span> <span class="token function">toRaw</span><span class="token punctuation">(</span>formState<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">return</span> <span class="token punctuation">{</span>
      labelCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">4</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      wrapperCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">14</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      formState<span class="token punctuation">,</span>
      onSubmit<span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</span></span>
</code></pre>
            </div>
        </section>
        </section>
        <section class="code-box" id="components-form-demo-lable-width">
            <section class="code-box-demo">
                <form class="ant-form ant-form-horizontal">
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <div class="ant-col ant-form-item-label" style="width: 150px;"><label class="" title="Activity name">Activity name<!----></label></div>
                        <div class="ant-col ant-col-14 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content"><input type="text" class="ant-input"></div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <div class="ant-col ant-form-item-label" style="width: 150px;"><label class="" title="Instant delivery">Instant delivery<!----></label></div>
                        <div class="ant-col ant-col-14 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content"><button type="button" role="switch" aria-checked="false" class="ant-switch"><!----><span class="ant-switch-inner"><!----></span></button></div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <div class="ant-col ant-form-item-label" style="width: 150px;"><label class="" title="Activity type">Activity type<!----></label></div>
                        <div class="ant-col ant-col-14 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content">
                                    <div class="ant-checkbox-group"><label class="ant-checkbox-wrapper"><span class="ant-checkbox"><input type="checkbox" class="ant-checkbox-input" value="1"><span class="ant-checkbox-inner"></span></span><span>Online</span></label><label class="ant-checkbox-wrapper"><span class="ant-checkbox"><input type="checkbox" class="ant-checkbox-input" value="2"><span class="ant-checkbox-inner"></span></span><span>Promotion</span></label>
                                        <label class="ant-checkbox-wrapper"><span class="ant-checkbox"><input type="checkbox" class="ant-checkbox-input" value="3"><span class="ant-checkbox-inner"></span></span><span>Offline</span></label>
                                    </div>
                                </div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <div class="ant-col ant-form-item-label" style="width: 150px;"><label class="" title="Resources">Resources<!----></label></div>
                        <div class="ant-col ant-col-14 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content">
                                    <div class="ant-radio-group ant-radio-group-outline ant-radio-group-default"><label class="ant-radio-wrapper"><span class="ant-radio"><input type="radio" class="ant-radio-input" value="1"><span class="ant-radio-inner"></span></span><span>Sponsor</span></label><label class="ant-radio-wrapper"><span class="ant-radio"><input type="radio" class="ant-radio-input" value="2"><span class="ant-radio-inner"></span></span><span>Venue</span></label></div>
                                </div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <div class="ant-col ant-form-item-label" style="width: 150px;"><label class="" title="Activity form">Activity form<!----></label></div>
                        <div class="ant-col ant-col-14 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content"><input type="textarea" class="ant-input"></div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <!---->
                        <div class="ant-col ant-col-14 ant-col-offset-4 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content"><button class="ant-btn ant-btn-primary" type="button"><!----><span>Create</span></button><button class="ant-btn" type="button" style="margin-left: 10px;"><!----><span>Cancel</span></button></div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                </form>
            </section>
            <section class="code-box-meta markdown">
                <div class="code-box-title"><a href="#components-form-demo-lable-width">固定 Label 宽度</a></div>
                <div class="code-box-description">
                    <p>通过 labelCol.style 设置固定宽度</p>
                </div>
            </section>
            <section class="highlight-wrapper">
                <div class="highlight">
                    <pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form</span> <span class="token attr-name">:model</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState<span class="token punctuation">"</span></span> <span class="token attr-name">:label-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>labelCol<span class="token punctuation">"</span></span> <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>wrapperCol<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity name<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.name<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Instant delivery<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-switch</span> <span class="token attr-name"><span class="token namespace">v-model:</span>checked</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.delivery<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox-group</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>1<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Online<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>2<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Promotion<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>3<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Offline<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox-group</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Resources<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-radio-group</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.resource<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-radio</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>1<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Sponsor<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-radio</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-radio</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>2<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Venue<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-radio</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-radio-group</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity form<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.desc<span class="token punctuation">"</span></span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>textarea<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>{ span: 14, offset: 4 }<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>primary<span class="token punctuation">"</span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>onSubmit<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Create<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">margin-left</span><span class="token punctuation">:</span> 10px</span><span class="token punctuation">"</span></span></span><span class="token punctuation">&gt;</span></span>Cancel<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ts<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
<span class="token keyword">import</span> <span class="token punctuation">{</span> defineComponent<span class="token punctuation">,</span> reactive<span class="token punctuation">,</span> toRaw<span class="token punctuation">,</span> UnwrapRef <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'vue'</span><span class="token punctuation">;</span>
<span class="token keyword">interface</span> <span class="token class-name">FormState</span> <span class="token punctuation">{</span>
  name<span class="token operator">:</span> string<span class="token punctuation">;</span>
  delivery<span class="token operator">:</span> boolean<span class="token punctuation">;</span>
  type<span class="token operator">:</span> string<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
  resource<span class="token operator">:</span> string<span class="token punctuation">;</span>
  desc<span class="token operator">:</span> string<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token function">defineComponent</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
  <span class="token function">setup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">const</span> formState<span class="token operator">:</span> UnwrapRef<span class="token operator">&lt;</span>FormState<span class="token operator">&gt;</span> <span class="token operator">=</span> <span class="token function">reactive</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
      name<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
      delivery<span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
      type<span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
      resource<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
      desc<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">onSubmit</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'submit!'</span><span class="token punctuation">,</span> <span class="token function">toRaw</span><span class="token punctuation">(</span>formState<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">return</span> <span class="token punctuation">{</span>
      labelCol<span class="token operator">:</span> <span class="token punctuation">{</span> style<span class="token operator">:</span> <span class="token punctuation">{</span> width<span class="token operator">:</span> <span class="token string">'150px'</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      wrapperCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">14</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      formState<span class="token punctuation">,</span>
      onSubmit<span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</span></span>
</code></pre>
                </div>
            </section>
        </section>
        <section class="code-box" id="components-form-demo-horizontal-login">
            <section class="code-box-demo">
                <form class="ant-form ant-form-inline">
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <!---->
                        <div class="ant-col ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content"><span class="ant-input-affix-wrapper"><span class="ant-input-prefix"><span role="img" aria-label="user" class="anticon anticon-user" style="color: rgba(0, 0, 0, 0.25);"><svg focusable="false" class="" data-icon="user" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><path d="M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z"></path></svg></span></span>
                                    <input placeholder="Username" type="text" class="ant-input">
                                    <!---->
                                    </span>
                                </div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <!---->
                        <div class="ant-col ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content"><span class="ant-input-affix-wrapper"><span class="ant-input-prefix"><span role="img" aria-label="lock" class="anticon anticon-lock" style="color: rgba(0, 0, 0, 0.25);"><svg focusable="false" class="" data-icon="lock" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><path d="M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z"></path></svg></span></span>
                                    <input placeholder="Password" type="password" class="ant-input">
                                    <!---->
                                    </span>
                                </div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <!---->
                        <div class="ant-col ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content"><button disabled="" class="ant-btn ant-btn-primary" type="submit"><!----><span>Log in</span></button></div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                </form>
            </section>
            <section class="code-box-meta markdown">
                <div class="code-box-title"><a href="#components-form-demo-horizontal-login">内联登录栏</a></div>
                <div class="code-box-description">
                    <p>水平登录栏，常用在顶部导航栏中。</p>
                </div>
            </section>
            <section class="highlight-wrapper">
                <div class="highlight">
                    <pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form</span>
    <span class="token attr-name">layout</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>inline<span class="token punctuation">"</span></span>
    <span class="token attr-name">:model</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState<span class="token punctuation">"</span></span>
    <span class="token attr-name">@finish</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>handleFinish<span class="token punctuation">"</span></span>
    <span class="token attr-name">@finishFailed</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>handleFinishFailed<span class="token punctuation">"</span></span>
  <span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.user<span class="token punctuation">"</span></span> <span class="token attr-name">placeholder</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Username<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>template</span> <span class="token attr-name">#prefix</span><span class="token punctuation">&gt;</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>UserOutlined</span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">color</span><span class="token punctuation">:</span> <span class="token function">rgba</span><span class="token punctuation">(</span>0<span class="token punctuation">,</span> 0<span class="token punctuation">,</span> 0<span class="token punctuation">,</span> 0.25<span class="token punctuation">)</span></span><span class="token punctuation">"</span></span></span> <span class="token punctuation">/&gt;</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-input</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.password<span class="token punctuation">"</span></span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>password<span class="token punctuation">"</span></span> <span class="token attr-name">placeholder</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Password<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>template</span> <span class="token attr-name">#prefix</span><span class="token punctuation">&gt;</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>LockOutlined</span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">color</span><span class="token punctuation">:</span> <span class="token function">rgba</span><span class="token punctuation">(</span>0<span class="token punctuation">,</span> 0<span class="token punctuation">,</span> 0<span class="token punctuation">,</span> 0.25<span class="token punctuation">)</span></span><span class="token punctuation">"</span></span></span> <span class="token punctuation">/&gt;</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-input</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span>
        <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>primary<span class="token punctuation">"</span></span>
        <span class="token attr-name">html-type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>submit<span class="token punctuation">"</span></span>
        <span class="token attr-name">:disabled</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.user === <span class="token punctuation">'</span><span class="token punctuation">'</span> || formState.password === <span class="token punctuation">'</span><span class="token punctuation">'</span><span class="token punctuation">"</span></span>
      <span class="token punctuation">&gt;</span></span>
        Log in
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ts<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
<span class="token keyword">import</span> <span class="token punctuation">{</span> UserOutlined<span class="token punctuation">,</span> LockOutlined <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@ant-design/icons-vue'</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> ValidateErrorEntity <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'ant-design-vue/es/form/interface'</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> defineComponent<span class="token punctuation">,</span> reactive<span class="token punctuation">,</span> UnwrapRef <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'vue'</span><span class="token punctuation">;</span>
<span class="token keyword">interface</span> <span class="token class-name">FormState</span> <span class="token punctuation">{</span>
  user<span class="token operator">:</span> string<span class="token punctuation">;</span>
  password<span class="token operator">:</span> string<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token function">defineComponent</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
  <span class="token function">setup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">const</span> formState<span class="token operator">:</span> UnwrapRef<span class="token operator">&lt;</span>FormState<span class="token operator">&gt;</span> <span class="token operator">=</span> <span class="token function">reactive</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
      user<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
      password<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">handleFinish</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter">values<span class="token operator">:</span> FormState</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>values<span class="token punctuation">,</span> formState<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">handleFinishFailed</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter">errors<span class="token operator">:</span> ValidateErrorEntity<span class="token operator">&lt;</span>FormState<span class="token operator">&gt;</span></span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>errors<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">return</span> <span class="token punctuation">{</span>
      formState<span class="token punctuation">,</span>
      handleFinish<span class="token punctuation">,</span>
      handleFinishFailed<span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span><span class="token punctuation">,</span>
  components<span class="token operator">:</span> <span class="token punctuation">{</span>
    UserOutlined<span class="token punctuation">,</span>
    LockOutlined<span class="token punctuation">,</span>
  <span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</span></span>
</code></pre>
                </div>
            </section>
        </section>
        <section class="code-box" id="components-form-demo-layout">
            <section class="code-box-demo">
                <form class="ant-form ant-form-horizontal">
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <div class="ant-col ant-col-4 ant-form-item-label"><label class="" title="Form Layout">Form Layout<!----></label></div>
                        <div class="ant-col ant-col-14 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content">
                                    <div class="ant-radio-group ant-radio-group-outline ant-radio-group-default"><label class="ant-radio-button-wrapper ant-radio-button-wrapper-checked"><span class="ant-radio-button ant-radio-button-checked"><input type="radio" class="ant-radio-button-input" value="horizontal"><span class="ant-radio-button-inner"></span></span><span>Horizontal</span></label>
                                        <label class="ant-radio-button-wrapper"><span class="ant-radio-button"><input type="radio" class="ant-radio-button-input" value="vertical"><span class="ant-radio-button-inner"></span></span><span>Vertical</span></label>
                                        <label
                                            class="ant-radio-button-wrapper"><span class="ant-radio-button"><input type="radio" class="ant-radio-button-input" value="inline"><span class="ant-radio-button-inner"></span></span><span>Inline</span></label>
                                    </div>
                                </div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <div class="ant-col ant-col-4 ant-form-item-label"><label class="" title="Field A">Field A<!----></label></div>
                        <div class="ant-col ant-col-14 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content"><input placeholder="input placeholder" type="text" class="ant-input"></div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <div class="ant-col ant-col-4 ant-form-item-label"><label class="" title="Field B">Field B<!----></label></div>
                        <div class="ant-col ant-col-14 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content"><input placeholder="input placeholder" type="text" class="ant-input"></div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <!---->
                        <div class="ant-col ant-col-14 ant-col-offset-4 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content"><button class="ant-btn ant-btn-primary" type="button"><!----><span>Submit</span></button></div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                </form>
            </section>
            <section class="code-box-meta markdown">
                <div class="code-box-title"><a href="#components-form-demo-layout">表单布局</a></div>
                <div class="code-box-description">
                    <p>表单有三种布局。</p>
                </div>
            </section>
            <section class="highlight-wrapper">
                <div class="highlight">
                    <pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form</span> <span class="token attr-name">:layout</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.layout<span class="token punctuation">"</span></span> <span class="token attr-name">:model</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState<span class="token punctuation">"</span></span> <span class="token attr-name">v-bind</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formItemLayout<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Form Layout<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-radio-group</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.layout<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-radio-button</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>horizontal<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Horizontal<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-radio-button</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-radio-button</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>vertical<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Vertical<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-radio-button</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-radio-button</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>inline<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Inline<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-radio-button</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-radio-group</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Field A<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.fieldA<span class="token punctuation">"</span></span> <span class="token attr-name">placeholder</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>input placeholder<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Field B<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.fieldB<span class="token punctuation">"</span></span> <span class="token attr-name">placeholder</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>input placeholder<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>buttonItemLayout.wrapperCol<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>primary<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Submit<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ts<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
<span class="token keyword">import</span> <span class="token punctuation">{</span> computed<span class="token punctuation">,</span> defineComponent<span class="token punctuation">,</span> reactive<span class="token punctuation">,</span> UnwrapRef <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'vue'</span><span class="token punctuation">;</span> 
<span class="token keyword">interface</span> <span class="token class-name">FormState</span> <span class="token punctuation">{</span>
  layout<span class="token operator">:</span> <span class="token string">'horizontal'</span> <span class="token operator">|</span> <span class="token string">'vertical'</span> <span class="token operator">|</span> <span class="token string">'inline'</span><span class="token punctuation">;</span>
  fieldA<span class="token operator">:</span> string<span class="token punctuation">;</span>
  fieldB<span class="token operator">:</span> string<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token function">defineComponent</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
  <span class="token function">setup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">const</span> formState<span class="token operator">:</span> UnwrapRef<span class="token operator">&lt;</span>FormState<span class="token operator">&gt;</span> <span class="token operator">=</span> <span class="token function">reactive</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
      layout<span class="token operator">:</span> <span class="token string">'horizontal'</span><span class="token punctuation">,</span>
      fieldA<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
      fieldB<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> formItemLayout <span class="token operator">=</span> <span class="token function">computed</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      <span class="token keyword">const</span> <span class="token punctuation">{</span> layout <span class="token punctuation">}</span> <span class="token operator">=</span> formState<span class="token punctuation">;</span>
      <span class="token keyword">return</span> layout <span class="token operator">===</span> <span class="token string">'horizontal'</span>
        <span class="token operator">?</span> <span class="token punctuation">{</span>
            labelCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">4</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
            wrapperCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">14</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
          <span class="token punctuation">}</span>
        <span class="token operator">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> buttonItemLayout <span class="token operator">=</span> <span class="token function">computed</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      <span class="token keyword">const</span> <span class="token punctuation">{</span> layout <span class="token punctuation">}</span> <span class="token operator">=</span> formState<span class="token punctuation">;</span>
      <span class="token keyword">return</span> layout <span class="token operator">===</span> <span class="token string">'horizontal'</span>
        <span class="token operator">?</span> <span class="token punctuation">{</span>
            wrapperCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">14</span><span class="token punctuation">,</span> offset<span class="token operator">:</span> <span class="token number">4</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
          <span class="token punctuation">}</span>
        <span class="token operator">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">return</span> <span class="token punctuation">{</span>
      formState<span class="token punctuation">,</span>
      formItemLayout<span class="token punctuation">,</span>
      buttonItemLayout<span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</span></span>
</code></pre>
                </div>
            </section>
        </section>
        <section class="code-box" id="components-form-demo-validation">
            <section class="code-box-demo">
                <form class="ant-form ant-form-horizontal">
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <div class="ant-col ant-col-4 ant-form-item-label"><label html-for="name" class="ant-form-item-required" title="Activity name">Activity name<!----></label></div>
                        <div class="ant-col ant-col-14 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content"><input type="text" id="name" class="ant-input"></div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <div class="ant-col ant-col-4 ant-form-item-label"><label html-for="region" class="ant-form-item-required" title="Activity zone">Activity zone<!----></label></div>
                        <div class="ant-col ant-col-14 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content">
                                    <div class="ant-select ant-select-single ant-select-show-arrow">
                                        <!---->
                                        <!---->
                                        <div class="ant-select-selector"><span class="ant-select-selection-search"><input id="region" autocomplete="off" class="ant-select-selection-search-input" role="combobox" aria-haspopup="listbox" aria-owns="region_list" aria-autocomplete="list" aria-controls="region_list" aria-activedescendant="region_list_0" readonly="" unselectable="on" type="search" style="opacity: 0;"></span>
                                            <!----><span class="ant-select-selection-placeholder">please select your zone</span></div><span class="ant-select-arrow" unselectable="on" aria-hidden="true" style="user-select: none;"><span role="img" aria-label="down" class="anticon anticon-down ant-select-suffix"><svg focusable="false" class="" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></span></span>
                                        <!---->
                                    </div>
                                </div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <div class="ant-col ant-col-4 ant-form-item-label"><label html-for="date1" class="ant-form-item-required" title="Activity time">Activity time<!----></label></div>
                        <div class="ant-col ant-col-14 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content"><span id="date1" class="ant-calendar-picker" style="min-width: 195px; width: 100%;"><!----><div><input readonly="" placeholder="Pick a date" class="ant-calendar-picker-input ant-input"><!----><span role="img" aria-label="calendar" class="anticon anticon-calendar ant-calendar-picker-icon"><svg focusable="false" class="" data-icon="calendar" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><path d="M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z"></path></svg></span></div>
                                </span>
                            </div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
    </div>
    <div class="ant-row ant-form-item" style="row-gap: 0px;">
        <div class="ant-col ant-col-4 ant-form-item-label"><label html-for="delivery" class="" title="Instant delivery">Instant delivery<!----></label></div>
        <div class="ant-col ant-col-14 ant-form-item-control">
            <div class="ant-form-item-control-input">
                <div class="ant-form-item-control-input-content"><button id="delivery" type="button" role="switch" aria-checked="false" class="ant-switch"><!----><span class="ant-switch-inner"><!----></span></button></div>
                <!---->
            </div>
            <!---->
            <!---->
        </div>
    </div>
    <div class="ant-row ant-form-item" style="row-gap: 0px;">
        <div class="ant-col ant-col-4 ant-form-item-label"><label html-for="type" class="ant-form-item-required" title="Activity type">Activity type<!----></label></div>
        <div class="ant-col ant-col-14 ant-form-item-control">
            <div class="ant-form-item-control-input">
                <div class="ant-form-item-control-input-content">
                    <div class="ant-checkbox-group" id="type"><label class="ant-checkbox-wrapper"><span class="ant-checkbox"><input type="checkbox" class="ant-checkbox-input" value="1"><span class="ant-checkbox-inner"></span></span><span>Online</span></label><label class="ant-checkbox-wrapper"><span class="ant-checkbox"><input type="checkbox" class="ant-checkbox-input" value="2"><span class="ant-checkbox-inner"></span></span><span>Promotion</span></label>
                        <label class="ant-checkbox-wrapper"><span class="ant-checkbox"><input type="checkbox" class="ant-checkbox-input" value="3"><span class="ant-checkbox-inner"></span></span><span>Offline</span></label>
                    </div>
                </div>
                <!---->
            </div>
            <!---->
            <!---->
        </div>
    </div>
    <div class="ant-row ant-form-item" style="row-gap: 0px;">
        <div class="ant-col ant-col-4 ant-form-item-label"><label html-for="resource" class="ant-form-item-required" title="Resources">Resources<!----></label></div>
        <div class="ant-col ant-col-14 ant-form-item-control">
            <div class="ant-form-item-control-input">
                <div class="ant-form-item-control-input-content">
                    <div class="ant-radio-group ant-radio-group-outline ant-radio-group-default" id="resource"><label class="ant-radio-wrapper"><span class="ant-radio"><input type="radio" class="ant-radio-input" value="1"><span class="ant-radio-inner"></span></span><span>Sponsor</span></label><label class="ant-radio-wrapper"><span class="ant-radio"><input type="radio" class="ant-radio-input" value="2"><span class="ant-radio-inner"></span></span><span>Venue</span></label></div>
                </div>
                <!---->
            </div>
            <!---->
            <!---->
        </div>
    </div>
    <div class="ant-row ant-form-item" style="row-gap: 0px;">
        <div class="ant-col ant-col-4 ant-form-item-label"><label html-for="desc" class="ant-form-item-required" title="Activity form">Activity form<!----></label></div>
        <div class="ant-col ant-col-14 ant-form-item-control">
            <div class="ant-form-item-control-input">
                <div class="ant-form-item-control-input-content"><textarea id="desc" class="ant-input"></textarea></div>
                <!---->
            </div>
            <!---->
            <!---->
        </div>
    </div>
    <div class="ant-row ant-form-item" style="row-gap: 0px;">
        <!---->
        <div class="ant-col ant-col-14 ant-col-offset-4 ant-form-item-control">
            <div class="ant-form-item-control-input">
                <div class="ant-form-item-control-input-content"><button class="ant-btn ant-btn-primary" type="button"><!----><span>Create</span></button><button class="ant-btn" type="button" style="margin-left: 10px;"><!----><span>Reset</span></button></div>
                <!---->
            </div>
            <!---->
            <!---->
        </div>
    </div>
    </form>
    </section>
    <section class="code-box-meta markdown">
        <div class="code-box-title"><a href="#components-form-demo-validation">表单验证</a></div>
        <div class="code-box-description">
            <p>Form 组件提供了表单验证的功能，只需要通过 <code>rules</code> 属性传入约定的验证规则，并将 <code>FormItem</code> 的 <code>prop</code> 属性设置为需校验的字段名即可。校验规则参见 <a href="https://github.com/yiminghe/async-validator" target="_blank" rel="noopener noreferrer">async-validator</a></p>
        </div>
    </section>
    <section class="highlight-wrapper">
        <div class="highlight">
            <pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form</span>
    <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formRef<span class="token punctuation">"</span></span>
    <span class="token attr-name">:model</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState<span class="token punctuation">"</span></span>
    <span class="token attr-name">:rules</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>rules<span class="token punctuation">"</span></span>
    <span class="token attr-name">:label-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>labelCol<span class="token punctuation">"</span></span>
    <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>wrapperCol<span class="token punctuation">"</span></span>
  <span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>name<span class="token punctuation">"</span></span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity name<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>name<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.name<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity zone<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>region<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-select</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.region<span class="token punctuation">"</span></span> <span class="token attr-name">placeholder</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>please select your zone<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-select-option</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>shanghai<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Zone one<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-select-option</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-select-option</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>beijing<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Zone two<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-select-option</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-select</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity time<span class="token punctuation">"</span></span> <span class="token attr-name">required</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>date1<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-date-picker</span>
        <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.date1<span class="token punctuation">"</span></span>
        <span class="token attr-name">show-time</span>
        <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>date<span class="token punctuation">"</span></span>
        <span class="token attr-name">placeholder</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Pick a date<span class="token punctuation">"</span></span>
        <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">width</span><span class="token punctuation">:</span> 100%</span><span class="token punctuation">"</span></span></span>
      <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Instant delivery<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>delivery<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-switch</span> <span class="token attr-name"><span class="token namespace">v-model:</span>checked</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.delivery<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity type<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox-group</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>1<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Online<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>2<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Promotion<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>3<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Offline<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox-group</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Resources<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>resource<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-radio-group</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.resource<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-radio</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>1<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Sponsor<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-radio</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-radio</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>2<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Venue<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-radio</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-radio-group</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity form<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>desc<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-textarea</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.desc<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>{ span: 14, offset: 4 }<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>primary<span class="token punctuation">"</span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>onSubmit<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Create<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">margin-left</span><span class="token punctuation">:</span> 10px</span><span class="token punctuation">"</span></span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>resetForm<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Reset<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ts<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
<span class="token keyword">import</span> <span class="token punctuation">{</span> ValidateErrorEntity <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'ant-design-vue/es/form/interface'</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> Moment <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'moment'</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> defineComponent<span class="token punctuation">,</span> reactive<span class="token punctuation">,</span> ref<span class="token punctuation">,</span> toRaw<span class="token punctuation">,</span> UnwrapRef <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'vue'</span><span class="token punctuation">;</span>
<span class="token keyword">interface</span> <span class="token class-name">FormState</span> <span class="token punctuation">{</span>
  name<span class="token operator">:</span> string<span class="token punctuation">;</span>
  region<span class="token operator">:</span> string <span class="token operator">|</span> <span class="token keyword">undefined</span><span class="token punctuation">;</span>
  date1<span class="token operator">:</span> Moment <span class="token operator">|</span> <span class="token keyword">undefined</span><span class="token punctuation">;</span>
  delivery<span class="token operator">:</span> boolean<span class="token punctuation">;</span>
  type<span class="token operator">:</span> string<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
  resource<span class="token operator">:</span> string<span class="token punctuation">;</span>
  desc<span class="token operator">:</span> string<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token function">defineComponent</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
  <span class="token function">setup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">const</span> formRef <span class="token operator">=</span> <span class="token function">ref</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> formState<span class="token operator">:</span> UnwrapRef<span class="token operator">&lt;</span>FormState<span class="token operator">&gt;</span> <span class="token operator">=</span> <span class="token function">reactive</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
      name<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
      region<span class="token operator">:</span> <span class="token keyword">undefined</span><span class="token punctuation">,</span>
      date1<span class="token operator">:</span> <span class="token keyword">undefined</span><span class="token punctuation">,</span>
      delivery<span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
      type<span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
      resource<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
      desc<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> rules <span class="token operator">=</span> <span class="token punctuation">{</span>
      name<span class="token operator">:</span> <span class="token punctuation">[</span>
        <span class="token punctuation">{</span> required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span> message<span class="token operator">:</span> <span class="token string">'Please input Activity name'</span><span class="token punctuation">,</span> trigger<span class="token operator">:</span> <span class="token string">'blur'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
        <span class="token punctuation">{</span> min<span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span> max<span class="token operator">:</span> <span class="token number">5</span><span class="token punctuation">,</span> message<span class="token operator">:</span> <span class="token string">'Length should be 3 to 5'</span><span class="token punctuation">,</span> trigger<span class="token operator">:</span> <span class="token string">'blur'</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      <span class="token punctuation">]</span><span class="token punctuation">,</span>
      region<span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">{</span> required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span> message<span class="token operator">:</span> <span class="token string">'Please select Activity zone'</span><span class="token punctuation">,</span> trigger<span class="token operator">:</span> <span class="token string">'change'</span> <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
      date1<span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">{</span> required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span> message<span class="token operator">:</span> <span class="token string">'Please pick a date'</span><span class="token punctuation">,</span> trigger<span class="token operator">:</span> <span class="token string">'change'</span><span class="token punctuation">,</span> type<span class="token operator">:</span> <span class="token string">'object'</span> <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
      type<span class="token operator">:</span> <span class="token punctuation">[</span>
        <span class="token punctuation">{</span>
          type<span class="token operator">:</span> <span class="token string">'array'</span><span class="token punctuation">,</span>
          required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
          message<span class="token operator">:</span> <span class="token string">'Please select at least one activity type'</span><span class="token punctuation">,</span>
          trigger<span class="token operator">:</span> <span class="token string">'change'</span><span class="token punctuation">,</span>
        <span class="token punctuation">}</span><span class="token punctuation">,</span>
      <span class="token punctuation">]</span><span class="token punctuation">,</span>
      resource<span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">{</span> required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span> message<span class="token operator">:</span> <span class="token string">'Please select activity resource'</span><span class="token punctuation">,</span> trigger<span class="token operator">:</span> <span class="token string">'change'</span> <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
      desc<span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">{</span> required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span> message<span class="token operator">:</span> <span class="token string">'Please input activity form'</span><span class="token punctuation">,</span> trigger<span class="token operator">:</span> <span class="token string">'blur'</span> <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">onSubmit</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      formRef<span class="token punctuation">.</span>value
        <span class="token punctuation">.</span><span class="token function">validate</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
          console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'values'</span><span class="token punctuation">,</span> formState<span class="token punctuation">,</span> <span class="token function">toRaw</span><span class="token punctuation">(</span>formState<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">catch</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">error<span class="token operator">:</span> ValidateErrorEntity<span class="token operator">&lt;</span>FormState<span class="token operator">&gt;</span></span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
          console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'error'</span><span class="token punctuation">,</span> error<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">resetForm</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      formRef<span class="token punctuation">.</span>value<span class="token punctuation">.</span><span class="token function">resetFields</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">return</span> <span class="token punctuation">{</span>
      formRef<span class="token punctuation">,</span>
      labelCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">4</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      wrapperCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">14</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      other<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
      formState<span class="token punctuation">,</span>
      rules<span class="token punctuation">,</span>
      onSubmit<span class="token punctuation">,</span>
      resetForm<span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</span></span>
</code></pre>
        </div>
    </section>
    </section>
    <section class="code-box" id="components-form-demo-custom-validation">
        <section class="code-box-demo">
            <form class="ant-form ant-form-horizontal">
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <div class="ant-col ant-col-4 ant-form-item-label"><label html-for="custom-validation_pass" class="ant-form-item-required" title="Password">Password<!----></label></div>
                    <div class="ant-col ant-col-14 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content"><input type="password" autocomplete="off" id="custom-validation_pass" class="ant-input"></div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <div class="ant-col ant-col-4 ant-form-item-label"><label html-for="custom-validation_checkPass" class="" title="Confirm">Confirm<!----></label></div>
                    <div class="ant-col ant-col-14 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content"><input type="password" autocomplete="off" id="custom-validation_checkPass" class="ant-input"></div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <div class="ant-col ant-col-4 ant-form-item-label"><label html-for="custom-validation_age" class="" title="Age">Age<!----></label></div>
                    <div class="ant-col ant-col-14 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content">
                                <div class="ant-input-number">
                                    <div class="ant-input-number-handler-wrap"><span><span unselectable="unselectable" role="button" aria-label="Increase Value" aria-disabled="false" class="ant-input-number-handler ant-input-number-handler-up"><span role="img" aria-label="up" class="anticon anticon-up ant-input-number-handler-up-inner"><svg focusable="false" class="" data-icon="up" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><path d="M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z"></path></svg></span></span>
                                        </span><span unselectable="unselectable" role="button" aria-label="Decrease Value" aria-disabled="false" class="ant-input-number-handler ant-input-number-handler-down"><span role="img" aria-label="down" class="anticon anticon-down ant-input-number-handler-down-inner"><svg focusable="false" class="" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></span></span>
                                    </div>
                                    <div class="ant-input-number-input-wrap"><input role="spinbutton" aria-valuemin="-9007199254740991" class="ant-input-number-input" autocomplete="off" min="-9007199254740991" step="1" id="custom-validation_age"></div>
                                </div>
                            </div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <!---->
                    <div class="ant-col ant-col-14 ant-col-offset-4 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content"><button class="ant-btn ant-btn-primary" type="submit"><!----><span>Submit</span></button><button class="ant-btn" type="button" style="margin-left: 10px;"><!----><span>Reset</span></button></div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
            </form>
        </section>
        <section class="code-box-meta markdown">
            <div class="code-box-title"><a href="#components-form-demo-custom-validation">自定义校验规则</a></div>
            <div class="code-box-description">
                <p>这个例子中展示了如何使用自定义验证规则来完成密码的二次验证。本例还使用 <code>has-feedback</code> 属性为输入框添加了表示校验结果的反馈图标。 更多高级用法可参考 <a href="https://github.com/yiminghe/async-validator" target="_blank" rel="noopener noreferrer">async-validator</a></p>
            </div>
        </section>
        <section class="highlight-wrapper">
            <div class="highlight">
                <pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form</span>
    <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>custom-validation<span class="token punctuation">"</span></span>
    <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formRef<span class="token punctuation">"</span></span>
    <span class="token attr-name">:model</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState<span class="token punctuation">"</span></span>
    <span class="token attr-name">:rules</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>rules<span class="token punctuation">"</span></span>
    <span class="token attr-name">v-bind</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>layout<span class="token punctuation">"</span></span>
    <span class="token attr-name">@finish</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>handleFinish<span class="token punctuation">"</span></span>
    <span class="token attr-name">@finishFailed</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>handleFinishFailed<span class="token punctuation">"</span></span>
  <span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">has-feedback</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Password<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>pass<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.pass<span class="token punctuation">"</span></span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>password<span class="token punctuation">"</span></span> <span class="token attr-name">autocomplete</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>off<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">has-feedback</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Confirm<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>checkPass<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.checkPass<span class="token punctuation">"</span></span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>password<span class="token punctuation">"</span></span> <span class="token attr-name">autocomplete</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>off<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">has-feedback</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Age<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>age<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input-number</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.age<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>{ span: 14, offset: 4 }<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>primary<span class="token punctuation">"</span></span> <span class="token attr-name">html-type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>submit<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Submit<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">margin-left</span><span class="token punctuation">:</span> 10px</span><span class="token punctuation">"</span></span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>resetForm<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Reset<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ts<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
<span class="token keyword">import</span> <span class="token punctuation">{</span> RuleObject<span class="token punctuation">,</span> ValidateErrorEntity <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'ant-design-vue/es/form/interface'</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> defineComponent<span class="token punctuation">,</span> reactive<span class="token punctuation">,</span> ref<span class="token punctuation">,</span> UnwrapRef <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'vue'</span><span class="token punctuation">;</span>
<span class="token keyword">interface</span> <span class="token class-name">FormState</span> <span class="token punctuation">{</span>
  pass<span class="token operator">:</span> string<span class="token punctuation">;</span>
  checkPass<span class="token operator">:</span> string<span class="token punctuation">;</span>
  age<span class="token operator">:</span> number <span class="token operator">|</span> <span class="token keyword">undefined</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token function">defineComponent</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
  <span class="token function">setup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">const</span> formRef <span class="token operator">=</span> <span class="token function">ref</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> formState<span class="token operator">:</span> UnwrapRef<span class="token operator">&lt;</span>FormState<span class="token operator">&gt;</span> <span class="token operator">=</span> <span class="token function">reactive</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
      pass<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
      checkPass<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
      age<span class="token operator">:</span> <span class="token keyword">undefined</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">let</span> <span class="token function-variable function">checkAge</span> <span class="token operator">=</span> <span class="token keyword">async</span> <span class="token punctuation">(</span><span class="token parameter">rule<span class="token operator">:</span> RuleObject<span class="token punctuation">,</span> value<span class="token operator">:</span> number</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span>value<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">return</span> Promise<span class="token punctuation">.</span><span class="token function">reject</span><span class="token punctuation">(</span><span class="token string">'Please input the age'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>
      <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span>Number<span class="token punctuation">.</span><span class="token function">isInteger</span><span class="token punctuation">(</span>value<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">return</span> Promise<span class="token punctuation">.</span><span class="token function">reject</span><span class="token punctuation">(</span><span class="token string">'Please input digits'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
        <span class="token keyword">if</span> <span class="token punctuation">(</span>value <span class="token operator">&lt;</span> <span class="token number">18</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
          <span class="token keyword">return</span> Promise<span class="token punctuation">.</span><span class="token function">reject</span><span class="token punctuation">(</span><span class="token string">'Age must be greater than 18'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
          <span class="token keyword">return</span> Promise<span class="token punctuation">.</span><span class="token function">resolve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
      <span class="token punctuation">}</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">let</span> <span class="token function-variable function">validatePass</span> <span class="token operator">=</span> <span class="token keyword">async</span> <span class="token punctuation">(</span><span class="token parameter">rule<span class="token operator">:</span> RuleObject<span class="token punctuation">,</span> value<span class="token operator">:</span> string</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      <span class="token keyword">if</span> <span class="token punctuation">(</span>value <span class="token operator">===</span> <span class="token string">''</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">return</span> Promise<span class="token punctuation">.</span><span class="token function">reject</span><span class="token punctuation">(</span><span class="token string">'Please input the password'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
        <span class="token keyword">if</span> <span class="token punctuation">(</span>formState<span class="token punctuation">.</span>checkPass <span class="token operator">!==</span> <span class="token string">''</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
          formRef<span class="token punctuation">.</span>value<span class="token punctuation">.</span><span class="token function">validateFields</span><span class="token punctuation">(</span><span class="token string">'checkPass'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
        <span class="token keyword">return</span> Promise<span class="token punctuation">.</span><span class="token function">resolve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">let</span> <span class="token function-variable function">validatePass2</span> <span class="token operator">=</span> <span class="token keyword">async</span> <span class="token punctuation">(</span><span class="token parameter">rule<span class="token operator">:</span> RuleObject<span class="token punctuation">,</span> value<span class="token operator">:</span> string</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      <span class="token keyword">if</span> <span class="token punctuation">(</span>value <span class="token operator">===</span> <span class="token string">''</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">return</span> Promise<span class="token punctuation">.</span><span class="token function">reject</span><span class="token punctuation">(</span><span class="token string">'Please input the password again'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>value <span class="token operator">!==</span> formState<span class="token punctuation">.</span>pass<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">return</span> Promise<span class="token punctuation">.</span><span class="token function">reject</span><span class="token punctuation">(</span><span class="token string">"Two inputs don't match!"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
        <span class="token keyword">return</span> Promise<span class="token punctuation">.</span><span class="token function">resolve</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span> 
    <span class="token keyword">const</span> rules <span class="token operator">=</span> <span class="token punctuation">{</span>
      pass<span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">{</span> required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span> validator<span class="token operator">:</span> validatePass<span class="token punctuation">,</span> trigger<span class="token operator">:</span> <span class="token string">'change'</span> <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
      checkPass<span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">{</span> validator<span class="token operator">:</span> validatePass2<span class="token punctuation">,</span> trigger<span class="token operator">:</span> <span class="token string">'change'</span> <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
      age<span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">{</span> validator<span class="token operator">:</span> checkAge<span class="token punctuation">,</span> trigger<span class="token operator">:</span> <span class="token string">'change'</span> <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> layout <span class="token operator">=</span> <span class="token punctuation">{</span>
      labelCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">4</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      wrapperCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">14</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">handleFinish</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter">values<span class="token operator">:</span> FormState</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>values<span class="token punctuation">,</span> formState<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">handleFinishFailed</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter">errors<span class="token operator">:</span> ValidateErrorEntity<span class="token operator">&lt;</span>FormState<span class="token operator">&gt;</span></span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>errors<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">resetForm</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      formRef<span class="token punctuation">.</span>value<span class="token punctuation">.</span><span class="token function">resetFields</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">return</span> <span class="token punctuation">{</span>
      formState<span class="token punctuation">,</span>
      formRef<span class="token punctuation">,</span>
      rules<span class="token punctuation">,</span>
      layout<span class="token punctuation">,</span>
      handleFinishFailed<span class="token punctuation">,</span>
      handleFinish<span class="token punctuation">,</span>
      resetForm<span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</span></span>
</code></pre>
            </div>
        </section>
    </section>
    <section class="code-box" id="components-form-demo-dynamic-form-item">
        <section class="code-box-demo">
            <form class="ant-form ant-form-horizontal">
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <!---->
                    <div class="ant-col ant-col-xs-24 ant-col-xs-offset-0 ant-col-sm-20 ant-col-sm-offset-4 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content"><button class="ant-btn ant-btn-dashed" type="button" style="width: 60%;"><!----><span role="img" aria-label="plus" class="anticon anticon-plus"><svg focusable="false" class="" data-icon="plus" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><defs><style></style></defs><path d="M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"></path><path d="M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z"></path></svg></span><span>Add field</span></button></div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <!---->
                    <div class="ant-col ant-col-xs-24 ant-col-xs-offset-0 ant-col-sm-20 ant-col-sm-offset-4 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content"><button class="ant-btn ant-btn-primary" type="submit"><!----><span>Submit</span></button><button class="ant-btn" type="button" style="margin-left: 10px;"><!----><span>Reset</span></button></div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
            </form>
        </section>
        <section class="code-box-meta markdown">
            <div class="code-box-title"><a href="#components-form-demo-dynamic-form-item">动态增减表单项</a></div>
            <div class="code-box-description">
                <p>动态增加、减少表单项。</p>
            </div>
        </section>
        <section class="highlight-wrapper">
            <div class="highlight">
                <pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formRef<span class="token punctuation">"</span></span> <span class="token attr-name">:model</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>dynamicValidateForm<span class="token punctuation">"</span></span> <span class="token attr-name">v-bind</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formItemLayoutWithOutLabel<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span>
      <span class="token attr-name">v-for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>(domain, index) in dynamicValidateForm.domains<span class="token punctuation">"</span></span>
      <span class="token attr-name">:key</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>domain.key<span class="token punctuation">"</span></span>
      <span class="token attr-name">v-bind</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>index === 0 ? formItemLayout : {}<span class="token punctuation">"</span></span>
      <span class="token attr-name">:label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>index === 0 ? <span class="token punctuation">'</span>Domains<span class="token punctuation">'</span> : <span class="token punctuation">'</span><span class="token punctuation">'</span><span class="token punctuation">"</span></span>
      <span class="token attr-name">:name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>[<span class="token punctuation">'</span>domains<span class="token punctuation">'</span>, index, <span class="token punctuation">'</span>value<span class="token punctuation">'</span>]<span class="token punctuation">"</span></span>
      <span class="token attr-name">:rules</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>{
        required: true,
        message: <span class="token punctuation">'</span>domain can not be null<span class="token punctuation">'</span>,
        trigger: <span class="token punctuation">'</span>change<span class="token punctuation">'</span>,
      }<span class="token punctuation">"</span></span>
    <span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span>
        <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>domain.value<span class="token punctuation">"</span></span>
        <span class="token attr-name">placeholder</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>please input domain<span class="token punctuation">"</span></span>
        <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">width</span><span class="token punctuation">:</span> 60%<span class="token punctuation">;</span> <span class="token property">margin-right</span><span class="token punctuation">:</span> 8px</span><span class="token punctuation">"</span></span></span>
      <span class="token punctuation">/&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>MinusCircleOutlined</span>
        <span class="token attr-name">v-if</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>dynamicValidateForm.domains.length &gt; 1<span class="token punctuation">"</span></span>
        <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>dynamic-delete-button<span class="token punctuation">"</span></span>
        <span class="token attr-name">:disabled</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>dynamicValidateForm.domains.length === 1<span class="token punctuation">"</span></span>
        <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>removeDomain(domain)<span class="token punctuation">"</span></span>
      <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">v-bind</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formItemLayoutWithOutLabel<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>dashed<span class="token punctuation">"</span></span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">width</span><span class="token punctuation">:</span> 60%</span><span class="token punctuation">"</span></span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>addDomain<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>PlusOutlined</span> <span class="token punctuation">/&gt;</span></span>
        Add field
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">v-bind</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formItemLayoutWithOutLabel<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>primary<span class="token punctuation">"</span></span> <span class="token attr-name">html-type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>submit<span class="token punctuation">"</span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>submitForm<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Submit<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">margin-left</span><span class="token punctuation">:</span> 10px</span><span class="token punctuation">"</span></span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>resetForm<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Reset<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ts<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
<span class="token keyword">import</span> <span class="token punctuation">{</span> MinusCircleOutlined<span class="token punctuation">,</span> PlusOutlined <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@ant-design/icons-vue'</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> ValidateErrorEntity <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'ant-design-vue/es/form/interface'</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> defineComponent<span class="token punctuation">,</span> reactive<span class="token punctuation">,</span> ref<span class="token punctuation">,</span> UnwrapRef <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'vue'</span><span class="token punctuation">;</span> 
<span class="token keyword">interface</span> <span class="token class-name">Domain</span> <span class="token punctuation">{</span>
  value<span class="token operator">:</span> string<span class="token punctuation">;</span>
  key<span class="token operator">:</span> number<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token function">defineComponent</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
  <span class="token function">setup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">const</span> formRef <span class="token operator">=</span> <span class="token function">ref</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> formItemLayout <span class="token operator">=</span> <span class="token punctuation">{</span>
      labelCol<span class="token operator">:</span> <span class="token punctuation">{</span>
        xs<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">24</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
        sm<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">4</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      <span class="token punctuation">}</span><span class="token punctuation">,</span>
      wrapperCol<span class="token operator">:</span> <span class="token punctuation">{</span>
        xs<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">24</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
        sm<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">20</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      <span class="token punctuation">}</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> formItemLayoutWithOutLabel <span class="token operator">=</span> <span class="token punctuation">{</span>
      wrapperCol<span class="token operator">:</span> <span class="token punctuation">{</span>
        xs<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">24</span><span class="token punctuation">,</span> offset<span class="token operator">:</span> <span class="token number">0</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
        sm<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">20</span><span class="token punctuation">,</span> offset<span class="token operator">:</span> <span class="token number">4</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      <span class="token punctuation">}</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> dynamicValidateForm<span class="token operator">:</span> UnwrapRef<span class="token operator">&lt;</span><span class="token punctuation">{</span> domains<span class="token operator">:</span> Domain<span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token punctuation">}</span><span class="token operator">&gt;</span> <span class="token operator">=</span> <span class="token function">reactive</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
      domains<span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">submitForm</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      formRef<span class="token punctuation">.</span>value
        <span class="token punctuation">.</span><span class="token function">validate</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
          console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'values'</span><span class="token punctuation">,</span> dynamicValidateForm<span class="token punctuation">.</span>domains<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">catch</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">error<span class="token operator">:</span> ValidateErrorEntity<span class="token operator">&lt;</span>any<span class="token operator">&gt;</span></span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
          console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'error'</span><span class="token punctuation">,</span> error<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">resetForm</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      formRef<span class="token punctuation">.</span>value<span class="token punctuation">.</span><span class="token function">resetFields</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">removeDomain</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token parameter">item<span class="token operator">:</span> Domain</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      <span class="token keyword">let</span> index <span class="token operator">=</span> dynamicValidateForm<span class="token punctuation">.</span>domains<span class="token punctuation">.</span><span class="token function">indexOf</span><span class="token punctuation">(</span>item<span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token keyword">if</span> <span class="token punctuation">(</span>index <span class="token operator">!==</span> <span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        dynamicValidateForm<span class="token punctuation">.</span>domains<span class="token punctuation">.</span><span class="token function">splice</span><span class="token punctuation">(</span>index<span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">addDomain</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      dynamicValidateForm<span class="token punctuation">.</span>domains<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
        value<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
        key<span class="token operator">:</span> Date<span class="token punctuation">.</span><span class="token function">now</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
      <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">return</span> <span class="token punctuation">{</span>
      formRef<span class="token punctuation">,</span>
      formItemLayout<span class="token punctuation">,</span>
      formItemLayoutWithOutLabel<span class="token punctuation">,</span>
      dynamicValidateForm<span class="token punctuation">,</span>
      submitForm<span class="token punctuation">,</span>
      resetForm<span class="token punctuation">,</span>
      removeDomain<span class="token punctuation">,</span>
      addDomain<span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span><span class="token punctuation">,</span>
  components<span class="token operator">:</span> <span class="token punctuation">{</span>
    MinusCircleOutlined<span class="token punctuation">,</span>
    PlusOutlined<span class="token punctuation">,</span>
  <span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>style</span><span class="token punctuation">&gt;</span></span><span class="token style"><span class="token language-css">
<span class="token selector">.dynamic-delete-button</span> <span class="token punctuation">{</span>
  <span class="token property">cursor</span><span class="token punctuation">:</span> pointer<span class="token punctuation">;</span>
  <span class="token property">position</span><span class="token punctuation">:</span> relative<span class="token punctuation">;</span>
  <span class="token property">top</span><span class="token punctuation">:</span> 4px<span class="token punctuation">;</span>
  <span class="token property">font-size</span><span class="token punctuation">:</span> 24px<span class="token punctuation">;</span>
  <span class="token property">color</span><span class="token punctuation">:</span> #999<span class="token punctuation">;</span>
  <span class="token property">transition</span><span class="token punctuation">:</span> all 0.3s<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token selector">.dynamic-delete-button:hover</span> <span class="token punctuation">{</span>
  <span class="token property">color</span><span class="token punctuation">:</span> #777<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token selector">.dynamic-delete-button[disabled]</span> <span class="token punctuation">{</span>
  <span class="token property">cursor</span><span class="token punctuation">:</span> not-allowed<span class="token punctuation">;</span>
  <span class="token property">opacity</span><span class="token punctuation">:</span> 0.5<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>style</span><span class="token punctuation">&gt;</span></span>
</code></pre>
            </div>
        </section>
    </section>
    <section class="code-box" id="components-form-demo-nested-form">
        <section class="code-box-demo">
            <div>
                <form class="ant-form ant-form-horizontal">
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <div class="ant-col ant-col-4 ant-form-item-label"><label html-for="name" class="ant-form-item-required" title="Activity name">Activity name<!----></label></div>
                        <div class="ant-col ant-col-14 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content"><input type="text" id="name" class="ant-input"></div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <div class="ant-col ant-col-4 ant-form-item-label"><label html-for="sub_name" class="ant-form-item-required" title="Sub name">Sub name<!----></label></div>
                        <div class="ant-col ant-col-14 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content"><input type="text" id="sub_name" class="ant-input"></div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                    <div class="ant-row ant-form-item" style="row-gap: 0px;">
                        <!---->
                        <div class="ant-col ant-col-14 ant-col-offset-4 ant-form-item-control">
                            <div class="ant-form-item-control-input">
                                <div class="ant-form-item-control-input-content"><button class="ant-btn ant-btn-primary" type="button"><!----><span>Create</span></button><button class="ant-btn" type="button" style="margin-left: 10px;"><!----><span>Reset</span></button></div>
                                <!---->
                            </div>
                            <!---->
                            <!---->
                        </div>
                    </div>
                </form>
            </div>
        </section>
        <section class="code-box-meta markdown">
            <div class="code-box-title"><a href="#components-form-demo-nested-form">嵌套表单</a></div>
            <div class="code-box-description">
                <p>嵌套表单</p>
            </div>
        </section>
        <section class="highlight-wrapper">
            <div class="highlight">
                <pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form</span>
      <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formRef<span class="token punctuation">"</span></span>
      <span class="token attr-name">:model</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState<span class="token punctuation">"</span></span>
      <span class="token attr-name">:rules</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>rules<span class="token punctuation">"</span></span>
      <span class="token attr-name">:label-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>labelCol<span class="token punctuation">"</span></span>
      <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>wrapperCol<span class="token punctuation">"</span></span>
    <span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity name<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>name<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.name<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Sub name<span class="token punctuation">"</span></span> <span class="token attr-name">:name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>[<span class="token punctuation">'</span>sub<span class="token punctuation">'</span>, <span class="token punctuation">'</span>name<span class="token punctuation">'</span>]<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>formState.sub.name<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span> 
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>{ span: 14, offset: 4 }<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>primary<span class="token punctuation">"</span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>onSubmit<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Create<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">margin-left</span><span class="token punctuation">:</span> 10px</span><span class="token punctuation">"</span></span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>resetForm<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Reset<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ts<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
<span class="token keyword">import</span> <span class="token punctuation">{</span> defineComponent<span class="token punctuation">,</span> reactive<span class="token punctuation">,</span> ref<span class="token punctuation">,</span> toRaw <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'vue'</span><span class="token punctuation">;</span> 
<span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token function">defineComponent</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
  <span class="token function">setup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">const</span> formRef <span class="token operator">=</span> <span class="token function">ref</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> formState <span class="token operator">=</span> <span class="token function">reactive</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
      name<span class="token operator">:</span> <span class="token keyword">undefined</span><span class="token punctuation">,</span>
      sub<span class="token operator">:</span> <span class="token punctuation">{</span> name<span class="token operator">:</span> <span class="token keyword">undefined</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> rules <span class="token operator">=</span> <span class="token punctuation">{</span>
      name<span class="token operator">:</span> <span class="token punctuation">{</span>
        required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
        message<span class="token operator">:</span> <span class="token string">'Please input name'</span><span class="token punctuation">,</span>
      <span class="token punctuation">}</span><span class="token punctuation">,</span>
      sub<span class="token operator">:</span> <span class="token punctuation">{</span>
        name<span class="token operator">:</span> <span class="token punctuation">[</span>
          <span class="token punctuation">{</span>
            required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
            message<span class="token operator">:</span> <span class="token string">'Please input name'</span><span class="token punctuation">,</span>
          <span class="token punctuation">}</span><span class="token punctuation">,</span>
        <span class="token punctuation">]</span><span class="token punctuation">,</span>
      <span class="token punctuation">}</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">onSubmit</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      formRef<span class="token punctuation">.</span>value
        <span class="token punctuation">.</span><span class="token function">validate</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
          console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'values'</span><span class="token punctuation">,</span> formState<span class="token punctuation">,</span> <span class="token function">toRaw</span><span class="token punctuation">(</span>formState<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">catch</span><span class="token punctuation">(</span><span class="token parameter">error</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
          console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'error'</span><span class="token punctuation">,</span> error<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">resetForm</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      formRef<span class="token punctuation">.</span>value<span class="token punctuation">.</span><span class="token function">resetFields</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">return</span> <span class="token punctuation">{</span>
      formRef<span class="token punctuation">,</span>
      labelCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">4</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      wrapperCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">14</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      formState<span class="token punctuation">,</span>
      rules<span class="token punctuation">,</span>
      onSubmit<span class="token punctuation">,</span>
      resetForm<span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</span></span>
</code></pre>
            </div>
        </section>
    </section>
    <section class="code-box" id="components-form-demo-useForm-basic">
        <section class="code-box-demo">
            <form class="ant-form ant-form-horizontal">
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <div class="ant-col ant-col-4 ant-form-item-label"><label class="ant-form-item-required" title="Activity name">Activity name<!----></label></div>
                    <div class="ant-col ant-col-14 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content"><input type="text" class="ant-input"></div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <div class="ant-col ant-col-4 ant-form-item-label"><label class="ant-form-item-required" title="Activity zone">Activity zone<!----></label></div>
                    <div class="ant-col ant-col-14 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content">
                                <div class="ant-select ant-select-single ant-select-show-arrow">
                                    <!---->
                                    <!---->
                                    <div class="ant-select-selector"><span class="ant-select-selection-search"><input id="rc_select_12" autocomplete="off" class="ant-select-selection-search-input" role="combobox" aria-haspopup="listbox" aria-owns="rc_select_12_list" aria-autocomplete="list" aria-controls="rc_select_12_list" aria-activedescendant="rc_select_12_list_0" readonly="" unselectable="on" type="search" style="opacity: 0;"></span>
                                        <!----><span class="ant-select-selection-placeholder">please select your zone</span></div><span class="ant-select-arrow" unselectable="on" aria-hidden="true" style="user-select: none;"><span role="img" aria-label="down" class="anticon anticon-down ant-select-suffix"><svg focusable="false" class="" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></span></span>
                                    <!---->
                                </div>
                            </div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <div class="ant-col ant-col-4 ant-form-item-label"><label class="ant-form-item-required" title="Activity type">Activity type<!----></label></div>
                    <div class="ant-col ant-col-14 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content">
                                <div class="ant-checkbox-group"><label class="ant-checkbox-wrapper"><span class="ant-checkbox"><input type="checkbox" class="ant-checkbox-input" value="1"><span class="ant-checkbox-inner"></span></span><span>Online</span></label><label class="ant-checkbox-wrapper"><span class="ant-checkbox"><input type="checkbox" class="ant-checkbox-input" value="2"><span class="ant-checkbox-inner"></span></span><span>Promotion</span></label>
                                    <label class="ant-checkbox-wrapper"><span class="ant-checkbox"><input type="checkbox" class="ant-checkbox-input" value="3"><span class="ant-checkbox-inner"></span></span><span>Offline</span></label>
                                </div>
                            </div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <!---->
                    <div class="ant-col ant-col-14 ant-col-offset-4 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content"><button class="ant-btn ant-btn-primary" type="button"><!----><span>Create</span></button><button class="ant-btn" type="button" style="margin-left: 10px;"><!----><span>Reset</span></button></div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
            </form>
        </section>
        <section class="code-box-meta markdown">
            <div class="code-box-title"><a href="#components-form-demo-useForm-basic">useForm 基本表单</a></div>
            <div class="code-box-description">
                <p>通过 <a href="#useForm"><code>Form.useForm</code></a> 更加灵活的使用表单组件。</p>
            </div>
        </section>
        <section class="highlight-wrapper">
            <div class="highlight">
                <pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form</span> <span class="token attr-name">:label-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>labelCol<span class="token punctuation">"</span></span> <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>wrapperCol<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity name<span class="token punctuation">"</span></span> <span class="token attr-name">v-bind</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>validateInfos.name<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>modelRef.name<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity zone<span class="token punctuation">"</span></span> <span class="token attr-name">v-bind</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>validateInfos.region<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-select</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>modelRef.region<span class="token punctuation">"</span></span> <span class="token attr-name">placeholder</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>please select your zone<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-select-option</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>shanghai<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Zone one<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-select-option</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-select-option</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>beijing<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Zone two<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-select-option</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-select</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity type<span class="token punctuation">"</span></span> <span class="token attr-name">v-bind</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>validateInfos.type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox-group</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>modelRef.type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>1<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Online<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>2<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Promotion<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-checkbox</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>3<span class="token punctuation">"</span></span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>type<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Offline<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-checkbox-group</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>{ span: 14, offset: 4 }<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>primary<span class="token punctuation">"</span></span> <span class="token attr-name">@click.prevent</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>onSubmit<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Create<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">margin-left</span><span class="token punctuation">:</span> 10px</span><span class="token punctuation">"</span></span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>resetFields<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Reset<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ts<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
<span class="token keyword">import</span> <span class="token punctuation">{</span> defineComponent<span class="token punctuation">,</span> reactive<span class="token punctuation">,</span> toRaw <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'vue'</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> Form <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'ant-design-vue'</span><span class="token punctuation">;</span> 
<span class="token keyword">const</span> useForm <span class="token operator">=</span> Form<span class="token punctuation">.</span>useForm<span class="token punctuation">;</span>
<span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token function">defineComponent</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
  <span class="token function">setup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">const</span> modelRef <span class="token operator">=</span> <span class="token function">reactive</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
      name<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
      region<span class="token operator">:</span> <span class="token keyword">undefined</span><span class="token punctuation">,</span>
      type<span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> rulesRef <span class="token operator">=</span> <span class="token function">reactive</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
      name<span class="token operator">:</span> <span class="token punctuation">[</span>
        <span class="token punctuation">{</span>
          required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
          message<span class="token operator">:</span> <span class="token string">'Please input name'</span><span class="token punctuation">,</span>
        <span class="token punctuation">}</span><span class="token punctuation">,</span>
      <span class="token punctuation">]</span><span class="token punctuation">,</span>
      region<span class="token operator">:</span> <span class="token punctuation">[</span>
        <span class="token punctuation">{</span>
          required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
          message<span class="token operator">:</span> <span class="token string">'Please select region'</span><span class="token punctuation">,</span>
        <span class="token punctuation">}</span><span class="token punctuation">,</span>
      <span class="token punctuation">]</span><span class="token punctuation">,</span>
      type<span class="token operator">:</span> <span class="token punctuation">[</span>
        <span class="token punctuation">{</span>
          required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
          message<span class="token operator">:</span> <span class="token string">'Please select type'</span><span class="token punctuation">,</span>
          type<span class="token operator">:</span> <span class="token string">'array'</span><span class="token punctuation">,</span>
        <span class="token punctuation">}</span><span class="token punctuation">,</span>
      <span class="token punctuation">]</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token punctuation">{</span> resetFields<span class="token punctuation">,</span> validate<span class="token punctuation">,</span> validateInfos <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token function">useForm</span><span class="token punctuation">(</span>modelRef<span class="token punctuation">,</span> rulesRef<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">onSubmit</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      <span class="token function">validate</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
          console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token function">toRaw</span><span class="token punctuation">(</span>modelRef<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">catch</span><span class="token punctuation">(</span><span class="token parameter">err</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
          console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'error'</span><span class="token punctuation">,</span> err<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">return</span> <span class="token punctuation">{</span>
      labelCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">4</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      wrapperCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">14</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      validateInfos<span class="token punctuation">,</span>
      resetFields<span class="token punctuation">,</span>
      modelRef<span class="token punctuation">,</span>
      onSubmit<span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</span></span>
</code></pre>
            </div>
        </section>
    </section>
    <section class="code-box" id="components-form-demo-useForm-nested">
        <section class="code-box-demo">
            <form class="ant-form ant-form-horizontal">
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <div class="ant-col ant-col-4 ant-form-item-label"><label class="ant-form-item-required" title="Activity name">Activity name<!----></label></div>
                    <div class="ant-col ant-col-14 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content"><input type="text" class="ant-input"></div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <div class="ant-col ant-col-4 ant-form-item-label"><label class="ant-form-item-required" title="Sub name">Sub name<!----></label></div>
                    <div class="ant-col ant-col-14 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content"><input type="text" class="ant-input"></div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <!---->
                    <div class="ant-col ant-col-14 ant-col-offset-4 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content"><button class="ant-btn ant-btn-primary" type="button"><!----><span>Create</span></button><button class="ant-btn" type="button" style="margin-left: 10px;"><!----><span>Reset</span></button></div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
            </form>
        </section>
        <section class="code-box-meta markdown">
            <div class="code-box-title"><a href="#components-form-demo-useForm-nested">useForm 嵌套表单</a></div>
            <div class="code-box-description">
                <p>通过 <a href="#useForm"><code>Form.useForm</code></a> 使用点字符串拼接进行嵌套数据校验。</p>
            </div>
        </section>
        <section class="highlight-wrapper">
            <div class="highlight">
                <pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form</span> <span class="token attr-name">:label-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>labelCol<span class="token punctuation">"</span></span> <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>wrapperCol<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity name<span class="token punctuation">"</span></span> <span class="token attr-name">v-bind</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>validateInfos.name<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>modelRef.name<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Sub name<span class="token punctuation">"</span></span> <span class="token attr-name">v-bind</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>validateInfos[<span class="token punctuation">'</span>sub.name<span class="token punctuation">'</span>]<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>modelRef.sub.name<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>{ span: 14, offset: 4 }<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>primary<span class="token punctuation">"</span></span> <span class="token attr-name">@click.prevent</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>onSubmit<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Create<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">margin-left</span><span class="token punctuation">:</span> 10px</span><span class="token punctuation">"</span></span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>reset<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Reset<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ts<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
<span class="token keyword">import</span> <span class="token punctuation">{</span> defineComponent<span class="token punctuation">,</span> reactive<span class="token punctuation">,</span> toRaw <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'vue'</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> Form <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'ant-design-vue'</span><span class="token punctuation">;</span> 
<span class="token keyword">const</span> useForm <span class="token operator">=</span> Form<span class="token punctuation">.</span>useForm<span class="token punctuation">;</span>
<span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token function">defineComponent</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
  <span class="token function">setup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">const</span> modelRef <span class="token operator">=</span> <span class="token function">reactive</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
      name<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
      sub<span class="token operator">:</span> <span class="token punctuation">{</span>
        name<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
      <span class="token punctuation">}</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token punctuation">{</span> resetFields<span class="token punctuation">,</span> validate<span class="token punctuation">,</span> validateInfos <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token function">useForm</span><span class="token punctuation">(</span>
      modelRef<span class="token punctuation">,</span>
      <span class="token function">reactive</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
        name<span class="token operator">:</span> <span class="token punctuation">[</span>
          <span class="token punctuation">{</span>
            required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
            message<span class="token operator">:</span> <span class="token string">'Please input name'</span><span class="token punctuation">,</span>
          <span class="token punctuation">}</span><span class="token punctuation">,</span>
        <span class="token punctuation">]</span><span class="token punctuation">,</span>
        <span class="token string">'sub.name'</span><span class="token operator">:</span> <span class="token punctuation">[</span>
          <span class="token punctuation">{</span>
            required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
            message<span class="token operator">:</span> <span class="token string">'Please input sub name'</span><span class="token punctuation">,</span>
          <span class="token punctuation">}</span><span class="token punctuation">,</span>
        <span class="token punctuation">]</span><span class="token punctuation">,</span>
      <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
    <span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">onSubmit</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      <span class="token function">validate</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span><span class="token parameter">res</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
          console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>res<span class="token punctuation">,</span> <span class="token function">toRaw</span><span class="token punctuation">(</span>modelRef<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">catch</span><span class="token punctuation">(</span><span class="token parameter">err</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
          console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'error'</span><span class="token punctuation">,</span> err<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">reset</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      <span class="token function">resetFields</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">return</span> <span class="token punctuation">{</span>
      labelCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">4</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      wrapperCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">14</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      validateInfos<span class="token punctuation">,</span>
      reset<span class="token punctuation">,</span>
      modelRef<span class="token punctuation">,</span>
      onSubmit<span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</span></span>
</code></pre>
            </div>
        </section>
    </section>
    <section class="code-box" id="components-form-demo-useForm-trigger">
        <section class="code-box-demo">
            <form class="ant-form ant-form-horizontal">
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <div class="ant-col ant-col-4 ant-form-item-label"><label class="ant-form-item-required" title="Activity name">Activity name<!----></label></div>
                    <div class="ant-col ant-col-14 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content"><input type="text" class="ant-input"></div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <div class="ant-col ant-col-4 ant-form-item-label"><label class="ant-form-item-required" title="Activity zone">Activity zone<!----></label></div>
                    <div class="ant-col ant-col-14 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content">
                                <div class="ant-select ant-select-single ant-select-show-arrow">
                                    <!---->
                                    <!---->
                                    <div class="ant-select-selector"><span class="ant-select-selection-search"><input id="rc_select_13" autocomplete="off" class="ant-select-selection-search-input" role="combobox" aria-haspopup="listbox" aria-owns="rc_select_13_list" aria-autocomplete="list" aria-controls="rc_select_13_list" aria-activedescendant="rc_select_13_list_0" readonly="" unselectable="on" type="search" style="opacity: 0;"></span>
                                        <!----><span class="ant-select-selection-placeholder">please select your zone</span></div><span class="ant-select-arrow" unselectable="on" aria-hidden="true" style="user-select: none;"><span role="img" aria-label="down" class="anticon anticon-down ant-select-suffix"><svg focusable="false" class="" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></span></span>
                                    <!---->
                                </div>
                            </div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
                <div class="ant-row ant-form-item" style="row-gap: 0px;">
                    <!---->
                    <div class="ant-col ant-col-14 ant-col-offset-4 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content"><button class="ant-btn ant-btn-primary" type="button"><!----><span>Create</span></button><button class="ant-btn" type="button" style="margin-left: 10px;"><!----><span>Reset</span></button></div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
            </form>
        </section>
        <section class="code-box-meta markdown">
            <div class="code-box-title"><a href="#components-form-demo-useForm-trigger">useForm 自定义触发时机</a></div>
            <div class="code-box-description">
                <p>通过 <a href="#useForm"><code>Form.useForm</code></a> 自定义触发校验时机</p>
            </div>
        </section>
        <section class="highlight-wrapper">
            <div class="highlight">
                <pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form</span> <span class="token attr-name">:label-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>labelCol<span class="token punctuation">"</span></span> <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>wrapperCol<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity name<span class="token punctuation">"</span></span> <span class="token attr-name">v-bind</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>validateInfos.name<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span>
        <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>modelRef.name<span class="token punctuation">"</span></span>
        <span class="token attr-name">@blur</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>validate(<span class="token punctuation">'</span>name<span class="token punctuation">'</span>, { trigger: <span class="token punctuation">'</span>blur<span class="token punctuation">'</span> }).catch(() =&gt; {})<span class="token punctuation">"</span></span>
      <span class="token punctuation">/&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">label</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Activity zone<span class="token punctuation">"</span></span> <span class="token attr-name">v-bind</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>validateInfos.region<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-select</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>modelRef.region<span class="token punctuation">"</span></span> <span class="token attr-name">placeholder</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>please select your zone<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-select-option</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>shanghai<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Zone one<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-select-option</span><span class="token punctuation">&gt;</span></span>
        <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-select-option</span> <span class="token attr-name">value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>beijing<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Zone two<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-select-option</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-select</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">:wrapper-col</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>{ span: 14, offset: 4 }<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>primary<span class="token punctuation">"</span></span> <span class="token attr-name">@click.prevent</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>onSubmit<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Create<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
      <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-button</span> <span class="token special-attr"><span class="token attr-name">style</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span><span class="token value css language-css"><span class="token property">margin-left</span><span class="token punctuation">:</span> 10px</span><span class="token punctuation">"</span></span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>resetFields<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>Reset<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-button</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>ts<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
<span class="token keyword">import</span> <span class="token punctuation">{</span> defineComponent<span class="token punctuation">,</span> reactive<span class="token punctuation">,</span> toRaw <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'vue'</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> Form <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'ant-design-vue'</span><span class="token punctuation">;</span> 
<span class="token keyword">const</span> useForm <span class="token operator">=</span> Form<span class="token punctuation">.</span>useForm<span class="token punctuation">;</span>
<span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token function">defineComponent</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
  <span class="token function">setup</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">const</span> modelRef <span class="token operator">=</span> <span class="token function">reactive</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
      name<span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span>
      region<span class="token operator">:</span> <span class="token keyword">undefined</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> rulesRef <span class="token operator">=</span> <span class="token function">reactive</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
      name<span class="token operator">:</span> <span class="token punctuation">[</span>
        <span class="token punctuation">{</span>
          required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
          message<span class="token operator">:</span> <span class="token string">'Please input Activity name'</span><span class="token punctuation">,</span>
        <span class="token punctuation">}</span><span class="token punctuation">,</span>
        <span class="token punctuation">{</span>
          min<span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>
          max<span class="token operator">:</span> <span class="token number">5</span><span class="token punctuation">,</span>
          message<span class="token operator">:</span> <span class="token string">'Length should be 3 to 5'</span><span class="token punctuation">,</span>
          trigger<span class="token operator">:</span> <span class="token string">'blur'</span><span class="token punctuation">,</span>
        <span class="token punctuation">}</span><span class="token punctuation">,</span>
      <span class="token punctuation">]</span><span class="token punctuation">,</span>
      region<span class="token operator">:</span> <span class="token punctuation">[</span>
        <span class="token punctuation">{</span>
          required<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
          message<span class="token operator">:</span> <span class="token string">'Please select region'</span><span class="token punctuation">,</span>
        <span class="token punctuation">}</span><span class="token punctuation">,</span>
      <span class="token punctuation">]</span><span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token punctuation">{</span> resetFields<span class="token punctuation">,</span> validate<span class="token punctuation">,</span> validateInfos <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token function">useForm</span><span class="token punctuation">(</span>modelRef<span class="token punctuation">,</span> rulesRef<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">const</span> <span class="token function-variable function">onSubmit</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
      <span class="token function">validate</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
          console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token function">toRaw</span><span class="token punctuation">(</span>modelRef<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span><span class="token punctuation">)</span>
        <span class="token punctuation">.</span><span class="token function">catch</span><span class="token punctuation">(</span><span class="token parameter">err</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
          console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'error'</span><span class="token punctuation">,</span> err<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
    <span class="token keyword">return</span> <span class="token punctuation">{</span>
      labelCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">4</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      wrapperCol<span class="token operator">:</span> <span class="token punctuation">{</span> span<span class="token operator">:</span> <span class="token number">14</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
      validate<span class="token punctuation">,</span>
      validateInfos<span class="token punctuation">,</span>
      resetFields<span class="token punctuation">,</span>
      modelRef<span class="token punctuation">,</span>
      onSubmit<span class="token punctuation">,</span>
    <span class="token punctuation">}</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</span></span>
</code></pre>
            </div>
        </section>
    </section>
    <section class="code-box" id="components-form-demo-useForm-merge" data-v-2473db0f="">
        <section class="code-box-demo">
            <form class="ant-form ant-form-horizontal" data-v-2473db0f="">
                <div class="ant-row ant-form-item" data-v-2473db0f="" style="row-gap: 0px;">
                    <div class="ant-col ant-col-4 ant-form-item-label"><label class="ant-form-item-required" title="Activity name">Activity name<!----></label></div>
                    <div class="ant-col ant-col-14 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content"><input type="text" class="ant-input" data-v-2473db0f=""></div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
                <div class="ant-row ant-form-item" data-v-2473db0f="" style="row-gap: 0px;">
                    <div class="ant-col ant-col-4 ant-form-item-label"><label class="ant-form-item-required" title="Activity zone">Activity zone<!----></label></div>
                    <div class="ant-col ant-col-14 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content">
                                <div class="ant-select ant-select-single ant-select-show-arrow" data-v-2473db0f="">
                                    <!---->
                                    <!---->
                                    <div class="ant-select-selector"><span class="ant-select-selection-search"><input id="rc_select_14" autocomplete="off" class="ant-select-selection-search-input" role="combobox" aria-haspopup="listbox" aria-owns="rc_select_14_list" aria-autocomplete="list" aria-controls="rc_select_14_list" aria-activedescendant="rc_select_14_list_0" readonly="" unselectable="on" type="search" style="opacity: 0;"></span>
                                        <!----><span class="ant-select-selection-placeholder">please select your zone</span></div><span class="ant-select-arrow" unselectable="on" aria-hidden="true" style="user-select: none;"><span role="img" aria-label="down" class="anticon anticon-down ant-select-suffix"><svg focusable="false" class="" data-icon="down" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><path d="M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"></path></svg></span></span>
                                    <!---->
                                </div>
                            </div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
                <div class="ant-row ant-form-item" data-v-2473db0f="" style="row-gap: 0px;">
                    <div class="ant-col ant-col-4 ant-form-item-label"><label class="ant-form-item-required" title="Activity type">Activity type<!----></label></div>
                    <div class="ant-col ant-col-14 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content">
                                <div class="ant-checkbox-group" data-v-2473db0f=""><label class="ant-checkbox-wrapper" data-v-2473db0f=""><span class="ant-checkbox"><input type="checkbox" class="ant-checkbox-input" value="1"><span class="ant-checkbox-inner"></span></span><span>Online</span></label>
                                    <label class="ant-checkbox-wrapper" data-v-2473db0f=""><span class="ant-checkbox"><input type="checkbox" class="ant-checkbox-input" value="2"><span class="ant-checkbox-inner"></span></span><span>Promotion</span></label>
                                    <label
                                        class="ant-checkbox-wrapper" data-v-2473db0f=""><span class="ant-checkbox"><input type="checkbox" class="ant-checkbox-input" value="3"><span class="ant-checkbox-inner"></span></span><span>Offline</span></label>
                                </div>
                            </div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
                <div class="ant-row ant-form-item ant-form-item-with-help error-infos" data-v-2473db0f="" style="row-gap: 0px;">
                    <!---->
                    <div class="ant-col ant-col-14 ant-col-offset-4 ant-form-item-control">
                        <div class="ant-form-item-control-input">
                            <div class="ant-form-item-control-input-content"><button class="ant-btn ant-btn-primary" type="button" data-v-2473db0f=""><!----><span>Create</span></button><button class="ant-btn" type="button" data-v-2473db0f="" style="margin-left: 10px;"><!----><span>Reset</span></button></div>
                            <!---->
                        </div>
                        <!---->
                        <!---->
                    </div>
                </div>
            </form>
        </section>
        <section class="code-box-meta markdown">
            <div class="code-box-title"><a href="#components-form-demo-useForm-merge">useForm 合并错误信息</a></div>
            <div class="code-box-description">
                <p>通过 <a href="#useForm"><code>Form.useForm</code></a> 合并展示表单校验信息。</p>
            </div>
        </section>
        <section class="highlight-wrapper">
            <div class="highlight">
                <pre class="language-vue" data-v-2473db0f=""><code data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>template</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
  <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>a-form</span> <span class="token attr-name" data-v-2473db0f="">:label-col</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>labelCol<span class="token punctuation" data-v-2473db0f="">"</span></span> <span class="token attr-name" data-v-2473db0f="">:wrapper-col</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>wrapperCol<span class="token punctuation" data-v-2473db0f="">"</span></span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
    <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>a-form-item</span> <span class="token attr-name" data-v-2473db0f="">label</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>Activity name<span class="token punctuation" data-v-2473db0f="">"</span></span> <span class="token attr-name" data-v-2473db0f="">required</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
      <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>a-input</span> <span class="token attr-name" data-v-2473db0f=""><span class="token namespace" data-v-2473db0f="">v-model:</span>value</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>modelRef.name<span class="token punctuation" data-v-2473db0f="">"</span></span> <span class="token punctuation" data-v-2473db0f="">/&gt;</span></span>
    <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>a-form-item</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
    <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>a-form-item</span> <span class="token attr-name" data-v-2473db0f="">label</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>Activity zone<span class="token punctuation" data-v-2473db0f="">"</span></span> <span class="token attr-name" data-v-2473db0f="">required</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
      <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>a-select</span> <span class="token attr-name" data-v-2473db0f=""><span class="token namespace" data-v-2473db0f="">v-model:</span>value</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>modelRef.region<span class="token punctuation" data-v-2473db0f="">"</span></span> <span class="token attr-name" data-v-2473db0f="">placeholder</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>please select your zone<span class="token punctuation" data-v-2473db0f="">"</span></span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
        <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>a-select-option</span> <span class="token attr-name" data-v-2473db0f="">value</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>shanghai<span class="token punctuation" data-v-2473db0f="">"</span></span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>Zone one<span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>a-select-option</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
        <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>a-select-option</span> <span class="token attr-name" data-v-2473db0f="">value</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>beijing<span class="token punctuation" data-v-2473db0f="">"</span></span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>Zone two<span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>a-select-option</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
      <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>a-select</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
    <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>a-form-item</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
    <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>a-form-item</span> <span class="token attr-name" data-v-2473db0f="">label</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>Activity type<span class="token punctuation" data-v-2473db0f="">"</span></span> <span class="token attr-name" data-v-2473db0f="">required</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
      <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>a-checkbox-group</span> <span class="token attr-name" data-v-2473db0f=""><span class="token namespace" data-v-2473db0f="">v-model:</span>value</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>modelRef.type<span class="token punctuation" data-v-2473db0f="">"</span></span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
        <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>a-checkbox</span> <span class="token attr-name" data-v-2473db0f="">value</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>1<span class="token punctuation" data-v-2473db0f="">"</span></span> <span class="token attr-name" data-v-2473db0f="">name</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>type<span class="token punctuation" data-v-2473db0f="">"</span></span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>Online<span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>a-checkbox</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
        <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>a-checkbox</span> <span class="token attr-name" data-v-2473db0f="">value</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>2<span class="token punctuation" data-v-2473db0f="">"</span></span> <span class="token attr-name" data-v-2473db0f="">name</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>type<span class="token punctuation" data-v-2473db0f="">"</span></span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>Promotion<span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>a-checkbox</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
        <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>a-checkbox</span> <span class="token attr-name" data-v-2473db0f="">value</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>3<span class="token punctuation" data-v-2473db0f="">"</span></span> <span class="token attr-name" data-v-2473db0f="">name</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>type<span class="token punctuation" data-v-2473db0f="">"</span></span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>Offline<span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>a-checkbox</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
      <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>a-checkbox-group</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
    <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>a-form-item</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
    <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>a-form-item</span> <span class="token attr-name" data-v-2473db0f="">class</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>error-infos<span class="token punctuation" data-v-2473db0f="">"</span></span> <span class="token attr-name" data-v-2473db0f="">:wrapper-col</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>{ span: 14, offset: 4 }<span class="token punctuation" data-v-2473db0f="">"</span></span> <span class="token attr-name" data-v-2473db0f="">v-bind</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>errorInfos<span class="token punctuation" data-v-2473db0f="">"</span></span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
      <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>a-button</span> <span class="token attr-name" data-v-2473db0f="">type</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>primary<span class="token punctuation" data-v-2473db0f="">"</span></span> <span class="token attr-name" data-v-2473db0f="">@click.prevent</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>onSubmit<span class="token punctuation" data-v-2473db0f="">"</span></span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>Create<span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>a-button</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
      <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>a-button</span> <span class="token special-attr" data-v-2473db0f=""><span class="token attr-name" data-v-2473db0f="">style</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span><span class="token value css language-css" data-v-2473db0f=""><span class="token property" data-v-2473db0f="">margin-left</span><span class="token punctuation" data-v-2473db0f="">:</span> 10px</span><span class="token punctuation" data-v-2473db0f="">"</span></span></span> <span class="token attr-name" data-v-2473db0f="">@click</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>resetFields<span class="token punctuation" data-v-2473db0f="">"</span></span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>Reset<span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>a-button</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
    <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>a-form-item</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
  <span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>a-form</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
<span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>template</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
<span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>script</span> <span class="token attr-name" data-v-2473db0f="">lang</span><span class="token attr-value" data-v-2473db0f=""><span class="token punctuation attr-equals" data-v-2473db0f="">=</span><span class="token punctuation" data-v-2473db0f="">"</span>ts<span class="token punctuation" data-v-2473db0f="">"</span></span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span><span class="token script" data-v-2473db0f=""><span class="token language-javascript" data-v-2473db0f="">
<span class="token keyword" data-v-2473db0f="">import</span> <span class="token punctuation" data-v-2473db0f="">{</span> reactive<span class="token punctuation" data-v-2473db0f="">,</span> toRaw<span class="token punctuation" data-v-2473db0f="">,</span> computed<span class="token punctuation" data-v-2473db0f="">,</span> defineComponent <span class="token punctuation" data-v-2473db0f="">}</span> <span class="token keyword" data-v-2473db0f="">from</span> <span class="token string" data-v-2473db0f="">'vue'</span><span class="token punctuation" data-v-2473db0f="">;</span>
<span class="token keyword" data-v-2473db0f="">import</span> <span class="token punctuation" data-v-2473db0f="">{</span> toArray <span class="token punctuation" data-v-2473db0f="">}</span> <span class="token keyword" data-v-2473db0f="">from</span> <span class="token string" data-v-2473db0f="">'lodash-es'</span><span class="token punctuation" data-v-2473db0f="">;</span>
<span class="token keyword" data-v-2473db0f="">import</span> <span class="token punctuation" data-v-2473db0f="">{</span> Form <span class="token punctuation" data-v-2473db0f="">}</span> <span class="token keyword" data-v-2473db0f="">from</span> <span class="token string" data-v-2473db0f="">'ant-design-vue'</span><span class="token punctuation" data-v-2473db0f="">;</span> 
<span class="token keyword" data-v-2473db0f="">const</span> useForm <span class="token operator" data-v-2473db0f="">=</span> Form<span class="token punctuation" data-v-2473db0f="">.</span>useForm<span class="token punctuation" data-v-2473db0f="">;</span>
<span class="token keyword" data-v-2473db0f="">export</span> <span class="token keyword" data-v-2473db0f="">default</span> <span class="token function" data-v-2473db0f="">defineComponent</span><span class="token punctuation" data-v-2473db0f="">(</span><span class="token punctuation" data-v-2473db0f="">{</span>
  <span class="token function" data-v-2473db0f="">setup</span><span class="token punctuation" data-v-2473db0f="">(</span><span class="token punctuation" data-v-2473db0f="">)</span> <span class="token punctuation" data-v-2473db0f="">{</span>
    <span class="token keyword" data-v-2473db0f="">const</span> modelRef <span class="token operator" data-v-2473db0f="">=</span> <span class="token function" data-v-2473db0f="">reactive</span><span class="token punctuation" data-v-2473db0f="">(</span><span class="token punctuation" data-v-2473db0f="">{</span>
      name<span class="token operator" data-v-2473db0f="">:</span> <span class="token string" data-v-2473db0f="">''</span><span class="token punctuation" data-v-2473db0f="">,</span>
      region<span class="token operator" data-v-2473db0f="">:</span> <span class="token keyword" data-v-2473db0f="">undefined</span><span class="token punctuation" data-v-2473db0f="">,</span>
      type<span class="token operator" data-v-2473db0f="">:</span> <span class="token punctuation" data-v-2473db0f="">[</span><span class="token punctuation" data-v-2473db0f="">]</span><span class="token punctuation" data-v-2473db0f="">,</span>
    <span class="token punctuation" data-v-2473db0f="">}</span><span class="token punctuation" data-v-2473db0f="">)</span><span class="token punctuation" data-v-2473db0f="">;</span>
    <span class="token keyword" data-v-2473db0f="">const</span> rulesRef <span class="token operator" data-v-2473db0f="">=</span> <span class="token function" data-v-2473db0f="">reactive</span><span class="token punctuation" data-v-2473db0f="">(</span><span class="token punctuation" data-v-2473db0f="">{</span>
      name<span class="token operator" data-v-2473db0f="">:</span> <span class="token punctuation" data-v-2473db0f="">[</span>
        <span class="token punctuation" data-v-2473db0f="">{</span>
          required<span class="token operator" data-v-2473db0f="">:</span> <span class="token boolean" data-v-2473db0f="">true</span><span class="token punctuation" data-v-2473db0f="">,</span>
          message<span class="token operator" data-v-2473db0f="">:</span> <span class="token string" data-v-2473db0f="">'Please input name'</span><span class="token punctuation" data-v-2473db0f="">,</span>
        <span class="token punctuation" data-v-2473db0f="">}</span><span class="token punctuation" data-v-2473db0f="">,</span>
      <span class="token punctuation" data-v-2473db0f="">]</span><span class="token punctuation" data-v-2473db0f="">,</span>
      region<span class="token operator" data-v-2473db0f="">:</span> <span class="token punctuation" data-v-2473db0f="">[</span>
        <span class="token punctuation" data-v-2473db0f="">{</span>
          required<span class="token operator" data-v-2473db0f="">:</span> <span class="token boolean" data-v-2473db0f="">true</span><span class="token punctuation" data-v-2473db0f="">,</span>
          message<span class="token operator" data-v-2473db0f="">:</span> <span class="token string" data-v-2473db0f="">'Please select region'</span><span class="token punctuation" data-v-2473db0f="">,</span>
        <span class="token punctuation" data-v-2473db0f="">}</span><span class="token punctuation" data-v-2473db0f="">,</span>
      <span class="token punctuation" data-v-2473db0f="">]</span><span class="token punctuation" data-v-2473db0f="">,</span>
      type<span class="token operator" data-v-2473db0f="">:</span> <span class="token punctuation" data-v-2473db0f="">[</span>
        <span class="token punctuation" data-v-2473db0f="">{</span>
          required<span class="token operator" data-v-2473db0f="">:</span> <span class="token boolean" data-v-2473db0f="">true</span><span class="token punctuation" data-v-2473db0f="">,</span>
          message<span class="token operator" data-v-2473db0f="">:</span> <span class="token string" data-v-2473db0f="">'Please select type'</span><span class="token punctuation" data-v-2473db0f="">,</span>
          type<span class="token operator" data-v-2473db0f="">:</span> <span class="token string" data-v-2473db0f="">'array'</span><span class="token punctuation" data-v-2473db0f="">,</span>
        <span class="token punctuation" data-v-2473db0f="">}</span><span class="token punctuation" data-v-2473db0f="">,</span>
      <span class="token punctuation" data-v-2473db0f="">]</span><span class="token punctuation" data-v-2473db0f="">,</span>
    <span class="token punctuation" data-v-2473db0f="">}</span><span class="token punctuation" data-v-2473db0f="">)</span><span class="token punctuation" data-v-2473db0f="">;</span>
    <span class="token keyword" data-v-2473db0f="">const</span> <span class="token punctuation" data-v-2473db0f="">{</span> resetFields<span class="token punctuation" data-v-2473db0f="">,</span> validate<span class="token punctuation" data-v-2473db0f="">,</span> validateInfos<span class="token punctuation" data-v-2473db0f="">,</span> mergeValidateInfo <span class="token punctuation" data-v-2473db0f="">}</span> <span class="token operator" data-v-2473db0f="">=</span> <span class="token function" data-v-2473db0f="">useForm</span><span class="token punctuation" data-v-2473db0f="">(</span>modelRef<span class="token punctuation" data-v-2473db0f="">,</span> rulesRef<span class="token punctuation" data-v-2473db0f="">)</span><span class="token punctuation" data-v-2473db0f="">;</span>
    <span class="token keyword" data-v-2473db0f="">const</span> <span class="token function-variable function" data-v-2473db0f="">onSubmit</span> <span class="token operator" data-v-2473db0f="">=</span> <span class="token punctuation" data-v-2473db0f="">(</span><span class="token punctuation" data-v-2473db0f="">)</span> <span class="token operator" data-v-2473db0f="">=&gt;</span> <span class="token punctuation" data-v-2473db0f="">{</span>
      <span class="token function" data-v-2473db0f="">validate</span><span class="token punctuation" data-v-2473db0f="">(</span><span class="token punctuation" data-v-2473db0f="">)</span>
        <span class="token punctuation" data-v-2473db0f="">.</span><span class="token function" data-v-2473db0f="">then</span><span class="token punctuation" data-v-2473db0f="">(</span><span class="token punctuation" data-v-2473db0f="">(</span><span class="token punctuation" data-v-2473db0f="">)</span> <span class="token operator" data-v-2473db0f="">=&gt;</span> <span class="token punctuation" data-v-2473db0f="">{</span>
          console<span class="token punctuation" data-v-2473db0f="">.</span><span class="token function" data-v-2473db0f="">log</span><span class="token punctuation" data-v-2473db0f="">(</span><span class="token function" data-v-2473db0f="">toRaw</span><span class="token punctuation" data-v-2473db0f="">(</span>modelRef<span class="token punctuation" data-v-2473db0f="">)</span><span class="token punctuation" data-v-2473db0f="">)</span><span class="token punctuation" data-v-2473db0f="">;</span>
        <span class="token punctuation" data-v-2473db0f="">}</span><span class="token punctuation" data-v-2473db0f="">)</span>
        <span class="token punctuation" data-v-2473db0f="">.</span><span class="token function" data-v-2473db0f="">catch</span><span class="token punctuation" data-v-2473db0f="">(</span><span class="token parameter" data-v-2473db0f="">err</span> <span class="token operator" data-v-2473db0f="">=&gt;</span> <span class="token punctuation" data-v-2473db0f="">{</span>
          console<span class="token punctuation" data-v-2473db0f="">.</span><span class="token function" data-v-2473db0f="">log</span><span class="token punctuation" data-v-2473db0f="">(</span><span class="token string" data-v-2473db0f="">'error'</span><span class="token punctuation" data-v-2473db0f="">,</span> err<span class="token punctuation" data-v-2473db0f="">)</span><span class="token punctuation" data-v-2473db0f="">;</span>
        <span class="token punctuation" data-v-2473db0f="">}</span><span class="token punctuation" data-v-2473db0f="">)</span><span class="token punctuation" data-v-2473db0f="">;</span>
    <span class="token punctuation" data-v-2473db0f="">}</span><span class="token punctuation" data-v-2473db0f="">;</span>
    <span class="token keyword" data-v-2473db0f="">const</span> errorInfos <span class="token operator" data-v-2473db0f="">=</span> <span class="token function" data-v-2473db0f="">computed</span><span class="token punctuation" data-v-2473db0f="">(</span><span class="token punctuation" data-v-2473db0f="">(</span><span class="token punctuation" data-v-2473db0f="">)</span> <span class="token operator" data-v-2473db0f="">=&gt;</span> <span class="token punctuation" data-v-2473db0f="">{</span>
      <span class="token keyword" data-v-2473db0f="">return</span> <span class="token function" data-v-2473db0f="">mergeValidateInfo</span><span class="token punctuation" data-v-2473db0f="">(</span><span class="token function" data-v-2473db0f="">toArray</span><span class="token punctuation" data-v-2473db0f="">(</span>validateInfos<span class="token punctuation" data-v-2473db0f="">)</span><span class="token punctuation" data-v-2473db0f="">)</span><span class="token punctuation" data-v-2473db0f="">;</span>
    <span class="token punctuation" data-v-2473db0f="">}</span><span class="token punctuation" data-v-2473db0f="">)</span><span class="token punctuation" data-v-2473db0f="">;</span>
    <span class="token keyword" data-v-2473db0f="">return</span> <span class="token punctuation" data-v-2473db0f="">{</span>
      labelCol<span class="token operator" data-v-2473db0f="">:</span> <span class="token punctuation" data-v-2473db0f="">{</span> span<span class="token operator" data-v-2473db0f="">:</span> <span class="token number" data-v-2473db0f="">4</span> <span class="token punctuation" data-v-2473db0f="">}</span><span class="token punctuation" data-v-2473db0f="">,</span>
      wrapperCol<span class="token operator" data-v-2473db0f="">:</span> <span class="token punctuation" data-v-2473db0f="">{</span> span<span class="token operator" data-v-2473db0f="">:</span> <span class="token number" data-v-2473db0f="">14</span> <span class="token punctuation" data-v-2473db0f="">}</span><span class="token punctuation" data-v-2473db0f="">,</span>
      validateInfos<span class="token punctuation" data-v-2473db0f="">,</span>
      resetFields<span class="token punctuation" data-v-2473db0f="">,</span>
      modelRef<span class="token punctuation" data-v-2473db0f="">,</span>
      onSubmit<span class="token punctuation" data-v-2473db0f="">,</span>
      errorInfos<span class="token punctuation" data-v-2473db0f="">,</span>
    <span class="token punctuation" data-v-2473db0f="">}</span><span class="token punctuation" data-v-2473db0f="">;</span>
  <span class="token punctuation" data-v-2473db0f="">}</span><span class="token punctuation" data-v-2473db0f="">,</span>
<span class="token punctuation" data-v-2473db0f="">}</span><span class="token punctuation" data-v-2473db0f="">)</span><span class="token punctuation" data-v-2473db0f="">;</span>
</span></span><span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>script</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
<span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;</span>style</span> <span class="token attr-name" data-v-2473db0f="">scoped</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span><span class="token style" data-v-2473db0f=""><span class="token language-css" data-v-2473db0f="">
<span class="token selector" data-v-2473db0f="">.error-infos :deep(.ant-form-explain)</span> <span class="token punctuation" data-v-2473db0f="">{</span>
  <span class="token property" data-v-2473db0f="">white-space</span><span class="token punctuation" data-v-2473db0f="">:</span> pre-line<span class="token punctuation" data-v-2473db0f="">;</span>
<span class="token punctuation" data-v-2473db0f="">}</span>
</span></span><span class="token tag" data-v-2473db0f=""><span class="token tag" data-v-2473db0f=""><span class="token punctuation" data-v-2473db0f="">&lt;/</span>style</span><span class="token punctuation" data-v-2473db0f="">&gt;</span></span>
</code></pre>
            </div>
        </section>
    </section>
    </div>
    <!---->
    </div>
    <!---->
    <section class="markdown api-container">
        <h2 id="API"><span>API</span><a href="#API" class="anchor">#</a></h2> 
        <h3 id="form">Form</h3>
        <table class="docTable">
            <thead>
                <tr>
                    <th>参数</th>
                    <th>说明</th>
                    <th>类型</th>
                    <th>默认值</th>
                    <th>版本</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>model</td>
                    <td>表单数据对象</td>
                    <td>object</td>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td>rules</td>
                    <td>表单验证规则</td>
                    <td>object</td>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td>hideRequiredMark</td>
                    <td>隐藏所有表单项的必选标记</td>
                    <td>Boolean</td>
                    <td>false</td>
                    <td></td>
                </tr>
                <tr>
                    <td>labelAlign</td>
                    <td>label 标签的文本对齐方式</td>
                    <td>'left' | 'right'</td>
                    <td>'right'</td>
                    <td></td>
                </tr>
                <tr>
                    <td>layout</td>
                    <td>表单布局</td>
                    <td>'horizontal'|'vertical'|'inline'</td>
                    <td>'horizontal'</td>
                    <td></td>
                </tr>
                <tr>
                    <td>labelCol</td>
                    <td>label 标签布局，同 <code>&lt;Col&gt;</code> 组件，设置 <code>span</code> <code>offset</code> 值，如 <code>{span: 3, offset: 12}</code> 或 <code>sm: {span: 3, offset: 12}</code></td>
                    <td><a href="/components/grid-cn/#Col">object</a></td>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td>wrapperCol</td>
                    <td>需要为输入控件设置布局样式时，使用该属性，用法同 labelCol</td>
                    <td><a href="/components/grid-cn/#Col">object</a></td>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td>colon</td>
                    <td>配置 Form.Item 的 colon 的默认值 (只有在属性 layout 为 horizontal 时有效)</td>
                    <td>boolean</td>
                    <td>true</td>
                    <td></td>
                </tr>
                <tr>
                    <td>validateOnRuleChange</td>
                    <td>是否在 rules 属性改变后立即触发一次验证</td>
                    <td>boolean</td>
                    <td>true</td>
                    <td></td>
                </tr>
                <tr>
                    <td>scrollToFirstError</td>
                    <td>提交失败自动滚动到第一个错误字段</td>
                    <td>boolean | <a href="https://github.com/stipsan/scroll-into-view-if-needed/#options" target="_blank" rel="noopener noreferrer">options</a></td>
                    <td>false</td>
                    <td>2.0.0</td>
                </tr>
                <tr>
                    <td>name</td>
                    <td>表单名称，会作为表单字段 <code>id</code> 前缀使用</td>
                    <td>string</td>
                    <td>-</td>
                    <td>2.0.0</td>
                </tr>
                <tr>
                    <td>validateTrigger</td>
                    <td>统一设置字段校验规则</td>
                    <td>string | string[]</td>
                    <td><code>change</code></td>
                    <td>2.0.0</td>
                </tr>
            </tbody>
        </table>
        <h3 id="事件">事件</h3>
        <table class="docTable">
            <thead>
                <tr>
                    <th>事件名称</th>
                    <th>说明</th>
                    <th>回调参数</th>
                    <th>版本</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>submit</td>
                    <td>数据验证成功后回调事件</td>
                    <td>Function(e:Event)</td>
                    <td>｜</td>
                </tr>
                <tr>
                    <td>validate</td>
                    <td>任一表单项被校验后触发</td>
                    <td>被校验的表单项 name 值，校验是否通过，错误消息（如果存在）</td>
                    <td></td>
                </tr>
                <tr>
                    <td>finish</td>
                    <td>提交表单且数据验证成功后回调事件</td>
                    <td>function(values)</td>
                    <td>-</td>
                </tr>
                <tr>
                    <td>finishFailed</td>
                    <td>提交表单且数据验证失败后回调事件</td>
                    <td>function({ values, errorFields, outOfDate })</td>
                    <td>-</td>
                </tr>
            </tbody>
        </table>
        <h3 id="方法">方法</h3>
        <table class="docTable">
            <thead>
                <tr>
                    <th>方法名</th>
                    <th>说明</th>
                    <th>参数</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>validate</td>
                    <td>触发表单验证, 同 validateFields</td>
                    <td>(nameList?: <a href="#NamePath">NamePath</a>[]) =&gt; Promise</td>
                </tr>
                <tr>
                    <td>validateFields</td>
                    <td>触发表单验证</td>
                    <td>(nameList?: <a href="#NamePath">NamePath</a>[]) =&gt; Promise</td>
                </tr>
                <tr>
                    <td>scrollToField</td>
                    <td>滚动到对应字段位置</td>
                    <td>(name: <a href="#NamePath">NamePath</a>, options: [<a href="https://github.com/stipsan/scroll-into-view-if-needed/tree/ece40bd9143f48caf4b99503425ecb16b0ad8249#options" target="_blank" rel="noopener noreferrer">ScrollOptions</a>])
                        =&gt; void</td>
                </tr>
                <tr>
                    <td>resetFields</td>
                    <td>对整个表单进行重置，将所有字段值重置为初始值并移除校验结果</td>
                    <td>—</td>
                </tr>
                <tr>
                    <td>clearValidate</td>
                    <td>移除表单项的校验结果。传入待移除的表单项的 name 属性或者 name 组成的数组，如不传则移除整个表单的校验结果</td>
                    <td>Function(name: array | string)</td>
                </tr>
            </tbody>
        </table>
        <h3 id="form-item">Form.Item</h3>
        <table class="docTable">class="docTable">
            <thead>
                <tr>
                    <th>参数</th>
                    <th>说明</th>
                    <th>类型</th>
                    <th>默认值</th>
                    <th>版本</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>name</td>
                    <td>表单域 model 字段，在使用 validate、resetFields 方法的情况下，该属性是必填的</td>
                    <td>string</td>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td>rules</td>
                    <td>表单验证规则</td>
                    <td>object | array</td>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td>autoLink</td>
                    <td>是否自动关联表单域，对于大部分情况都可以使用自动关联，如果不满足自动关联的条件，可以手动关联，参见下方注意事项</td>
                    <td>boolean</td>
                    <td>true</td>
                    <td></td>
                </tr>
                <tr>
                    <td>colon</td>
                    <td>配合 label 属性使用，表示是否显示 label 后面的冒号</td>
                    <td>boolean</td>
                    <td>true</td>
                    <td></td>
                </tr>
                <tr>
                    <td>extra</td>
                    <td>额外的提示信息，和 help 类似，当需要错误信息和提示文案同时出现时，可以使用这个。</td>
                    <td>string|slot</td>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td>hasFeedback</td>
                    <td>配合 validateStatus 属性使用，展示校验状态图标，建议只配合 Input 组件使用</td>
                    <td>boolean</td>
                    <td>false</td>
                    <td></td>
                </tr>
                <tr>
                    <td>help</td>
                    <td>提示信息，如不设置，则会根据校验规则自动生成</td>
                    <td>string|slot</td>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td>htmlFor</td>
                    <td>设置子元素 label <code>htmlFor</code> 属性</td>
                    <td>string</td>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td>label</td>
                    <td>label 标签的文本</td>
                    <td>string|slot</td>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td>labelCol</td>
                    <td>label 标签布局，同 <code>&lt;Col&gt;</code> 组件，设置 <code>span</code> <code>offset</code> 值，如 <code>{span: 3, offset: 12}</code> 或 <code>sm: {span: 3, offset: 12}</code></td>
                    <td><a href="/components/grid-cn/#Col">object</a></td>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td>labelAlign</td>
                    <td>标签文本对齐方式</td>
                    <td>'left' | 'right'</td>
                    <td>'right'</td>
                    <td></td>
                </tr>
                <tr>
                    <td>required</td>
                    <td>是否必填，如不设置，则会根据校验规则自动生成</td>
                    <td>boolean</td>
                    <td>false</td>
                    <td></td>
                </tr>
                <tr>
                    <td>validateStatus</td>
                    <td>校验状态，如不设置，则会根据校验规则自动生成，可选：'success' 'warning' 'error' 'validating'</td>
                    <td>string</td>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td>wrapperCol</td>
                    <td>需要为输入控件设置布局样式时，使用该属性，用法同 labelCol</td>
                    <td><a href="/components/grid-cn/#Col">object</a></td>
                    <td></td>
                    <td></td>
                </tr>
                <tr>
                    <td>validateFirst</td>
                    <td>当某一规则校验不通过时，是否停止剩下的规则的校验。</td>
                    <td>boolean</td>
                    <td>false</td>
                    <td>2.0.0</td>
                </tr>
                <tr>
                    <td>validateTrigger</td>
                    <td>设置字段校验的时机</td>
                    <td>string | string[]</td>
                    <td><code>change</code></td>
                    <td>2.0.0</td>
                </tr>
            </tbody>
        </table>
        <h4 id="注意：">注意：</h4>
        <p>Form.Item 会对唯一子元素进行劫持，并监听 <code>blur</code> 和 <code>change</code> 事件，来达到自动校验的目的，所以请确保表单域没有其它元素包裹。如果有多个子元素，将只会监听第一个子元素的变化。</p>
        <p>如果要监听的表单域不满足自动监听的条件，可以通过如下方式关联表单域：</p>
        <pre class="language-html" v-pre=""><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-form-item</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>form.name<span class="token punctuation">"</span></span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>name<span class="token punctuation">"</span></span> <span class="token attr-name">:autoLink</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>false<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span> <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>other<span class="token punctuation">"</span></span> <span class="token punctuation">/&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>span</span><span class="token punctuation">&gt;</span></span>hahha<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>span</span><span class="token punctuation">&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span><span class="token punctuation">&gt;</span></span>
    <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>a-input</span>
      <span class="token attr-name"><span class="token namespace">v-model:</span>value</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>form.name<span class="token punctuation">"</span></span>
      <span class="token attr-name">@blur</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>() =&gt; {$refs.name.onFieldBlur()}<span class="token punctuation">"</span></span>
      <span class="token attr-name">@change</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>() =&gt; {$refs.name.onFieldChange()}<span class="token punctuation">"</span></span>
    <span class="token punctuation">/&gt;</span></span>
  <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>a-form-item</span><span class="token punctuation">&gt;</span></span>
</code></pre>
        <h3 id="校验规则">校验规则</h3>
        <table class="docTable">
            <thead>
                <tr>
                    <th>参数</th>
                    <th>说明</th>
                    <th>类型</th>
                    <th>默认值</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>trigger</td>
                    <td>校验触发的时机</td>
                    <td>'blur' | 'change' | <code>['change', 'blur']</code></td>
                    <td>-</td>
                </tr>
                <tr>
                    <td>enum</td>
                    <td>枚举类型</td>
                    <td>string</td>
                    <td>-</td>
                </tr>
                <tr>
                    <td>len</td>
                    <td>字段长度</td>
                    <td>number</td>
                    <td>-</td>
                </tr>
                <tr>
                    <td>max</td>
                    <td>最大长度</td>
                    <td>number</td>
                    <td>-</td>
                </tr>
                <tr>
                    <td>message</td>
                    <td>校验文案</td>
                    <td>string</td>
                    <td>-</td>
                </tr>
                <tr>
                    <td>min</td>
                    <td>最小长度</td>
                    <td>number</td>
                    <td>-</td>
                </tr>
                <tr>
                    <td>pattern</td>
                    <td>正则表达式校验</td>
                    <td>RegExp</td>
                    <td>-</td>
                </tr>
                <tr>
                    <td>required</td>
                    <td>是否必选</td>
                    <td>boolean</td>
                    <td><code>false</code></td>
                </tr>
                <tr>
                    <td>transform</td>
                    <td>校验前转换字段值</td>
                    <td>function(value) =&gt; transformedValue:any</td>
                    <td>-</td>
                </tr>
                <tr>
                    <td>type</td>
                    <td>内建校验类型，<a href="https://github.com/yiminghe/async-validator#type" target="_blank" rel="noopener noreferrer">可选项</a></td>
                    <td>string</td>
                    <td>'string'</td>
                </tr>
                <tr>
                    <td>validator</td>
                    <td>自定义校验（注意，<a href="https://github.com/ant-design/ant-design/issues/5155" target="_blank" rel="noopener noreferrer">callback 必须被调用</a>）</td>
                    <td>function(rule, value, callback)</td>
                    <td>-</td>
                </tr>
                <tr>
                    <td>whitespace</td>
                    <td>必选时，空格是否会被视为错误</td>
                    <td>boolean</td>
                    <td><code>false</code></td>
                </tr>
            </tbody>
        </table>
        <p>更多高级用法可研究 <a href="https://github.com/yiminghe/async-validator" target="_blank" rel="noopener noreferrer">async-validator</a>。</p>
        <h3 id="useform-v2-2">useForm (v2.2)</h3>
        <p><code>useForm</code> 是一个可以独立 Form 组件运行的方法，它使用 Vue 响应式机制进行数据的监听和校验，并将校验结果返回，你可以将校验结果绑定到任何组件上，<code>Form.Item</code> 也仅仅是将结果展示。</p>
        <p>2.2 以下版本需要需要 @ant-design-vue/use 库单独提供，不建议继续使用，你应该尽快升级到 2.2+ 版本</p>
        <pre class="language-ts" v-pre=""><code><span class="token keyword">import</span> <span class="token punctuation">{</span> Form <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'ant-design-vue'</span><span class="token punctuation">;</span>
<span class="token keyword">const</span> useForm <span class="token operator">=</span> Form<span class="token punctuation">.</span>useForm<span class="token punctuation">;</span> 
<span class="token function">useForm</span><span class="token punctuation">(</span>modelRef<span class="token punctuation">,</span> ruleRef<span class="token punctuation">,</span> <span class="token punctuation">[</span>options<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> 
</code></pre>
        <p>参数说明：</p>
        <pre class="language-ts" v-pre=""><code><span class="token comment">/*
 modelRef`, `ruleRef` 必须是响应式数据
*/</span> 
<span class="token keyword">interface</span> <span class="token class-name">Props</span> <span class="token punctuation">{</span>
  <span class="token punctuation">[</span>key<span class="token operator">:</span> <span class="token builtin">string</span><span class="token punctuation">]</span><span class="token operator">:</span> <span class="token builtin">any</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">function</span> <span class="token function">useForm</span><span class="token punctuation">(</span>
  modelRef<span class="token operator">:</span> Props <span class="token operator">|</span> Ref<span class="token operator">&lt;</span>Props<span class="token operator">&gt;</span><span class="token punctuation">,</span>
  rulesRef<span class="token operator">?</span><span class="token operator">:</span> Props <span class="token operator">|</span> Ref<span class="token operator">&lt;</span>Props<span class="token operator">&gt;</span><span class="token punctuation">,</span>
  options<span class="token operator">?</span><span class="token operator">:</span> <span class="token punctuation">{</span>
    immediate<span class="token operator">?</span><span class="token operator">:</span> <span class="token builtin">boolean</span><span class="token punctuation">;</span>
    deep<span class="token operator">?</span><span class="token operator">:</span> <span class="token builtin">boolean</span><span class="token punctuation">;</span>
    validateOnRuleChange<span class="token operator">?</span><span class="token operator">:</span> <span class="token builtin">boolean</span><span class="token punctuation">;</span>
    debounce<span class="token operator">?</span><span class="token operator">:</span> DebounceSettings<span class="token punctuation">;</span>
  <span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">)</span><span class="token operator">:</span> <span class="token punctuation">{</span>
  modelRef<span class="token operator">:</span> Props <span class="token operator">|</span> Ref<span class="token operator">&lt;</span>Props<span class="token operator">&gt;</span><span class="token punctuation">;</span>
  rulesRef<span class="token operator">:</span> Props <span class="token operator">|</span> Ref<span class="token operator">&lt;</span>Props<span class="token operator">&gt;</span><span class="token punctuation">;</span>
  initialModel<span class="token operator">:</span> Props<span class="token punctuation">;</span>
  validateInfos<span class="token operator">:</span> validateInfos<span class="token punctuation">;</span>
  <span class="token function-variable function">resetFields</span><span class="token operator">:</span> <span class="token punctuation">(</span>newValues<span class="token operator">?</span><span class="token operator">:</span> Props<span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token keyword">void</span><span class="token punctuation">;</span>
  validate<span class="token operator">:</span> <span class="token operator">&lt;</span><span class="token constant">T</span> <span class="token operator">=</span> <span class="token builtin">any</span><span class="token operator">&gt;</span><span class="token punctuation">(</span>names<span class="token operator">?</span><span class="token operator">:</span> namesType<span class="token punctuation">,</span> option<span class="token operator">?</span><span class="token operator">:</span> validateOptions<span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token builtin">Promise</span><span class="token operator">&lt;</span><span class="token constant">T</span><span class="token operator">&gt;</span><span class="token punctuation">;</span>
  <span class="token function-variable function">validateField</span><span class="token operator">:</span> <span class="token punctuation">(</span>
    name<span class="token operator">?</span><span class="token operator">:</span> <span class="token builtin">string</span><span class="token punctuation">,</span>
    value<span class="token operator">?</span><span class="token operator">:</span> <span class="token builtin">any</span><span class="token punctuation">,</span>
    rules<span class="token operator">?</span><span class="token operator">:</span> <span class="token punctuation">[</span>Record<span class="token operator">&lt;</span><span class="token builtin">string</span><span class="token punctuation">,</span> <span class="token builtin">unknown</span><span class="token operator">&gt;</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
    option<span class="token operator">?</span><span class="token operator">:</span> validateOptions<span class="token punctuation">,</span>
  <span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token builtin">Promise</span><span class="token operator">&lt;</span>RuleError<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token operator">&gt;</span><span class="token punctuation">;</span>
  <span class="token function-variable function">mergeValidateInfo</span><span class="token operator">:</span> <span class="token punctuation">(</span>items<span class="token operator">:</span> ValidateInfo <span class="token operator">|</span> ValidateInfo<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> ValidateInfo<span class="token punctuation">;</span>
  <span class="token function-variable function">clearValidate</span><span class="token operator">:</span> <span class="token punctuation">(</span>names<span class="token operator">?</span><span class="token operator">:</span> namesType<span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token keyword">void</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre> 
    </section>
</article>