agent.task.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. // 任务步骤初始化参数
  2. interface AgentTaskStepOptions{
  3. title:string
  4. shareData?:any
  5. handle?():{():Promise<any>}
  6. }
  7. export class AgentTaskStep{
  8. // 任务名称
  9. title:string = ""
  10. // 任务数据 共享数据(整个任务集共享传递的数据)
  11. shareData:any = {}
  12. // 任务数据 私有数据(当前任务私有的处理数据)
  13. data:any = {}
  14. // 父级组件:任务集组件
  15. // @example 当前子任务未完成,且当前任务是必须时,需要在当前任务中,终止整个程序
  16. parentComp:any|undefined
  17. // 当前任务在任务集数组中的项目
  18. parentIndex:number|undefined
  19. /**
  20. * 任务生命周期
  21. * @constructor // 构造时执行一次
  22. * @onInit // 初始化后执行一次
  23. * @onProgress // 进度变化时执行一次
  24. * @onComplete // 完成前执行一次
  25. */
  26. constructor(metaData:AgentTaskStepOptions){
  27. this.title = metaData.title
  28. this.shareData = metaData.shareData
  29. if(metaData.handle){
  30. this.handle = metaData.handle
  31. }
  32. this.init(metaData)
  33. }
  34. onInit(step:AgentTaskStep){
  35. this.isInit = true;
  36. }
  37. beforeHandle(step:AgentTaskStep){
  38. }
  39. afterHandle(step:AgentTaskStep){
  40. }
  41. onProgress(step:AgentTaskStep,progress:number){
  42. }
  43. onComplete(step:AgentTaskStep){
  44. }
  45. onError(step:AgentTaskStep){
  46. }
  47. /**
  48. * 任务初始化函数
  49. */
  50. async init(metaData:AgentTaskStepOptions){
  51. }
  52. isInit:boolean = false; // 是否初始化
  53. /**
  54. * 任务执行函数
  55. * @desc 函数内必须有明确的完成、结束情形,函数内必须有进度的变化指示 progress从0.00 - 1.00
  56. */
  57. progress:number = 0;
  58. // get progress(){
  59. // return this._progress
  60. // }
  61. // set progress(v:number){
  62. // this._progress = v
  63. // this.onProgress(this,this.progress)
  64. // }
  65. handle():Promise<any>|any{
  66. this.beforeHandle(this)
  67. this.onComplete(this)
  68. this.onError(this)
  69. return true
  70. }
  71. /**
  72. * 任务错误提示
  73. */
  74. error:string = "" // 错误原因
  75. }