el-date-picker限制选择范围

el-date-picker限制选择范围

vue 复制代码
<template>
  <!-- 限制选择范围为±29天 -->
  <div>
    <el-date-picker
      v-model="timeMap"
      type="daterange"
      value-format="yyyy-MM-dd"
      range-separator=" --- "
      start-placeholder="开始日期"
      end-placeholder="结束日期"
      clearable
      :picker-options="pickerOptions"
      @change="daterangeChange"
    />
  </div>
</template>

<script>
export default {
  data() {
    return {
      timeMap: [],
      firstMinDate: 0 // 存储首次选择的日期时间戳
    };
  },
  computed: {
    pickerOptions() {
      const self = this;
      const maxDays = 29 * (24 * 60 * 60 * 1000); // 限制±29天
      return {
        disabledDate(time) {
          if (self.firstMinDate > 0) {
            return time.getTime() > self.firstMinDate + maxDays || time.getTime() < self.firstMinDate - maxDays;
          }
          return false; // 首次选择前、清空日期时不禁用任何日期
        },
        onPick({ minDate }) {
          self.firstMinDate = minDate ? new Date(minDate).getTime() : 0;
        }
      };
    }
  },

  methods: {
    daterangeChange(value) {
      if (!value) {
        this.firstMinDate = 0;
      }
    }
  }
};
</script>

<style lang="scss" scoped></style>
相关推荐
去伪存真3 分钟前
AI Agent Harness 深度测评与技术选型实战
前端·agent
FRing033 小时前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
Penge6665 小时前
《Go 后端开发者学 TypeScript:typescript 类型断言》
javascript
Penge6665 小时前
《Go 后端开发者学 TypeScript:Symbol》
javascript
疯华整猫6 小时前
被杀掉之后:我把 Android 的「唤起 + 常驻」重做了一遍
前端·面试·架构
ruanno_top6 小时前
点全选,已选的被清空了:Transfer 三态复选框的三个 bug
vue.js
三*一7 小时前
Mapbox‑GL JS 多边形折点编辑工具:实现原理、功能拆解与踩坑总结
开发语言·javascript·ecmascript
时间的情敌7 小时前
Cesium 加载 3D Tiles 倾斜摄影、压平、样式设置(Vue3 实战)
vue.js·3d·cesium
IT_陈寒8 小时前
Java开发实战:从入门到精通
前端·人工智能·后端
FungLeo8 小时前
成为全栈·基础补充·Node.js 运行时:事件循环与异步
javascript·node.js·事件循环·后端开发·异步编程·成为全栈