task-card.component.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { Component, Input } from '@angular/core';
  2. import { IonCard } from '@ionic/angular';
  3. import { IonItem } from '@ionic/angular';
  4. import { IonCheckbox } from '@ionic/angular';
  5. import { IonLabel } from '@ionic/angular';
  6. import { IonBadge } from '@ionic/angular';
  7. @Component({
  8. selector: 'app-task-card',
  9. template: `
  10. <ion-card>
  11. <ion-item lines="none">
  12. <ion-checkbox slot="start"></ion-checkbox>
  13. <ion-label>
  14. <div class="task-header">
  15. <span class="task-title">{{title}}</span>
  16. <ion-badge *ngFor="let tag of tags" color="light">{{tag}}</ion-badge>
  17. </div>
  18. <div class="task-meta">
  19. <span>⏰ {{dueTime}}</span>
  20. <span *ngIf="subtasksCount > 0">📁 {{subtasksCount}}个子任务</span>
  21. </div>
  22. </ion-label>
  23. </ion-item>
  24. </ion-card>
  25. `,
  26. styleUrls: ['./task-card.component.scss'],
  27. standalone: true,
  28. imports: [
  29. IonCard,
  30. IonItem,
  31. IonCheckbox,
  32. IonLabel,
  33. IonBadge
  34. ]
  35. })
  36. export class TaskCardComponent {
  37. @Input() title = '';
  38. @Input() tags: string[] = [];
  39. @Input() dueDate = '';
  40. @Input() dueTime = '';
  41. @Input() subtasksCount = 0;
  42. }