elementui DatePicker 日期选择器 picker-options问题 快捷选项问题

elementui DatePicker 日期选择器 picker-options问题
我设置了今年年底、明年年底、后年年底等快捷选项
但是当我时间固定,我想隐藏快捷选项或者禁用。这个怎么设置

img


这个是当天时间,几个快捷选项都可以选。
我的需求是我的合同是续租合同。他的日期就是一年后或者两年后的时间,怎么能把这个日期之前的快捷选项禁用。

img

pickerBeginReletDateBefore: {
          disabledDate: time => {
            if (this.limitEndDate) {
              let hm = new Date(this.limitEndDate).getTime() - new Date(this.limitEndDate.substr(0, 10)).getTime();
              let beginDT = new Date(this.limitEndDate).getTime() - hm;
              if (beginDT) {
                return time.getTime() < beginDT;
              }
            }
          },
          shortcuts: [{
            text: '明年年底',
            onClick(picker) {
              const date = new Date();
              picker.$emit('pick', date.getFullYear() + 1 + '-12-31');
            }
          }, {
            text: '后年年底',
            onClick(picker) {
              const date = new Date();
              picker.$emit('pick', date.getFullYear() + 2 + '-12-31');
            }
          }]
        },

disabledDate 里面的功能我有写,显示可选范围的。但shortcuts里面的功能,算是快捷选项,就是我提问想要解决的问题。

借助这个属性:popper-class="popperClass"

img


这个属性获取的值popperClass会作为弹出时间选择窗口的类名,根据逻辑可以决定这里类名是什么,例如续约的时候这里就给popperClass赋值aa,然后样式上用.aa .xxx去控制几个不要的快捷选项pointer-events: none;去除点击事件,再设置个color,看起来像不能点的样子就可以了。注意.aa .xxx这个样式写的时候要新开个style且不能用scoped属性,才能生效,因为弹出来的页面dom标签并不在当前vue对应的dom下

<style lang='scss' scoped>
// 你之前的样式
</style>
<style lang='scss'>
.aa .el-picker-panel__shortcut {
    pointer-events: none;
    color: #ccc;
}
</style>

直接把shortcuts清空