From 40a166d4206cf77594fb4f5a2fef0aff3ec82abe Mon Sep 17 00:00:00 2001 From: skytek_xinliang Date: Mon, 14 Sep 2026 10:40:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=B7=AF=E7=94=B1=E9=96=8B=E9=97=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/citizen-frontend/src/api/types.ts | 1 + app/citizen-frontend/src/pages/index.vue | 8 ++++++- .../src/pages/self-assessment.vue | 22 ++++++++++++++++++- .../src/utils/self-assessment.ts | 1 + 4 files changed, 30 insertions(+), 2 deletions(-) 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",