order-detail.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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/userPartner/geOrderList" :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: ""
  30. },
  31. {
  32. name: '未结算',
  33. status: "1"
  34. },
  35. {
  36. name: '未到账',
  37. status: "2"
  38. },
  39. {
  40. name: '已到账',
  41. status: "3"
  42. },
  43. {
  44. name: '已失效',
  45. status: "4"
  46. }
  47. ],
  48. currentTab: 0,
  49. orderList: [],
  50. params: {},
  51. // 模拟数据
  52. mockOrders: []
  53. }
  54. },
  55. // #ifdef MP-ALIPAY
  56. onPullDownRefresh() {
  57. this.$refs.pageRef?.loadData(true)
  58. },
  59. // #endif
  60. onLoad(options) {
  61. // 如果有传入状态,切换到对应tab
  62. if (options.status) {
  63. this.currentTab = this.tabList.findIndex(item => item.status === options.status)
  64. this.params.status = options.status
  65. }
  66. this.loadOrders(true, this.params)
  67. },
  68. methods: {
  69. loadOrders(bool = false, params = {}) {
  70. this.$nextTick(() => {
  71. this.$refs.pageRef?.loadData(bool, params);
  72. })
  73. },
  74. handleTabChange(index) {
  75. this.currentTab = index
  76. this.params.status = this.tabList[index].status
  77. this.loadOrders(true, this.params)
  78. },
  79. handleUpdateList(list) {
  80. this.orderList = list
  81. }
  82. }
  83. }
  84. </script>
  85. <style lang="scss" scoped>
  86. .order-detail {
  87. min-height: 100vh;
  88. background-color: #F5F5F5;
  89. .tabs-wrapper {
  90. position: sticky;
  91. top: 0;
  92. z-index: 99;
  93. background: #FFFFFF;
  94. }
  95. .pad-20 {
  96. padding: 20rpx;
  97. }
  98. }
  99. </style>