lesson-feedback.component.ts 1.8 KB

123456789101112131415161718192021222324
  1. import { ChangeDetectionStrategy, Component, input } from '@angular/core';
  2. @Component({
  3. selector: 'app-lesson-feedback', standalone: true,
  4. changeDetection: ChangeDetectionStrategy.OnPush,
  5. template: `
  6. <dl class="feedback-content">
  7. <div class="learning-content"><dt>学习内容</dt><dd>{{ feedback()['contentSummary'] || '未补充' }}</dd></div>
  8. <div><dt>复习 / 生词本</dt><dd>{{ feedback()['reviewStatus'] || '未补充' }}</dd>@if(feedback()['reviewSummary']) { <dd>{{ feedback()['reviewSummary'] }}</dd> }</div>
  9. <div><dt>训练进度</dt>@if(feedback()['trainingStatus']) { <dd>{{ feedback()['trainingStatus'] }}</dd> }<dd>{{ feedback()['trainingSummary'] || '未补充' }}</dd></div>
  10. <div><dt>老师点评</dt><dd>{{ feedback()['coachComment'] || '未补充' }}</dd></div>
  11. <div class="homework-content"><dt>课后作业</dt><dd>{{ feedback()['noHomework'] ? '本次无作业' : feedback()['homework'] || '未补充' }}</dd></div>
  12. </dl>
  13. `,
  14. styles: [`
  15. :host{display:block}.feedback-content{margin:0;display:grid;gap:16px}
  16. .feedback-content>div{min-width:0}.feedback-content dt{margin-bottom:5px;color:var(--ink-soft);font-size:12px;line-height:1.5}
  17. .feedback-content dd{margin:0;color:var(--ink);font-size:15px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
  18. .feedback-content dd+dd{margin-top:4px}.learning-content,.homework-content{padding:14px;border-radius:12px;background:var(--surface-muted)}
  19. .learning-content dd{font-weight:600}.homework-content{border-left:3px solid var(--brand-strong)}
  20. @media(min-width:600px){.feedback-content{grid-template-columns:1fr 1fr;gap:20px}.learning-content,.homework-content{grid-column:1/-1}}
  21. `],
  22. })
  23. export class LessonFeedbackComponent { readonly feedback = input.required<Record<string, unknown>>(); }