Files
qipai/miniapp/pages/manager/business.wxml
T

74 lines
4.5 KiB
Plaintext

<scroll-view class="scrollarea" scroll-y type="list">
<view class="container business-page">
<view class="page-heading">
<view>
<view class="title">验券与经营</view>
<view class="subtitle">{{storeName || '当前门店'}}</view>
</view>
<view class="permission-tag">{{canRedeem ? '可验券' : '只读'}}</view>
</view>
<view wx:if="{{errorMessage}}" class="error">{{errorMessage}}</view>
<view wx:if="{{loading}}" class="loading">正在加载经营数据...</view>
<view class="range-tabs">
<button wx:for="{{ranges}}" wx:key="*this" size="mini" class="{{item === rangeDays ? 'active' : ''}}" data-days="{{item}}" bindtap="selectRange">近 {{item}} 天</button>
</view>
<view class="summary-grid">
<view class="summary-card primary"><strong>{{summary.collectedAmountText}}</strong><text>实收</text></view>
<view class="summary-card"><strong>{{summary.orderTotal}}</strong><text>订单</text></view>
<view class="summary-card"><strong>{{summary.payingMemberTotal}}</strong><text>消费会员</text></view>
<view class="summary-card success"><strong>{{summary.voucherSucceeded}}</strong><text>验券成功</text></view>
<view class="summary-card"><strong>{{summary.availableRoomTotal}}</strong><text>当前空闲</text></view>
<view class="summary-card warning"><strong>{{summary.attentionRoomTotal}}</strong><text>房态待处理</text></view>
</view>
<view class="section-title">收款渠道</view>
<view wx:if="{{paymentChannels.length === 0}}" class="empty compact">当前区间暂无成功收款</view>
<view wx:for="{{paymentChannels}}" wx:key="channel" class="metric-row">
<text>{{item.channel}} · {{item.total}} 笔</text><strong>{{item.amountText}}</strong>
</view>
<block wx:if="{{canRedeem}}">
<view class="section-title">管理员验券</view>
<view class="form-card">
<view class="field-label">平台</view>
<picker range="{{providers}}" range-key="label" value="{{providerIndex}}" bindchange="selectProvider">
<view class="picker-value">{{providers[providerIndex].label}}</view>
</picker>
<view class="field-label">待支付订单</view>
<picker wx:if="{{pendingOrders.length}}" range="{{pendingOrders}}" range-key="label" value="{{orderIndex}}" bindchange="selectOrder">
<view class="picker-value">{{pendingOrders[orderIndex].label}}</view>
</picker>
<view wx:else class="empty compact">当前门店没有待支付订单</view>
<view class="field-label">团购券码</view>
<view class="voucher-input-row">
<input value="{{voucherCode}}" maxlength="128" placeholder="扫码或输入券码" bindinput="inputVoucherCode" />
<button size="mini" bindtap="scanVoucher">扫码</button>
</view>
<view class="field-label">人工确认说明</view>
<input value="{{manualNote}}" maxlength="512" placeholder="仅人工核销时必填" bindinput="inputManualNote" />
<view class="form-actions">
<button type="primary" loading="{{redeeming}}" disabled="{{!pendingOrders.length}}" data-mode="online" bindtap="redeemVoucher">在线验券</button>
<button loading="{{redeeming}}" disabled="{{!pendingOrders.length}}" data-mode="manual" bindtap="redeemVoucher">人工确认核销</button>
</view>
<view class="form-tip">核销金额取订单服务端未支付金额;券码仅保存哈希与脱敏值。</view>
</view>
</block>
<view class="section-title">近期核销记录</view>
<view wx:if="{{redemptionRecords.length === 0}}" class="empty compact">当前门店暂无核销记录</view>
<view wx:for="{{redemptionRecords}}" wx:key="id" class="record-card">
<view class="metric-row"><strong>{{item.providerText}} · {{item.voucherMasked}}</strong><text class="status-{{item.status}}">{{item.statusText}}</text></view>
<view class="record-meta">订单 {{item.orderId}} · 操作人 {{item.actorId || '系统'}} · {{item.timeText}}</view>
<view wx:if="{{item.failureCode}}" class="failure-code">{{item.failureCode}}</view>
</view>
<view class="section-title">每日实收</view>
<view wx:if="{{dailyRevenue.length === 0}}" class="empty compact">当前区间暂无每日实收</view>
<view wx:for="{{dailyRevenue}}" wx:key="date" class="metric-row">
<text>{{item.date}} · {{item.total}} 笔</text><strong>{{item.amountText}}</strong>
</view>
</view>
</scroll-view>