金诚优选前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

272 lines
7.8 KiB

  1. <template>
  2. <view id="myReceive">
  3. <view class="myRecivepage">
  4. <view class="navbar mx-1px-top">
  5. <block v-for="(item, index) in tabList" :key="index" >
  6. <view :id="index" class="navbar-item" :class="activeIndex == index ? 'activity' : ''" @tap="tabClick">
  7. <view class="navbar-title">{{item.title}}</view>
  8. </view>
  9. </block>
  10. <view class="navbar-slider" :style="'width: ' + width + 'px; transform: translateX(' + sliderOffset + 'px); -webkit-transform: translateX(' + sliderOffset + 'px);'"></view>
  11. </view>
  12. <view class="tab-panel">
  13. <view class="tab-content" :hidden="activeIndex != 0" v-if="dataList && dataList[0] && dataList[0][0] && tabList && tabList[0]">
  14. <view class="no-list" v-if="!dataList[0][0].length && tabList[0].init">
  15. <view>暂无累计收益!!!</view>
  16. </view>
  17. <view v-for="(items, idx) in dataList[0]" :key="idx" >
  18. <view class="myReceive-item" v-for="(item, index) in dataList[0][idx]" :key="index">
  19. <view class="orderNumber">
  20. <span class="ordertop">分销订单{{item.agent_order_no}}</span>
  21. <span class="orderbottom">{{item.created_at}}</span>
  22. </view>
  23. <view class="orderPrice add">{{item.commission}}</view>
  24. </view>
  25. </view>
  26. </view>
  27. <view class="tab-content" :hidden="activeIndex != 1" v-if="dataList && dataList[1] && dataList[1][0] && tabList && tabList[1]">
  28. <view class="no-list" v-if="!dataList[1][0].length && tabList[1].init">
  29. <view>暂无累计收益!!!</view>
  30. </view>
  31. <view v-for="(items, idx) in dataList[1]" :key="idx">
  32. <view class="myReceive-item" v-for="(item, index) in dataList[1][idx]" :key="index">
  33. <view class="orderNumber">
  34. <span class="ordertop">分销订单{{item.agent_order_no}}</span>
  35. <span class="orderbottom">{{item.created_at}}</span>
  36. </view>
  37. <view class="orderPrice reduce">{{item.commission}}</view>
  38. </view>
  39. </view>
  40. </view>
  41. </view>
  42. </view>
  43. </view>
  44. </template>
  45. <script>
  46. import {pageLogin, getUrl,config,is} from '@/common/js/utils.js';
  47. export default {
  48. data() {
  49. return {
  50. activeIndex: 0,
  51. sliderOffset: 0,
  52. width: 0,
  53. tabList: [{
  54. title: '累计收益',
  55. init: false,
  56. page: 0,
  57. more: true
  58. }, {
  59. title: "未到账收益",
  60. init: false,
  61. page: 0,
  62. more: true
  63. }],
  64. dataList: {
  65. 0: [],
  66. 1: []
  67. }
  68. };
  69. },
  70. onReachBottom(e) {
  71. var status = this.activeIndex;
  72. var page = this.tabList[status].page + 1;
  73. var tabList = `tabList[${status}]`;
  74. if (this.tabList[status].more) {
  75. this.queryReceiveList(status, page);
  76. } else {
  77. wx.showToast({
  78. image: '../../../static/error.png',
  79. title: '再拉也没有啦'
  80. });
  81. }
  82. },
  83. onShow(e) {
  84. wx.getSystemInfo({
  85. success: res => {
  86. this.setData({
  87. width: res.windowWidth / this.tabList.length,
  88. sliderOffset: res.windowWidth / this.tabList.length * this.activeIndex
  89. });
  90. }
  91. });
  92. },
  93. onLoad(e) {
  94. if (e.type) {
  95. this.setData({
  96. activeIndex: e.type
  97. });
  98. }
  99. this.queryReceiveList();
  100. },
  101. components: {},
  102. props: {},
  103. methods: {
  104. tabClick(e) {
  105. var status = e.currentTarget.id;
  106. this.setData({
  107. sliderOffset: e.currentTarget.offsetLeft,
  108. activeIndex: status
  109. });
  110. if (!this.tabList[status].init) {
  111. this.queryReceiveList(status);
  112. }
  113. },
  114. queryReceiveList(type = 0, page = 1) {
  115. wx.showLoading({
  116. title: "加载中",
  117. mask: true
  118. });
  119. var token = this.$cookieStorage.get('user_token') || '';
  120. if (type == 0) {
  121. this.$http.get({
  122. api: 'api/distribution/earnings',
  123. header: {
  124. Authorization: token
  125. },
  126. data: {
  127. page,
  128. type
  129. }
  130. }).then(res => {
  131. if (res.statusCode == 200) {
  132. res = res.data;
  133. if (res.status) {
  134. var pages = res.meta.pagination;
  135. var current_page = pages.current_page;
  136. var total_pages = pages.total_pages;
  137. var tabList = `tabList[${type}]`;
  138. // this.setData({
  139. // [`dataList.${type}[${page - 1}]`]: res.data,
  140. // [`${tabList}.init`]: true,
  141. // [`${tabList}.page`]: current_page,
  142. // [`${tabList}.more`]: current_page < total_pages
  143. // });
  144. //
  145. this.$set(this.dataList[type], page -1, res.data);
  146. this.tabList[type].init=true;
  147. this.tabList[type].page=pages;
  148. this.tabList[type].more=pages < total_pages;
  149. } else {
  150. wx.showModal({
  151. content: res.message || '请求失败',
  152. showCancel: false
  153. });
  154. }
  155. } else {
  156. wx.showModal({
  157. content: res.message || '请求失败',
  158. showCancel: false
  159. });
  160. }
  161. wx.hideLoading();
  162. }).catch(rej => {
  163. wx.hideLoading();
  164. wx.showModal({
  165. content: rej.message || '请求失败',
  166. showCancel: false
  167. });
  168. });
  169. } else {
  170. this.$http.get({
  171. api: 'api/distribution/unearnings',
  172. header: {
  173. Authorization: token
  174. },
  175. data: {
  176. page,
  177. type
  178. }
  179. }).then(res => {
  180. if (res.statusCode == 200) {
  181. res = res.data;
  182. if (res.status) {
  183. var pages = res.meta.pagination;
  184. var current_page = pages.current_page;
  185. var total_pages = pages.total_pages;
  186. var tabList = `tabList[${type}]`;
  187. // this.setData({
  188. // [`dataList.${type}[${page - 1}]`]: res.data,
  189. // [`${tabList}.init`]: true,
  190. // [`${tabList}.page`]: current_page,
  191. // [`${tabList}.more`]: current_page < total_pages
  192. // });
  193. this.$set(this.dataList[type], page -1, res.data);
  194. this.tabList[type].init=true;
  195. this.tabList[type].page=pages;
  196. this.tabList[type].more=pages < total_pages;
  197. } else {
  198. wx.showModal({
  199. content: res.message || '请求失败',
  200. showCancel: false
  201. });
  202. }
  203. } else {
  204. wx.showModal({
  205. content: res.message || '请求失败',
  206. showCancel: false
  207. });
  208. }
  209. wx.hideLoading();
  210. }).catch(rej => {
  211. wx.hideLoading();
  212. wx.showModal({
  213. content: res.message || '请求失败',
  214. showCancel: false
  215. });
  216. });
  217. }
  218. },
  219. setData: function (obj) {
  220. let that = this;
  221. let keys = [];
  222. let val, data;
  223. Object.keys(obj).forEach(function (key) {
  224. keys = key.split('.');
  225. val = obj[key];
  226. data = that.$data;
  227. keys.forEach(function (key2, index) {
  228. if (index + 1 == keys.length) {
  229. that.$set(data, key2, val);
  230. } else {
  231. if (!data[key2]) {
  232. that.$set(data, key2, {});
  233. }
  234. }
  235. data = data[key2];
  236. });
  237. });
  238. }
  239. },
  240. computed: {},
  241. watch: {}
  242. };
  243. </script>
  244. <style rel="stylesheet/less" lang="less">
  245. @import "myReceive";
  246. </style>