Myorder.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <template>
  2. <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
  3. <van-nav-bar title="订单列表" left-text="返回" left-arrow @click-left="$router.push('/me')" />
  4. <van-tabs v-model="active" @click="clickTabs">
  5. <van-tab title="待付款">
  6. <div @click="payNow(order)" v-for="(order, index) in orders.records" :key="index">
  7. <div class="order-list">
  8. <van-card v-for="( item, index ) in order.orderItemDtos" :num="item.prodCount" :price="item.price"
  9. :desc="item.skuName" :title="item.prodName" :thumb="item.pic" :key="index" />
  10. </div>
  11. <van-cell center title="订单号" :value="order.orderNumber" :label="'¥' + order.actualTotal" />
  12. </div>
  13. </van-tab>
  14. <van-tab title="待发货">
  15. <div v-for="(order, index) in orders.records" :key="index">
  16. <div class="order-list">
  17. <van-card v-for="( item, index ) in order.orderItemDtos" :num="item.prodCount" :price="item.price"
  18. :desc="item.skuName" :title="item.prodName" :thumb="item.pic" :key="index" />
  19. </div>
  20. <van-cell center title="订单号" :value="order.orderNumber" :label="'¥' + order.actualTotal" />
  21. </div>
  22. </van-tab>
  23. <van-tab title="待收货">
  24. <div v-for="(order, index) in orders.records" :key="index">
  25. <div class="order-list">
  26. <van-card v-for="( item, index ) in order.orderItemDtos" :num="item.prodCount" :price="item.price"
  27. :desc="item.skuName" :title="item.prodName" :thumb="item.pic" :key="index" />
  28. </div>
  29. <van-cell center title="订单号" :value="order.orderNumber" :label="'¥' + order.actualTotal" />
  30. </div>
  31. </van-tab>
  32. <van-tab title="待评价">
  33. <div v-for="(order, index) in orders.records" :key="index">
  34. <div class="order-list">
  35. <van-card v-for="( item, index ) in order.orderItemDtos" :num="item.prodCount" :price="item.price"
  36. :desc="item.skuName" :title="item.prodName" :thumb="item.pic" :key="index" />
  37. </div>
  38. <van-cell center title="订单号" :value="order.orderNumber" :label="'¥' + order.actualTotal" />
  39. </div>
  40. </van-tab>
  41. </van-tabs>
  42. </van-list>
  43. </template>
  44. <script>
  45. import { myOrder } from '@/api/user';
  46. import { payment } from '../api/pay'
  47. import { Dialog } from 'vant';
  48. export default {
  49. data() {
  50. return {
  51. loading: false,
  52. finished: false,
  53. active: 0,
  54. orders: {
  55. records: []
  56. },
  57. fatch: {
  58. current: 1,
  59. status: 1
  60. }
  61. }
  62. },
  63. async created() {
  64. this.loadData()
  65. },
  66. methods: {
  67. clickTabs(){
  68. this.fatch.current = 1
  69. this.finished = false
  70. this.orders.records = []
  71. this.loadData()
  72. },
  73. onLoad(){
  74. console.log("触发了加载")
  75. this.fatch.current = this.fatch.current + 1
  76. this.loadData()
  77. },
  78. async payNow(order) {
  79. const payRes = await payment({
  80. orderNumbers: order.orderNumber,
  81. payType: 1
  82. })
  83. Dialog.alert({
  84. title: '支付成功',
  85. message: '恭喜您支付已完成! ',
  86. }).then(() => {
  87. this.loadData()
  88. });
  89. },
  90. async loadData() {
  91. this.fatch.status = this.active + 1
  92. const result = await myOrder(this.fatch)
  93. if ( result.records.length > 0 ) {
  94. this.orders.records = [...result.records]
  95. }
  96. if ( result.current >= result.pages ) {
  97. this.finished = true
  98. }
  99. this.loading = false
  100. }
  101. }
  102. }
  103. </script>
  104. <style lang="less">
  105. .order-list {
  106. padding: .5rem;
  107. background-color: #fafafa;
  108. }
  109. </style>