elementplus中日期时间组件容易入的坑

734 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第3天,点击查看活动详情

最新在使用vue3+elementplus开发后台管理系统,在使用日期组件的时候遇到了一些坑,仅以此篇记录。

坑1: 日期时间选项显示NaN

场景介绍

在使用el-date-picker的时候,组件选项显示NaN。 效果如图所示:

image.png

代码如下:

<el-date-picker
  v-model="value"
  type="date"
  placeholder="Pick a date"
  default-value="00:00:00"
/>

原因分析

elementplus中关于默认值的属性必须是date对象,而不再像是elementui中定义的字符串,所以才会出现NaN。

在elementplus中关于default-value和default-value是这样定义的

image.png

在eleemntui中关于default-value和default-value是这样定义的

image.png

解决方案

根据上面的原因分析,将上述default-value改成日期对象型即可解决问题。

代码如下:

<el-date-picker
  v-model="value"
  type="date"
  placeholder="Pick a date"
  :default-value="new Date(2020, 1, 1)"
/>

效果如下:

image.png

坑2: 设置可以选择的时间选项不生效

场景介绍

给el-date-picker设置picker-options属性的时候不生效

代码如下:

<el-date-picker
  v-model="value"
  type="date"
  placeholder="Pick a date"
  :picker-options="pickerOptions"
/>

pickerOptions: {
    onPick: ({ maxDate, minDate }) => {
    },
    disabledDate: (time) => {
        return false;
    }
 }

效果如下: 设置选项不生效

image.png

原因分析

在elementplus中没有picker-options属性,需要设置选项的话,需要设置disabled-date属性。

在elementui中是这样定义的

image.png

在elementplus中是这样定义的

image.png

解决方案

结合上面的原因分析,是因为属性改变的原因,这时候只需要将picker-options设置成disabled-date即可解决问题。

代码如下:

<el-date-picker
  v-model="value"
  type="date"
  placeholder="Pick a date"
  :disabled-date="disabledDateFunc"
/>

const disabledDateFunc = () => {
  return true;
}

效果如下:

image.png