appointmentlist.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <template>
  2. <view class="box">
  3. <view class="tab bgfff dflex">
  4. <view :class="'li ' + (currentTab == 0 ? 'active' : '')" @tap="tab(0)">全部</view>
  5. <view :class="'li ' + (currentTab == 3 ? 'active' : '')" @tap="tab(3)">待使用</view>
  6. <view :class="'li ' + (currentTab == 7 ? 'active' : '')" @tap="tab(7)">已完成</view>
  7. </view>
  8. <view class="box-item" v-for="(item,index) in pageList" :key="index">
  9. <view class="box-item-title">
  10. <text>{{item.storeName}}</text>
  11. <text class="color-gray">序号 {{item.serialNumber}}</text>
  12. </view>
  13. <view class="box-item-content">
  14. <view class="box-item-content-item">
  15. <view class="item-name">预约服务</view>
  16. <view class="item-text">{{item.serviceTitle}}</view>
  17. </view>
  18. </view>
  19. <view class="box-item-content">
  20. <view class="box-item-content-item">
  21. <view class="item-name">预约时间</view>
  22. <view class="item-text color-orange">{{item.appointmentTime}}</view>
  23. </view>
  24. </view>
  25. <view class="box-item-content">
  26. <view class="box-item-content-item">
  27. <view class="item-name">症状描述</view>
  28. <view class="item-text color-gray2">{{item.brief}}</view>
  29. </view>
  30. </view>
  31. <view class="box-item-footer">
  32. <view class="footer-status">
  33. {{item.state==3?'待使用':item.state==7?'已完成':'已取消'}}
  34. </view>
  35. <view class="footer-btn">
  36. <view class="footer-btn-item" @tap="jumpUrl('/onlineregistration/cancelappointment/cancelappointment?id='+item.id)">查看详情</view>
  37. <view class="footer-btn-item" @tap="jumpUrl('/onlineregistration/cancelappointment/cancelappointment?id='+item.id+'&isCancel=true')" v-if="item.state == 3">取消预约</view>
  38. </view>
  39. </view>
  40. </view>
  41. <view class="nodata" v-if="ishow">
  42. <image :src="picUrlss+'empty_jl.png'"></image>
  43. <text>暂无预约记录</text>
  44. </view>
  45. </view>
  46. </template>
  47. <script>
  48. // mine/coupons/coupons.js
  49. const req = require("../../utils/request.js");
  50. const api = require("../../utils/api.js");
  51. const app = getApp();
  52. export default {
  53. data() {
  54. return {
  55. picUrlss: req.public.picUrls,
  56. currentTab: 0,
  57. form: {
  58. page: 1,
  59. limit: 10
  60. },
  61. pageList: [],
  62. isLoad: true,
  63. ishow: false,
  64. };
  65. },
  66. components: {},
  67. props: {},
  68. onLoad: function() {
  69. this.getPageList()
  70. },
  71. onReachBottom() {
  72. this.form.page++
  73. this.getPageList()
  74. },
  75. methods: {
  76. tab(state) {
  77. if (this.currentTab === state) return false;
  78. this.currentTab = state
  79. this.form.page = 1
  80. this.isLoad = true
  81. this.getPageList()
  82. },
  83. getPageList(){
  84. let that = this;
  85. if(!that.isLoad) return false;
  86. that.isLoad = false;
  87. that.ishow = false
  88. let form = that.form
  89. if(that.currentTab > 0) form.state = that.currentTab
  90. else delete form.state
  91. req.getRequest(api.reservation_service_record_list,form,data=>{
  92. if (data.list && data.list.length == 10) that.isLoad = true;
  93. if (that.form.page > 1) data.list = that.pageList.concat(data.list);
  94. if(that.form.page == 1 && data.list.length == 0) that.ishow = true
  95. that.pageList = data.list
  96. })
  97. },
  98. jumpUrl(url) {
  99. uni.navigateTo({
  100. url: url
  101. })
  102. },
  103. }
  104. };
  105. </script>
  106. <style>
  107. @import './appointmentlist.css';
  108. </style>