1
0

learning-design.page.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. import { Component, OnInit } from '@angular/core';
  2. import { Router } from '@angular/router';
  3. import {
  4. IonHeader,
  5. IonToolbar,
  6. IonTitle,
  7. IonContent,
  8. IonButtons,
  9. IonBackButton,
  10. IonProgressBar,
  11. IonButton,
  12. IonIcon,
  13. ModalController
  14. } from '@ionic/angular/standalone';
  15. import { NgClass, NgFor, NgIf } from '@angular/common';
  16. import Parse from 'parse';
  17. import { TaskCollectBasicInfo } from '../../../agent/tasks/learning-plan/1.collect-basic-info';
  18. import { TaskAnalyzeRequirements } from '../../../agent/tasks/learning-plan/2.analyze-requirements';
  19. import { TaskGeneratePlan } from '../../../agent/tasks/learning-plan/3.generate-plan';
  20. import { TaskExecutor } from '../../../agent/agent.start';
  21. import { AgentTaskStep } from '../../../agent/agent.task';
  22. import { TaskCollectDetails } from '../../../agent/tasks/learning-plan/2.5.collect-details';
  23. interface LearningPlan {
  24. userId: string;
  25. subject: string;
  26. timeFrame: string;
  27. weeklyHours: number;
  28. learningStyle: string;
  29. currentLevel: string;
  30. planDetails: string;
  31. createdAt: Date;
  32. updatedAt: Date;
  33. }
  34. @Component({
  35. selector: 'app-learning-design',
  36. templateUrl: './learning-design.page.html',
  37. styleUrls: ['./learning-design.page.scss'],
  38. standalone: true,
  39. imports: [
  40. IonHeader,
  41. IonToolbar,
  42. IonTitle,
  43. IonContent,
  44. IonButtons,
  45. IonBackButton,
  46. IonProgressBar,
  47. IonButton,
  48. IonIcon,
  49. NgClass,
  50. NgFor,
  51. NgIf
  52. ],
  53. })
  54. export class LearningDesignPage implements OnInit {
  55. isComplete: boolean = false;
  56. taskList: AgentTaskStep[] = [];
  57. shareData: any = {};
  58. showPlanResult: boolean = false;
  59. constructor(
  60. private router: Router,
  61. private modalCtrl: ModalController
  62. ) {}
  63. ngOnInit() {
  64. this.startLearningPlanTask();
  65. }
  66. async startLearningPlanTask() {
  67. this.isComplete = false;
  68. this.showPlanResult = false;
  69. this.shareData = {};
  70. // 创建任务链
  71. const task1 = TaskCollectBasicInfo({
  72. modalCtrl: this.modalCtrl,
  73. shareData: this.shareData
  74. });
  75. const task2 = TaskAnalyzeRequirements({
  76. modalCtrl: this.modalCtrl,
  77. shareData: this.shareData
  78. });
  79. const task2_5 = TaskCollectDetails({
  80. modalCtrl: this.modalCtrl,
  81. shareData: this.shareData
  82. });
  83. const task3 = TaskGeneratePlan({
  84. modalCtrl: this.modalCtrl,
  85. shareData: this.shareData
  86. });
  87. // 设置任务列表
  88. this.taskList = [task1, task2, task2_5, task3];
  89. // 执行任务链
  90. const success = await TaskExecutor(this.taskList);
  91. this.isComplete = true;
  92. if (success && this.shareData.learningPlan) {
  93. this.showPlanResult = true;
  94. }
  95. }
  96. restartPlan() {
  97. this.startLearningPlanTask();
  98. }
  99. }