@lofter-mission/core
Version:
任务体系逻辑SDK - 提供活动数据获取、任务数据预处理和二次包装功能
72 lines • 2.73 kB
TypeScript
import { MissionInfo, MissionStatus, ShowMissionType, MissionTabType, MissionActivityVO } from '../types/mission';
/**
* 任务执行上下文接口
*/
export interface MissionExecutionContext {
/** 任务code */
missionCode: string;
/** 活动code */
activityCode: string;
/** 任务活动code */
missionActivityCode: string;
}
/**
* 任务项类 - 封装任务信息并提供针对不同showMissionType的逻辑处理
*/
export declare class MissionItem {
private missionInfo;
private executionContext?;
constructor(missionInfo: MissionInfo, executionContext?: MissionExecutionContext);
get info(): MissionInfo;
get showMissionType(): ShowMissionType;
get status(): MissionStatus;
get progress(): {
current: number;
total: number;
};
get isVisible(): boolean;
get isClaimable(): boolean;
get isCompleted(): boolean;
get progressPercentage(): number;
get progressText(): string;
get highlightedTitle(): string;
get context(): MissionExecutionContext | undefined;
setExecutionContext(context: MissionExecutionContext): void;
executeByShowMissionType<T>(handlers: Partial<Record<ShowMissionType, () => T>>): T | undefined;
getShowMissionTypeName(): string;
executeTask(customHandler?: (context: MissionExecutionContext, showMissionType: number) => Promise<any>): Promise<any>;
private executeByShowMissionTypeAsync;
private executeSignInMission;
private copyToClipboard;
receiveAward(step?: number): Promise<any>;
isAutoTask(): boolean;
updateStatus(newStatus: MissionStatus): void;
updateProgress(current: number, total?: number): void;
getActionConfig(): {
text: string;
url: string;
} | null;
toProcessedMissionInfo(): any;
}
/**
* 任务项工厂类 - 用于创建 MissionItem 实例
*/
export declare class MissionItemFactory {
/**
* 从 MissionInfo 创建 MissionItem
*/
static fromMissionInfo(missionInfo: MissionInfo, executionContext?: MissionExecutionContext): MissionItem;
/**
* 从 MissionInfo 数组创建 MissionItem 数组
*/
static fromMissionInfoList(missionInfoList: MissionInfo[], activityCode?: string, missionActivityCode?: string): MissionItem[];
/**
* 从 MissionActivityVO 的 tabList 创建按 tab 分组的 MissionItem 映射
*/
static fromMissionActivity(missionActivity: MissionActivityVO, activityCode?: string): Map<MissionTabType, MissionItem[]>;
/**
* 创建单个处理过的任务项
*/
static createProcessedMissionItem(mission: MissionInfo, activityCode: string, missionActivityCode: string): MissionItem;
}
//# sourceMappingURL=MissionItem.d.ts.map