104 lines
3.7 KiB
Plaintext
104 lines
3.7 KiB
Plaintext
|
|
<!-- 结算页面 -->
|
||
|
|
<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>
|