/** * HandleFunction 类型定义 - 步骤处理函数 */ export type HandleFunctionType = () => Promise; /** * ProStepTab钩子参数接口 */ export interface ProStepTabType { /** * 是否将当前tab状态保存在URL中 * @default false */ routerKeep?: boolean; /** * URL参数名称 * @default 'tab' */ routerSearchKey?: string; /** * 切换tab前是否需要验证 * @default false */ validate?: boolean; /** * 切换tab前的回调 * @param current 当前tabKey * @param target 目标tabKey * @returns 是否允许切换 */ onBeforeChange?: (current: string, target: string) => Promise; /** * 切换tab后的回调 * @param key 切换后的tabKey */ onAfterChange?: (key: string) => void; /** * 默认选中的tab key * @default '1' */ defaultActiveKey?: string; /** * 需要按顺序完成的步骤数量 * 与defaultStep必须同时存在或同时不存在 * @default - */ queueSteps?: number; /** * 当前初始激活步骤 * 与queueSteps必须同时存在或同时不存在 * @default 1 */ defaultStep?: number; /** * 是否自动跳转下一步 * @default false */ autoNext?: boolean; } /** * ProStepTab钩子返回值接口 */ export interface ProStepTabResultType { /** * 当前激活的tabKey */ activeKey: string; /** * 设置激活的tabKey * @param key 目标tabKey * @param validate 是否需要验证 */ setCheckActiveKey: (key: string, validate?: boolean) => Promise; /** * 加载状态 */ loading: boolean; /** * 注册步骤处理函数 * @param key 步骤Key * @param handler 处理函数 */ registerHandle: (key: string, handler: HandleFunctionType) => void; /** * 获取步骤处理函数 * @param key 步骤Key */ getHandle: (key: string) => HandleFunctionType | undefined; /** * 执行当前步骤处理函数 * @returns 处理结果 */ saveHandle: () => Promise; /** * 所有步骤处理函数映射 */ handles: Record; /** * 重置所有步骤处理函数 */ resetHandles: () => void; /** * 最大步骤数 */ queueSteps?: number; /** * 当前已激活步骤,最大值为queueSteps */ step?: number; /** * 设置当前顺序步骤 * @param step 顺序步骤 */ setStep?: (step: number) => void; }