vue3ElementPlus使两个日期联动控制(限制结束时间为开始时间的一个月)

vue3ElementPlus两个日期联动控制(限制结束时间为开始时间的一个月)

  • 代码展示
javascript 复制代码
<template>
  <div>
    <el-date-picker
      v-model="startDate"
      type="date"
      placeholder="选择开始日期"
      @change="handleStartChange"
    ></el-date-picker>
    
    <el-date-picker
      v-model="endDate"
      type="date"
      placeholder="选择结束日期"
      :disabled-date="disabledEndDate"
    ></el-date-picker>
  </div>
</template>

<script setup>
import { ref } from 'vue'

const startDate = ref(null)
const endDate = ref(null)

// 限制结束日期为开始日期加一个月
const disabledEndDate = (date) => {
  if (startDate.value) {
    const maxEndDate = new Date(startDate.value)
    maxEndDate.setMonth(maxEndDate.getMonth() + 1)
    return date < startDate.value || date > maxEndDate
  }
  return false // 开始日期未选择时,不限制结束日期
}

// 处理开始日期变化
const handleStartChange = (value) => {
  // 更新结束日期,确保在范围内
  if (endDate.value && (endDate.value < value || endDate.value > new Date(value).setMonth(new Date(value).getMonth() + 1))) {
    endDate.value = null
  }
}
</script>

代码说明

  • 开始日期选择器: 用户可以任意选择开始日期。
  • 结束日期选择器: 使用 disabled-date 属性,确保结束日期只能选择在开始日期之后,并且不超过一个月的限制。
  • 日期变化处理: 当开始日期变化时,检查当前结束日期是否在允许的范围内,如果不在则重置结束日期。

额外提示

确保在你的项目中已经安装并引入了 Element Plus 组件库,以使日期选择器正常工作。

相关推荐
计算机-秋大田28 分钟前
基于SpringBoot的美食烹饪互动平台的设计与实现(源码+SQL脚本+LW+部署讲解等)
vue.js·spring boot·后端·课程设计·美食
D.eL32 分钟前
Vue 2 项目中 Mock.js 的完整集成与使用教程
前端·javascript·vue.js
brzhang1 小时前
墙裂推荐一个在 Apple Silicon 上创建和管理虚拟机的轻量级开源工具:lume
前端·后端
轻口味1 小时前
Vue.js 响应式引用与响应式数据(`ref` 和 `reactive`)
vue.js
Along丶WG2 小时前
解决国内服务器 npm install 卡住的问题
前端·npm·node.js
prince_zxill2 小时前
Node.js 和 npm 安装教程
前端·javascript·vue.js·npm·node.js
弄不死的强仔2 小时前
可被electron等调用的Qt截图-录屏工具【源码开放】
前端·javascript·qt·electron·贴图·qt5
霸王蟹3 小时前
el-table组件样式如何二次修改?
前端·javascript·vue.js·笔记·学习·前端框架
star010-4 小时前
一文学会HTML编程之视频+图文详解详析
前端·网络·网络安全·html·html5
star010-4 小时前
【视频+图文详解】HTML基础3-html常用标签
前端·css·网络安全·html·html5·学习方法