index.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <template>
  2. <view>
  3. <view class="promoter-order">
  4. <view class='promoterHeader bg-color'>
  5. <view class='headerCon acea-row row-between-wrapper'>
  6. <view>
  7. <view class='name'>累积推广订单</view>
  8. <view><text class='num'>{{recordCount || 0}}</text>单</view>
  9. </view>
  10. <view class='iconfont icon-2'></view>
  11. </view>
  12. </view>
  13. <view class='list' v-if="recordList.length>0">
  14. <block v-for="(item, index) in recordList" :key="index">
  15. <view class='item'>
  16. <view class='listn'>
  17. <block :key="index">
  18. <view class='itenm borRadius14'>
  19. <view class='top acea-row row-between-wrapper'>
  20. <view class='pictxt acea-row row-between-wrapper'>
  21. <view class='text line1'>{{item.title}}</view>
  22. </view>
  23. <view class='money'>返佣:<text class='font-color'>¥{{ fen2yuan(item.price) }}</text></view>
  24. </view>
  25. <view class='bottom'>
  26. <view><text class='name'>生效时间:</text>{{ formatDate(item.finishTime) }}</view>
  27. </view>
  28. </view>
  29. </block>
  30. </view>
  31. </view>
  32. </block>
  33. </view>
  34. <view v-if="recordList.length === 0">
  35. <emptyPage title="暂无推广订单~"></emptyPage>
  36. </view>
  37. </view>
  38. <home></home>
  39. </view>
  40. </template>
  41. <script>
  42. import { toLogin } from '@/libs/login.js';
  43. import { mapGetters } from "vuex";
  44. import emptyPage from '@/components/emptyPage.vue'
  45. import home from '@/components/home';
  46. import * as BrokerageAPI from '@/api/trade/brokerage.js'
  47. import * as Util from '@/utils/util.js';
  48. import dayjs from "@/plugin/dayjs/dayjs.min.js";
  49. export default {
  50. components: {
  51. emptyPage,
  52. home
  53. },
  54. data() {
  55. return {
  56. page: 1,
  57. limit: 10,
  58. status: false,
  59. recordList: [],
  60. recordCount: 0,
  61. };
  62. },
  63. computed: mapGetters(['isLogin']),
  64. onLoad() {
  65. if (!this.isLogin) {
  66. toLogin();
  67. return;
  68. }
  69. this.getRecordOrderList();
  70. },
  71. methods: {
  72. getRecordOrderList: function() {
  73. if (this.status) {
  74. return;
  75. }
  76. const page = this.page;
  77. const limit = this.limit;
  78. const recordList = this.recordList;
  79. BrokerageAPI.getBrokerageRecordPage({
  80. pageNo: page,
  81. pageSize: limit,
  82. bizType: 1, // 订单
  83. status: 1, // 已结算
  84. }).then(res => {
  85. let recordListData = res.data.list ? res.data.list : [];
  86. const len = res.data.list ? res.data.list.length : 0;
  87. const recordListNew = recordList.concat(recordListData);
  88. this.recordCount = res.data.total || 0;
  89. this.status = limit > len;
  90. this.page = page + 1;
  91. this.$set(this, 'recordList', recordListNew);
  92. });
  93. },
  94. fen2yuan(price) {
  95. return Util.fen2yuan(price)
  96. },
  97. formatDate: function(date) {
  98. return dayjs(date).format("YYYY-MM-DD HH:mm:ss");
  99. },
  100. },
  101. onReachBottom() {
  102. this.getRecordOrderList()
  103. }
  104. }
  105. </script>
  106. <style scoped lang="scss">
  107. .promoter-order .list .item .title {
  108. height: 133rpx;
  109. font-size: 26rpx;
  110. color: #999;
  111. }
  112. .promoter-order .list .item .title .data {
  113. font-size: 28rpx;
  114. color: #282828;
  115. margin-bottom: 5rpx;
  116. }
  117. .promoter-order .list .item .listn .itenm {
  118. background-color: #fff;
  119. }
  120. .promoter-order .list .item .listn .itenm~.itenm {
  121. margin-top: 20rpx;
  122. }
  123. .promoter-order .list .item .listn .itenm .top {
  124. padding: 0 24rpx;
  125. border-bottom: 1rpx solid #eee;
  126. height: 100rpx;
  127. }
  128. .promoter-order .list .item .listn .itenm .top .pictxt {
  129. width: 320rpx;
  130. }
  131. .promoter-order .list .item .listn .itenm .top .pictxt .text {
  132. width: 230rpx;
  133. font-size: 30rpx;
  134. color: #282828;
  135. }
  136. .promoter-order .list .item .listn .itenm .top .pictxt .pictrue {
  137. width: 66rpx;
  138. height: 66rpx;
  139. }
  140. .promoter-order .list .item .listn .itenm .top .pictxt .pictrue image {
  141. width: 100%;
  142. height: 100%;
  143. border-radius: 50%;
  144. border: 3rpx solid #fff;
  145. box-sizing: border-box;
  146. box-shadow: 0 0 15rpx #aaa;
  147. }
  148. .promoter-order .list .item .listn .itenm .top .money {
  149. font-size: 28rpx;
  150. }
  151. .promoter-order .list .item .listn .itenm .bottom {
  152. padding: 20rpx 24rpx;
  153. font-size: 28rpx;
  154. color: #666;
  155. line-height: 1.6;
  156. }
  157. .promoter-order .list .item .listn .itenm .bottom .name {
  158. color: #999;
  159. }
  160. </style>