vue3 el-date-picker 日期选择器校验规则-选择日期范围不能超过七天

el-date-picker日期选择器校验规则-选择日期范围不能超过七天

效果

ps注意:

三个位置

:rules="rules" ref="formRef"

prop="flightDate"

html 复制代码
<template>...省略
  <el-form :model="queryForm" :rules="rules" ref="formRef" label-width="85">
  <el-form-item label="时间范围:" prop="flightDate"> 
  <el-date-picker
  v-model="queryForm.date"
  type="daterange"
  start-placeholder="选择开始时间"
  end-placeholder="选择结束时间"
  @change="onDateChange"
  />

</el-form-item>
</el-form>
  ...省略
</template>
TypeScript 复制代码
<script setup lang="ts">
  //...省略
  const queryForm = ref({
    date: [dayjs().subtract(1, 'day').toDate(), dayjs().toDate()],
  });
  const formRef = ref();
  // 添加验证函数
  const validateDateRange = (_rule: any, value: [Date, Date], callback: (error?: string) => void) => {
    if (!value || value.length !== 2) {
      callback('请选择完整的日期范围');
      return;
    }

    const [start, end] = value;
    const diffDays = Math.ceil((end.getTime() - start.getTime()) / (1000 * 60 * 60 * 24));
    console.log(diffDays);

    if (diffDays > 7) {
      callback('时间范围不能超过7天');
    } else {
      callback();
    }
  };

  const rules = {
    flightDate: [
      {
        validator: validateDateRange,
        trigger: 'change',
      },
    ],
  };

  const onDateChange = () => {
    formRef.value?.validateField('flightDate');
  };
相关推荐
px不是xp20 小时前
DeepSeek API集成:让小程序拥有AI大脑
javascript·人工智能·小程序
前端那点事20 小时前
Vue插槽用法全解析(Vue2+Vue3适配)| 组件复用必备
vue.js
Ruihong20 小时前
Vue v-on 在 React 中 VuReact 会如何实现?
vue.js·react.js·面试
|晴 天|21 小时前
实现草稿自动保存功能:5秒无操作自动保存
前端·vue.js·typescript
小汪说干货21 小时前
2026年4月最新|公众号文章插入文档附件3种技术方案
javascript·小程序
qq_120840937121 小时前
Three.js 骨骼动画工程实战:AnimationMixer、剪辑与混合权重调参
开发语言·javascript·ecmascript
早起傻一天~G1 天前
vue2+element-UI上传图片封装
开发语言·javascript·ui
广师大-Wzx1 天前
JavaWeb:前端部分
java·前端·javascript·css·vue.js·前端框架·html
M ? A1 天前
你的 Vue v-memo 与 v-once,VuReact 会编译成什么样的 React 代码?
前端·javascript·vue.js·经验分享·react.js·面试·vureact
吴声子夜歌1 天前
Vue3——过度和动画效果
前端·vue.js·es6