diff --git a/app/citizen-frontend/src/pages/course.vue b/app/citizen-frontend/src/pages/course.vue
index 436d1a5..340244a 100644
--- a/app/citizen-frontend/src/pages/course.vue
+++ b/app/citizen-frontend/src/pages/course.vue
@@ -9,20 +9,24 @@
-
-
-
-
-
+
+
+
+
+
+
+
-
-
你的體適能組別
+
+ 你的體適能組別
+
-
{{ store.groupMeta.label }}
-
-
+
+ {{ store.groupMeta.label }}
+
+
-
+
{{ store.groupMeta.description }}
@@ -224,7 +228,11 @@
{{ DAY_NAMES[row.day - 1] }}
-
+ |
('../assets/course/schedule/*.png', { eager: true })
+const scheduleCardModules = import.meta.glob<{ default: string }>(
+ '../assets/course/schedule/*.png',
+ { eager: true }
+)
-const SCHEDULE_CARD_DAY_KEYS = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']
-const SCHEDULE_CARD_SLOT_KEYS: Record = { morning: 'morning', noon: 'noon', night: 'evening' }
+const SCHEDULE_CARD_DAY_KEYS = [
+ 'monday',
+ 'tuesday',
+ 'wednesday',
+ 'thursday',
+ 'friday',
+ 'saturday',
+ 'sunday',
+]
+const SCHEDULE_CARD_SLOT_KEYS: Record = {
+ morning: 'morning',
+ noon: 'noon',
+ night: 'evening',
+}
const SCHEDULE_CARDS: Record = Object.fromEntries(
Object.entries(scheduleCardModules).map(([path, module]) => [
path.replace(/^.*\/|\.png$/g, ''),
module.default,
- ]),
+ ])
)
-function scheduleCardImage (day: number, slot: TimeSlot): string {
+function scheduleCardImage(day: number, slot: TimeSlot): string {
const key = `${SCHEDULE_CARD_DAY_KEYS[day - 1]}-${SCHEDULE_CARD_SLOT_KEYS[slot]}`
return SCHEDULE_CARDS[key]
}
-const SLOTS: { key: TimeSlot, label: string, icon: string, headerClass: string }[] = [
+const SLOTS: { key: TimeSlot; label: string; icon: string; headerClass: string }[] = [
{ key: 'morning', label: '早上', icon: 'mdi-weather-sunset-up', headerClass: 'bg-deep-orange' },
{ key: 'noon', label: '中午', icon: 'mdi-white-balance-sunny', headerClass: 'bg-amber-darken-2' },
{ key: 'night', label: '晚上', icon: 'mdi-weather-night', headerClass: 'bg-deep-purple' },
]
// 依目前選取的時段決定表格要顯示哪幾欄,順序固定為早上/中午/晚上
-const visibleSlots = computed(() => SLOTS.filter(slot => store.selectedSlots.includes(slot.key)))
+const visibleSlots = computed(() => SLOTS.filter((slot) => store.selectedSlots.includes(slot.key)))
// 今天對應的星期幾,換算成與 CourseRow.day 相同的規則(1 = 週一 … 7 = 週日)
const todayDay = computed(() => {
@@ -316,7 +339,7 @@ const todayDay = computed(() => {
// v-btn-toggle 以陣列表達勾選狀態,store 則以 Y/N 保存,兩者在此橋接
const selectedSlots = computed({
get: () => store.selectedSlots,
- set: value => {
+ set: (value) => {
for (const slot of SLOTS) {
const next: YesNo = value.includes(slot.key) ? 'Y' : 'N'
store.setSlot(slot.key, next)
|