123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277 |
- <!--
- <ion-header [translucent]="true">
- <ion-toolbar>
- <ion-title>
-
- </ion-title>
- </ion-toolbar>
- </ion-header>
- <ion-content [fullscreen]="true">
- <ion-header collapse="condense">
- <ion-toolbar>
- <ion-title size="large">Tab 1</ion-title>
- </ion-toolbar>
- </ion-header>
- <app-explore-container name="Tab 1 page"></app-explore-container>
- </ion-content>
- -->
- <!-- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>游泳记录 - 优化间距</title>
- <style>
- </style>
- </head>
- <body>
- 1s
- <div class="swim-container">
-
- <div class="header">
- <div class="user-info">
- <div class="avatar">于</div>
- <div class="user-text">
- <h2>爱游泳的于归</h2>
- <p>2020/06/11</p>
- </div>
- </div>
- </div>
-
- <div class="data-section">
-
- <div class="main-data">
- <div class="data-item">
- <div class="data-value">2.57</div>
- <div class="data-label">距离 (km)</div>
- </div>
- <div class="data-item">
- <div class="data-value">00:18:51</div>
- <div class="data-label">总时长</div>
- </div>
- <div class="data-item">
- <div class="data-value">07'19"</div>
- <div class="data-label">配速</div>
- </div>
- <div class="data-item">
- <div class="data-value">143</div>
- <div class="data-label">心率 (bpm)</div>
- </div>
- </div>
-
-
- <div class="map-area">
- 游泳路线地图
- </div>
-
-
- <div class="detail-data">
- <div class="detail-card">
- <div class="data-value">1,850</div>
- <div class="data-label">划水次数</div>
- </div>
- <div class="detail-card">
- <div class="data-value">28°C</div>
- <div class="data-label">水温</div>
- </div>
- <div class="detail-card">
- <div class="data-value">1.2m</div>
- <div class="data-label">平均深度</div>
- </div>
- <div class="detail-card">
- <div class="data-value">345</div>
- <div class="data-label">卡路里 (kcal)</div>
- </div>
- </div>
- </div>
-
-
- <div class="footer">
- <div class="source">数据来源: 高德地图 | 知乎@阿辞</div>
- <button class="action-btn">保存并分享</button>
- </div>
- </div>
- </body>
- </html> -->
- <ion-header [translucent]="true">
- <ion-toolbar>
- <!-- 顶部导航栏 -->
- <ion-segment [(ngModel)]="selectedTab" (ionChange)="segmentChanged()" scrollable>
- <ion-segment-button value="recommend" [class.active-tab]="selectedTab === 'recommend'">
- <ion-label>推荐</ion-label>
- </ion-segment-button>
- <ion-segment-button value="vip" [class.active-tab]="selectedTab === 'vip'">
- <ion-icon name="crown" slot="start"></ion-icon>
- <ion-label>会员</ion-label>
- <ion-badge *ngIf="!isVip" color="warning" slot="end">限免试用</ion-badge>
- </ion-segment-button>
- <ion-segment-button value="camp" [class.active-tab]="selectedTab === 'camp'">
- <ion-icon name="flame" slot="start"></ion-icon>
- <ion-label>减脂营</ion-label>
- <ion-badge *ngIf="hasCampActivity" color="danger" slot="end"></ion-badge>
- </ion-segment-button>
- </ion-segment>
- <ion-buttons slot="end">
- <ion-button (click)="openNotifications()">
- <ion-icon name="notifications-outline"></ion-icon>
- <ion-badge *ngIf="unreadNotifications" color="danger" class="notification-badge"></ion-badge>
- </ion-button>
- </ion-buttons>
- </ion-toolbar>
- <!-- 搜索栏 -->
- <ion-toolbar>
- <ion-searchbar
- [(ngModel)]="searchQuery"
- [placeholder]="currentSearchHint"
- animated
- (click)="openSearchModal()">
- </ion-searchbar>
- </ion-toolbar>
- </ion-header>
- <ion-content [fullscreen]="true">
- <!-- 快速入口分类(金刚区) -->
- <div class="quick-access-section">
- <h2 class="section-title">快速开始</h2>
- <div class="quick-access-grid">
- <!-- 第一行 -->
- <ion-button fill="clear" class="quick-access-btn" *ngFor="let item of quickAccessItems.slice(0,4)">
- <div class="btn-content">
- <ion-icon [name]="item.icon"></ion-icon>
- <span>{{item.name}}</span>
- </div>
- </ion-button>
-
- <!-- 第二行 -->
- <ion-button fill="clear" class="quick-access-btn" *ngFor="let item of quickAccessItems.slice(4,8)">
- <div class="btn-content">
- <ion-icon [name]="item.icon"></ion-icon>
- <span>{{item.name}}</span>
- </div>
- </ion-button>
- </div>
- </div>
- <!-- 运动数据模块 -->
- <div class="data-section">
- <h2 class="section-title">今日运动</h2>
- <ion-card>
- <ion-card-content>
- <div class="calories-data">
- <div class="data-main">
- <span class="calories-value">479</span>
- <span class="calories-unit">千卡</span>
- <ion-icon name="trending-up-outline" class="trend-icon"></ion-icon>
- </div>
- <div class="progress-container">
- <ion-progress-bar [value]="0.95" color="primary"></ion-progress-bar>
- <span class="progress-text">今日目标: 500千卡</span>
- </div>
- </div>
- <ion-button fill="clear" class="rank-btn">
- <ion-icon name="podium-outline" slot="start"></ion-icon>
- <span>好友排名: TOP 20%</span>
- </ion-button>
- </ion-card-content>
- </ion-card>
- </div>
- <!-- 课程推荐模块 -->
- <div class="course-section">
- <h2 class="section-title">课程推荐</h2>
-
- <!-- 最近练习 -->
- <div class="course-row">
- <div class="row-header">
- <h3>最近练习</h3>
- <ion-button fill="clear" size="small">更多</ion-button>
- </div>
- <!-- 替换原来的 ion-slides 部分 -->
- <swiper-container [init]="false" [config]="swiperConfig">
- <swiper-slide *ngFor="let course of recentCourses">
- <ion-card class="course-card">
- <img [src]="course.image" alt="course image">
- <ion-card-header>
- <ion-card-title>{{course.title}}</ion-card-title>
- <ion-card-subtitle>
- {{course.duration}} · {{course.level}}
- <span class="calories-badge">🔥{{course.calories}}kcal</span>
- </ion-card-subtitle>
- </ion-card-header>
- <ion-progress-bar *ngIf="course.progress" [value]="course.progress"></ion-progress-bar>
- </ion-card>
- </swiper-slide>
- </swiper-container>
- </div>
-
- <!-- 热门课程 -->
- <div class="course-row">
- <div class="row-header">
- <h3>热门课程</h3>
- <ion-button fill="clear" size="small">更多</ion-button>
- </div>
- </div>
- <swiper-container [init]="false" [config]="swiperConfig">
- <swiper-slide *ngFor="let course of recentCourses">
- <ion-card class="course-card">
- <img [src]="course.image" alt="course image">
- <ion-card-header>
- <ion-card-title>{{course.title}}</ion-card-title>
- <ion-card-subtitle>
- {{course.duration}} · {{course.level}}
- <span class="calories-badge">🔥{{course.calories}}kcal</span>
- </ion-card-subtitle>
- </ion-card-header>
- <ion-progress-bar *ngIf="course.progress" [value]="course.progress"></ion-progress-bar>
- </ion-card>
- </swiper-slide>
- </swiper-container>
- </div>
- <!-- 为你推荐 -->
- <div class="recommend-section">
- <div class="section-header">
- <h2 class="section-title">为你推荐</h2>
- <ion-button fill="clear" size="small">查看更多</ion-button>
- </div>
- <ion-list>
- <ion-item *ngFor="let course of recommendedCourses" class="recommend-item">
- <ion-thumbnail slot="start">
- <img [src]="course.image">
- <div class="match-badge">{{course.matchRate}}%匹配</div>
- </ion-thumbnail>
- <ion-label>
- <h3>{{course.title}}</h3>
- <p>{{course.duration}} · {{course.level}}</p>
- <p class="course-description">{{course.description}}</p>
- </ion-label>
- </ion-item>
- </ion-list>
- </div>
- <!-- 年度报告入口 -->
- <div class="report-section">
- <ion-card (click)="viewReport()">
- <ion-card-header>
- <ion-card-title>我的2024运动报告</ion-card-title>
- <ion-card-subtitle>已生成 · 解锁3枚新徽章</ion-card-subtitle>
- </ion-card-header>
- <ion-card-content>
- <div class="badges-container">
- <ion-badge *ngFor="let badge of unlockedBadges" color="light">
- <ion-icon [name]="badge.icon"></ion-icon>
- {{badge.name}}
- </ion-badge>
- </div>
- </ion-card-content>
- </ion-card>
- </div>
- </ion-content>
|