schedule-list.wxml 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <view class="schedule-list">
  2. <view class="header-section">
  3. <view class="activity-name">{{activityName}}</view>
  4. <view class="route-display">{{fromCity}} → {{toCity}}</view>
  5. <view wx:if="{{tripLabel}}" class="trip-type-info">{{tripLabel}}</view>
  6. </view>
  7. <view class="date-section">
  8. <view class="section-title">选择出发日期</view>
  9. <scroll-view scroll-x="true" class="date-scroll">
  10. <view wx:for="{{dates}}" wx:key="item" class="date-btn {{currentDate===item?'active':''}}" bindtap="onDateChange" data-date="{{item}}">
  11. <view class="date-text">{{item}}</view>
  12. <view class="weekday">{{item === currentDate ? '今日' : ''}}</view>
  13. </view>
  14. </scroll-view>
  15. </view>
  16. <view class="schedules-section">
  17. <view class="section-title">
  18. 可选班次
  19. <text class="schedule-count">({{schedules.length}}个班次)</text>
  20. </view>
  21. <block wx:for="{{schedules}}" wx:key="id">
  22. <view class="schedule-card {{item.type === 'business-charter' ? 'charter-card' : ''}}">
  23. <view class="card-header">
  24. <view class="time-info">
  25. <text class="departure-time">{{item.time}}</text>
  26. <text class="duration">{{item.duration}}</text>
  27. </view>
  28. <view class="price-info">
  29. <text class="price">¥{{item.price}}</text>
  30. <text class="price-unit">{{item.type === 'business-charter' ? '/车' : '/人'}}</text>
  31. </view>
  32. </view>
  33. <view class="vehicle-info">
  34. <text class="vehicle-model">{{item.model}}</text>
  35. <view class="vehicle-tags">
  36. <text class="tag {{item.type === 'business-charter' ? 'charter-tag' : 'share-tag'}}">
  37. {{item.type === 'business-charter' ? '包车' : (item.type === 'business-share' ? '商务拼车' : '大巴拼车')}}
  38. </text>
  39. </view>
  40. </view>
  41. <view class="location-info">
  42. <view class="location-item">
  43. <text class="location-label">上车:</text>
  44. <text class="location-text">{{item.fromLoc}}</text>
  45. </view>
  46. <view class="location-item">
  47. <text class="location-label">下车:</text>
  48. <text class="location-text">{{item.toLoc}}</text>
  49. </view>
  50. </view>
  51. <view class="capacity-info">
  52. <text class="capacity-text">
  53. {{item.type === 'business-charter' ? '可载' + item.total + '人' : '剩余' + item.left + '/' + item.total + '座'}}
  54. </text>
  55. <view wx:if="{{item.features}}" class="features">
  56. <text wx:for="{{item.features}}" wx:key="feature" class="feature-tag">{{item}}</text>
  57. </view>
  58. </view>
  59. <view wx:if="{{item.refundPolicy}}" class="policy-info">
  60. <text class="policy-text">{{item.refundPolicy}}</text>
  61. </view>
  62. <button class="book-btn {{item.type === 'business-charter' ? 'charter-btn' : ''}}"
  63. bindtap="book"
  64. data-id="{{item.id}}"
  65. disabled="{{item.left === 0}}">
  66. {{item.left === 0 ? '已售罄' : (item.type === 'business-charter' ? '立即包车' : '立即购票')}}
  67. </button>
  68. </view>
  69. </block>
  70. <view wx:if="{{schedules.length===0}}" class="empty-schedules">
  71. <view class="empty-icon">🚌</view>
  72. <view class="empty-text">暂无班次</view>
  73. <view class="empty-desc">请选择其他日期查看</view>
  74. </view>
  75. </view>
  76. </view>