fix: 路由開關

This commit is contained in:
skytek_xinliang
2026-09-14 10:40:32 +08:00
parent 3e8c184ec4
commit 40a166d420
4 changed files with 30 additions and 2 deletions
+7 -1
View File
@@ -144,6 +144,7 @@
/>
<ModuleRouterCard
v-if="CHECKIN_ENABLED"
description="完成數值紀錄,建立個人功能基線。"
icon="mdi-run-fast"
icon-color="accent"
@@ -152,6 +153,7 @@
/>
<ModuleRouterCard
v-if="APPOINTMENT_ENABLED"
description="預訂首次量測或回測,追蹤健康狀態。"
icon="mdi-calendar-clock"
icon-color="accent"
@@ -288,7 +290,11 @@ import HealthRadarChart from "@/components/HealthRadarChart.vue";
import Layout from "@/components/layout/DefaultLayout.vue";
import ModuleRouterCard from "@/components/ModuleRouterCard.vue";
import { useDisplayUserName } from "@/composables/useDisplayUserName";
import { RADAR_ENABLED } from "@/config/features";
import {
APPOINTMENT_ENABLED,
CHECKIN_ENABLED,
RADAR_ENABLED,
} from "@/config/features";
import { useAppStore } from "@/stores/app";
import { useCourseStore } from "@/stores/course";
@@ -372,6 +372,9 @@
color="primary"
density="compact"
hide-details
@update:model-value="
handleChronicDiseaseChange(disease.value, $event)
"
:label="disease.title"
:value="disease.value"
/>
@@ -491,7 +494,7 @@
variant="flat"
@click="handleAppointment"
>
立即預約
{{ APPOINTMENT_ENABLED ? "立即預約" : "預約功能尚未開放" }}
</v-btn>
</div>
</v-card-actions>
@@ -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<Date | null>({
get: () => parseDateString(profileForm.birthday),
set: (value) => {