index.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. const App = getApp();
  2. Page({
  3. /**
  4. * 页面的初始数据
  5. */
  6. data: {
  7. applyStatus: [],
  8. dataType: -1,
  9. submsgSetting: {}, // 订阅消息配置
  10. list: [], // 列表数据
  11. page: 1, // 当前页码
  12. isLoading: true, // 是否正在加载中
  13. isLastPage: false, // 当前是最后一页
  14. },
  15. /**
  16. * 生命周期函数--监听页面加载
  17. */
  18. onLoad(options) {
  19. let _this = this;
  20. // 设置swiper的高度
  21. _this.setSwiperHeight();
  22. // 获取订阅消息配置
  23. _this.getSubmsgSetting();
  24. },
  25. /**
  26. * 生命周期函数--监听页面显示
  27. */
  28. onShow() {
  29. let _this = this;
  30. // 获取退款/售后单列表
  31. _this.getRefundList();
  32. },
  33. /**
  34. * 获取退款/售后单列表
  35. */
  36. getRefundList(isNextPage, page) {
  37. let _this = this;
  38. App._get('sharing.refund/lists', {
  39. state: _this.data.dataType,
  40. page: page || 1,
  41. }, (result) => {
  42. // 创建页面数据
  43. _this.setData(_this.createData(result.data, isNextPage));
  44. });
  45. },
  46. /**
  47. * 获取订阅消息配置
  48. */
  49. getSubmsgSetting() {
  50. let _this = this;
  51. App._get('wxapp.submsg/setting', {}, (result) => {
  52. _this.setData({
  53. submsgSetting: result.data.setting
  54. });
  55. });
  56. },
  57. /**
  58. * 创建页面数据
  59. */
  60. createData(data, isNextPage) {
  61. data['isLoading'] = false;
  62. // 列表数据
  63. let dataList = this.data.list;
  64. if (isNextPage == true && (typeof dataList !== 'undefined')) {
  65. data.list.data = dataList.data.concat(data.list.data)
  66. }
  67. // 导航栏数据
  68. data['tabList'] = [{
  69. value: -1,
  70. text: '全部'
  71. }, {
  72. value: 0,
  73. text: '待处理'
  74. }];
  75. return data;
  76. },
  77. /**
  78. * 设置swiper的高度
  79. */
  80. setSwiperHeight() {
  81. // 获取系统信息(拿到屏幕宽度)
  82. let systemInfo = wx.getSystemInfoSync(),
  83. rpx = systemInfo.windowWidth / 750, // 计算rpx
  84. tapHeight = Math.floor(rpx * 82), // tap高度
  85. swiperHeight = systemInfo.windowHeight - tapHeight; // swiper高度
  86. this.setData({
  87. swiperHeight
  88. });
  89. },
  90. /**
  91. * 点击tab切换
  92. */
  93. swichNav(e) {
  94. let _this = this,
  95. current = e.target.dataset.current;
  96. if (_this.data.dataType == current) {
  97. return false;
  98. }
  99. _this.setData({
  100. dataType: current,
  101. list: {},
  102. page: 1,
  103. isLastPage: false,
  104. isLoading: true,
  105. }, () => {
  106. // 获取退款/售后单列表
  107. _this.getRefundList();
  108. });
  109. },
  110. /**
  111. * 下拉到底加载数据
  112. */
  113. onPageDown() {
  114. let _this = this;
  115. // 已经是最后一页
  116. if (_this.data.page >= _this.data.list.last_page) {
  117. _this.setData({
  118. isLastPage: true
  119. });
  120. return false;
  121. }
  122. // 获取退款/售后单列表
  123. _this.getRefundList(true, ++_this.data.page);
  124. },
  125. /**
  126. * 跳转售后详情页
  127. */
  128. onTargetDetail(e) {
  129. let _this = this;
  130. // 跳转售后详情页
  131. const onCallback = () => {
  132. wx.navigateTo({
  133. url: `./detail/detail?order_refund_id=${e.currentTarget.dataset.id}`
  134. });
  135. };
  136. // 请求用户订阅消息
  137. _this._onRequestSubscribeMessage(onCallback);
  138. },
  139. /**
  140. * 订阅消息 => [售后状态通知]
  141. */
  142. _onRequestSubscribeMessage(callback) {
  143. let _this = this;
  144. let tmplItem = _this.data.submsgSetting.order.refund.template_id;
  145. if (tmplItem.length == 0) {
  146. callback && callback();
  147. return;
  148. }
  149. wx.requestSubscribeMessage({
  150. tmplIds: [tmplItem],
  151. success(res) {},
  152. fail(res) {},
  153. complete(res) {
  154. callback && callback();
  155. },
  156. });
  157. },
  158. })