dapaijizhang3/pages/stats/session/session.wxml

204 lines
7.3 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--牌局统计页面-->
<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>