204 lines
7.3 KiB
Plaintext
204 lines
7.3 KiB
Plaintext
<!--牌局统计页面-->
|
||
<view class="container">
|
||
<!-- 牌局信息卡片 -->
|
||
<view class="session-info card">
|
||
<view class="session-header">
|
||
<text class="session-name">{{session.session_name}}</text>
|
||
<text class="session-status status-{{session.status}}">
|
||
{{session.status === 'finished' ? '已结束' : '进行中'}}
|
||
</text>
|
||
</view>
|
||
|
||
<view class="session-meta">
|
||
<view class="meta-item">
|
||
<text class="meta-label">游戏类型</text>
|
||
<text class="meta-value">{{gameTypeText[session.game_type]}}</text>
|
||
</view>
|
||
<view class="meta-item">
|
||
<text class="meta-label">基础分值</text>
|
||
<text class="meta-value">{{session.base_score}}分</text>
|
||
</view>
|
||
<view class="meta-item">
|
||
<text class="meta-label">总局数</text>
|
||
<text class="meta-value">{{totalRounds}}局</text>
|
||
</view>
|
||
<view class="meta-item">
|
||
<text class="meta-label">游戏时长</text>
|
||
<text class="meta-value">{{duration}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 最终排名 -->
|
||
<view class="final-ranking card">
|
||
<view class="card-header">
|
||
<text class="card-title">最终排名</text>
|
||
<text class="total-chips">总分池: {{totalChips}}分</text>
|
||
</view>
|
||
|
||
<view class="ranking-list">
|
||
<view class="ranking-item {{index === 0 ? 'champion' : index === 1 ? 'runner-up' : index === 2 ? 'third' : ''}}"
|
||
wx:for="{{finalRanking}}" wx:key="player_id">
|
||
<view class="rank-badge">
|
||
<text class="rank-number">{{index + 1}}</text>
|
||
<text class="rank-label" wx:if="{{index === 0}}">冠军</text>
|
||
<text class="rank-label" wx:elif="{{index === 1}}">亚军</text>
|
||
<text class="rank-label" wx:elif="{{index === 2}}">季军</text>
|
||
</view>
|
||
|
||
<view class="player-info">
|
||
<image class="player-avatar" src="{{item.avatar_url || '/images/default-avatar.png'}}" />
|
||
<text class="player-name">{{item.nickname}}</text>
|
||
</view>
|
||
|
||
<view class="player-stats">
|
||
<view class="stat-item">
|
||
<text class="stat-value {{item.final_chips > 0 ? 'win' : item.final_chips < 0 ? 'lose' : ''}}">
|
||
{{item.final_chips > 0 ? '+' : ''}}{{item.final_chips}}
|
||
</text>
|
||
<text class="stat-label">总分</text>
|
||
</view>
|
||
|
||
<view class="stat-item">
|
||
<text class="stat-value">{{item.win_rate}}%</text>
|
||
<text class="stat-label">胜率</text>
|
||
</view>
|
||
|
||
<view class="stat-item">
|
||
<text class="stat-value">{{item.rounds_played}}</text>
|
||
<text class="stat-label">参与局数</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 战绩统计 -->
|
||
<view class="stats-summary card">
|
||
<view class="card-title">战绩统计</view>
|
||
|
||
<view class="stats-grid">
|
||
<view class="stat-card" wx:for="{{playerStats}}" wx:key="player_id">
|
||
<view class="stat-header">
|
||
<image class="player-avatar-small" src="{{item.avatar_url || '/images/default-avatar.png'}}" />
|
||
<text class="player-name">{{item.nickname}}</text>
|
||
</view>
|
||
|
||
<view class="stat-details">
|
||
<view class="stat-row">
|
||
<text class="stat-label">最高单局</text>
|
||
<text class="stat-value win">+{{item.max_win}}</text>
|
||
</view>
|
||
<view class="stat-row">
|
||
<text class="stat-label">最低单局</text>
|
||
<text class="stat-value lose">{{item.max_lose}}</text>
|
||
</view>
|
||
<view class="stat-row">
|
||
<text class="stat-label">平均得分</text>
|
||
<text class="stat-value">{{item.avg_score}}</text>
|
||
</view>
|
||
<view class="stat-row">
|
||
<text class="stat-label">连胜纪录</text>
|
||
<text class="stat-value">{{item.win_streak}}局</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 积分走势图 -->
|
||
<view class="chart-card card">
|
||
<view class="card-header">
|
||
<text class="card-title">积分走势</text>
|
||
<view class="legend">
|
||
<view class="legend-item" wx:for="{{chartLegend}}" wx:key="player_id">
|
||
<view class="legend-color" style="background-color: {{item.color}}"></view>
|
||
<text class="legend-name">{{item.nickname}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<scroll-view class="chart-container" scroll-x>
|
||
<canvas canvas-id="scoreChart" class="score-chart"
|
||
style="width: {{chartWidth}}px; height: 300px"></canvas>
|
||
</scroll-view>
|
||
</view>
|
||
|
||
<!-- 对战记录 -->
|
||
<view class="battle-records card">
|
||
<view class="card-header">
|
||
<text class="card-title">对战记录</text>
|
||
<text class="more-link" bindtap="viewAllRecords">查看全部</text>
|
||
</view>
|
||
|
||
<view class="records-timeline">
|
||
<view class="timeline-item" wx:for="{{recentRecords}}" wx:key="id">
|
||
<view class="timeline-marker">
|
||
<text class="round-number">{{item.round_number}}</text>
|
||
</view>
|
||
|
||
<view class="timeline-content">
|
||
<view class="record-time">{{item.timeText}}</view>
|
||
<view class="record-results">
|
||
<view class="result-item {{score.chips_change > 0 ? 'winner' : score.chips_change < 0 ? 'loser' : ''}}"
|
||
wx:for="{{item.playerScores}}" wx:for-item="score" wx:key="player_id">
|
||
<text class="player-name">{{score.nickname}}</text>
|
||
<text class="score-change">
|
||
{{score.chips_change > 0 ? '+' : ''}}{{score.chips_change}}
|
||
</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 数据分析 -->
|
||
<view class="analysis card">
|
||
<view class="card-title">数据分析</view>
|
||
|
||
<view class="analysis-content">
|
||
<view class="analysis-item">
|
||
<text class="analysis-label">最激烈对局</text>
|
||
<text class="analysis-value">第{{mostIntenseRound}}局 ({{mostIntenseScore}}分)</text>
|
||
</view>
|
||
|
||
<view class="analysis-item">
|
||
<text class="analysis-label">平均每局分数</text>
|
||
<text class="analysis-value">{{avgRoundScore}}分</text>
|
||
</view>
|
||
|
||
<view class="analysis-item">
|
||
<text class="analysis-label">最长连胜</text>
|
||
<text class="analysis-value">{{longestStreak.player}} ({{longestStreak.count}}局)</text>
|
||
</view>
|
||
|
||
<view class="analysis-item">
|
||
<text class="analysis-label">逆袭王</text>
|
||
<text class="analysis-value">{{comebackKing.player}} ({{comebackKing.points}}分逆转)</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 底部操作 -->
|
||
<view class="bottom-actions">
|
||
<button class="btn-secondary" bindtap="exportData">导出数据</button>
|
||
<button class="btn-primary" bindtap="shareStats">分享战绩</button>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- 分享海报弹窗 -->
|
||
<view class="share-modal" wx:if="{{showSharePoster}}">
|
||
<view class="modal-mask" bindtap="closeSharePoster"></view>
|
||
<view class="modal-content">
|
||
<canvas canvas-id="sharePoster" class="share-poster"
|
||
style="width: 375px; height: 600px"></canvas>
|
||
|
||
<view class="share-actions">
|
||
<button class="btn-secondary" bindtap="savePoster">保存图片</button>
|
||
<button class="btn-primary" open-type="share">分享给好友</button>
|
||
</view>
|
||
|
||
<text class="close-btn" bindtap="closeSharePoster">×</text>
|
||
</view>
|
||
</view> |