基于element-ui的年份范围选择器

news/2024/7/10 3:06:00 标签: vue, element-ui, datePicker

基于element-ui的年份范围选择器

element-ui官方只有日期范围和月份范围选择器,根据需求场景需要,支持年份选择器,原本使用两个分开的年份选择器实现的,但是往往有些是不能接受的。在网上找了很多都没有合适的,所以打算自己改造一个,仅供码友们参考。

在这里插入图片描述

  1. 下载对应的代码到本地 文件地址,以下是我的目录结构,我将下载的文件放到了src/components下。
    在这里插入图片描述

  2. 全局引入或者局部引入使用

    全局引入

     import DatePicker from '@/components/datePicker/src/date-picker.js'
     Vue.component(DatePicker.name, DatePicker)
    

    局部引入

     import DatePicker from '@/components/datePicker'
    
  3. 调用方法,下面的参数和element-ui原有el-date-picker的api保持不变

     <date-picker
       type="yearrange"
         v-model="filter1"
         value-format="yyyy"
         format="yyyy年"
         range-separator="至"
         start-placeholder="开始年份"
         end-placeholder="结束年份"
       ></date-picker>
    
  4. 日期限制处理(禁用),下面我以我这边的需求为例,

    1. 选择的年份需等于或小于当前年份
    2. 选择的年份范围必须在三年之内
  data () {
    return {
      timeRange: '',
      pickerOptions: {
        onPick: ({ maxDate, minDate }) => {
          this.timeRange = minDate
          if (maxDate) this.timeRange = ''
        },
        disabledDate: time => {
          if (this.timeRange) {
            const minTime = this.timeRange - 3
            const maxTime = this.timeRange + 3
            return (
              dayjs(time).format('YYYY') < minTime ||
              dayjs(time).format('YYYY') > maxTime ||
              time.getTime() + 1 * 24 * 3600 * 1000 > Date.now()
            )
          } else {
            return (
              time.getTime() + 1 * 24 * 3600 * 1000 > Date.now()
            )
          }
        }
      }
    }
  }

最终效果

iShot_2023-09-07_14.44.04


http://www.niftyadmin.cn/n/5028528.html

相关文章

typeScript,typeScript语法,typeScript类型、ts变量声明,ts接口interface

基础语法&#xff1a; Runoob.ts文件 var name: string "Lucy"; console.log(name) // Lucy编译原理&#xff1a; ts: Runoob.ts 利用TSC进行编译&#xff1a; tsc Runoob.ts // 通过tsc得到如下文件 Runoob.js // 执行node Runoob.js打印记过为 “Lucy"编…

Go语言实践案例之简单字典

一、程序要实现效果&#xff1a; 在命令行调用程序的时候&#xff0c;可以在命令行的后面查询一个单词&#xff0c;然后会输出单词的音标和注释。 二、思路分析&#xff1a; 定义一个结构体 DictRequest&#xff0c;用于表示翻译请求的数据结构。其中包含了 TransType&#…

自定义频率类和频率源码分析

自定义频率类 1 频率类 2 视图类 3 路由 4 频率源码分析 1 频率类 # 写限制逻辑# &#xff08;1&#xff09;取出访问者ip# &#xff08;2&#xff09;判断当前ip不在访问字典里&#xff0c;添加进去&#xff0c;并且直接返回True,表示第一次访问&#xff0c;在字典里&#xf…

Spring Boot + Vue的网上商城之springsecurity+jwt+redis实现用户权限认证实现

Spring Boot Vue的网上商城之springsecurityjwtredis实现用户权限认证实现 在网上商城项目中&#xff0c;用户的安全性是非常重要的。为了实现用户权限认证和安全校验&#xff0c;我们可以使用Spring Security、JWT和Redis来实现。本篇博客将详细介绍后端和前台的实现过程&am…

7.Redis常用配置命令

1.Redis缓存服务器命令行中常用命令 Redis CONFIG 命令格式如下: CONFIG GET * 获取Redis服务器所有配置信息; CONFIG SET loglevel "notice" 设置Redis服务器日志级别; CONFIG SET requirepass "123456" AUTH 123456 r…

word-doc和docx区别

office从业者路过。 文件结构上doc文件数据是以二进制形式存放的。 docx是以xml文件形式存放的。 doc兼容较差&#xff0c;docx效果更好。

el-table-column 某些通过接口返回的section设置为禁用

<el-table-columnprop"Flag"show-overflow-tooltipwidth"100"align"center"type"selection":reserve-selection"true":selectable"checkSelectable"></el-table-column> 设置 :reserve-selection&qu…

华硕电脑怎么录屏?分享实用录制经验!

“华硕电脑怎么录屏呀&#xff0c;刚买的笔记本电脑&#xff0c;是华硕的&#xff0c;自我感觉挺好用的&#xff0c;但是不知道怎么录屏&#xff0c;最近刚好要录一个教程&#xff0c;怎么都找不到在哪里录制&#xff0c;有人能教教我吗&#xff1f;” 随着电脑技术的不断发展…