Skip to content

Countdown 倒计时

此组件通常用于显示一个倒计时文本,可以设置倒计时级别,支持设置主题、镂空、浅化等。

基础使用

通过 date 属性设置倒计时结束日期。

vue
<template>
    <hi-countdown :date="endDate"></hi-countdown>
</template>

<script setup>
    import { ref } from 'vue';

    // 倒计时结束日期
    const endDate = ref(new Date("2035/12/12 12:12:12"));
</script>

倒计时格式

通过 format 属性设置倒计时格式,最大支持“周”,一个完整的示例:{WW}周{DD}天{HH}时{MM}分{SS}秒{MSS}毫秒,格式说明:

  • {WW}: 周,补零;
  • {W}: 周,不补零
  • {DD}: 天,补零;
  • {D}: 天,不补零
  • {HH}: 小时,补零;
  • {H}: 小时,不补零
  • {MM}: 分钟,补零;
  • {M}: 分钟,不补零
  • {SS}: 秒,补零;
  • {S}: 秒,不补零
  • {MSS}: 毫秒,补零。
  • {MS}: 毫秒,不补零。
vue
<template>
    <hi-countdown :date="endDate" format="{WW}周{DD}天{HH}时{MM}分{SS}秒{MSS}毫秒"></hi-countdown>
</template>

<script setup>
    import { ref } from 'vue';

    // 倒计时结束日期
    const endDate = ref(new Date("2035/12/12 12:12:12"));
</script>

更新周期

通过 interval 属性设置倒计时更新周期,单位为毫秒,默认为 1000

vue
<template>
    <hi-countdown :date="endDate" format="{WW}周{DD}天{HH}时{MM}分{SS}秒{MSS}毫秒" :interval="100"></hi-countdown>
</template>

<script setup>
    import { ref } from 'vue';

    // 倒计时结束日期
    const endDate = ref(new Date("2035/12/12 12:12:12"));
</script>

结束提示

通过 tips 属性自定义倒计时结束文本,默认为空。

vue
<template>
    <hi-countdown :date="endDate" tips="活动已结束"></hi-countdown>
</template>

<script setup>
    import { ref } from 'vue';

    // 倒计时结束日期
    const endDate = ref(new Date());
</script>

组件边框

通过 border 属性开启组件边框。

vue
<hi-countdown :date="endDate" border></hi-countdown>

组件主题

通过 theme 属性设置组件主题。

vue
<hi-countdown :date="endDate" theme="primary"></hi-countdown>
<hi-countdown :date="endDate" theme="success"></hi-countdown>
<hi-countdown :date="endDate" theme="warning"></hi-countdown>
<hi-countdown :date="endDate" theme="error"></hi-countdown>
<hi-countdown :date="endDate" theme="info"></hi-countdown>

组件镂空

通过 plain 属性开启组件镂空。

vue
<hi-countdown :date="endDate" plain></hi-countdown>
<hi-countdown :date="endDate" plain theme="primary"></hi-countdown>

组件浅化背景

通过 tint 属性开启组件浅化背景。

vue
<hi-countdown :date="endDate" tint></hi-countdown>
<hi-countdown :date="endDate" tint theme="primary"></hi-countdown>

数字边框

通过 numBorder 属性开启数字边框。

vue
<hi-countdown :date="endDate" numBorder></hi-countdown>

数字主题

通过 numTheme 属性设置数字主题。

vue
<hi-countdown :date="endDate" numTheme="primary"></hi-countdown>
<hi-countdown :date="endDate" numTheme="success"></hi-countdown>
<hi-countdown :date="endDate" numTheme="warning"></hi-countdown>
<hi-countdown :date="endDate" numTheme="error"></hi-countdown>
<hi-countdown :date="endDate" numTheme="info"></hi-countdown>

数字镂空

通过 numPlain 属性开启数字镂空。

vue
<hi-countdown :date="endDate" numPlain></hi-countdown>
<hi-countdown :date="endDate" numPlain numTheme="primary"></hi-countdown>

数字浅化背景

通过 numTint 属性开启数字浅化背景。

vue
<hi-countdown :date="endDate" numTint></hi-countdown>
<hi-countdown :date="endDate" numTint numTheme="primary"></hi-countdown>

Props

属性名说明类型默认值可选值版本
date倒计时结束日期[Date, Number, String]undefined--
format格式化字符串String{DD}天{HH}时{MM}分{SS}秒详见上方说明-
interval更新间隔[String, Number]1000--
tips倒计时结束后的文本String---
color组件文本颜色String---
fontSize组件文本大小String---
fontWeight组件文本粗细String---
gap内容项的间隔String---
bg组件背景String---
radius组件圆角大小String---
padding组件内边距String---
border是否显示组件边框Booleanfalsetrue-
theme组件主题String---
plain是否开启组件镂空Booleanfalsetrue-
tint是否开启组件浅化背景Booleanfalsetrue-
tintOpacity浅化背景透明度[String, Number]0.2--
numFontSize数字文本大小String---
numColor数字文本颜色String---
numFontWeight数字文本粗细String---
numWidth数字宽度String---
numHeight数字高度String---
numRadius数字圆角大小String---
numBorder是否显示数字边框Booleanfalsetrue-
numBorderWidth数字边框粗细String---
numBorderColor数字边框颜色String---
numBorderStyle数字边框类型String---
numPadding数字内边距String---
numTheme数字主题String---
numPlain是否开启数字镂空Booleanfalsetrue-
numTint是否开启数字浅化背景Booleanfalsetrue-
numTintOpacity数字浅化背景透明度[String, Number]0.2--

Event

事件名说明回调参数版本
end倒计时结束事件--
change倒计时更新事件countdown: 倒计时数据,详见下方说明-

倒计时数据

属性名说明类型
weeks剩余周数Number
days剩余天数Number
hours剩余小时数Number
minutes剩余分钟数Number
seconds剩余秒数Number
milliseconds剩余毫秒数Number

Slots

名称说明参数版本
weeks周数字插槽number: 剩余周数-
days天数字插槽number: 剩余天数-
hours小时数字插槽number: 剩余小时数-
minutes分钟数字插槽number: 剩余分钟数-
seconds秒数字插槽number: 剩余秒数-
milliseconds毫秒数字插槽number: 剩余毫秒数-
weeksSeparator周分隔符插槽separator: 周分隔符值-
daysSeparator天分隔符插槽separator: 天分隔符值-
hoursSeparator小时分隔符插槽separator: 小时分隔符值-
minutesSeparator分钟分隔符插槽separator: 分钟分隔符值-
secondsSeparator秒分隔符插槽separator: 秒分隔符值-
millisecondsSeparator毫秒分隔符插槽separator: 毫秒分隔符值-

样式变量

组件提供了以下样式变量,可以在使用时设置这些变量来修改组件的样式。

变量名默认值版本
--hi-countdown-backgroundnone / var(--hi-countdown-theme, none)-
--hi-countdown-border-radius3px-
--hi-countdown-colorinherit / var(--hi-countdown-theme, inherit)-
--hi-countdown-font-sizeinherit-
--hi-countdown-font-weightinherit-
--hi-countdown-displayinline-flex-
--hi-countdown-padding0 / 5px 10px-
--hi-countdown-border-width0 / 1-
--hi-countdown-border-stylesolid-
--hi-countdown-border-colorvar(--hi-countdown-theme, currentColor)-
--hi-countdown-positionrelative-
--hi-countdown-content-displayflex-
--hi-countdown-gap3px-
--hi-countdown-background-opacity0.2-
--hi-countdown-content-align-itemscenter-
--hi-countdown-content-positionrelative-
--hi-countdown-content-z-index2-
--hi-countdown-number-font-sizeinherit-
--hi-countdown-number-colorinherit-
--hi-countdown-number-font-weightinherit-
--hi-countdown-number-widthauto-
--hi-countdown-number-heightauto-
--hi-countdown-number-border-radius3px-
--hi-countdown-number-border-width0 / 1-
--hi-countdown-number-border-stylesolid-
--hi-countdown-number-border-colorvar(--hi-countdown-number-theme, currentColor)-
--hi-countdown-number-displayflex-
--hi-countdown-number-align-itemscenter-
--hi-countdown-number-justify-contentcenter-
--hi-countdown-number-text-aligncenter-
--hi-countdown-number-backgroundnone / var(--hi-countdown-number-theme, none)-
--hi-countdown-number-padding0 / 3px 6px-
--hi-countdown-number-positionrelative-
--hi-countdown-number-background-opacity0.2-

基于 MIT 许可发布