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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue Router history模式的配置方法及其原理

    Vue Router history模式的配置方法及其原理

    这篇文章主要介绍了Vue Router history模式的配置方法及其原理,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • vue请求本地自己编写的json文件的方法

    vue请求本地自己编写的json文件的方法

    这篇文章主要介绍了vue请求本地自己编写的json文件,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • VUE生命周期全面系统详解

    VUE生命周期全面系统详解

    Vue的生命周期就是vue实例从创建到销毁的全过程,也就是new Vue() 开始就是vue生命周期的开始。Vue 实例有⼀个完整的⽣命周期,也就是从开始创建、初始化数据、编译模版、挂载Dom -> 渲染、更新 -> 渲染、卸载 等⼀系列过程,称这是Vue的⽣命周期
    2022-07-07
  • vue清空数组的几个方式(小结)

    vue清空数组的几个方式(小结)

    本文主要介绍了vue清空数组的几个方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • vue3实现v-model原理详解

    vue3实现v-model原理详解

    这篇文章主要介绍了vue3实现v-model原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Vue动态组件实现异常处理方法

    Vue动态组件实现异常处理方法

    Vue3动态组件怎么进行异常处理?下面本篇文章带大家聊聊Vue3 动态组件异常处理的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-02-02
  • axios请求中断的几种方法

    axios请求中断的几种方法

    在实际应用场景中,假如有一个下载或者导出请求,数据量非常大的情况下,接口响应的会很慢,这时候我我们想中断请求,该怎么做呢?本文给大家介绍了axios请求中断的几种方法,需要的朋友可以参考下
    2024-10-10
  • vue3.0 CLI - 2.6 - 组件的复用入门教程

    vue3.0 CLI - 2.6 - 组件的复用入门教程

    这篇文章主要介绍了 vue3.0 CLI - 2.6 - 组件的复用,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2018-09-09
  • Spring Boot/VUE中路由传递参数的实现代码

    Spring Boot/VUE中路由传递参数的实现代码

    在路由时传递参数,一般有两种形式,一种是拼接在url地址中,另一种是查询参数。这篇文章主要介绍了Spring Boot/VUE中路由传递参数,需要的朋友可以参考下
    2018-03-03
  • vuex中数据持久化插件vuex-persistedstate使用详解

    vuex中数据持久化插件vuex-persistedstate使用详解

    这篇文章主要介绍了vuex中数据持久化插件vuex-persistedstate使用详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03

最新评论