diff --git a/app/citizen-frontend/src/data/course-detail.json b/app/citizen-frontend/src/data/course-detail.json new file mode 100644 index 0000000..443dd9c --- /dev/null +++ b/app/citizen-frontend/src/data/course-detail.json @@ -0,0 +1,112 @@ +{ + "low": { + "duration": [ + { "day": 1, "content": "快走+下肢肌力", "minutes": 40 }, + { "day": 2, "content": "平衡訓練+伸展", "minutes": 30 }, + { "day": 3, "content": "快走+上肢肌力", "minutes": 40 }, + { "day": 4, "content": "休息或散步", "minutes": 20 }, + { "day": 5, "content": "肌力+平衡", "minutes": 40 }, + { "day": 6, "content": "有氧運動", "minutes": 40 }, + { "day": 7, "content": "休息", "minutes": null } + ], + "profile": { + "summary": "根據研究,平衡、敏捷與肌肉品質是老化的預測指標。40 歲後肌力與神經控制能力每年流失約 1–2%,而平衡能力下降是跌倒的重要預測因子。", + "items": [ + "肌力、平衡與心肺功能均較差。", + "跌倒風險高。", + "容易出現肌少症與脂肪浸潤。", + "日常生活功能開始下降。" + ] + }, + "prescription": [ + { + "title": "有氧(20–30 分鐘)", + "detail": "快走。室內腳踏車。水中走路。強度:最大心率 50–60%。能正常講話但略喘。" + }, + { + "title": "肌力", + "detail": "每個動作:1–2 組。10–12 次。坐站訓練。靠牆伏地挺身。彈力帶划船。抬腳。階梯上下。" + }, + { + "title": "平衡(10–15 分鐘)", + "detail": "單腳站立。走直線。腳跟碰腳尖。" + } + ], + "outcome": { + "label": "解決問題", + "items": ["肌肉流失。", "平衡能力下降。", "心肺儲備不足。", "跌倒風險升高。"] + } + }, + "medium": { + "duration": [ + { "day": 1, "content": "重量訓練", "minutes": 60 }, + { "day": 2, "content": "慢跑+伸展", "minutes": 45 }, + { "day": 3, "content": "核心訓練", "minutes": 45 }, + { "day": 4, "content": "間歇有氧", "minutes": 40 }, + { "day": 5, "content": "重量訓練", "minutes": 60 }, + { "day": 6, "content": "球類或登山", "minutes": 60 }, + { "day": 7, "content": "休息", "minutes": null } + ], + "profile": { + "summary": "根據功能儲備理論,中年族群常因日常生活僅使用約 30% 的生理能力,忽略功能退化。研究強調,中年時期若沒有累積足夠肌力,老年可能出現「斷崖式功能崩潰」。", + "items": ["尚未失能。", "已出現部分衰退。", "屬於「衰弱前期」。"] + }, + "prescription": [ + { + "title": "有氧(150–300 分鐘)", + "detail": "慢跑。游泳。羽球。登山。自行車。強度:最大心率 60–75%。" + }, + { + "title": "肌力", + "detail": "每個動作:2–3 組。8–12 次。深蹲。弓箭步。啞鈴推舉。划船。核心棒式。" + }, + { + "title": "爆發力與敏捷(1–2 次)", + "detail": "快速起立。側向移動。腳跟碰腳尖。障礙步行。階梯訓練。" + } + ], + "outcome": { + "label": "任務", + "items": [ + "建立「功能儲備」。", + "增加肌肉量。", + "維持柔軟度。", + "降低體脂。", + "提升心肺能力。" + ] + } + }, + "high": { + "duration": [ + { "day": 1, "content": "重量訓練", "minutes": 70 }, + { "day": 2, "content": "間歇跑", "minutes": 50 }, + { "day": 3, "content": "核心+平衡", "minutes": 45 }, + { "day": 4, "content": "重量訓練", "minutes": 70 }, + { "day": 5, "content": "HIIT", "minutes": 30 }, + { "day": 6, "content": "球類/戶外", "minutes": 90 }, + { "day": 7, "content": "主動恢復", "minutes": 40 } + ], + "profile": { + "summary": "根據研究,老化並不會停止,只能透過長期運動與良好飲食延後功能下降。", + "items": ["功能儲備高。", "肌力與平衡佳。", "跌倒風險低。", "屬於成功老化族群。"] + }, + "prescription": [ + { + "title": "肌力", + "detail": "每個動作:3–4 組。6–10 次。強度:70–85% 1RM。坐站訓練。靠牆伏地挺身。彈力帶划船。抬腳。階梯上下。" + }, + { + "title": "心肺耐力(300 分鐘以上)", + "detail": "間歇跑。游泳。羽球。登山。" + }, + { + "title": "神經肌肉訓練", + "detail": "每週 2 次。敏捷梯。單腳跳。反應訓練。協調訓練。" + } + ], + "outcome": { + "label": "目標", + "items": ["延緩衰退速度。", "老化仍不可避免,因此維持功能儲備是關鍵。"] + } + } +} diff --git a/app/citizen-frontend/src/data/courseDetail.ts b/app/citizen-frontend/src/data/courseDetail.ts new file mode 100644 index 0000000..be65f71 --- /dev/null +++ b/app/citizen-frontend/src/data/courseDetail.ts @@ -0,0 +1,34 @@ +import type { FitnessGroup } from '@/api/types' +import courseDetail from './course-detail.json' + +/** + * 各體適能組別的靜態內容,資料來源為 course-detail.json。 + * 內容取自 doc/運動時間建議.png 與 doc/課程說明.md, + * 日後只需修改 JSON 檔並重新 build 即可更新,不必動這支或頁面。 + * + * 註:檔名刻意與 course-detail.json 不同 —— vite.config.mts 的 + * resolve.extensions 把 '.json' 排在 '.ts' 前面,同名時 import 會解析到 JSON。 + */ + +/** 一天的運動時間建議;minutes 為 null 代表原表時間欄留空(休息日) */ +export interface DurationRow { + day: number + content: string + minutes: number | null +} + +/** 精準運動處方建議的單一項目 */ +export interface PrescriptionItem { + title: string + detail: string +} + +export interface CourseDetail { + duration: DurationRow[] + profile: { summary: string, items: string[] } + prescription: PrescriptionItem[] + /** label 三組各異:低=解決問題、中=任務、高=目標 */ + outcome: { label: string, items: string[] } +} + +export const COURSE_DETAIL = courseDetail as Record diff --git a/app/citizen-frontend/src/pages/course.vue b/app/citizen-frontend/src/pages/course.vue index 2564b4b..dcac62b 100644 --- a/app/citizen-frontend/src/pages/course.vue +++ b/app/citizen-frontend/src/pages/course.vue @@ -78,7 +78,7 @@ @@ -124,15 +232,22 @@