90 lines
3.3 KiB
Plaintext
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>
|