el-date-picker根据开始时间或结束时间禁用前后时间

javascript 复制代码
<template>
  <div>
    <el-form-item label="开始时间" prop="startTime">
      <el-date-picker
        v-model="inputForm.startTime"
        :disabled="disabled"
        value-format="yyyy-MM-dd"
        :clearable="true"
        type="date"
        :append-to-body="false"
        placeholder="请选择开始时间"
        :picker-options="startTimePickerOptions"
      ></el-date-picker>
    </el-form-item>
    <el-form-item label="结束时间" prop="endTime" label-width="110px">
      <el-date-picker
        v-model="inputForm.endTime"
        :disabled="disabled"
        value-format="yyyy-MM-dd"
        :clearable="true"
        type="date"
        :append-to-body="false"
        placeholder="请选择结束时间"
        :picker-options="endTimePickerOptions"
      ></el-date-picker>
    </el-form-item>
  </div>
</template>

<script>
export default {
  data() {
    return {
      inputForm: {
        startTime: null,
        endTime: null,
      },
      disabled: false, // 控制日期选择器是否禁用
    };
  },
  computed: {
    startTimePickerOptions() {
     let that = this //改变作用域
      return {
        disabledDate(time) {
          // 检查 inputForm 是否存在
          if (!that.inputForm || !that.inputForm.endTime) {
            return false; // 如果没有 inputForm 或没有选择结束时间,则不禁用任何日期
          }
          // 禁用结束时间开始时间之前的日期
          return time.getTime() < new Date(that.inputForm.endTime).getTime(); 
        },
      };
    },
    endTimePickerOptions() {
    let that = this //改变作用域
      return {
        disabledDate(time) {
          // 检查 inputForm 是否存在
          if (!this.inputForm || !this.inputForm.startTime) {
            return false; // 如果没有 inputForm 或没有选择开始时间,则不禁用任何日期
          }
          // 禁用开始时间结束时间之后的日期
          return time.getTime() < new Date(this.inputForm.startTime).getTime();
        },
      };
    },
  },

};
</script>
相关推荐
嘿siri14 分钟前
html全局遮罩,通过websocket来实现实时发布公告
前端·vue.js·websocket·前端框架·vue·html
十三月❀33 分钟前
当设置dialog中有el-table时,并设置el-table区域的滚动,看到el-table中多了一条横线
javascript·vue.js·elementui
牧云流40 分钟前
Vue3数据响应式原理
javascript·vue.js·ecmascript
轻口味42 分钟前
Vue.js 组件的生命周期钩子
vue.js
不爱学英文的码字机器1 小时前
[JavaScript] 深入理解流程控制结构
开发语言·前端·javascript
不爱学英文的码字机器1 小时前
[JavaScript] 运算符详解
开发语言·javascript·ecmascript
Lysun0012 小时前
redux 结合 @reduxjs/toolkit 的使用
开发语言·前端·javascript·react·redux
计算机学姐2 小时前
基于微信小程序的安心陪诊管理系统
java·vue.js·spring boot·后端·mysql·微信小程序·小程序
@前端小菜2 小时前
探秘JavaScript:手写memoize函数全解析
开发语言·javascript·ecmascript
小盼江3 小时前
美食推荐系统 协同过滤余弦函数推荐美食 Springboot Vue Element-UI前后端分离
vue.js·spring boot·美食