Onlife/pages/user/user.vue
2025-04-19 15:38:48 +08:00

199 lines
4.1 KiB
Vue

<template>
<div class="profile-container">
<div class="profile-header">
<div class="status-bar">
<span class="signal"> Spotty</span>
<span class="time">9:41 AM</span>
<span class="battery">100%</span>
</div>
<div class="profile-info">
<div class="profile-avatar">
<img src="" alt="Betty Wang">
</div>
<h2 class="profile-name">Betty Wang</h2>
<p class="profile-title">Professional title</p>
</div>
</div>
<div class="profile-stats">
<div class="stat-item">
<span class="stat-value">22</span>
<span class="stat-label">Age</span>
</div>
<div class="stat-item">
<span class="stat-value">30</span>
<span class="stat-label">BMI</span>
</div>
<div class="stat-item">
<span class="stat-value">165<sub>cm</sub></span>
<span class="stat-label">Height</span>
</div>
<div class="stat-item">
<span class="stat-value">58<sub>kg</sub></span>
<span class="stat-label">Weight</span>
</div>
</div>
<div class="profile-content">
<div class="activity-icon">
<i class="fas fa-running"></i>
</div>
<div class="activity-data">
<div class="data-row">
<div class="data-item">
<span class="data-value">167990</span>
<span class="data-label">Steps</span>
</div>
<div class="data-item">
<span class="data-value">89020</span>
<span class="data-label">Calories</span>
</div>
<div class="data-item">
<span class="data-value">55000</span>
<span class="data-label">Meters</span>
</div>
</div>
<div class="data-row">
<div class="data-item">
<span class="data-value">7020</span>
<span class="data-label">Calories</span>
</div>
<div class="data-item">
<span class="data-value">25</span>
<span class="data-label">Heart Rate</span>
</div>
</div>
</div>
<div class="activity-chart">
<!-- 這裡需要使用專門的圖表庫來實現折線圖 -->
</div>
</div>
</div>
</template>
<style scoped>
.profile-container {
max-width: 414px;
margin: 0 auto;
background-color: #f5f5f5;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}
.profile-header {
background-color: white;
padding-bottom: 20px;
border-bottom-left-radius: 30px;
border-bottom-right-radius: 30px;
}
.status-bar {
display: flex;
justify-content: space-between;
padding: 10px 15px;
font-size: 12px;
color: #333;
}
.profile-info {
text-align: center;
}
.profile-avatar img {
width: 80px;
height: 80px;
border-radius: 50%;
object-fit: cover;
}
.profile-name {
margin: 10px 0 5px;
font-size: 20px;
}
.profile-title {
color: #666;
margin: 0;
font-size: 14px;
}
.profile-stats {
display: flex;
justify-content: space-around;
padding: 15px 0;
background-color: white;
margin-top: -30px;
border-radius: 20px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}
.stat-item {
text-align: center;
}
.stat-value {
display: block;
font-size: 18px;
font-weight: bold;
}
.stat-value sub {
font-size: 12px;
font-weight: normal;
}
.stat-label {
font-size: 12px;
color: #666;
}
.profile-content {
background-color: #4a90e2;
color: white;
padding: 20px;
border-top-left-radius: 30px;
border-top-right-radius: 30px;
margin-top: -20px;
}
.activity-icon {
background-color: #ff6b6b;
width: 50px;
height: 50px;
border-radius: 25px;
display: flex;
justify-content: center;
align-items: center;
margin: -45px auto 20px;
}
.activity-data {
margin-bottom: 20px;
}
.data-row {
display: flex;
justify-content: space-between;
margin-bottom: 15px;
}
.data-item {
text-align: center;
}
.data-value {
display: block;
font-size: 18px;
font-weight: bold;
}
.data-label {
font-size: 12px;
}
.activity-chart {
height: 150px;
/* 圖表樣式需要根據所使用的圖表庫來定製 */
}
</style>