|
|
@@ -43,33 +43,45 @@ export class EventPage {
|
|
43
|
43
|
private dankaService: DankaService,
|
|
44
|
44
|
private familyService: FamilyService,
|
|
45
|
45
|
private eventService: EventService,
|
|
46
|
|
- ) {
|
|
47
|
|
- this.createEventTargetList();
|
|
|
46
|
+ ) { }
|
|
|
47
|
+
|
|
|
48
|
+ ngOnInit(): void {
|
|
|
49
|
+ this.init();
|
|
|
50
|
+ }
|
|
|
51
|
+
|
|
|
52
|
+ async init(): Promise<void> {
|
|
|
53
|
+ await this.createEventTargetList();
|
|
48
|
54
|
}
|
|
49
|
55
|
|
|
50
|
|
- createEventTargetList(): void {
|
|
|
56
|
+ async createEventTargetList(): Promise<void> {
|
|
51
|
57
|
this.eventTargets = [];
|
|
52
|
58
|
|
|
53
|
|
- this.familyService.getFamilyList().forEach((family) => {
|
|
|
59
|
+ const families = await this.familyService.getFamilyList();
|
|
|
60
|
+
|
|
|
61
|
+ for (const family of families) {
|
|
54
|
62
|
const birthDate = this.parseDate(family.birthDate);
|
|
55
|
|
- if (!birthDate) {
|
|
56
|
|
- return;
|
|
57
|
|
- }
|
|
|
63
|
+ if (!birthDate) continue;
|
|
58
|
64
|
|
|
59
|
65
|
const age = this.targetYear - birthDate.getFullYear();
|
|
60
|
66
|
const eventTypes = this.getEventTypes(age);
|
|
61
|
|
- if (eventTypes.length === 0) {
|
|
62
|
|
- return;
|
|
63
|
|
- }
|
|
|
67
|
+ if (eventTypes.length === 0) continue;
|
|
64
|
68
|
|
|
65
|
|
- const danka = this.dankaService.getDankaById(family.dankaId);
|
|
66
|
|
- eventTypes.forEach((eventType) => {
|
|
67
|
|
- if (this.selectedEventType !== 'all' && this.selectedEventType !== eventType) {
|
|
68
|
|
- return;
|
|
|
69
|
+ // ★ここが修正ポイント(await)
|
|
|
70
|
+ const danka = await this.dankaService.getDankaById(family.dankaId);
|
|
|
71
|
+
|
|
|
72
|
+ for (const eventType of eventTypes) {
|
|
|
73
|
+ if (
|
|
|
74
|
+ this.selectedEventType !== 'all' &&
|
|
|
75
|
+ this.selectedEventType !== eventType
|
|
|
76
|
+ ) {
|
|
|
77
|
+ continue;
|
|
69
|
78
|
}
|
|
70
|
79
|
|
|
71
|
80
|
const id = `${family.id}-${eventType}`;
|
|
72
|
|
- const defaultStatus: EventStatus = Number(family.id) % 2 === 0 ? '案内済' : '未案内';
|
|
|
81
|
+
|
|
|
82
|
+ const defaultStatus: EventStatus =
|
|
|
83
|
+ Number(family.id) % 2 === 0 ? '案内済' : '未案内';
|
|
|
84
|
+
|
|
73
|
85
|
this.eventTargets.push({
|
|
74
|
86
|
id,
|
|
75
|
87
|
dankaId: family.dankaId,
|
|
|
@@ -83,12 +95,13 @@ export class EventPage {
|
|
83
|
95
|
note: family.note,
|
|
84
|
96
|
status: this.eventService.getEventStatus(id, defaultStatus),
|
|
85
|
97
|
});
|
|
86
|
|
- });
|
|
87
|
|
- });
|
|
|
98
|
+ }
|
|
|
99
|
+ }
|
|
88
|
100
|
|
|
89
|
101
|
this.eventTargets.sort(
|
|
90
|
102
|
(a, b) =>
|
|
91
|
|
- this.getEventSortOrder(a.eventType) - this.getEventSortOrder(b.eventType) ||
|
|
|
103
|
+ this.getEventSortOrder(a.eventType) -
|
|
|
104
|
+ this.getEventSortOrder(b.eventType) ||
|
|
92
|
105
|
a.age - b.age ||
|
|
93
|
106
|
a.name.localeCompare(b.name, 'ja'),
|
|
94
|
107
|
);
|