Files
miniwx/pages/records/records.wxml
T
2026-05-06 10:12:36 +08:00

90 lines
3.3 KiB
Plaintext

<!--records.wxml-->
<view class="page">
<!-- 状态筛选 -->
<view class="tabs">
<view class="tab {{currentTab === 'all' ? 'tab-active' : ''}}" bindtap="switchTab" data-tab="all">
全部
</view>
<view class="tab {{currentTab === 'pending' ? 'tab-active' : ''}}" bindtap="switchTab" data-tab="pending">
待审核
</view>
<view class="tab {{currentTab === 'approved' ? 'tab-active' : ''}}" bindtap="switchTab" data-tab="approved">
已通过
</view>
<view class="tab {{currentTab === 'rejected' ? 'tab-active' : ''}}" bindtap="switchTab" data-tab="rejected">
已拒绝
</view>
<view class="tab {{currentTab === 'cancelled' ? 'tab-active' : ''}}" bindtap="switchTab" data-tab="cancelled">
已取消
</view>
</view>
<!-- 记录列表 -->
<view class="record-list" wx:if="{{!loading && !loginFailed && filteredRecords.length > 0}}">
<view class="record-card" wx:for="{{filteredRecords}}" wx:key="_id">
<view class="record-header">
<view wx:if="{{item.status === 'approved'}}" class="qrcode-btn" bindtap="showQrcode" data-id="{{item._id}}">
出示凭证
</view>
<view class="status-tag status-{{item.status}}">
{{item.statusText}}
</view>
</view>
<view class="record-body">
<view class="record-row">
<text class="record-label">访客姓名</text>
<text class="record-value">{{item.name}}</text>
</view>
<view class="record-row">
<text class="record-label">手机号码</text>
<text class="record-value">{{item.phone}}</text>
</view>
<view class="record-row">
<text class="record-label">来访事由</text>
<text class="record-value">{{item.reason}}</text>
</view>
<view class="record-row">
<text class="record-label">来访时间</text>
<text class="record-value">{{item.date}} {{item.time}}</text>
</view>
<view class="record-row">
<text class="record-label">拜访区域</text>
<text class="record-value">{{item.area}}</text>
</view>
<view class="record-row">
<text class="record-label">被访人</text>
<text class="record-value">{{item.hostName}}</text>
</view>
</view>
<view class="record-footer" wx:if="{{item.status === 'pending'}}">
<view class="cancel-btn" bindtap="onCancel" data-id="{{item._id}}">取消预约</view>
</view>
</view>
</view>
<!-- 加载中 -->
<view class="empty" wx:if="{{loading}}">
<text class="empty-icon">⏳</text>
<text class="empty-text">加载中...</text>
</view>
<!-- 登录失败 -->
<view class="empty" wx:if="{{loginFailed}}">
<text class="empty-icon">⚠️</text>
<text class="empty-text">登录失败,请重试</text>
<view class="empty-btn" bindtap="onRetry">重新登录</view>
</view>
<!-- 空状态 -->
<view class="empty" wx:if="{{!loading && !loginFailed && filteredRecords.length === 0}}">
<text class="empty-icon">📭</text>
<text class="empty-text">暂无预约记录</text>
<view class="empty-btn" bindtap="goAppointment">去预约</view>
</view>
<!-- 二维码弹窗 -->
<qrcode-modal id="qrcodeModal" />
</view>