From bcaaf8797c509d8adbd6cc1bb0a77d33c2f2f8e4 Mon Sep 17 00:00:00 2001
From: skytek_xinliang
Date: Mon, 14 Sep 2026 09:35:56 +0800
Subject: [PATCH] feat: feature switch
---
.../src/components/layout/DefaultLayout.vue | 19 ++++++++++++++-----
app/citizen-frontend/src/config/features.ts | 3 +++
.../src/pages/appointment.vue | 2 +-
app/citizen-frontend/src/pages/course.vue | 2 +-
app/citizen-frontend/src/pages/index.vue | 15 ++++++++++-----
.../src/pages/self-assessment.vue | 2 +-
app/citizen-frontend/src/router/index.ts | 11 +++++++++++
7 files changed, 41 insertions(+), 13 deletions(-)
create mode 100644 app/citizen-frontend/src/config/features.ts
diff --git a/app/citizen-frontend/src/components/layout/DefaultLayout.vue b/app/citizen-frontend/src/components/layout/DefaultLayout.vue
index 714d46a..afd8c4a 100644
--- a/app/citizen-frontend/src/components/layout/DefaultLayout.vue
+++ b/app/citizen-frontend/src/components/layout/DefaultLayout.vue
@@ -132,7 +132,7 @@
/>
自評
-
+
mdi-qrcode-scan
量測
-
+
mdi-calendar-check
@@ -250,7 +258,7 @@
- - 提供個人化的運動方針與健康改善建議。
+ - 提供個人化的運動與健康改善建議。
- 於普測活動現場合對您的身分。
- 在去識別化的安全機制下,作為高齡健康促進的政策分析參考。
@@ -279,6 +287,7 @@
import { ref, watch } from "vue";
import { useRoute, useRouter } from "vue-router";
import { useDisplayUserName } from "@/composables/useDisplayUserName";
+import { APPOINTMENT_ENABLED, CHECKIN_ENABLED } from "@/config/features";
import { useAppStore } from "@/stores/app";
import { useCourseStore } from "@/stores/course";
diff --git a/app/citizen-frontend/src/config/features.ts b/app/citizen-frontend/src/config/features.ts
new file mode 100644
index 0000000..cb96271
--- /dev/null
+++ b/app/citizen-frontend/src/config/features.ts
@@ -0,0 +1,3 @@
+export const APPOINTMENT_ENABLED = false;
+export const CHECKIN_ENABLED = false;
+export const RADAR_ENABLED = false;
diff --git a/app/citizen-frontend/src/pages/appointment.vue b/app/citizen-frontend/src/pages/appointment.vue
index 5d07894..9ef8fb3 100644
--- a/app/citizen-frontend/src/pages/appointment.vue
+++ b/app/citizen-frontend/src/pages/appointment.vue
@@ -5,7 +5,7 @@
預約
- 報名免費體能普測,取得個人運動方針
+ 報名免費體能普測,取得個人運動建議
diff --git a/app/citizen-frontend/src/pages/course.vue b/app/citizen-frontend/src/pages/course.vue
index 1c65ef4..51f20e9 100644
--- a/app/citizen-frontend/src/pages/course.vue
+++ b/app/citizen-frontend/src/pages/course.vue
@@ -161,7 +161,7 @@
- 精準運動方針建議
+ 精準運動建議
diff --git a/app/citizen-frontend/src/pages/index.vue b/app/citizen-frontend/src/pages/index.vue
index 059b6eb..0cc5022 100644
--- a/app/citizen-frontend/src/pages/index.vue
+++ b/app/citizen-frontend/src/pages/index.vue
@@ -60,7 +60,7 @@
-
+
@@ -113,7 +113,11 @@
-
+
- 普測預約、現場報到、量測紀錄與運動方針。
+ 普測預約、現場報到、量測紀錄與運動建議
@@ -284,6 +288,7 @@ 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 { useAppStore } from "@/stores/app";
import { useCourseStore } from "@/stores/course";
diff --git a/app/citizen-frontend/src/pages/self-assessment.vue b/app/citizen-frontend/src/pages/self-assessment.vue
index 04f6741..240c175 100644
--- a/app/citizen-frontend/src/pages/self-assessment.vue
+++ b/app/citizen-frontend/src/pages/self-assessment.vue
@@ -421,7 +421,7 @@
class="text-body-medium text-grey-darken-3 mb-2"
>
您的身體功能與日常活動習慣良好。建議您每週繼續保持 3
- 次以上的運動,並可以預約普測活動以獲得精準的五維健康指標與運動方針。
+ 次以上的運動,並可以預約普測活動以獲得精準的五維健康指標與運動建議。
{
+ if (
+ (!APPOINTMENT_ENABLED && APPOINTMENT_PATH.test(to.path)) ||
+ (!CHECKIN_ENABLED && CHECKIN_PATH.test(to.path))
+ ) {
+ return { name: "home" };
+ }
+
const store = useAppStore();
await store.initializeAuthentication();