166 lines
4.8 KiB
Markdown
166 lines
4.8 KiB
Markdown
|
|
# CountDown
|
||
|
|
|
||
|
|
Used to display countdown values in real-time, supporting millisecond precision.
|
||
|
|
|
||
|
|
## Basic Usage
|
||
|
|
|
||
|
|
The `time` property represents the total duration of the countdown in milliseconds.
|
||
|
|
|
||
|
|
```html
|
||
|
|
<wd-count-down :time="time" />
|
||
|
|
```
|
||
|
|
|
||
|
|
```ts
|
||
|
|
const time = ref<number>(30 * 60 * 60 * 1000)
|
||
|
|
```
|
||
|
|
|
||
|
|
## Custom Format
|
||
|
|
|
||
|
|
The `format` property represents the countdown format, which can be customized.
|
||
|
|
|
||
|
|
```html
|
||
|
|
<wd-count-down :time="time" :format="format" />
|
||
|
|
```
|
||
|
|
|
||
|
|
```ts
|
||
|
|
const format = ref<string>('DD Days HH Hours mm Minutes ss Seconds')
|
||
|
|
const time = ref<number>(30 * 60 * 60 * 1000)
|
||
|
|
```
|
||
|
|
|
||
|
|
## Millisecond Rendering
|
||
|
|
|
||
|
|
The `millisecond` property indicates whether to enable millisecond-level rendering, which is disabled by default.
|
||
|
|
|
||
|
|
```html
|
||
|
|
<wd-count-down :time="time" :millisecond="true" />
|
||
|
|
```
|
||
|
|
|
||
|
|
```ts
|
||
|
|
const time = ref<number>(30 * 60 * 60 * 1000)
|
||
|
|
```
|
||
|
|
|
||
|
|
## Custom Style
|
||
|
|
|
||
|
|
Customize the countdown style through slots. The `timeData` object format is shown in the table below.
|
||
|
|
|
||
|
|
```html
|
||
|
|
<wd-count-down :time="time">
|
||
|
|
<template #default="{ current }">
|
||
|
|
<span class="custom-count-down">{{ current.hours }}</span>
|
||
|
|
<span class="custom-count-down-colon">:</span>
|
||
|
|
<span class="custom-count-down">{{ current.minutes }}</span>
|
||
|
|
<span class="custom-count-down-colon">:</span>
|
||
|
|
<span class="custom-count-down">{{ current.seconds }}</span>
|
||
|
|
</template>
|
||
|
|
</wd-count-down>
|
||
|
|
```
|
||
|
|
|
||
|
|
```ts
|
||
|
|
const time = ref<number>(30 * 60 * 60 * 1000)
|
||
|
|
```
|
||
|
|
|
||
|
|
```css
|
||
|
|
.custom-count-down {
|
||
|
|
display: inline-block;
|
||
|
|
width: 22px;
|
||
|
|
color: #fff;
|
||
|
|
font-size: 12px;
|
||
|
|
text-align: center;
|
||
|
|
background-color: #f0883a;
|
||
|
|
border-radius: 2px;
|
||
|
|
}
|
||
|
|
|
||
|
|
.custom-count-down-colon {
|
||
|
|
display: inline-block;
|
||
|
|
margin: 0 4px;
|
||
|
|
color: #f0883a;
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Manual Control
|
||
|
|
|
||
|
|
Start the countdown using the `start` method, pause it using the `pause` method, and reset it using the `reset` method.
|
||
|
|
|
||
|
|
```html
|
||
|
|
<wd-count-down ref="countDown" :time="3000" millisecond :auto-start="false" format="ss:SSS" @finish="onFinish"></wd-count-down>
|
||
|
|
<wd-grid clickable border>
|
||
|
|
<wd-grid-item text="Start" icon="play-circle-stroke" @itemclick="start" />
|
||
|
|
<wd-grid-item text="Pause" icon="pause-circle" @itemclick="pause" />
|
||
|
|
<wd-grid-item text="Reset" icon="refresh" @itemclick="reset" />
|
||
|
|
</wd-grid>
|
||
|
|
```
|
||
|
|
|
||
|
|
```ts
|
||
|
|
const { show: showToast } = useToast()
|
||
|
|
|
||
|
|
const countDown = ref<any>(null)
|
||
|
|
|
||
|
|
const start = () => {
|
||
|
|
countDown.value.start()
|
||
|
|
}
|
||
|
|
const pause = () => {
|
||
|
|
countDown.value.pause()
|
||
|
|
}
|
||
|
|
const reset = () => {
|
||
|
|
countDown.value.reset()
|
||
|
|
}
|
||
|
|
const onFinish = () => showToast('Countdown ended')
|
||
|
|
```
|
||
|
|
|
||
|
|
## Attributes
|
||
|
|
|
||
|
|
| Parameter | Description | Type | Options | Default | Version |
|
||
|
|
| ----------- | ------------------------------------------ | ------- | ------- | --------- | ------- |
|
||
|
|
| time | Countdown duration in milliseconds | Number | — | 0 | 0.1.58 |
|
||
|
|
| millisecond | Enable millisecond-level rendering | Boolean | — | false | 0.1.58 |
|
||
|
|
| auto-start | Automatically start countdown | Boolean | — | true | 0.1.58 |
|
||
|
|
| format | Countdown format string | String | — | `HH:mm:ss`| 0.1.58 |
|
||
|
|
|
||
|
|
## Events
|
||
|
|
|
||
|
|
| Event Name | Description | Parameters | Version |
|
||
|
|
| ---------- | ------------------------------ | --------------------- | ------- |
|
||
|
|
| finish | Triggered when countdown ends | — | 0.1.58 |
|
||
|
|
| change | Triggered on countdown change | current: TimeData | 0.1.58 |
|
||
|
|
|
||
|
|
## Methods
|
||
|
|
|
||
|
|
| Method Name | Description | Parameters | Version |
|
||
|
|
| ----------- | ------------------------------ | --------------------- | ------- |
|
||
|
|
| start | Start countdown | — | 0.1.58 |
|
||
|
|
| pause | Pause countdown | — | 0.1.58 |
|
||
|
|
| reset | Reset countdown, auto-starts if `auto-start` is `true` | — | 0.1.58 |
|
||
|
|
|
||
|
|
## Slots
|
||
|
|
|
||
|
|
| Name | Description | Version |
|
||
|
|
| ---- | -------------- | ------- |
|
||
|
|
| — | Default slot | 0.1.58 |
|
||
|
|
|
||
|
|
## External Classes
|
||
|
|
|
||
|
|
| Class Name | Description | Version |
|
||
|
|
| ------------- | --------------------- | ------- |
|
||
|
|
| custom-class | Root node style | - |
|
||
|
|
|
||
|
|
### format Options
|
||
|
|
|
||
|
|
| Format | Description |
|
||
|
|
| ------ | --------------------- |
|
||
|
|
| DD | Days |
|
||
|
|
| HH | Hours |
|
||
|
|
| mm | Minutes |
|
||
|
|
| ss | Seconds |
|
||
|
|
| S | Milliseconds (1 digit)|
|
||
|
|
| SS | Milliseconds (2 digits)|
|
||
|
|
| SSS | Milliseconds (3 digits)|
|
||
|
|
|
||
|
|
### timeData Object
|
||
|
|
|
||
|
|
| Property | Description | Type | Default |
|
||
|
|
| ------------ | ------------ | ------ | ------- |
|
||
|
|
| days | Days | number | - |
|
||
|
|
| hours | Hours | number | - |
|
||
|
|
| minutes | Minutes | number | - |
|
||
|
|
| seconds | Seconds | number | - |
|
||
|
|
| milliseconds | Milliseconds | number | - |
|