import { Component, OnInit } from '@angular/core'; import { Router } from '@angular/router'; import { IonHeader, IonToolbar, IonTitle, IonContent, IonButtons, IonBackButton, IonProgressBar, IonButton, IonIcon, ModalController } from '@ionic/angular/standalone'; import { NgClass, NgFor, NgIf } from '@angular/common'; import Parse from 'parse'; import { TaskCollectBasicInfo } from '../../../agent/tasks/learning-plan/1.collect-basic-info'; import { TaskAnalyzeRequirements } from '../../../agent/tasks/learning-plan/2.analyze-requirements'; import { TaskGeneratePlan } from '../../../agent/tasks/learning-plan/3.generate-plan'; import { TaskExecutor } from '../../../agent/agent.start'; import { AgentTaskStep } from '../../../agent/agent.task'; import { TaskCollectDetails } from '../../../agent/tasks/learning-plan/2.5.collect-details'; interface LearningPlan { userId: string; subject: string; timeFrame: string; weeklyHours: number; learningStyle: string; currentLevel: string; planDetails: string; createdAt: Date; updatedAt: Date; } @Component({ selector: 'app-learning-design', templateUrl: './learning-design.page.html', styleUrls: ['./learning-design.page.scss'], standalone: true, imports: [ IonHeader, IonToolbar, IonTitle, IonContent, IonButtons, IonBackButton, IonProgressBar, IonButton, IonIcon, NgClass, NgFor, NgIf ], }) export class LearningDesignPage implements OnInit { isComplete: boolean = false; taskList: AgentTaskStep[] = []; shareData: any = {}; showPlanResult: boolean = false; constructor( private router: Router, private modalCtrl: ModalController ) {} ngOnInit() { this.startLearningPlanTask(); } async startLearningPlanTask() { this.isComplete = false; this.showPlanResult = false; this.shareData = {}; // 创建任务链 const task1 = TaskCollectBasicInfo({ modalCtrl: this.modalCtrl, shareData: this.shareData }); const task2 = TaskAnalyzeRequirements({ modalCtrl: this.modalCtrl, shareData: this.shareData }); const task2_5 = TaskCollectDetails({ modalCtrl: this.modalCtrl, shareData: this.shareData }); const task3 = TaskGeneratePlan({ modalCtrl: this.modalCtrl, shareData: this.shareData }); // 设置任务列表 this.taskList = [task1, task2, task2_5, task3]; // 执行任务链 const success = await TaskExecutor(this.taskList); this.isComplete = true; if (success && this.shareData.learningPlan) { this.showPlanResult = true; } } restartPlan() { this.startLearningPlanTask(); } }