index.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <template>
  2. <!-- 订单 -->
  3. <view class="card_order">
  4. <view class="top_cardOrder">
  5. <u-tabs :list="list1" lineColor="#333333" lineWidth="60" :scrollable="false" :current="current"
  6. @change="tabClick"></u-tabs>
  7. </view>
  8. <view class="cardOrder_tab"></view>
  9. <view class="card_order_manag" v-if="current == 0">
  10. <orderManagement :datalist="datalist" @toDeliver="toDeliver"></orderManagement>
  11. </view>
  12. <!-- 待配送 -->
  13. <view class="card_order_manag" v-if="current == 1">
  14. <orderManagement :datalist="datalist" @toDeliver="toDeliver"></orderManagement>
  15. </view>
  16. <!-- 配送中 -->
  17. <view class="card_order_manag" v-if="current == 2">
  18. <orderManagement :datalist="datalist"></orderManagement>
  19. </view>
  20. <!-- 已送达 -->
  21. <view class="card_order_manag" v-if="current == 3">
  22. <orderManagement :datalist="datalist"></orderManagement>
  23. </view>
  24. <!-- 已取消 -->
  25. <view class="card_order_manag" v-if="current == 4">
  26. <orderManagement :datalist="datalist"></orderManagement>
  27. </view>
  28. <view class="card_empty" v-if="datalist.length === 0">
  29. <u-empty mode="order"></u-empty>
  30. </view>
  31. </view>
  32. </template>
  33. <script>
  34. // 订单
  35. import orderManagement from '@/components/orderManagement.vue'
  36. export default {
  37. components: {
  38. orderManagement,
  39. },
  40. data() {
  41. return {
  42. current: 0,
  43. list1: [{
  44. name: '全部',
  45. }, {
  46. name: '待配送',
  47. }, {
  48. name: '配送中'
  49. }, {
  50. name: '已送达'
  51. }, {
  52. name: '已取消'
  53. }],
  54. datalist: [],
  55. }
  56. },
  57. onTabItemTap() {
  58. this.getOrderList()
  59. },
  60. mounted() {
  61. uni.$on('refresh', () => {
  62. this.getOrderList()
  63. })
  64. var token = this.$cache.getToken()
  65. if (token) {
  66. this.getOrderList()
  67. }
  68. },
  69. methods: {
  70. // 获取订单列表
  71. getOrderList(stateType) {
  72. this.$api.get('/api/applet/order', {
  73. state: stateType,
  74. }).then(res => {
  75. if (res.code == 200) {
  76. this.datalist = res.data.list
  77. } else {
  78. this.datalist = []
  79. }
  80. })
  81. },
  82. // 去配送
  83. toDeliver(row) {
  84. this.$api.put('/api/order/state', {
  85. id: row.id,
  86. state: 5,
  87. }).then(res => {
  88. if (res.code == 200) {
  89. this.getOrderList(this.current)
  90. }
  91. })
  92. },
  93. tabClick(row) {
  94. // console.log(row, 26)
  95. if (row.index == 1) {
  96. this.getOrderList(2)
  97. } else if (row.index == 2) {
  98. this.getOrderList(5)
  99. } else if (row.index == 3) {
  100. this.getOrderList(3)
  101. } else if (row.index == 4) {
  102. this.getOrderList(4)
  103. } else {
  104. this.getOrderList()
  105. }
  106. this.current = row.index;
  107. }
  108. }
  109. }
  110. </script>
  111. <style lang="scss" scoped>
  112. .top_cardOrder {
  113. position: fixed;
  114. top: 0;
  115. left: 0;
  116. right: 0;
  117. background-color: #fff;
  118. z-index: 1;
  119. padding: 10rpx;
  120. padding-top: var(--status-bar-height);
  121. }
  122. .cardOrder_tab {
  123. width: 100%;
  124. height: 88rpx;
  125. padding-top: var(--status-bar-height);
  126. }
  127. .card_empty {
  128. padding-top: 30%;
  129. }
  130. .card_order_manag {
  131. margin-bottom: 50rpx;
  132. }
  133. </style>