parkingFeeList.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. // const app = getApp()
  2. import uni from '@/utils/uniHooks';
  3. import LoginDom from '@/components/Login/Login.vue';
  4. import { wxToLoginCallback } from '@/utils';
  5. import { orders } from '@/api/parking';
  6. import orderMockData from '@/api/mockData/orders.json'
  7. import { ORDER_STATUS } from '@/common/js/BaseDictionary'
  8. let canloading = true;
  9. let pageNum = 0;
  10. // import moment from 'moment';
  11. // import authorize from '@/components/authorize/authorize.vue';
  12. import { mapState } from 'vuex';
  13. // import {data as mockData} from './list'
  14. export default {
  15. // components: {
  16. // // authorize,
  17. // },
  18. data() {
  19. return {
  20. list: [],
  21. numberOfElements: 1,
  22. pageNum: 0,
  23. };
  24. },
  25. computed: {
  26. ...mapState({
  27. mallId: ( state ) => state.mallId,
  28. openId: ( state ) => state.openid,
  29. member: ( state ) => state.member,
  30. }),
  31. },
  32. components: {LoginDom},
  33. mounted() {
  34. setTimeout(() => {
  35. uni.setNavigationBarTitle({
  36. title: '缴费记录',
  37. });
  38. },301);
  39. setTimeout(() => {
  40. window?.toWXSendMsg({
  41. type: 'uni_func',
  42. funcName: 'setNavigationBarColor',
  43. options: {
  44. frontColor: '#000000',
  45. backgroundColor: '#FBFCFF',
  46. },
  47. });
  48. }, 500)
  49. this.$store.dispatch('clearUnlicensed');
  50. this.list = [];
  51. this.numberOfElements = 0;
  52. // 重新获取数据
  53. canloading = true;
  54. pageNum = 0;
  55. const member = uni.getStorageSync('member');
  56. this.loadData();
  57. if ( !uni.getStorageSync('loadData') && !member ) {
  58. uni.setStorageSync('loadData','loadData')
  59. wxToLoginCallback('parkingFeeList',( options ) => {
  60. this.list = [];
  61. this.numberOfElements = 1;
  62. this.pageNum = 0;
  63. this.loadData();
  64. });
  65. }
  66. },
  67. filters: {
  68. parkingTime( val ) {
  69. const days = parseInt(val / 60 / 24);
  70. const hours = parseInt(( val / 60 ) % 24);
  71. const minutes = parseInt(val % 60);
  72. if ( days > 0 ) {
  73. return `${ days }天 ${ hours }小时 ${ minutes }分钟`;
  74. }
  75. if ( hours > 0 ) {
  76. return `${ hours }小时 ${ minutes }分钟`;
  77. }
  78. return `${ minutes }分钟`;
  79. },
  80. orderStatus( val ) {
  81. return ORDER_STATUS[val]
  82. }
  83. },
  84. methods: {
  85. bindscrolltolower: function () {
  86. if ( canloading ) {
  87. pageNum++;
  88. this.loadData();
  89. }
  90. },
  91. // 获取停车记录
  92. loadData: async function () {
  93. canloading = false;
  94. const params = {
  95. mallid: this.mallId,
  96. vipcode: this.member?.vipcode,
  97. openId: this.openId,
  98. page: pageNum || 0,
  99. pageSize: 4,
  100. };
  101. console.log(120,orderMockData);
  102. try {
  103. const res = await orders({
  104. page: params.page,
  105. size: params.pageSize,
  106. })
  107. console.log('res2',res);
  108. // const res = orderMockData
  109. const records = res.content || [];
  110. this.numberOfElements = records.numberOfElements
  111. if ( records.length ) {
  112. const list = this.list;
  113. this.list = [...list,...records];
  114. this.numberOfElements = 1
  115. } else if ( records.length < params.pageSize ) {
  116. this.numberOfElements = 0
  117. } else {
  118. this.numberOfElements = 0
  119. this.initPage();
  120. }
  121. canloading = true;
  122. } catch ( err ) {
  123. uni.hideLoading();
  124. canloading = true;
  125. this.initPage();
  126. uni.showToast({
  127. title: err.langMessage,
  128. duration: 2000,
  129. icon: 'none',
  130. });
  131. }
  132. return
  133. // const res = await orders({
  134. // page: params.page,
  135. // pageSize: params.pageSize,
  136. // })
  137. console.log(res);
  138. uni.showLoading({
  139. title: '加载中',
  140. });
  141. this.$md(params);
  142. uni.request({
  143. url: this.$baseURL + 'api/1.0/park/parkOrderList',
  144. data: params,
  145. method: 'POST',
  146. header: JSON.parse(uni.getStorageSync('handleUser')),
  147. success: ( res ) => {
  148. uni.hideLoading();
  149. if ( res.data.code !== 0 ) {
  150. uni.showToast({
  151. title: res.data.msg,
  152. duration: 2000,
  153. icon: 'none',
  154. });
  155. this.initPage();
  156. } else {
  157. // 合并数据
  158. const records = res.data.data || [];
  159. if ( records.length ) {
  160. const list = this.list;
  161. this.list = [...list,...records];
  162. } else {
  163. this.initPage();
  164. }
  165. // this.list = mockData.data
  166. }
  167. canloading = true;
  168. },
  169. fail: ( err ) => {
  170. uni.hideLoading();
  171. canloading = true;
  172. this.initPage();
  173. uni.showToast({
  174. title: res.data.msg,
  175. duration: 2000,
  176. icon: 'none',
  177. });
  178. },
  179. });
  180. },
  181. // 页码复原
  182. initPage: function () {
  183. pageNum--;
  184. if ( pageNum <= 0 ) {
  185. pageNum = 0;
  186. }
  187. },
  188. // 查看详情
  189. toDetail( orderno ) {
  190. this.$router.push({
  191. path: 'parkingFeeDetailSuccess?orderNo=' + orderno,
  192. });
  193. },
  194. },
  195. };