畅聊人生 發表於 2026-3-19 14:19:00

vue表单vxe-from配置渲染日期范围选择器的用法

<p>在使用 vxe-form 表单配置渲染时,日期范围选择器(VxeDateRangePicker)支持多种数据格式绑定,包括字符串类型、数组类型以及两个独立字段的方式。本文将详细介绍这三种用法的配置方法。</p>
<h2 id="三种数据绑定方式">三种数据绑定方式</h2>
<p>通过 itemRender.name='VxeDateRangePicker' 指定渲染控件</p>
<h3 id="字符串格式逗号分隔">字符串格式(逗号分隔)</h3>
<p>适用于需要将起止日期以逗号分隔的字符串形式存储的场景。</p>
<pre><code class="language-javascript">data: {
selectDate: '2025-05-10,2025-05-15'// 格式:'开始日期,结束日期'
}

items: [
{
    field: 'selectDate',         // 字段名
    title: '字符串格式',
    span: 24,
    itemRender: {
      name: 'VxeDateRangePicker'    // 指定渲染组件
    }
}
]
</code></pre>
<h2 id="数组格式">数组格式</h2>
<p>适用于数据需要以数组形式存储的场景,数组包含两个元素,分别代表开始日期和结束日期。</p>
<pre><code class="language-javascript">data: {
dates: ['2025-05-02', '2025-05-08']// 格式:[开始日期, 结束日期]
}

items: [
{
    field: 'dates',                // 字段名
    title: '数组格式',
    span: 24,
    itemRender: {
      name: 'VxeDateRangePicker'    // 指定渲染组件
    }
}
]
</code></pre>
<h2 id="两个独立字段格式">两个独立字段格式</h2>
<p>适用于开始日期和结束日期分别存储在不同字段的场景,通过 startField 和 endField 属性指定对应的字段名。</p>
<pre><code class="language-javascript">data: {
startDate: '2025-05-01',// 开始日期字段
endDate: '2025-06-20'   // 结束日期字段
}

items: [
{
    field: '_startAndEnd',         // 虚拟字段名,不实际存储数据
    title: '2个字段格式',
    span: 24,
    itemRender: {
      name: 'VxeDateRangePicker',   // 指定渲染组件
      startField: 'startDate',      // 指定开始日期字段
      endField: 'endDate'             // 指定结束日期字段
    }
}
]
</code></pre>
<h2 id="完整示例">完整示例</h2>
<p><img src="https://img2024.cnblogs.com/blog/3765549/202603/3765549-20260319141343277-1618161777.png"></p>
<pre><code class="language-html">&lt;template&gt;
&lt;div&gt;å
    &lt;vxe-form v-bind="formOptions" &gt;
      &lt;template #action&gt;
      &lt;vxe-button type="reset"&gt;重置&lt;/vxe-button&gt;
      &lt;vxe-button type="submit" status="primary"&gt;提交&lt;/vxe-button&gt;
      &lt;/template&gt;
    &lt;/vxe-form&gt;
&lt;/div&gt;
&lt;/template&gt;

&lt;script setup&gt;
import { reactive } from 'vue'

const formOptions = reactive({
titleWidth: 120,
data: {
    name: 'test1',
    nickname: 'Testing',
    sex: '',
    selectDate: '2025-05-10,2025-05-15',
    dates: ['2025-05-02', '2025-05-08'],
    startDate: '2025-05-01',
    endDate: '2025-06-20',
    address: ''
},
items: [
    { field: 'name', title: '名称', span: 24, itemRender: { name: 'VxeInput' } },
    { field: 'selectDate', title: '字符串格式', span: 24, itemRender: { name: 'VxeDateRangePicker' } },
    { field: 'dates', title: '数组格式', span: 24, itemRender: { name: 'VxeDateRangePicker' } },
    { field: '_startAndEnd', title: '2个字段格式', span: 24, itemRender: { name: 'VxeDateRangePicker', startField: 'startDate', endField: 'endDate' } },
    { align: 'center', span: 24, slots: { default: 'action' } }
]
})
&lt;/script&gt;
</code></pre>
<ul>
<li>注意事项</li>
<li>字符串格式:必须使用逗号分隔,格式为 '开始日期,结束日期'</li>
<li>数组格式:数组长度应为2,依次为开始日期和结束日期</li>
<li>独立字段格式:需要设置一个虚拟的 field 字段(如 _startAndEnd)通过 startField 和 endField 指定实际的存储字段</li>
</ul>
<p>日期格式默认为 yyyy-MM-dd,具体格式可通过组件属性进行配置</p>
<p>https://vxeui.com</p><br><br>
来源:https://www.cnblogs.com/zhiy3/p/19738691
頁: [1]
查看完整版本: vue表单vxe-from配置渲染日期范围选择器的用法