fix: change picture

This commit is contained in:
skytek_xinliang
2026-09-16 08:48:34 +08:00
parent 043d924322
commit 56dfb84890
11 changed files with 36 additions and 23 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

@@ -2,33 +2,29 @@
withDefaults( withDefaults(
defineProps<{ defineProps<{
size?: number | string; size?: number | string;
iconSize?: number | string;
}>(), }>(),
{ {
size: 80, size: 64,
iconSize: 48,
}, },
); );
</script> </script>
<template> <template>
<v-avatar class="brand-avatar-spin" color="primary" :size="size"> <v-avatar class="brand-avatar" :size="size">
<v-icon color="red-accent-1" icon="mdi-heart-pulse" :size="iconSize" /> <img alt="運動玩轉健康力" class="brand-avatar-image" src="/logo.jpg" />
</v-avatar> </v-avatar>
</template> </template>
<style scoped> <style scoped>
.brand-avatar-spin { .brand-avatar {
animation: brand-avatar-spin 0.9s ease-out both; background-color: white;
box-shadow: 0 2px 8px rgba(var(--v-theme-primary), 0.14);
} }
@keyframes brand-avatar-spin { .brand-avatar-image {
from { display: block;
transform: rotate(0deg); height: 100%;
} object-fit: cover;
width: 100%;
to {
transform: rotate(360deg);
}
} }
</style> </style>
@@ -191,8 +191,11 @@
</v-navigation-drawer> </v-navigation-drawer>
<!-- 主要內容區 --> <!-- 主要內容區 -->
<v-main class="bg-white min-vh-100 pb-16"> <v-main
<v-container class="px-4 py-4"> class="bg-white min-vh-100"
:class="{ 'pb-16': BOTTOM_NAVIGATION_ENABLED }"
>
<v-container class="px-4 py-2">
<slot name="main" /> <slot name="main" />
</v-container> </v-container>
</v-main> </v-main>
@@ -1,5 +1,6 @@
export const APPOINTMENT_ENABLED = false; export const APPOINTMENT_ENABLED = false;
export const BOTTOM_NAVIGATION_ENABLED = false; export const BOTTOM_NAVIGATION_ENABLED = false;
export const CHECKIN_ENABLED = false; export const CHECKIN_ENABLED = false;
export const EXERCISE_DURATION_RECOMMENDATION_ENABLED = true;
export const RADAR_ENABLED = false; export const RADAR_ENABLED = false;
export const SELF_ASSESSMENT_ENABLED = false; export const SELF_ASSESSMENT_ENABLED = false;
+5 -1
View File
@@ -211,7 +211,10 @@
</v-card> </v-card>
<!-- 運動時間建議:對應 doc/運動時間建議.png --> <!-- 運動時間建議:對應 doc/運動時間建議.png -->
<v-card class="rounded-lg elevation-1 mt-4 overflow-hidden"> <v-card
v-if="EXERCISE_DURATION_RECOMMENDATION_ENABLED"
class="rounded-lg elevation-1 mt-4 overflow-hidden"
>
<v-expansion-panels <v-expansion-panels
v-model="durationTablePanel" v-model="durationTablePanel"
flat flat
@@ -398,6 +401,7 @@
import type { TimeSlot, YesNo } from "@/api/types"; import type { TimeSlot, YesNo } from "@/api/types";
import { computed, onMounted, ref } from "vue"; import { computed, onMounted, ref } from "vue";
import Layout from "@/components/layout/DefaultLayout.vue"; import Layout from "@/components/layout/DefaultLayout.vue";
import { EXERCISE_DURATION_RECOMMENDATION_ENABLED } from "@/config/features";
import { COURSE_DETAIL } from "@/data/courseDetail"; import { COURSE_DETAIL } from "@/data/courseDetail";
import { useCourseStore } from "@/stores/course"; import { useCourseStore } from "@/stores/course";
+10 -1
View File
@@ -184,7 +184,9 @@
<template v-else> <template v-else>
<div class="text-center mb-6"> <div class="text-center mb-6">
<BrandAvatar class="elevation-2" :icon-size="42" :size="72" /> <div class="brand-avatar-backdrop">
<BrandAvatar :size="128" />
</div>
</div> </div>
<v-card class="rounded-xl elevation-2 mb-4 py-4" color="surface"> <v-card class="rounded-xl elevation-2 mb-4 py-4" color="surface">
@@ -681,4 +683,11 @@ function updateTodayTimeString() {
transform: translateY(-2px); transform: translateY(-2px);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.06); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.06);
} }
.brand-avatar-backdrop {
display: inline-flex;
padding: 4px;
border-radius: 50%;
background-color: rgba(var(--v-theme-primary), 0.14);
}
</style> </style>
@@ -1,8 +1,8 @@
<script setup lang="ts"> <script setup lang="ts">
import expoParkOverviewImage from "@/assets/introduction/expo_park/expo_00.png"; import expoParkOverviewImage from "@/assets/introduction/expo_park_open/open_00.jpg";
import sportsEmpowerHubImage from "@/assets/introduction/expo_park/expo_01.png"; import sportsEmpowerHubImage from "@/assets/introduction/expo_park_open/open_01.jpg";
import fitnessResearchImage from "@/assets/introduction/expo_park/expo_02.png"; import fitnessResearchImage from "@/assets/introduction/expo_park_open/open_02.jpg";
import expoParkZonesImage from "@/assets/introduction/expo_park/expo_03.png"; import expoParkZonesImage from "@/assets/introduction/expo_park_open/open_03.jpg";
import Layout from "@/components/layout/DefaultLayout.vue"; import Layout from "@/components/layout/DefaultLayout.vue";
const slides = [ const slides = [