0.1.1 • Published 8 months ago

vue3-time-range-slider v0.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

Time Range Slider

该组件可以让用户在一个有限的时间范围内,非常方便地选取一个时间区间;基于 Vue 3 开发。

使用

安装:

# npm
npm install vue3-time-range-slider
# pnpm
pnpm install vue3-time-range-slider
# yarn
yarn add vue3-time-range-slider

使用:

<template>
    <TimeRangeSlider v-model="sliderValue" :max="max" :min="min" step="minute" :limit="limit" />
</template>
<script lang="ts" setup>
import TimeRangeSlider from 'vue3-time-range-slider'
import 'vue3-time-range-slider/style.css'

const min = new Date(2023, 0, 1, 8, 0) // 2023-01-01 08:00
const max = new Date(2023, 0, 31, 17, 59) // 2023-01-31 17:59
const limit = 7 * 24 * 60 * 60 * 1000 // 7 days

const sliderValue = ref<[Date, Date] | undefined>(undefined)
</script>

属性

属性描述类型默认值
modelValue用户所选取的时间区间undefined \| [Date \| undefined, Date \| undefined]-
step时间粒度'second' \| 'minute' \| 'hour''second'
min时间选取范围的起始值Date-
max时间选取范围的结止值Date-
limit用户可选取的时间区间的最大长度,单位:毫秒number-

事件

事件描述参数
update:modelValue当用户选取(或输入)一个时间区间后,将会触发该事件( value: [Date, Date] \| [] )
change同 update:modelValue 事件( value: [Date, Date] \| [] )
startPicking当用户开始选取时间时,将触发该事件-
picking当用户选取时间时,将触发该事件(该事件会在 startPicking 触发后及 endPicking 触发前立即触发一次,而在这之间则会跟随用户的鼠标移动等操作触发多次)-
endPicking当用户选取完一个时间区间后,将触发该事件-

时间区间

在该组件中,「时间区间」被认为是一个相对于 step 的闭区间,比如当 step 为 hour 时,下面这个区间值:

[2022-01-01 00:00:00, 2022-01-01 12:00:00]

表示是「2022 年 1 月 1 日」这一天中的从「0 点」到「12 点」这共计 13 个小时的时间。

而:

[2022-01-01 00:23:30, 2022-01-01 12:59:59]

则与上例一样,同样表示的是「2022 年 1 月 1 日」这一天中的从「0 点」到「12 点」这共计 13 个小时的时间。

至于:

[2022-01-01 00:00:00, 2022-01-01 00:00:00]

则表示的是「0 点」这一个小时的时间。

注意

首先,该组件只能让用户在一个有限的时间范围内进行选择,且时间范围不应太长(尽量在三个月内,若需要更长时间,可以提 Issue 或 PR)。

另外,允许用户可选取的时间区间的最大长度不应太长,尽量确保最大长度(通常是天数)不超过面板视口能够完整显示的天数。

最后,组件的宽高度最好设为 735 x 350,可在此基础上适当缩减,但最好不好缩减太多。

0.1.0

8 months ago

0.1.1

8 months ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago