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

在使用 vxe-form 表单配置渲染时,日期范围选择器(VxeDateRangePicker)支持多种数据格式绑定,包括字符串类型、数组类型以及两个独立字段的方式。本文将详细介绍这三种用法的配置方法。

三种数据绑定方式

通过 itemRender.name='VxeDateRangePicker' 指定渲染控件

字符串格式(逗号分隔)

适用于需要将起止日期以逗号分隔的字符串形式存储的场景。

javascript 复制代码
data: {
  selectDate: '2025-05-10,2025-05-15'  // 格式:'开始日期,结束日期'
}

items: [
  { 
    field: 'selectDate',           // 字段名
    title: '字符串格式', 
    span: 24, 
    itemRender: { 
      name: 'VxeDateRangePicker'    // 指定渲染组件
    } 
  }
]

数组格式

适用于数据需要以数组形式存储的场景,数组包含两个元素,分别代表开始日期和结束日期。

javascript 复制代码
data: {
  dates: ['2025-05-02', '2025-05-08']  // 格式:[开始日期, 结束日期]
}

items: [
  { 
    field: 'dates',                // 字段名
    title: '数组格式', 
    span: 24, 
    itemRender: { 
      name: 'VxeDateRangePicker'    // 指定渲染组件
    } 
  }
]

两个独立字段格式

适用于开始日期和结束日期分别存储在不同字段的场景,通过 startField 和 endField 属性指定对应的字段名。

javascript 复制代码
data: {
  startDate: '2025-05-01',  // 开始日期字段
  endDate: '2025-06-20'     // 结束日期字段
}

items: [
  { 
    field: '_startAndEnd',           // 虚拟字段名,不实际存储数据
    title: '2个字段格式', 
    span: 24, 
    itemRender: { 
      name: 'VxeDateRangePicker',     // 指定渲染组件
      startField: 'startDate',        // 指定开始日期字段
      endField: 'endDate'             // 指定结束日期字段
    } 
  }
]

完整示例

html 复制代码
<template>
  <div>å
    <vxe-form v-bind="formOptions" >
      <template #action>
        <vxe-button type="reset">重置</vxe-button>
        <vxe-button type="submit" status="primary">提交</vxe-button>
      </template>
    </vxe-form>
  </div>
</template>

<script setup>
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' } }
  ]
})
</script>
  • 注意事项
  • 字符串格式:必须使用逗号分隔,格式为 '开始日期,结束日期'
  • 数组格式:数组长度应为2,依次为开始日期和结束日期
  • 独立字段格式:需要设置一个虚拟的 field 字段(如 _startAndEnd)通过 startField 和 endField 指定实际的存储字段

日期格式默认为 yyyy-MM-dd,具体格式可通过组件属性进行配置

https://vxeui.com

相关推荐
一个游离的指针2 小时前
函数管道:消除深度嵌套调用
前端·javascript
柚yuzumi2 小时前
前端优化,从少触发一次开始:防抖与节流
前端·javascript
默_笙2 小时前
🚤 CSS 布局的"圈地运动":BFC 就是浏览器的独立领地
前端·javascript
用户938515635073 小时前
大模型记忆指南:从短时缓存到永久记忆,手把手带你吃透 LangChain Memory 管理
javascript·人工智能
xqchen3 小时前
Web Components 普及困境深度解析:技术标准与工程实践的落差
javascript
爱丶不疚3 小时前
写给前端工程师的现代 Python 工程化最佳实践:从 pnpm 到 uv,从 CommonJS 到 src-layout
javascript·python·typescript
Dreams°1234 小时前
【Java后端+Vue前后端分离:内网正常、公网访问异常|5个高频经典踩坑完整复盘】
java·开发语言·vue.js
小蒜学长4 小时前
基于Springboot+Vue的环保行动志愿者招募系统设计与实现(代码+数据库+LW)
java·数据库·vue.js·spring boot·后端
天道kabuto5 小时前
踩坑复盘:为什么在输入框按个回车,页面就偷偷刷新了?
vue.js
2601_962097485 小时前
JavaScript 异步编程
javascript·ajax·回调函数·异步编程·子线程