///
export interface ISlideCaptcha {
/**
* 当前标识客户端的token,验证的时候会发送回服务器端
*/
token: string;
/**
* 图形高度
*/
height?: number;
/**
* 图形宽度
*/
width?: number;
/**
* 拼接块距离顶部的像素
*/
top: number;
/**
* 显示的提示文字
*/
tip?: string;
/**
* loading状态
*/
loading?: boolean;
/**
* 背景图片地址,img src支持的地址
*/
bgSrc: string;
/**
* 填充图片地址,img src支持的地址
*/
captchSrc: string;
/**
* 提交验证的方法,需要返回一个 true(成功)或者false(失败)
*/
validate: (validateValue: any) => Promise;
/**
* 验证成功执行的函数
*/
onFinish?: (validKey: string) => void;
/**
* 验证失败执行的函数
*/
onFinishFailed?: (error: any) => void;
/**
* 重置执行的函数
*/
onReset?: () => void;
/**
* 滑块容器上的样式
*/
className?: string;
/**
* 滑块容器上的style
*/
style?: React.CSSProperties;
/**
* 刷新提示文字
*/
refreshTitle?: string;
/**
* 是否记录轨迹 默认false
*/
tracks?: boolean;
onRefresh: () => void;
}
export interface ISlideCaptchaState {
/**
* 记录开始滑动的时间
*/
startTime: Date;
/**
* 记录结束滑动的时间
*/
endTime: Date;
/**
* 当前是否正在移动中
*/
isMove: boolean;
/**
* 位置差(相当于页面浏览器最左端)
*/
poorX: number;
/**
* 拖拽记录
*/
tracks: string[];
/**
* 拖拽元素距离左边的距离
*/
distance: 0;
}
export interface ISlideCaptchaAction {
type: string;
payload?: any;
}
export interface ISlideCaptchaRefProp {
refresh: () => void;
}