dapaijizhang3/pages/game/settlement/settlement.wxml

104 lines
3.7 KiB
Plaintext
Raw Normal View History

2025-11-20 16:42:59 +08:00
<!-- 结算页面 -->
<wxs module="math">
module.exports = {
abs: function(num) {
return num < 0 ? -num : num;
}
}
</wxs>
<custom-navbar title="结算" />
<view class="container" style="margin-top: {{navbarHeight}}px;">
<!-- 身份说明 -->
<view class="role-tip">
<text class="role-icon">{{isHost ? '👑' : '👤'}}</text>
<text class="role-text">{{isHost ? '您是房主,结算将关闭房间' : '您是房客,结算仅结算自己'}}</text>
</view>
<!-- 结算信息卡片 -->
<view class="settlement-card">
<view class="card-title">结算信息</view>
<!-- 房主模式:显示所有结算记录 -->
<view class="settlement-list" wx:if="{{isHost}}">
<view class="settlement-item" wx:for="{{settlements}}" wx:key="index">
<view class="player-from">
<image class="avatar" src="{{item.from_avatar || '/images/default-avatar.png'}}" mode="aspectFill" />
<text class="nickname">{{item.from_nickname}}</text>
</view>
<view class="settlement-action">
<text class="action-text">{{item.amount > 0 ? '收取' : '支付给'}}</text>
</view>
<view class="player-to">
<image class="avatar" src="{{item.to_avatar || '/images/default-avatar.png'}}" mode="aspectFill" />
<text class="nickname">{{item.to_nickname}}</text>
</view>
<view class="amount {{item.amount > 0 ? 'win' : 'lose'}}">
<text>{{item.amount > 0 ? '+' : ''}}{{math.abs(item.amount)}}</text>
</view>
</view>
<!-- 空状态 -->
<view class="empty-state" wx:if="{{settlements.length === 0}}">
<text class="empty-icon">💰</text>
<text class="empty-text">暂无结算信息</text>
</view>
</view>
<!-- 房客模式:只显示自己的结算记录 -->
<view class="settlement-list" wx:else>
<view class="settlement-item" wx:for="{{mySettlements}}" wx:key="index">
<view class="player-from">
<image class="avatar" src="{{userInfo.avatar_url || '/images/default-avatar.png'}}" mode="aspectFill" />
<text class="nickname">{{userInfo.nickname}}</text>
</view>
<view class="settlement-action">
<text class="action-text">{{item.amount > 0 ? '收取' : '支付给'}}</text>
</view>
<view class="player-to">
<image class="avatar" src="{{item.other_avatar || '/images/default-avatar.png'}}" mode="aspectFill" />
<text class="nickname">{{item.other_nickname}}</text>
</view>
<view class="amount {{item.amount > 0 ? 'win' : 'lose'}}">
<text>{{item.amount > 0 ? '+' : ''}}{{math.abs(item.amount)}}</text>
</view>
</view>
<!-- 空状态 -->
<view class="empty-state" wx:if="{{mySettlements.length === 0}}">
<text class="empty-icon">💰</text>
<text class="empty-text">您已结清</text>
</view>
</view>
</view>
<!-- 汇总信息 -->
<view class="summary-card">
<view class="card-title">汇总</view>
<view class="summary-row">
<text class="summary-label">总交易笔数</text>
<text class="summary-value">{{isHost ? settlements.length : mySettlements.length}} 笔</text>
</view>
<view class="summary-row" wx:if="{{!isHost}}">
<text class="summary-label">我的盈亏</text>
<text class="summary-value {{myTotal > 0 ? 'win' : myTotal < 0 ? 'lose' : ''}}">
{{myTotal > 0 ? '+' : ''}}{{myTotal}}
</text>
</view>
</view>
</view>
<!-- 底部操作按钮 -->
<view class="bottom-bar">
<button class="settle-btn {{isHost ? 'btn-danger' : 'btn-primary'}}" bindtap="confirmSettle">
{{isHost ? '房间结算' : '结算并退出'}}
</button>
</view>