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();