UNPKG

@lofter-mission/core

Version:

任务体系逻辑SDK - 提供活动数据获取、任务数据预处理和二次包装功能

72 lines 2.73 kB
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