Element UI DatePicker选择日期范围区间默认显示前一个月和本月

要求:点击el-date-picker选择时间范围时,默认展开当月和上个月。

但是Element UI的组件默认展开的是本月和下一个月,如下图所示:

改为

复制代码
<span @click="changeInitCalendarRange">
    <el-date-picker v-model="ruleForm.time" type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss"
                range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" @change="onsetmonitor" @blur="blur"
                class="form-width">
    </el-date-picker>
</span>

<script>
export default {
    data() {
        return {
            pickerOptions: {
                disabledDate(time) {
                    return time.getTime() > Date.now() - 8.64e7 || time.getTime() < Date.now() - 8.64e7 * 90;
            },
            shortcuts: [
              {
                text: '最近一周',
                onClick(picker) {
                  const end = new Date();
                  const start = new Date();
                  start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
                  picker.$emit('pick', [start, end]);
                },
              },
              {
                text: '最近一个月',
                onClick(picker) {
                  const end = new Date();
                  const start = new Date();
                  start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
                  picker.$emit('pick', [start, end]);
                },
              },
              {
                text: '最近三个月',
                onClick(picker) {
                  const end = new Date();
                  const start = new Date();
                  start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
                  picker.$emit('pick', [start, end]);
                },
              },
            ],
          },
        };
    },
    methods: {
        /**时间范围选择器,组件默认展示上月和本月  点击判断**/
        changeInitCalendarRange() {
          if(this.countss > 0){
            return
          }else{
              this.countss++
              let element = document.querySelector("button.el-picker-panel__icon-btn.el-icon-arrow-left");
              if (element){
                element.click()
              };
          };
        },
        //多次点击清空按钮
        blur(){
          if(this.ruleForm.time == null){
              this.countss = 0;
            }
        },
        //如果选定值,重置countss
        onsetmonitor(){
          if(this.ruleForm.time){
            return
          };
          this.countss = 0
        },
    }
}
相关推荐
Avan_菜菜2 小时前
AI 能写代码了,为什么我反而开始要求它先写文档?
前端·github·ai编程
爱勇宝6 小时前
鸿蒙生态的下半场:开发者不只要能开发,还要能赚钱
android·前端·程序员
IT_陈寒9 小时前
SpringBoot这个自动配置坑我跳了三次
前端·人工智能·后端
kyriewen9 小时前
我用 AI 一周写完了整个项目,上线第一天就崩了——这是我踩过最贵的 5 个坑
前端·javascript·ai编程
牧艺10 小时前
从零到协同:构建类飞书在线文档系统的五个技术重难点
前端·人工智能
红尘散仙10 小时前
想写一个像样的终端 App?试试把 React 的开发体验搬进 Rust TUI
前端·rust
袋鼠云数栈UED团队11 小时前
一套 Spec-First 的 AI 编程工作流
前端·人工智能
袋鼠云数栈前端11 小时前
一套 Spec-First 的 AI 编程工作流
前端·ai+
angerdream11 小时前
Android手把手编写儿童手机远程监控App之vue3 路由守卫
前端
不服老的小黑哥11 小时前
AI规范驱动编程-harness工程项目实战
前端