order-detail.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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: "NULL"
  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. onLoad(options) {
  56. // 如果有传入状态,切换到对应tab
  57. if (options.status) {
  58. this.currentTab = this.tabList.findIndex(item => item.status === options.status)
  59. this.params.status = options.status
  60. }
  61. this.loadOrders(true, this.params)
  62. },
  63. methods: {
  64. loadOrders(bool = false, params = {}) {
  65. this.$refs.pageRef?.loadData(bool, params);
  66. },
  67. handleTabChange(index) {
  68. this.currentTab = index
  69. this.params.status = this.tabList[index].status
  70. this.loadOrders(true, this.params)
  71. },
  72. handleUpdateList(list) {
  73. this.orderList = list
  74. }
  75. }
  76. }
  77. </script>
  78. <style lang="scss" scoped>
  79. .order-detail {
  80. min-height: 100vh;
  81. background-color: #F5F5F5;
  82. .tabs-wrapper {
  83. position: sticky;
  84. top: 0;
  85. z-index: 99;
  86. background: #FFFFFF;
  87. }
  88. .pad-20 {
  89. padding: 20rpx;
  90. }
  91. }
  92. </style>