当前位置: 首页 > article >正文

ElementPlus 自定义封装 el-date-picker 的快捷功能

文章目录

    • 需求
    • 分析

需求

在这里插入图片描述

分析

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

  1. 外部自定义该组件的快捷内容
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
};
  1. 组件中导入并使用
<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>

http://www.kler.cn/a/455870.html

相关文章:

  • Flink Data Source详解
  • 欧拉计划启航篇(一)
  • 浅谈下雪花算法的原理,及在项目中使用需要注意哪些事项
  • k8s,service如何找到容器
  • LabVIEW数字式气压计自动检定系统
  • FPGA的DMA应用——pcileech
  • 【Golang 面试题】每日 3 题(三)
  • SpringBoot整合Canal+RabbitMQ监听数据变更
  • 【Unity3D】ECS入门学习(二)实例化预制体
  • k8s-node2 NotReady 节点NotReady如何解决?
  • 蓝桥杯——神奇的数组
  • 认识Linux的Bash
  • AppAgent 源码 (xml 解析)
  • Python机器学习笔记(十四、凝聚聚类和DBSCAN)
  • Java学习总路线 详细
  • .net core sdk 项目多版本切换
  • DataCap MongoDB Driver: 全面解析MongoDB在DataCap中的使用指南
  • JVM运行时数据区的详细解析
  • [Redis] 在Linux中安装Redis并连接图形化工具详细过程(附下载链接)
  • LeetCode-寻找两个正序数组的中位数(004)
  • 阿里云DataWorks产品使用
  • 泰山派GPIO子系统驱动---亮灯
  • 教师管理系统
  • 《C++设计模式》生成器模式
  • spring-面试整理
  • 基于 Spring Boot 的在线教育平台设计与实现设计书