diff --git a/app/citizen-frontend/src/api/types.ts b/app/citizen-frontend/src/api/types.ts index 684c224..b77de30 100644 --- a/app/citizen-frontend/src/api/types.ts +++ b/app/citizen-frontend/src/api/types.ts @@ -25,6 +25,7 @@ export type PainLevel = "none" | "mild" | "moderate" | "severe"; /** 慢性病項目 */ export type ChronicDisease = + | "none" | "hypertension" | "diabetes" | "hyperlipidemia" diff --git a/app/citizen-frontend/src/pages/index.vue b/app/citizen-frontend/src/pages/index.vue index 0cc5022..cd625d2 100644 --- a/app/citizen-frontend/src/pages/index.vue +++ b/app/citizen-frontend/src/pages/index.vue @@ -144,6 +144,7 @@ /> @@ -491,7 +494,7 @@ variant="flat" @click="handleAppointment" > - 立即預約 + {{ APPOINTMENT_ENABLED ? "立即預約" : "預約功能尚未開放" }} @@ -526,6 +529,7 @@ import type { } from "@/api/types"; import { CONSENT_VERSION } from "@/api/types"; import Layout from "@/components/layout/DefaultLayout.vue"; +import { APPOINTMENT_ENABLED } from "@/config/features"; import { readGuestSelfAssessmentDraft, saveGuestSelfAssessmentDraft, @@ -613,6 +617,7 @@ const improvementsOptions = [ }, ]; const diseaseOptions = [ + { title: "無", value: "none" as const }, { title: "高血壓", value: "hypertension" as const }, { title: "糖尿病", value: "diabetes" as const }, { title: "高血脂", value: "hyperlipidemia" as const }, @@ -621,6 +626,21 @@ const diseaseOptions = [ { title: "骨質疏鬆", value: "osteoporosis" as const }, ]; +function handleChronicDiseaseChange( + changedDisease: ChronicDisease, + selectedDiseases: ChronicDisease[] | null, +) { + const normalizedDiseases = selectedDiseases ?? []; + + if (changedDisease === "none" && normalizedDiseases.includes("none")) { + assessmentForm.chronicDiseases = ["none"]; + } else if (changedDisease !== "none") { + assessmentForm.chronicDiseases = normalizedDiseases.filter( + (disease) => disease !== "none", + ); + } +} + const birthdayDate = computed({ get: () => parseDateString(profileForm.birthday), set: (value) => { diff --git a/app/citizen-frontend/src/utils/self-assessment.ts b/app/citizen-frontend/src/utils/self-assessment.ts index bc05e8a..bdeee47 100644 --- a/app/citizen-frontend/src/utils/self-assessment.ts +++ b/app/citizen-frontend/src/utils/self-assessment.ts @@ -49,6 +49,7 @@ const WANTED_IMPROVEMENT_VALUES: WantedImprovement[] = [ "bodyComposition", ]; const CHRONIC_DISEASE_VALUES: ChronicDisease[] = [ + "none", "hypertension", "diabetes", "hyperlipidemia",