1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- interface AgentTaskStepOptions {
- title: string;
- shareData?: any;
- handle?(): { (): Promise<any> };
- }
- export class AgentTaskStep {
- // 任务标题
- title: string = '';
- // 共享数据
- shareData: any = {};
- // 私有数据
- data: any = {};
- /**
- * 任务初始化函数
- * 因为构造器里不能执行异步函数,而metaData里传进来的数据中可能有需要异步处理的函数
- */
- isInit: boolean = false;
- async init(metaData: AgentTaskStepOptions) {}
- // 父级组件
- parentComp: any | undefined;
- parentIndex: number | undefined;
- /**
- * 任务生命周期
- * constructor() // 构造时执行一次
- * onInit() // 初始化后执行一次
- * onProgress() // 进度变化时执行一次
- * onComplete() // 完成前执行一次
- */
- constructor(metaData: AgentTaskStepOptions) {
- this.title = metaData.title;
- this.shareData = metaData?.shareData;
- if (metaData.handle) {
- this.handle = metaData.handle;
- }
- this.init(metaData); // 处理异步函数
- }
- onInit(step: AgentTaskStep) {
- this.isInit = true;
- }
- beforeHandle(step: AgentTaskStep) {}
- afterhandle(step: AgentTaskStep) {}
- onProgress(step: AgentTaskStep) {}
- onComplete(step: AgentTaskStep) {}
- onError(step: AgentTaskStep) {}
- /**
- * 执行任务
- * @desc 函数内必须有明确的完成、结束情形和函数进度变化指示
- */
- progress: number = 0;
- handle(): Promise<any> | any {
- this.beforeHandle(this);
- this.onComplete(this);
- this.onError(this);
- return true;
- }
- /**
- * 函数报错
- */
- error: string = ''; // 报错原因
- }
|