tab2.page.html 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <ion-header [translucent]="true" class="ion-no-border">
  2. <ion-toolbar>
  3. <div class="header-container">
  4. <div class="search-box">
  5. <ion-searchbar placeholder="搜索计划" mode="ios" class="custom-searchbar"></ion-searchbar>
  6. </div>
  7. <div class="header-icons">
  8. <ion-icon name="bookmark-outline" class="action-icon"></ion-icon>
  9. <ion-icon name="notifications-outline" class="action-icon"></ion-icon>
  10. </div>
  11. </div>
  12. </ion-toolbar>
  13. </ion-header>
  14. <ion-content [fullscreen]="true" class="ion-padding-horizontal">
  15. @if(mapListOnline.length > 0){
  16. <div class="content-container">
  17. <!-- 标题部分 -->
  18. <div class="page-title">
  19. <h1>学习计划</h1>
  20. <p class="subtitle">探索你的学习之旅</p>
  21. </div>
  22. <!-- 计划卡片 -->
  23. <ion-card class="plan-card">
  24. <ion-card-header>
  25. <div class="card-header-content">
  26. <div>
  27. <ion-card-title>
  28. {{currentTitle}}
  29. </ion-card-title>
  30. <ion-card-subtitle>
  31. 计划 {{currentIndex + 1}} / {{ mapListOnline.length }}
  32. </ion-card-subtitle>
  33. </div>
  34. <div class="header-actions">
  35. <ion-button fill="clear" class="edit-button" (click)="editPlan()">
  36. <ion-icon name="create-outline"></ion-icon>
  37. 编辑计划
  38. </ion-button>
  39. <ion-button fill="clear" class="delete-button" (click)="confirmDelete()">
  40. <ion-icon name="trash-outline"></ion-icon>
  41. 删除计划
  42. </ion-button>
  43. </div>
  44. </div>
  45. </ion-card-header>
  46. <ion-card-content>
  47. @if(!isEditing) {
  48. <comp-markmap [height]="'45vh'" [markdown]="mapListOnline[currentIndex].get('markmap')"
  49. [nodeStates]="nodeStates" (titleExtracted)="onTitleExtracted($event)"
  50. (nodeStateChange)="onNodeStateChange($event)"></comp-markmap>
  51. } @else {
  52. <div class="edit-container">
  53. <ion-textarea [(ngModel)]="editingMarkdown" rows="10" class="markdown-editor"
  54. placeholder="在此编辑你的学习计划..."></ion-textarea>
  55. <div class="edit-actions">
  56. <ion-button fill="outline" (click)="cancelEdit()">
  57. 取消
  58. </ion-button>
  59. <ion-button (click)="savePlan()">
  60. 保存
  61. </ion-button>
  62. </div>
  63. </div>
  64. }
  65. </ion-card-content>
  66. </ion-card>
  67. <!-- 导航按钮 -->
  68. <div class="navigation-buttons">
  69. <ion-button fill="clear" (click)="previousPlan()" [disabled]="currentIndex === 0" class="nav-button">
  70. <ion-icon name="chevron-back-outline"></ion-icon>
  71. <span>上一个</span>
  72. </ion-button>
  73. <ion-button fill="clear" (click)="nextPlan()" [disabled]="currentIndex === mapListOnline.length - 1"
  74. class="nav-button">
  75. <span>下一个</span>
  76. <ion-icon name="chevron-forward-outline"></ion-icon>
  77. </ion-button>
  78. </div>
  79. </div>
  80. }
  81. @else {
  82. <div class="no-plans">
  83. <ion-icon name="documents-outline"></ion-icon>
  84. <h2>暂无计划内容</h2>
  85. <p>开始创建你的第一个学习计划吧</p>
  86. </div>
  87. }
  88. </ion-content>
  89. <!-- <edit-tag></edit-tag>
  90. <h1>星星打分组件演示:分值{{currentScore}}</h1>
  91. <edit-rating-star [score]="currentScore" [scoreMax]="5" (onScoreChange)="handleScoreChange($event)">
  92. </edit-rating-star> -->