index.wxml 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <view class="preview-container">
  2. <!-- 预约卡片列表 -->
  3. <scroll-view class="reservation-list" scroll-y="true">
  4. <view wx:for="{{reservations}}" wx:key="id" class="reservation-card">
  5. <image class="card-bg" src="https://klmybwg.4dage.com/mini/wxImg/img_05.png" mode="aspectFill"></image>
  6. <!-- 预约信息区域 -->
  7. <view class="reservation-info">
  8. <view class="date-time-section">
  9. <view class="info-row">
  10. <text class="label">预约日期:</text>
  11. <text class="value">{{item.date}}</text>
  12. </view>
  13. <view class="info-row" wx:if="{{item.type === 'normal'}}">
  14. <text class="label">入馆时间:</text>
  15. <text class="value">{{item.time}}</text>
  16. </view>
  17. <view class="info-row" wx:if="{{item.type === 'activity'}}">
  18. <text class="label">活动预约:</text>
  19. <text class="value">{{item.activityName}}</text>
  20. </view>
  21. </view>
  22. <!-- 取消按钮 (仅普通预约且未过期显示) -->
  23. <view wx:if="{{!item.isExpired && item.status !== -1}}" class="cancel-btn" bindtap="cancelReservation" data-id="{{item.id}}">
  24. <text>取消</text>
  25. </view>
  26. <!-- 印章图标 (活动预约或已过期的普通预约显示) -->
  27. <view wx:if="{{item.isExpired && item.status !== -1}}" class="stamp-icon">
  28. <image src="https://klmybwg.4dage.com/mini/wxImg/icon_end.png" mode="aspectFit"></image>
  29. </view>
  30. <view wx:if="{{item.status == -1}}" class="stamp-icon">
  31. <image src="https://klmybwg.4dage.com/mini/wxImg/icon_cancel.png" mode="aspectFit"></image>
  32. </view>
  33. </view>
  34. <!-- 参观人信息区域 -->
  35. <view class="visitors-section">
  36. <view wx:for="{{item.visitors}}" wx:for-item="visitor" wx:for-index="visitorIndex" wx:key="*this">
  37. <view class="section-title">参观人信息{{visitorIndex + 1}}</view>
  38. <view class="visitor-info">
  39. <view class="visitor-detail">
  40. <text class="visitor-label">参观人姓名:</text>
  41. <text class="visitor-value">{{visitor.name}}</text>
  42. </view>
  43. <view class="visitor-detail">
  44. <text class="visitor-label">身份证号:</text>
  45. <text class="visitor-value">{{visitor.idCard}}</text>
  46. </view>
  47. <view class="visitor-detail" wx:if="{{visitor.phone}}">
  48. <text class="visitor-label">电话号码:</text>
  49. <text class="visitor-value">{{visitor.phone}}</text>
  50. </view>
  51. </view>
  52. </view>
  53. </view>
  54. </view>
  55. <!-- 加载更多提示 -->
  56. <view wx:if="{{reservations.length > 0 && hasMore}}" class="load-more">
  57. <view wx:if="{{loading}}" class="loading-text">
  58. <text>加载中...</text>
  59. </view>
  60. <view wx:else class="load-more-text">
  61. <text>上拉加载更多</text>
  62. </view>
  63. </view>
  64. <!-- 没有更多数据提示 -->
  65. <view wx:if="{{reservations.length > 0 && !hasMore}}" class="no-more">
  66. <text class="no-more-text">没有更多数据了</text>
  67. </view>
  68. <!-- 空状态 -->
  69. <view wx:if="{{reservations.length === 0 && !loading}}" class="empty-state">
  70. <text class="empty-text">暂无预约记录</text>
  71. </view>
  72. <!-- 首次加载状态 -->
  73. <view wx:if="{{reservations.length === 0 && loading}}" class="first-loading">
  74. <text class="loading-text">加载中...</text>
  75. </view>
  76. </scroll-view>
  77. </view>