ownersinfo.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <template>
  2. <view>
  3. <u-navbar
  4. title="车主信息"
  5. title-color="#fff"
  6. :custom-back="customBack"
  7. :border-bottom="false"
  8. back-icon-color="#CCE8FF"
  9. :background="{background: 'linear-gradient(145deg, #41AFF9 0%, #2D8CFB 100%)' }"></u-navbar>
  10. <!-- <u-empty class="u-m-t-50" text="很棒!没有欠费订单!" mode="list" v-if="listEmpty"></u-empty> -->
  11. <mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback" >
  12. <view class="owelist">
  13. <view class="owelist-item" v-for="(item,index) in owelist" :key="item.id">
  14. <view class="item-header u-flex u-row-between">
  15. <view class="vehicle-no">{{item.vehicleNo}}</view>
  16. <view class="space-name">{{item.spaceName}}</view>
  17. </view>
  18. <view class="road-name u-flex">
  19. <u-icon name="map-fill" color="#3397FA" size="36"></u-icon>
  20. {{item.roadName}}
  21. </view>
  22. <view class="info-item">订单号:{{item.orderId}}</view>
  23. <view class="info-item">进场时间:{{item.inTime}}</view>
  24. <view v-if="item.orderStatus != 1" class="info-item">出场时间:{{item.outTime}}</view>
  25. <view v-if="item.orderStatus != 1" class="info-item">停车时长:{{item.duration}}</view>
  26. <view class="info-item">收费员:{{item.payeeName}}</view>
  27. <view v-if="item.orderStatus != 1" class="info-item">支付金额:<span class="amount">{{item.payAmount}}元</span></view>
  28. <view class="info-item">订单状态:{{item.orderStatus|filterOrderStatus}}</view>
  29. <view>
  30. <button v-if="item.orderStatus == 1" size="mini" type="primary" @click="onParkIn(item)">入场小票</button>
  31. <button v-if="item.orderStatus != 1" size="mini" type="warn" @click="onParkLeave(item)">出场小票</button>
  32. </view>
  33. </view>
  34. </view>
  35. </mescroll-body>
  36. <u-toast ref="uToast" />
  37. </view>
  38. </template>
  39. <script>
  40. import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
  41. //#ifdef APP-PLUS
  42. let device = uni.requireNativePlugin("DeviceInfo");
  43. //#endif
  44. export default{
  45. mixins: [MescrollMixin], // 使用mixin
  46. data(){
  47. return{
  48. vehicleNo:'',
  49. listEmpty:false,
  50. owelist:[],
  51. pagination:Object.assign({}, {pageNo: 1,pageSize: 10}),
  52. }
  53. },
  54. onLoad(page){
  55. this.vehicleNo = page.vehicleNo;
  56. console.log('this.vehicleNo',this.vehicleNo)
  57. },
  58. onShow(){
  59. // this.owelist = [];
  60. },
  61. onReachBottom() {
  62. // this.getData();
  63. },
  64. methods:{
  65. customBack(){
  66. uni.reLaunch({
  67. url: '/pages/index/index'
  68. });
  69. },
  70. downCallback(){
  71. this.mescroll.resetUpScroll();
  72. },
  73. upCallback(page){
  74. let pageNum = page.num; // 页码, 默认从1开始
  75. let pageSize = page.size; // 页长, 默认每页10条
  76. this.$u.api.vehicleList({vehicleNo:this.vehicleNo,pageNum:pageNum,pageSize:pageSize})
  77. .then(res=>{
  78. // uni.hideLoading();
  79. // this.$refs.uToast.show({
  80. // title: res.msg,
  81. // type: 'success',
  82. // });
  83. //设置列表数据
  84. let curPageData = res.data.rows;
  85. // 接口返回的当前页数据长度 (如列表有26个数据,当前页返回8个,则curPageLen=8)
  86. let curPageLen = curPageData.length;
  87. let totalPage = res.data.pages;
  88. if(page.num == 1) this.owelist = []; //如果是第一页需手动置空列表
  89. this.owelist = this.owelist.concat(curPageData); //追加新数据
  90. // 请求成功,隐藏加载状态
  91. //后台接口有返回列表的总页数 totalPage
  92. this.mescroll.endByPage(curPageLen, totalPage);
  93. this.leaveDetail = res.data;
  94. // for (let item of res.data.rows) {
  95. // this.owelist.push(item)
  96. // }
  97. if(this.owelist.length<=0){this.listEmpty = true};
  98. console.log('vehicleList',res)
  99. }).catch(err=>{
  100. // uni.hideLoading();
  101. this.$refs.uToast.show({
  102. title: err.msg,
  103. type: 'error',
  104. });
  105. console.log('vehicleList ',err)
  106. });
  107. },
  108. onParkIn(item){
  109. this.$u.api.printIn({orderId:item.orderId})
  110. .then(res => {
  111. if(res.code == 200){
  112. //#ifdef APP-PLUS
  113. device.print(res.data);
  114. //#endif
  115. plus.nativeUI.toast('打印成功');
  116. }
  117. })
  118. .catch(err=>{
  119. plus.nativeUI.toast('打印失败');
  120. });
  121. },
  122. onParkLeave(item){
  123. this.$u.api.printLeave({orderId:item.orderId})
  124. .then(res => {
  125. if(res.code == 200){
  126. //#ifdef APP-PLUS
  127. device.print(res.data);
  128. //#endif
  129. plus.nativeUI.toast('打印成功');
  130. }
  131. })
  132. .catch(err=>{
  133. plus.nativeUI.toast('打印失败');
  134. });
  135. }
  136. }
  137. }
  138. </script>
  139. <style lang="scss">
  140. @import './ownersinfo.scss'
  141. </style>