order.vue 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <template>
  2. <view class="container">
  3. <view v-for="(item,index) in hireOrderList" :key="index" @tap="loadToNav" :data-orderSn="item.order_sn"
  4. class="order-card">
  5. <view class="card-top flex-row">
  6. <view>{{item.car_model}}</view>
  7. <view class="card card-k" v-if="item.order_status == 0">待支付</view>
  8. <view class="card card-k" v-else-if="item.order_status == 1">待取车</view>
  9. <view class="card card-k" v-else-if="item.order_status == 2">待激活</view>
  10. <view class="card card-b" v-else-if="item.order_status == 3">使用中</view>
  11. <view class="card card-r" v-else-if="item.order_status == 4">已逾期</view>
  12. <view class="card card-k" v-else-if="item.order_status == 5">还车申请中</view>
  13. <view class="card card-k" v-else-if="item.order_status == 6">还车中</view>
  14. <view class="card card-k" v-else-if="item.order_status == 7">车辆已归还</view>
  15. <view class="card card-k" v-else-if="item.order_status == 8||item.order_status == 9">已取消</view>
  16. </view>
  17. <view class="card-border"></view>
  18. <view class="card-bottom">
  19. <view class="bottom-item flex-row">
  20. <view class="item-left flex-row">
  21. <view>下单时间</view>
  22. <view>租用时长</view>
  23. <view v-if="item.order_status == 3">剩余租期</view>
  24. </view>
  25. <view class="item-right">
  26. <view>{{tools.formatTime(item.ctime)}}</view>
  27. <view>
  28. {{item.hire_duration_time.day > 0 ? item.hire_duration_time.day :'' }}<text
  29. v-if="item.hire_duration_time.day>0">日</text>{{item.hire_duration_time.hour > 0 ? item.hire_duration_time.hour :'' }}<text
  30. v-if="item.hire_duration_time.hour>0">小时</text>{{item.hire_duration_time.minute > 0 ? item.hire_duration_time.minute :'' }}<text
  31. v-if="item.hire_duration_time.minute>0">分</text>
  32. </view>
  33. <view v-if="item.order_status == 3">
  34. {{item.order_time.day > 0 ? item.order_time.day :'' }}<text
  35. v-if="item.order_time.day>0">日</text>{{item.order_time.hour > 0 ? item.order_time.hour :'' }}<text
  36. v-if="item.order_time.hour>0">小时</text>{{item.order_time.minute > 0 ? item.order_time.minute :'' }}<text
  37. v-if="item.order_time.minute>0">分</text>
  38. <!-- hire_end_time -当前时间 -->
  39. </view>
  40. </view>
  41. </view>
  42. <view class="bottom-price flex-row">
  43. 订单金额
  44. <!-- <view class="price-text">¥<text>{{((item.money-0) + (item.deposit-0) + (item.insurance-0)) / 100}}</text></view> -->
  45. <view class="price-text">
  46. ¥<text>{{item.money / 100}}</text></view>
  47. </view>
  48. </view>
  49. </view>
  50. </view>
  51. </template>
  52. <script module="tools" lang="wxs" src="@/pages/common/wxs/tools.wxs"></script>
  53. <script module="tools" lang="sjs" src="@/pages/common/wxs/tools.sjs"></script>
  54. <script>
  55. var config = require('../../common/config.js');
  56. var common = require('../../common/common.js');
  57. var http = require('../../common/http.js');
  58. var storage = require('../../common/storage.js');
  59. export default {
  60. data() {
  61. return {
  62. page: 1,
  63. limit: 10,
  64. status: '-1',
  65. sort_time: 0,
  66. sort_num: 0,
  67. hireOrderList: [],
  68. order_sn: '',
  69. myLocation: {
  70. latitude: null,
  71. longitude: null
  72. },
  73. orderInfoTime: {},
  74. nowTime: 0
  75. };
  76. }
  77. /**
  78. * 生命周期函数--监听页面加载
  79. */
  80. ,
  81. onLoad: function(options) {
  82. const locationStr = uni.getStorageSync('user_current_location');
  83. if (locationStr) {
  84. this.myLocation = locationStr;
  85. }
  86. let timestamp = Date.now();
  87. this.nowTime = Math.floor(timestamp / 1000);
  88. },
  89. /**
  90. * 生命周期函数--监听页面显示
  91. */
  92. onShow: function() {
  93. this.hireOrderList = []
  94. this.sort_time = 0
  95. this.bindHireOrderList()
  96. },
  97. // 分享给好友
  98. onShareAppMessage: function(res) { //发送给朋友
  99. return {
  100. title: this.appConfig.app_name,
  101. path: 'pages/order/order',
  102. }
  103. },
  104. /**
  105. * 页面上拉触底事件的处理函数
  106. */
  107. onReachBottom: function() {
  108. this.page++
  109. this.bindHireOrderList()
  110. },
  111. /**
  112. * 页面下拉触底事件的处理函数
  113. */
  114. onPullDownRefresh() {
  115. this.page = 1
  116. this.bindHireOrderList()
  117. },
  118. methods: {
  119. bindHireOrderList() {
  120. const me = this
  121. http.postApi(config.API_DAYHIRE_HIRE_ORDER_LIST, {
  122. page: me.page,
  123. limit: me.limit,
  124. status: me.status,
  125. sort_time: me.sort_time,
  126. sort_num: me.sort_num
  127. }, (resp) => {
  128. if (resp.data.code === 200) {
  129. // me.hireOrderList = resp.data.data.list
  130. me.hireOrderList.push.apply(me.hireOrderList, resp.data.data.list)
  131. if (me.hireOrderList.length > 0) {
  132. me.sort_time = me.hireOrderList[me.hireOrderList.length - 1].ctime;
  133. me.sort_num = me.hireOrderList[me.hireOrderList.length - 1].sort_num;
  134. // timeToDay
  135. me.hireOrderList = me.hireOrderList.map(item => {
  136. item.order_time = common.getTimeToDay(Math.ceil(item.hire_end_time - me.nowTime)/60)
  137. item.hire_duration_time = common.getTimeToDay(Math.ceil(item.hire_end_time - item.hire_begin_time)/60)
  138. return item
  139. })
  140. }
  141. } else {
  142. common.simpleToast(resp.data.msg)
  143. }
  144. })
  145. },
  146. navToPage(e) {
  147. const url = e.currentTarget.dataset.url;
  148. if (!url) {
  149. return;
  150. }
  151. uni.navigateTo({
  152. url: url
  153. });
  154. },
  155. loadToNav(e) {
  156. //#ifdef MP-ALIPAY
  157. this.order_sn = e.currentTarget.dataset.orderSn
  158. //#endif
  159. //#ifdef MP-WEIXIN
  160. this.order_sn = e.currentTarget.dataset.ordersn
  161. //#endif
  162. const isJumpReturn = false
  163. uni.navigateTo({
  164. url: '/pages/orderStatus/orderStatus?order_sn=' + this.order_sn + '&longitude=' + this
  165. .myLocation.longitude + '&latitude=' + this.myLocation.latitude +'&isJumpReturn=' + isJumpReturn,
  166. success: function(res) {},
  167. fail: function(res) {},
  168. complete: function(res) {},
  169. })
  170. },
  171. }
  172. };
  173. </script>
  174. <style>
  175. @import './order.css';
  176. </style>