vue el-date-picker 日期选择器禁用失效问题

value-format="yyyy-MM-dd"的格式不要改为"yyyyMMdd",否则会导致日期选择器禁用失效问题,因为该组件默认的格式就是yyyy-MM-dd。

html 复制代码
<el-col v-for="(item, index) in formData" :key="index" >
   <el-date-picker
     v-else-if="item.type === 'datePicker'"
     v-model="form[item.prop]"
     :placeholder="item.placeholder"
     :picker-options="item.pickerOptions"
     type="date"
     value-format="yyyy-MM-dd"
     clearable
   />
</el-col>

在表单渲染时会调用this.beginDate()this.endDate()

js 复制代码
data() {
    return {
      formData: [ 
        {
          type: 'datePicker',
          placeholder: '起始日期',
          prop: 'startDate',
          pickerOptions: this.beginDate()
        },
        {
          type: 'datePicker',
          placeholder: '截止日期',
          prop: 'endDate',
          pickerOptions: this.endDate()
        }
      ]
   }
}
js 复制代码
methods: {
    beginDate() {
      const self = this;
      return {
        // 组件的方法,禁用返回的日期
        disabledDate(time) {
          if (self.form.endDate) {
            // 禁用大于结束日期的日期
            return time.getTime() > new Date(self.form.endDate).getTime();
          } 
        }
      };
    },
    endDate() {
      const self = this;
      return {
        disabledDate(time) {
          if (self.form.startDate) {
           // 禁用小于开始日期的日期
            return time.getTime() < new Date(self.form.startDate).getTime();
          } 
        }
      };
    }
 }
相关推荐
IT_陈寒14 分钟前
Java的HashMap竟然不是线程安全的?刚在生产环境踩了坑
前端·人工智能·后端
JarvanMo15 分钟前
再见吧CocoaPods,Swift Package Manager(SPM)即将在Flutter 3.44中成为默认依赖管理器
前端
小则又沐风a22 分钟前
基础的开发工具(2)---Linux
java·linux·前端
yqcoder22 分钟前
JavaScript 事件流:从“捕获”到“冒泡”的完整旅程
服务器·前端·javascript
普修罗双战士32 分钟前
项目设计-文章系统发布文章完整前后端设计
java·数据库·vue.js·spring boot·git·intellij-idea
Csvn33 分钟前
Vue 3 Composition API 深度解析
前端·vue.js
鹏程十八少33 分钟前
11. 2026金三银四 能答对这 29 道题,你的 Android 插件化就算真正通关了
前端·后端·面试
潇凝子潇1 小时前
使用英伟达免费调用多家大模型API
java·前端·javascript
旷世奇才李先生1 小时前
Vue 3\+Vite\+Pinia实战:前端工程化与组件化开发全指南
前端·vue.js
Beginner x_u1 小时前
前端八股整理(手写 01)|Promise 超时控制、红绿灯与 Promise.all
前端·javascript·promise