倒计时子页面组件

更新时间:2022-01-06 02:48:21

countdownSubpage

选择时间

显示倒计时

组价介绍

countdownSubpage组件,用来设置和显示倒计时,可以通过路由参数传递属性

公共属性

字段名 类型 描述 默认值
countdown number 当前倒计时剩余时间(秒)
renderHeader () => ReactNode 头部内容
onCountdownText string 开灯倒计时文本
offCountdownText string 关灯倒计时文本
onSave (time: number)=>void 点击确认按钮回调函数
background string 页面背景颜色
hourLabel string 小时文本
minuteLabel string 分钟文本
secondLabel string 秒钟文本
confirmButtonStyle StyleProp 确认按钮样式
confirmText string 确认文本
confirmTextStyle StyleProp 确认文本样式
cancelButtonStyle StyleProp 取消按钮样式
cancelText string 取消文本
cancelTextStyle StyleProp 取消文本样式
clock ClockProps clock属性
picker PickerProps picker属性

clock属性

字段名 类型 描述 默认值
countdown number 当前倒计时剩余时间(秒)
totalCountDown number 总倒计时
hourLabel string 小时文本
minuteLabel string 分钟文本
secondLabel string 秒钟文本
subTitleStyle: StyleProp 子标题文本样式
onReset ()=>void 重置倒计时回调事件
onCancel () => void 取消倒计时回调事件
innerBackgroundColor string clock圈内背景色
isShowHour boolean 当倒计时小于一小时,clock中是否显示小时数
timeTextStyle StyleProp 时间文本样式
unitTextStyle StyleProp 时分秒文本样式
lineColor string 已消耗指针的颜色
activeColor string 剩余指针的颜色
lineHeight number clock外圈指针高度
lineNum number clock外圈指针书数量
resetText string 重置文本
resetStyle StyleProp 重置样式
resetTextStyle StyleProp 重置文本样式
size: number clock大小

picker属性

字段名 类型 描述 默认值
hourLabel string 小时文本
minuteLabel string 分钟文本
secondLabel string 秒钟文本
timeTextColor string 时间文本颜色
timeTextSize number 时间文本字体大小
unitTextStyle StyleProp 时间单位文本字体大小
time number 时间
isShowSecond boolean 是否显示秒
onChange (value: number) => void 时间选择器改变回调

使用示例

import React from 'react';
import { Utils } from 'tuya-panel-kit';
import { CountdownSubPage } from '@tuya/tuya-panel-lamp-sdk';
import Strings from '../../../i18n';

const { winWidth, convertX } = Utils.RatioUtils;
const cx = (value: number) => {
  return Math.floor(convertX(value));
};
const CountdownSubPageDemo = () => {
  const params = {
    background: '#fff',
    countdown: 100,
    minuteLabel: Strings.getLang('TYLamp_minute'),
    secondLabel: Strings.getLang('TYLamp_second'),
    hourLabel: Strings.getLang('TYLamp_hour'),
    onSave: (time: number) => {},
    onCountdownText: Strings.getLang('TYLamp_onCountdown'),
    offCountdownText: Strings.getLang('TYLamp_offCountdown'),
    confirmText: Strings.getLang('TYLamp_confirm'),
    confirmButtonStyle: {
      backgroundColor: '#87cefa',
      height: 48,
      width: winWidth - cx(32),
      paddingHorizontal: cx(16),
      borderRadius: 24,
      alignItems: 'center',
      justifyContent: 'center',
      marginBottom: cx(16),
      marginHorizontal: cx(16),
    },
    confirmTextStyle: {
      color: '#fff',
      fontSize: 16,
    },
    cancelButtonStyle: {
      marginHorizontal: cx(16),
      height: 48,
      width: winWidth - cx(32),
      borderRadius: 24,
      backgroundColor: '#333',
      marginBottom: cx(16),
      alignItems: 'center',
      justifyContent: 'center',
    },
    cancelText: Strings.getLang('TYLamp_cancel'),
    cancelTextStyle: {
      color: '#fff',
      fontSize: 16,
    },
    picker: {
      time: 250,
      isShowSecond: false,
      unitTextStyle: { fontSize: 14, color: 'rgba(255,255,255,0.5)' },
      timeTextColor: '#333',
      timeTextSize: 40,
      minuteLabel: Strings.getLang('TYLamp_minute'),
      secondLabel: Strings.getLang('TYLamp_second'),
      hourLabel: Strings.getLang('TYLamp_hour'),
    },
    clock: {
      countdown: 200,
      totalCountDown: 200,
      minuteLabel: Strings.getLang('TYLamp_minute'),
      secondLabel: Strings.getLang('TYLamp_second'),
      hourLabel: Strings.getLang('TYLamp_hour'),
      timeTextStyle: { fontSize: 40, color: '#000' },
      unitTextStyle: { fontSize: 14, color: 'rgba(255,255,255,0.5)' },
      lineColor: '#e3e3e3',
      activeColor: '#87cefa',
      innerBackgroundColor: 'rgba(255,255,255,0.85)',
      isShowHour: false,
      size: 280,
      lineHeight: 5,
      lineWidth: 1,
      lineNum: 100,
      resetStyle: {},
      resetText: Strings.getLang('TYLamp_resetCountdown'),
      resetTextStyle: {
        color: '#888',
      },
      onReset: () => {},
      onCancel: () => {},
    },
  };
  return (
    <CountdownSubPage
      route={{
        params,
      }}
    />
  );
};
export default CountdownSubPageDemo;