日期选择控件,时间跨度最大一年。

html 复制代码
     <el-date-picker v-model="times" type="daterange" unlink-panels :picker-options="pickerOptions" :range-separator="$lang('至')"
          :start-placeholder="$lang('开始')" :end-placeholder="$lang('结束')" :default-time="defaultTime" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
        </el-date-picker>

data里的定义

javascript 复制代码
      pickValue: '', // 存放getOnPick函数返回的数据
      pickerOptions: {
        onPick: this.getOnPick,
        disabledDate: this.disabledDate,
        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

javascript 复制代码
    // 获取
    getOnPick(pick) {
      this.pickValue = pick;
    },
    // 超出范围禁止
    disabledDate(date) {
      const { minDate, maxDate } = this.pickValue;
      if (minDate && !maxDate) {
        const diff = Math.abs(minDate.valueOf() - date.valueOf());
        if (diff > 1000 * 3600 * 24 * 365) {
          return true;
        }
      }
    },

效果图:

相关推荐
fruge16 分钟前
前端简历优化:如何突出项目亮点与技术深度(附示例)
前端
华仔啊19 分钟前
Vue3 + Element Plus 动态菜单实现:一套代码完美适配多角色权限系统
前端·vue.js
n***840724 分钟前
Springboot-配置文件中敏感信息的加密:三种加密保护方法比较
android·前端·后端
姜太公钓鲸23333 分钟前
Bootstrap是什么?作用是什么?使用场景是什么?如何使用?
前端·bootstrap·html
Aerelin38 分钟前
爬虫playwright中的等待机制
前端·爬虫·python
慧慧吖@43 分钟前
关于在本地去模拟生产环境检测页面内容注意事项
前端·javascript·vue.js
码农很忙1 小时前
用SpreadJS实现分权限管理:前端技术栈的精准控制实践
前端
黄团团1 小时前
Vue2整合Electron开发桌面级应用以及打包发布(提供Gitee源码)
前端·javascript·vue.js·elementui·electron
勇气要爆发1 小时前
问:LocalStorage、Vuex、Pinia的区别和本质
前端
Aerelin1 小时前
iframe讲解(爬虫playwright的特殊应用)
前端·爬虫·python·html