ElementPlus 自定义封装 el-date-picker 的快捷功能示例详解

 更新时间:2024年12月30日 09:35:15   作者:博客zhu虎康  
文章讨论了用户对官网提供的案例不满足快捷功能需求的情况,建议在外部自定义组件中导入并使用快捷内容,以满足用户需求,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧

需求

分析

我们看到官网上给出的案例如下,但是不太满足我们用户想要的快捷功能,因为不太多,因此需要我们自己封装一些,方法如下

外部自定义该组件的快捷内容

export const getPickerOptions = () => {
  const shortcuts = [
    {
      text: '过去1小时',
      value: () => {
        const end = new Date()
        const start = new Date()
        start.setTime(start.getTime() - 3600 * 1000 * 1);
        return [start, end]
      },
    },
    {
      text: '过去4小时',
      value: () => {
        const end = new Date()
        const start = new Date()
        start.setTime(start.getTime() - 3600 * 1000 * 4);
        return [start, end]
      },
    },
    {
      text: '过去12小时',
      value: () => {
        const end = new Date()
        const start = new Date()
        start.setTime(start.getTime() - 3600 * 1000 * 12);
        return [start, end]
      },
    },
    {
      text: '昨天到今天',
      value: () => {
        const end = new Date()
        const start = new Date()
        start.setTime(start.getTime() - 3600 * 1000 * 24);
        return [start, end]
      },
    },
    {
      text: '最近一周',
      value: () => {
        const end = new Date()
        const start = new Date()
        start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
        return [start, end]
      },
    },
    {
      text: '最近一个月',
      value: () => {
        const end = new Date()
        const start = new Date()
        start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
        return [start, end]
      },
    },
    {
      text: '最近三个月',
      value: () => {
        const end = new Date()
        const start = new Date()
        start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
        return [start, end]
      },
    },
    {
      text: '过去半年',
      value: () => {
        const end = new Date()
        const start = new Date()
        start.setTime(start.getTime() - 3600 * 1000 * 24 * 183);
        return [start, end]
      },
    },
    {
      text: '过去3年',
      value: () => {
        const end = new Date()
        const start = new Date()
        start.setTime(start.getTime() - 3600 * 1000 * 24 * 365 * 3);
        return [start, end]
      },
    },
  ]
  return shortcuts
};

组件中导入并使用

<template>
<el-date-picker
   v-model="editForm_tree.time"
   type="datetimerange"
   show-time
   value-format="YYYY-MM-DD HH:mm:ss"
   :shortcuts="shortcuts"
   range-separator="到"
   start-placeholder="开始时间"
   end-placeholder="结束时间"
 />
</template>
<script lang="ts" setup>
import {
  onBeforeUnmount,
  onMounted,
  ref,
  watch,
  watchEffect,
  computed,
  reactive,
} from 'vue';
import { getPickerOptions } from '@/utils/pickerOptions.js';
const shortcuts = getPickerOptions();
</script>

到此这篇关于ElementPlus 自定义封装 el-date-picker 的快捷功能示例详解的文章就介绍到这了,更多相关ElementPlus 自定义封装 el-date-picker内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue3导航栏组件封装实现方法

    Vue3导航栏组件封装实现方法

    这篇文章主要为大家详细介绍了Vue3导航栏组件封装的实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Proxy中代理数据拦截的方法详解

    Proxy中代理数据拦截的方法详解

    这篇文章主要为大家详细介绍了Proxy中代理数据拦截的方法,文中的示例代码讲解详细,对我们学习或工作具有一定的借鉴价值,需要的可以参考一下
    2022-12-12
  • Vue出现弹出层时禁止底部页面跟随滑动

    Vue出现弹出层时禁止底部页面跟随滑动

    本文主要介绍了Vue出现弹出层时禁止底部页面跟随滑动,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • element-plus 下拉框实现全选的示例代码

    element-plus 下拉框实现全选的示例代码

    本文主要介绍了element-plus 下拉框实现全选的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Nuxt3:拉取项目模板失败问题以及解决

    Nuxt3:拉取项目模板失败问题以及解决

    文章描述了在使用官网命令创建Nuxt3项目时遇到的问题,通过分析命令,推测问题出在拉取项目模板失败,解决方法是手动访问并下载项目模板,解压后按照官网教程安装依赖并启动,最终成功解决问题
    2024-12-12
  • Vue打包部署到Nginx时,css样式不生效的解决方式

    Vue打包部署到Nginx时,css样式不生效的解决方式

    这篇文章主要介绍了Vue打包部署到Nginx时,css样式不生效的解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • 关于el-scrollbar滚动条初始化不显示的问题及解决

    关于el-scrollbar滚动条初始化不显示的问题及解决

    这篇文章主要介绍了关于el-scrollbar滚动条初始化不显示的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Vite开发环境搭建详解

    Vite开发环境搭建详解

    Vite是一款非常轻量级的Web开发框架,它可以帮助开发者快速搭建一个开发环境。Vite搭建的开发环境可以提供更快的编译速度,更少的配置,更好的性能和更多的开发者友好性,使开发者可以更快地构建出功能强大的Web应用程序。
    2023-02-02
  • Element UI 自定义正则表达式验证方法

    Element UI 自定义正则表达式验证方法

    今天小编就为大家分享一篇Element UI 自定义正则表达式验证方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue文件配置全局变量的实例

    Vue文件配置全局变量的实例

    今天小编就为大家分享一篇Vue文件配置全局变量的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09

最新评论