countdown.uvue 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <template>
  2. <cl-page>
  3. <view class="p-3">
  4. <demo-item :label="t('基础用法')">
  5. <cl-countdown :datetime="datetime"></cl-countdown>
  6. </demo-item>
  7. <demo-item :label="t('隐藏为 00 的值')">
  8. <cl-countdown :minute="60" hide-zero></cl-countdown>
  9. </demo-item>
  10. <demo-item :label="t('指定天数')">
  11. <cl-countdown :day="2" format="{d}天{h}:{m}:{s}"></cl-countdown>
  12. </demo-item>
  13. <demo-item :label="t('自定义模板')">
  14. <cl-countdown :day="1" format="{d}天{h}时{m}分{s}秒"></cl-countdown>
  15. </demo-item>
  16. <demo-item :label="t('指定小时')">
  17. <cl-countdown :hour="2"></cl-countdown>
  18. </demo-item>
  19. <demo-item :label="t('指定分钟')">
  20. <cl-countdown :minute="2"></cl-countdown>
  21. </demo-item>
  22. <demo-item :label="t('指定秒')">
  23. <cl-countdown :second="10"></cl-countdown>
  24. </demo-item>
  25. <demo-item :label="t('完成后提示')">
  26. <cl-countdown :second="5" @done="onDone"></cl-countdown>
  27. </demo-item>
  28. <demo-item :label="t('自定义样式')">
  29. <cl-countdown
  30. :hour="10"
  31. :pt="{
  32. text: {
  33. className: parseClass([
  34. 'px-2 py-1 rounded-md',
  35. [isDark, 'bg-surface-700', 'bg-surface-100']
  36. ])
  37. },
  38. splitor: {
  39. className: 'px-2'
  40. }
  41. }"
  42. ></cl-countdown>
  43. </demo-item>
  44. </view>
  45. </cl-page>
  46. </template>
  47. <script lang="ts" setup>
  48. import { t } from "@/locale";
  49. import DemoItem from "../components/item.uvue";
  50. import { ref } from "vue";
  51. import { dayUts, isDark, parseClass } from "@/cool";
  52. import { useUi } from "@/uni_modules/cool-ui";
  53. const ui = useUi();
  54. const datetime = ref(dayUts().add(1, "minute").toDate());
  55. function onDone() {
  56. ui.showToast({
  57. message: "倒计时完成"
  58. });
  59. }
  60. </script>