elementui中日期/时间的禁用处理,使用传值的方式

项目中,经常会用到 在一个学年或者一个学期或者某一个时间段需要做的某件事情,则我们需要在创建这个事件的时候,需要设置一定的时间周期,那这个时间周期就需要给一定的限制处理,避免用户的误操作,优化用户体验

如下:需求为,在选择学年后,学期的设置需要在学年中,且结束时间大于开始时间

javascript 复制代码
data() {
    return {
      pickerOptionsStartTimes: function (entDate) {//学期开始日期 禁用处理
        let entTimes = entDate
        return {
          disabledDate: time => {
            //开始年1月1日 之后的时间time.getTime() < new Date(this.ruleForm.beginYear, 0, 1).getTime()
            //结束年12月31日之前的时间 time.getTime() > new Date(this.ruleForm.endYear, 11, 31).getTime()
            if (entTimes) {
              //选择 开始年1月1日-结束时间  期间的时间
              return time.getTime() < new Date(this.ruleForm.beginYear, 0, 1).getTime() || time.getTime() > new Date(entTimes).getTime()
            } else {
              //选择 开始年1月1日-结束年12月31日
              return time.getTime() < new Date(this.ruleForm.beginYear, 0, 1).getTime() || time.getTime() > new Date(this.ruleForm.endYear, 11, 31).getTime()
            }
          },
        }
      },
      pickerOptionsEndTimes: function (startDate) {//学期结束日期 禁用处理
        let beginDate = startDate
        return {
          disabledDate: time => {
            if (beginDate) {
              //选择 开始时间-结束年12月31日前 的时间
              return time.getTime() < new Date(beginDate).getTime() || time.getTime() > new Date(this.ruleForm.endYear, 11, 31).getTime()
            } else {
              //选择 开始年1月1日-结束年12月31日
              return time.getTime() < new Date(this.ruleForm.beginYear, 0, 1).getTime() || time.getTime() > new Date(this.ruleForm.endYear, 11, 31).getTime();
            }
          },
        }
      },
}
}

因为我这个页面的需求是,学期管理是可以动态添加/删除的 所以需要用传值的方式 实现当前学期的起始时间设置

相关推荐
Hilaku2 分钟前
一个函数超过20行? 聊聊我的函数式代码洁癖
前端·javascript·架构
白兰地空瓶6 分钟前
# 从对象字面量到前端三剑客:JavaScript 为何是最具表现力的脚本语言?
前端
不会算法的小灰7 分钟前
JavaScript 核心知识学习笔记:给Java开发者的实战指南
javascript·笔记·学习
vivo互联网技术19 分钟前
vivo 前端三剑客发展历程及原理揭秘
前端
华仔啊1 小时前
35岁程序员失业了,除了送外卖,还能做什么?
前端·后端·程序员
crary,记忆1 小时前
Angular如何让整个项目的所有页面能够整体缩小一定的比例?
javascript·ecmascript·angular.js
Mintopia1 小时前
🤖 算法偏见修正:WebAI模型的公平性优化技术
前端·javascript·aigc
Mintopia1 小时前
🧩 TypeScript防御性编程:让Bug无处遁形的艺术
前端·typescript·函数式编程
JarvanMo1 小时前
🔔 Flutter 本地通知: 吸引用户的完整指南—即使在他们离线时也能实现
前端