order.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <template>
  2. <view>
  3. <view class="top-tabbar">
  4. <view :class="state_active == item.value? 'tab-item active' : 'tab-item'" @click="stateFunc(item.value)" v-for="(item,index) in tableList"
  5. :key="index">{{item.text}}</view>
  6. </view>
  7. <!--列表-->
  8. <scroll-view scroll-y="true" class="scroll-Y" :style="'height:' + scrollviewHigh + 'px;'" lower-threshold="50"
  9. @scrolltolower="scrolltolowerFunc">
  10. <view class="p-0-30 bg-white">
  11. <view class="border-b p-20-0" v-for="(item,index) in tableData" :key="index">
  12. <view class="d-b-c f24">
  13. <text>订单号{{ item.order_master.order_no }}</text>
  14. <text class="blue" v-if="item.is_settled==1"> 已结算</text>
  15. <text class="gray" v-else>未结算</text>
  16. </view>
  17. <view class="d-b-c mt20">
  18. <view class="agent-order-photo">
  19. <image :src="item.user.avatarUrl" mode="aspectFill"></image>
  20. </view>
  21. <view class="flex-1 ml20 f24">
  22. <view class="d-b-c">
  23. <text class="gray3">{{ item.user.nickName }}</text>
  24. <text class="red" v-if="item.first_user_id == user_id ">+¥{{ item.first_money }}</text>
  25. <text class="red" v-if="item.second_user_id == user_id ">+¥{{ item.second_money }}</text>
  26. <text class="red" v-if="item.third_user_id == user_id ">+¥{{ item.third_money }}</text>
  27. </view>
  28. <view class="d-b-c">
  29. <text class="gray9">消费金额:¥{{ item.order_price }}</text>
  30. <text class="gray9">{{item.create_time}}</text>
  31. </view>
  32. </view>
  33. </view>
  34. </view>
  35. <!-- 没有记录 -->
  36. <view class="d-c-c p30" v-if="tableData.length==0 && !loading">
  37. <text class="iconfont icon-wushuju"></text>
  38. <text class="cont">亲,暂无相关记录哦</text>
  39. </view>
  40. <uni-load-more v-else :loadingType="loadingType"></uni-load-more>
  41. </view>
  42. </scroll-view>
  43. </view>
  44. </template>
  45. <script>
  46. import uniLoadMore from "@/components/uni-load-more.vue";
  47. export default {
  48. components: {
  49. uniLoadMore
  50. },
  51. data() {
  52. return {
  53. /*手机高度*/
  54. phoneHeight: 0,
  55. /*可滚动视图区域高度*/
  56. scrollviewHigh: 0,
  57. /*状态选中*/
  58. state_active: -1,
  59. /*数据列表*/
  60. tableData: [],
  61. settled: -1,
  62. page: 1,
  63. no_more: false,
  64. loading: true,
  65. tableList: [],
  66. list_rows: 15,
  67. user_id: 0
  68. }
  69. },
  70. computed: {
  71. /*加载中状态*/
  72. loadingType() {
  73. if (this.loading) {
  74. return 1;
  75. } else {
  76. if (this.tableData.length != 0 && this.no_more) {
  77. return 2;
  78. } else {
  79. return 0;
  80. }
  81. }
  82. }
  83. },
  84. mounted() {
  85. /*初始化*/
  86. this.init();
  87. this.user_id = this.getUserId();
  88. /*获取数据*/
  89. this.getData();
  90. },
  91. methods: {
  92. /*初始化*/
  93. init() {
  94. let self = this;
  95. uni.getSystemInfo({
  96. success(res) {
  97. self.phoneHeight = res.windowHeight;
  98. // 计算组件的高度
  99. let view = uni.createSelectorQuery().select('.top-tabbar');
  100. view.boundingClientRect(data => {
  101. let h = self.phoneHeight - data.height;
  102. self.scrollviewHigh = h;
  103. }).exec();
  104. }
  105. });
  106. },
  107. /*获取数据*/
  108. getData() {
  109. let self = this;
  110. self.loading = true;
  111. self._get('plus.agent.order/lists', {
  112. settled: self.state_active,
  113. page: self.page || 1,
  114. list_rows: self.list_rows,
  115. }, function(data) {
  116. self.loading = false;
  117. // 导航栏数据
  118. self.tableList = [{
  119. value: -1,
  120. text: data.data.words.order.words.all.value,
  121. }, {
  122. value: 0,
  123. text: data.data.words.order.words.unsettled.value,
  124. }, {
  125. value: 1,
  126. text: data.data.words.order.words.settled.value,
  127. }];
  128. self.tableData = self.tableData.concat(data.data.list.data);
  129. self.last_page = data.data.list.last_page;
  130. if (self.last_page <= 1) {
  131. self.no_more = true;
  132. }
  133. });
  134. },
  135. /*切换*/
  136. stateFunc(e) {
  137. let self = this;
  138. if(e!=self.state_active){
  139. self.tableData = [];
  140. self.page = 1;
  141. self.state_active = e;
  142. self.getData();
  143. }
  144. },
  145. /*可滚动视图区域到底触发*/
  146. scrolltolowerFunc() {
  147. let self = this;
  148. if (self.no_more) {
  149. return;
  150. }
  151. self.page++;
  152. if (self.page <= self.last_page) {
  153. self.getData();
  154. } else {
  155. self.no_more = true;
  156. }
  157. }
  158. }
  159. }
  160. </script>
  161. <style>
  162. .agent-order-photo,
  163. .agent-order-photo image {
  164. width: 80rpx;
  165. height: 80rpx;
  166. border-radius: 50%;
  167. }
  168. </style>