暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

danka-edit.html 5.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <app-header></app-header>
  2. <div class="danka-edit-page">
  3. <app-side-menu></app-side-menu>
  4. <main class="danka-edit-main">
  5. <section class="edit-panel">
  6. <div class="page-title-area">
  7. <h1>{{ danka ? '檀家編集' : '檀家登録' }}</h1>
  8. </div>
  9. <form [formGroup]="dankaForm" class="edit-form">
  10. <div class="edit-content">
  11. <section class="basic-edit-section">
  12. <h2>基本情報</h2>
  13. <div class="form-list">
  14. <div class="form-row">
  15. <label for="householdName">檀家名</label>
  16. <div class="form-field">
  17. <input
  18. id="householdName"
  19. type="text"
  20. formControlName="householdName"
  21. />
  22. @if (dankaForm.get('householdName')?.invalid && dankaForm.get('householdName')?.touched) {
  23. <p class="error-message">檀家名を入力してください。</p>
  24. }
  25. </div>
  26. </div>
  27. <div class="form-row">
  28. <label for="householdFurigana">檀家名ふりがな</label>
  29. <input
  30. id="householdFurigana"
  31. type="text"
  32. formControlName="householdFurigana"
  33. />
  34. </div>
  35. <div class="form-row">
  36. <label for="householder">施主名</label>
  37. <div class="form-field">
  38. <input
  39. id="householder"
  40. type="text"
  41. formControlName="householder"
  42. />
  43. @if (dankaForm.get('householder')?.invalid && dankaForm.get('householder')?.touched) {
  44. <p class="error-message">施主名を入力してください。</p>
  45. }
  46. </div>
  47. </div>
  48. <div class="form-row">
  49. <label for="householderFurigana">施主名ふりがな</label>
  50. <input
  51. id="householderFurigana"
  52. type="text"
  53. formControlName="householderFurigana"
  54. />
  55. </div>
  56. <div class="form-row">
  57. <label for="postalCode">郵便番号</label>
  58. <div class="form-field">
  59. <input
  60. id="postalCode"
  61. type="text"
  62. formControlName="postalCode"
  63. />
  64. @if (dankaForm.get('postalCode')?.invalid && dankaForm.get('postalCode')?.touched) {
  65. <p class="error-message">郵便番号を入力してください。</p>
  66. }
  67. </div>
  68. </div>
  69. <div class="form-row">
  70. <label for="address">住所</label>
  71. <input
  72. id="address"
  73. type="text"
  74. formControlName="address"
  75. />
  76. </div>
  77. <div class="form-row note-row">
  78. <label for="note">備考</label>
  79. <textarea
  80. id="note"
  81. formControlName="note"
  82. rows="4"
  83. placeholder="檀家に関する連絡事項や注意点を入力"
  84. ></textarea>
  85. </div>
  86. </div>
  87. </section>
  88. <section class="phone-edit-section">
  89. <div class="section-heading">
  90. <h2>電話番号(複数登録)</h2>
  91. </div>
  92. <div formArrayName="phones" class="phone-table">
  93. <div class="phone-table-header">
  94. <div>番号</div>
  95. <div>備考</div>
  96. <div>操作</div>
  97. </div>
  98. @for (phone of phones.controls; track $index; let i = $index) {
  99. <div class="phone-table-row" [formGroupName]="i">
  100. <div>
  101. <input type="text" formControlName="tel" placeholder="電話番号"/>
  102. @if (phone.get('tel')?.invalid && phone.get('tel')?.touched) {
  103. <p class="phone-error-message">
  104. 電話番号は数字とハイフンで入力してください。
  105. </p>
  106. }
  107. </div>
  108. <div>
  109. <input type="text" formControlName="note" placeholder="備考"/>
  110. </div>
  111. <div class="phone-row-action">
  112. <button type="button" class="remove-phone-button" [disabled]="phones.length === 1" (click)="removePhone(i)">
  113. 削除
  114. </button>
  115. </div>
  116. </div>
  117. }
  118. </div>
  119. <div class="phone-action">
  120. <button
  121. type="button"
  122. class="add-phone-button"
  123. (click)="addPhone()"
  124. >
  125. 電話を追加
  126. </button>
  127. </div>
  128. </section>
  129. </div>
  130. <div class="bottom-actions">
  131. <div class="left-actions"></div>
  132. <div class="right-actions">
  133. @if (danka) {
  134. <button type="button" class="delete-button" (click)="deleteDanka()">
  135. 削除
  136. </button>
  137. }
  138. <button type="button" class="cancel-button" [routerLink]="danka ? ['/danka-detail', danka.id] : ['/danka-list']">
  139. キャンセル
  140. </button>
  141. <button
  142. type="button"
  143. class="save-button"
  144. [disabled]="dankaForm.invalid"
  145. (click)="saveDanka()"
  146. >
  147. 保存
  148. </button>
  149. </div>
  150. </div>
  151. </form>
  152. </section>
  153. </main>
  154. </div>