Ei kuvausta
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-detail.html 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372
  1. <app-header></app-header>
  2. <div class="breadcrumb">
  3. ホーム &gt; 檀家(世帯) &gt; {{ danka?.householdName }}
  4. </div>
  5. <div class="danka-detail-page">
  6. <app-side-menu></app-side-menu>
  7. <main class="danka-detail-main">
  8. <section class="detail-panel">
  9. @if (danka) {
  10. <div class="page-title-row">
  11. <div>
  12. <h1>
  13. 檀家(世帯)詳細 -
  14. @if (selectedTab === 'basic') {
  15. 基本情報
  16. }
  17. @if (selectedTab === 'family') {
  18. 家族
  19. }
  20. @if (selectedTab === 'kakocho') {
  21. 過去帳
  22. }
  23. @if (selectedTab === 'familyTree') {
  24. 家系図
  25. }
  26. </h1>
  27. <nav class="tab-list">
  28. <button
  29. type="button"
  30. class="tab-button"
  31. [class.active]="selectedTab === 'basic'"
  32. (click)="selectedTab = 'basic'"
  33. >
  34. 基本情報
  35. </button>
  36. <button
  37. type="button"
  38. class="tab-button"
  39. [class.active]="selectedTab === 'family'"
  40. (click)="selectedTab = 'family'"
  41. >
  42. 家族
  43. </button>
  44. <button
  45. type="button"
  46. class="tab-button"
  47. [class.active]="selectedTab === 'kakocho'"
  48. (click)="selectedTab = 'kakocho'"
  49. >
  50. 過去帳
  51. </button>
  52. <button
  53. type="button"
  54. class="tab-button"
  55. [class.active]="selectedTab === 'familyTree'"
  56. (click)="selectedTab = 'familyTree'"
  57. >
  58. 家系図
  59. </button>
  60. </nav>
  61. </div>
  62. @if (selectedTab === 'basic') {
  63. <button
  64. type="button"
  65. class="edit-button"
  66. [routerLink]="['/danka-edit', danka.id]"
  67. >
  68. 編集
  69. </button>
  70. }
  71. @if (selectedTab === 'kakocho') {
  72. <button
  73. type="button"
  74. class="add-button"
  75. [routerLink]="['/kakocho-edit', danka.id]"
  76. >
  77. 故人を登録
  78. </button>
  79. <button
  80. type="button"
  81. class="edit-button"
  82. [routerLink]="['/kakocho-edit', danka.id, kakocholist[0].id]"
  83. >
  84. 編集
  85. </button>
  86. }
  87. </div>
  88. <section class="family-summary">
  89. @if (selectedTab === 'basic') {
  90. <div class="family-name-area">
  91. <p class="family-name">{{ danka.householdName }}</p>
  92. <p class="family-head">世帯主: {{ danka.householder }}</p>
  93. </div>
  94. <div class="family-address">
  95. <p>郵便番号 〒{{ danka.postalCode }}</p>
  96. <p>住所 {{ danka.address }}</p>
  97. </div>
  98. <button type="button" class="memo-button">
  99. 回忌を見る
  100. </button>
  101. }
  102. @if (selectedTab === 'kakocho') {
  103. <div class="family-name-area">
  104. <p class="family-name">{{ danka.householdName }}の過去帳{{ kakocholist.length }} 名</p>
  105. </div>
  106. <button type="button" class="memo-button">
  107. 年次法要を見る
  108. </button>
  109. }
  110. </section>
  111. @if (selectedTab === 'basic') {
  112. <div class="detail-content">
  113. <section class="basic-info-section">
  114. <div class="section-heading">
  115. <h2>基本情報</h2>
  116. </div>
  117. <div class="info-form">
  118. <div class="info-row">
  119. <div class="info-label">世帯名</div>
  120. <div class="info-value">{{ danka.householdName }}</div>
  121. </div>
  122. <div class="info-row">
  123. <div class="info-label">世帯主</div>
  124. <div class="info-value">{{ danka.householder }}</div>
  125. </div>
  126. <div class="info-row">
  127. <div class="info-label">郵便番号</div>
  128. <div class="info-value">{{ danka.postalCode }}</div>
  129. </div>
  130. <div class="info-row">
  131. <div class="info-label">住所</div>
  132. <div class="info-value">{{ danka.address }}</div>
  133. </div>
  134. <div class="info-row phone-row">
  135. <div class="info-label">電話番号</div>
  136. <div class="phone-table">
  137. <div class="phone-header">
  138. <div>番号</div>
  139. <div>備考</div>
  140. </div>
  141. @for (phone of danka.phones; track $index) {
  142. <div class="phone-item">
  143. <div>{{ phone.tel }}</div>
  144. <div>{{ phone.note }}</div>
  145. </div>
  146. }
  147. </div>
  148. </div>
  149. </div>
  150. </section>
  151. <aside class="status-panel">
  152. <h2>この世帯の状況</h2>
  153. <div class="status-card-list">
  154. <button
  155. type="button"
  156. class="status-card"
  157. (click)="selectedTab = 'family'"
  158. >
  159. <p class="status-label">家族</p>
  160. <p class="status-count">{{ families.length }} 名</p>
  161. <p class="status-link">詳細へ</p>
  162. </button>
  163. <button
  164. type="button"
  165. class="status-card"
  166. (click)="selectedTab = 'kakocho'"
  167. >
  168. <p class="status-label">過去帳</p>
  169. <p class="status-count">{{ kakocholist.length }} 名</p>
  170. <p class="status-link">詳細へ</p>
  171. </button>
  172. </div>
  173. <section class="next-memorial">
  174. <h3>次の法要</h3>
  175. <div class="memorial-card">
  176. <p class="memorial-title">佐藤 ハナ - 三回忌</p>
  177. <p class="memorial-text">
  178. 対象年 2026 / 没年月日 2024-01-08
  179. </p>
  180. </div>
  181. </section>
  182. <div class="status-button-list">
  183. <button
  184. type="button"
  185. class="status-button"
  186. (click)="selectedTab = 'family'"
  187. >
  188. 家族を見る
  189. </button>
  190. <button
  191. type="button"
  192. class="status-button"
  193. (click)="selectedTab = 'kakocho'"
  194. >
  195. 過去帳を見る
  196. </button>
  197. </div>
  198. </aside>
  199. </div>
  200. }
  201. @if (selectedTab === 'family') {
  202. <section class="family-tab-content">
  203. <div class="section-heading">
  204. <h2>家族情報</h2>
  205. </div>
  206. <section class="family-list-summary">
  207. <div>
  208. <p class="family-list-title">
  209. {{ danka.householdName }}の家族 {{ families.length }}名
  210. </p>
  211. </div>
  212. <p class="family-list-head">
  213. ※ 世帯主:{{ danka.householder }}
  214. </p>
  215. </section>
  216. <section class="family-table-section">
  217. @if (families.length > 0) {
  218. <div class="family-table">
  219. <div class="family-table-header">
  220. <div>氏名</div>
  221. <div>ふりがな</div>
  222. <div>関係</div>
  223. <div>年齢</div>
  224. <div>生年月日</div>
  225. <div>備考</div>
  226. </div>
  227. @for (family of families; track family.id) {
  228. <div class="family-table-row">
  229. <div class="family-person-name">
  230. {{ family.name }}
  231. </div>
  232. <div>
  233. {{ family.furigana }}
  234. </div>
  235. <div>
  236. {{ family.relationship || '未登録' }}
  237. </div>
  238. <div>
  239. -
  240. </div>
  241. <div>
  242. {{ family.birthDate || '未登録' }}
  243. </div>
  244. <div>
  245. {{ family.note || '' }}
  246. </div>
  247. </div>
  248. }
  249. </div>
  250. } @else {
  251. <div class="empty-family-message">
  252. 登録されている家族情報はありません。
  253. </div>
  254. }
  255. </section>
  256. </section>
  257. }
  258. @if (selectedTab === 'kakocho') {
  259. <section class="coming-soon-section">
  260. <div class="section-heading">
  261. <h2>過去帳</h2>
  262. </div>
  263. <p class="empty-family-message">
  264. @if (kakocholist.length > 0) {
  265. <div class="family-table">
  266. <div class="family-table-header">
  267. <div>戒名</div>
  268. <div>俗名</div>
  269. <div>没年月日</div>
  270. <div>関係</div>
  271. <div>回忌</div>
  272. <div>備考</div>
  273. </div>
  274. @for (kakocho of kakocholist; track kakocho.id) {
  275. <div class="family-table-row">
  276. <div class="family-person-name">
  277. {{ kakocho.kaimyo }}
  278. </div>
  279. <div>
  280. {{ kakocho.name }}
  281. </div>
  282. <div>
  283. {{ kakocho.deathDate }}
  284. </div>
  285. <div>
  286. {{ kakocho.relationship }}
  287. </div>
  288. <div>
  289. {{ getKaiki(kakocho.deathDate) }}回忌
  290. </div>
  291. <div>
  292. {{ kakocho.note || '' }}
  293. </div>
  294. </div>
  295. }
  296. </div>
  297. } @else {
  298. <div class="empty-family-message">
  299. 登録されている家族情報はありません。
  300. </div>
  301. }
  302. </p>
  303. </section>
  304. }
  305. @if (selectedTab === 'familyTree') {
  306. <section class="coming-soon-section">
  307. <div class="section-heading">
  308. <h2>家系図</h2>
  309. </div>
  310. <p class="empty-family-message">
  311. 家系図はこれから実装します。
  312. </p>
  313. </section>
  314. }
  315. } @else {
  316. <p class="empty-family-message">
  317. 檀家情報が見つかりませんでした。
  318. </p>
  319. }
  320. </section>
  321. </main>
  322. </div>