根据element-plus DateTimePicker封装的shortcuts快捷选项

1. 组件封装类

// 组件名称命名为 getDate.ts

function getTimeRange(rangeType: any) {
  const start = new Date()
  const end = new Date()

  switch (rangeType) {
    // 今日
    case 'today':
      start.setHours(0, 0, 0, 0)
      end.setHours(23, 59, 59, 999)
      break
      // 昨日
    case 'yesterday':
      start.setDate(start.getDate() - 1)
      start.setHours(0, 0, 0, 0)
      end.setDate(end.getDate() - 1)
      end.setHours(23, 59, 59, 999)
      break
    // 最近七天
    case 'last7days':
      start.setDate(start.getDate() - 6)
      start.setHours(0, 0, 0, 0)
      end.setHours(23, 59, 59, 999)
      break
    // 这个月
    case 'currentMonth':
      start.setDate(1)
      start.setHours(0, 0, 0, 0)
      end.setMonth(end.getMonth() + 1)
      end.setDate(0)
      end.setHours(23, 59, 59, 999)
      break
    // 上个月
    case 'lastMonth':
      start.setMonth(start.getMonth() - 1)
      start.setDate(1)
      start.setHours(0, 0, 0, 0)
      end.setDate(0)
      end.setHours(23, 59, 59, 999)
      break
    // 最近3个月
    case 'before3Month':
      start.setMonth(start.getMonth() - 2)
      start.setDate(1)
      start.setHours(0, 0, 0, 0)
      end.setMonth(end.getMonth() + 1)
      end.setDate(0)
      end.setHours(23, 59, 59, 999)
      break
    default:
      console.error('Invalid range type')
      return
  }
  return [start, end]
}
export {
  getTimeRange,
}

2. 使用方法

<script lang="ts" setup>
import { getTimeRange } from '@/utils/getDate'
const shortcuts = [{
  text: '今日',
  value: () => getTimeRange('today'),
}, {
  text: '昨日',
  value: () => getTimeRange('yesterday'),
}, {
  text: '最近七日',
  value: () => getTimeRange('last7days'),
}, {
  text: '这个月',
  value: () => getTimeRange('currentMonth'),
}, {
  text: '上个月',
  value: () => getTimeRange('lastMonth'),
}, {
  text: '近3个月',
  value: () => getTimeRange('before3Month'),
}]
</script>


<template>
<el-date-picker
  v-model="data.search.times"
  type="datetimerange"
  range-separator="-"
  start-placeholder="开始时间"
  end-placeholder="结束时间"
  :clearable="false"
  :shortcuts="shortcuts"
/>
</template>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值