order-detail.vue 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <template>
  2. <view class="order-detail">
  3. <!-- 标签页 -->
  4. <view class="tabs-wrapper">
  5. <u-tabs :list="tabList" :current="currentTab" @change="handleTabChange" :is-scroll="false"
  6. active-color="#38C148" bar-width="60"></u-tabs>
  7. </view>
  8. <!-- 订单列表 -->
  9. <page-scroll :page-size="12" @updateList="handleUpdateList" ref="pageRef" slotEmpty
  10. url="/token/partner/order/list" :params="params" :immediate="false">
  11. <view v-if="orderList.length > 0" class="pad-20">
  12. <partner-order-item v-for="order in orderList" :key="order.orderNo" :order="order"></partner-order-item>
  13. </view>
  14. </page-scroll>
  15. </view>
  16. </template>
  17. <script>
  18. import PartnerOrderItem from '../../components/partner-order-item.vue'
  19. import pageScroll from '@/components/pageScroll/index.vue'
  20. export default {
  21. components: {
  22. PartnerOrderItem,
  23. pageScroll,
  24. },
  25. data() {
  26. return {
  27. tabList: [{
  28. name: '全部',
  29. status: "-1"
  30. },
  31. {
  32. name: '未结算',
  33. status: "0"
  34. },
  35. {
  36. name: '未到账',
  37. status: "1"
  38. },
  39. {
  40. name: '已到账',
  41. status: "2"
  42. },
  43. {
  44. name: '已失效',
  45. status: "3"
  46. }
  47. ],
  48. currentTab: 0,
  49. orderList: [],
  50. params: {},
  51. // 模拟数据
  52. mockOrders: [{
  53. orderNo: '54631435441',
  54. status: '未结算',
  55. books: [
  56. { cover: '/static/book1.jpg' },
  57. { cover: '/static/book2.jpg' },
  58. { cover: '/static/book3.jpg' },
  59. { cover: '/static/book4.jpg' },
  60. { cover: '/static/book5.jpg' }
  61. ],
  62. orderStatus: '已提交',
  63. estimatedAmount: '63.00',
  64. estimatedCommission: '6.30',
  65. createTime: '2024-12-06 15:00:00'
  66. },
  67. {
  68. orderNo: '54631435441',
  69. status: '已失效',
  70. books: [
  71. { cover: '/static/book1.jpg' },
  72. { cover: '/static/book2.jpg' },
  73. { cover: '/static/book3.jpg' },
  74. { cover: '/static/book4.jpg' },
  75. { cover: '/static/book5.jpg' }
  76. ],
  77. orderStatus: '订单取消',
  78. estimatedAmount: '63.00',
  79. estimatedCommission: '6.30',
  80. createTime: '2024-12-06 15:00:00'
  81. },
  82. {
  83. orderNo: '54631435441',
  84. status: '未到账',
  85. books: [
  86. { cover: '/static/book1.jpg' },
  87. { cover: '/static/book2.jpg' },
  88. { cover: '/static/book3.jpg' },
  89. { cover: '/static/book4.jpg' },
  90. { cover: '/static/book5.jpg' }
  91. ],
  92. orderStatus: '已结算',
  93. estimatedAmount: '63.00',
  94. estimatedCommission: '6.30',
  95. finalAmount: '58.00',
  96. finalCommission: '5.80',
  97. createTime: '2024-12-06 15:00:00'
  98. },
  99. {
  100. orderNo: '54631435441',
  101. status: '已到账',
  102. books: [
  103. { cover: '/static/book1.jpg' },
  104. { cover: '/static/book2.jpg' },
  105. { cover: '/static/book3.jpg' },
  106. { cover: '/static/book4.jpg' },
  107. { cover: '/static/book5.jpg' }
  108. ],
  109. orderStatus: '已结算',
  110. estimatedAmount: '63.00',
  111. estimatedCommission: '6.30',
  112. finalAmount: '58.00',
  113. finalCommission: '5.80',
  114. createTime: '2024-12-06 15:00:00'
  115. }]
  116. }
  117. },
  118. onLoad(options) {
  119. // 如果有传入状态,切换到对应tab
  120. if (options.status) {
  121. this.currentTab = this.tabList.findIndex(item => item.status === options.status)
  122. this.params.status = options.status
  123. }
  124. this.loadOrders(true, this.params)
  125. },
  126. methods: {
  127. loadOrders(bool = false, params = {}) {
  128. // 模拟数据,实际开发时删除这行,使用下面的接口调用
  129. this.orderList = this.mockOrders
  130. // this.$refs.pageRef?.loadData(bool, params);
  131. },
  132. handleTabChange(index) {
  133. this.currentTab = index
  134. this.params.status = this.tabList[index].status
  135. this.loadOrders(true, this.params)
  136. },
  137. handleUpdateList(list) {
  138. this.orderList = list
  139. }
  140. }
  141. }
  142. </script>
  143. <style lang="scss" scoped>
  144. .order-detail {
  145. min-height: 100vh;
  146. background-color: #F5F5F5;
  147. .tabs-wrapper {
  148. position: sticky;
  149. top: 0;
  150. z-index: 99;
  151. background: #FFFFFF;
  152. }
  153. .pad-20 {
  154. padding: 20rpx;
  155. }
  156. }
  157. </style>