task-modal.component.html 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <ion-header class="ion-no-border">
  2. <ion-toolbar color="light">
  3. <ion-buttons slot="start">
  4. <ion-button (click)="cancel()">
  5. <ion-icon name="close" slot="icon-only"></ion-icon>
  6. </ion-button>
  7. </ion-buttons>
  8. <ion-title class="ion-text-center">新建任务</ion-title>
  9. <ion-buttons slot="end">
  10. <ion-button (click)="confirm()" [strong]="true" color="primary">
  11. 保存
  12. </ion-button>
  13. </ion-buttons>
  14. </ion-toolbar>
  15. </ion-header>
  16. <ion-content class="ion-padding-horizontal">
  17. <ion-list lines="none">
  18. <!-- 任务名称 -->
  19. <ion-item fill="outline" class="ion-margin-vertical">
  20. <ion-label position="stacked">任务名称</ion-label>
  21. <ion-input
  22. [(ngModel)]="task.title"
  23. placeholder="请输入任务名称"
  24. clearOnEdit
  25. ></ion-input>
  26. </ion-item>
  27. <!-- 任务标签 -->
  28. <ion-item fill="outline" class="ion-margin-vertical">
  29. <ion-label position="stacked">任务标签</ion-label>
  30. <ion-input
  31. [(ngModel)]="newTag"
  32. placeholder="输入标签后按回车"
  33. (keyup.enter)="addTag()"
  34. ></ion-input>
  35. <ion-button
  36. slot="end"
  37. fill="clear"
  38. (click)="addTag()"
  39. [disabled]="!newTag"
  40. >
  41. <ion-icon name="add" slot="icon-only"></ion-icon>
  42. </ion-button>
  43. </ion-item>
  44. <!-- 标签展示 -->
  45. <div class="tags-container ion-margin-bottom">
  46. <ion-chip
  47. *ngFor="let tag of task.tags; let i = index"
  48. color="medium"
  49. outline
  50. >
  51. {{ tag }}
  52. <ion-icon name="close" (click)="removeTag(i)"></ion-icon>
  53. </ion-chip>
  54. </div>
  55. <!-- 截止时间 -->
  56. <ion-item
  57. fill="outline"
  58. class="ion-margin-vertical"
  59. button
  60. detail="false"
  61. (click)="openDateTimePicker()"
  62. >
  63. <ion-label>截止时间</ion-label>
  64. <ion-text slot="end">{{ task.dueDate | date: 'MM月dd日 HH:mm' }}</ion-text>
  65. </ion-item>
  66. <!-- 日期选择器 -->
  67. <!-- 子任务 -->
  68. <div class="subtask-section ion-margin-vertical">
  69. <ion-item lines="none">
  70. <ion-label>子任务列表</ion-label>
  71. <ion-button fill="clear" (click)="addSubtask()">
  72. <ion-icon name="add-circle" slot="start"></ion-icon>
  73. 添加子任务
  74. </ion-button>
  75. </ion-item>
  76. <ion-list class="subtask-list">
  77. <ion-item *ngFor="let subtask of task.subtasks; let i = index">
  78. <ion-input
  79. [(ngModel)]="task.subtasks[i]"
  80. placeholder="子任务描述"
  81. clearOnEdit
  82. ></ion-input>
  83. <ion-button
  84. fill="clear"
  85. color="danger"
  86. (click)="removeSubtask(i)"
  87. >
  88. <ion-icon name="trash" slot="icon-only"></ion-icon>
  89. </ion-button>
  90. </ion-item>
  91. </ion-list>
  92. </div>
  93. <!-- 备注 -->
  94. <ion-item fill="outline" class="ion-margin-vertical">
  95. <ion-label position="stacked">任务备注</ion-label>
  96. <ion-textarea
  97. [(ngModel)]="task.note"
  98. placeholder="请输入任务备注(可选)"
  99. autoGrow
  100. rows="3"
  101. ></ion-textarea>
  102. </ion-item>
  103. </ion-list>
  104. </ion-content>