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

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

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

  1. 下载对应的代码到本地 文件地址,以下是我的目录结构,我将下载的文件放到了src/components下。

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

    全局引入

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

    局部引入

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

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

    1. 选择的年份需等于或小于当前年份
    2. 选择的年份范围必须在三年之内
javascript 复制代码
  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

相关推荐
Agatha方艺璇11 小时前
前端开发技术复习笔记
vue·bootstrap·css3·html5·web
小葛要努力20 小时前
创建vue2项目
程序人生·vue
七仔啊20 小时前
基于海康门禁的人员计数系统
vue
步十人2 天前
【Vue3】前置知识简单概述(包括ES6核心语法,模块化ESM以及npm基础)
arcgis·npm·vue·es6
有梦想的程序星空2 天前
【环境配置】Vue3项目离线化本地部署echarts全攻略
前端·javascript·vue·echarts
向日的葵0063 天前
vue路由(二)
前端·javascript·vue.js·vue
小妖6664 天前
Hydration completed but contains mismatches
javascript·vue·vuepress
lianyinghhh4 天前
FlowGame 从零上手:开源 AI 工作流编排框架与 Vue 3 接入实战
python·低代码·开源·vue·rag·flowgame·ai工作流编排
爱编程的小金4 天前
告别手写分页逻辑:usePagination 从 50 行到 3 行
javascript·vue·前端分页·alova·usepagination
ok406lhq4 天前
用 MonkeyCode 8 小时搭建自动化内容站:AI Coding 平台实战复盘
ci/cd·vue·ai编程·自动化部署·monkeycode