secondCardDetail.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <template>
  2. <view :style="[mainStyle]">
  3. <!-- 小卡 -->
  4. <view class="list" v-if="pageList&&pageList.length>0">
  5. <view class="detail-info" v-for="(item, index) in pageList" :key="index" @click="jumpUrl('/service/cardDetail/index?id=' + item.id)">
  6. <view class="info ddflex nopadding">
  7. <view class="detail-info-left">
  8. <view class="money">1<text>次</text></view>
  9. <view class="man">免费使用</view>
  10. </view>
  11. <view class="detail-info-content fflex" @click.stop="checks(item,index)">
  12. <view class="title">{{item.proudctName}}</view>
  13. <view class="time" v-if="item.expireTime"><block>{{item.expireTime}}</block>
  14. <image v-if="!item.isShow" src="../static/images/bico.png" ></image>
  15. <image v-else src="../static/images/bico_h.png" ></image>
  16. </view>
  17. </view>
  18. <view class="detail-info-btn">
  19. <!-- <image src="../static/images/ma_dark.png" class="ma"></image> -->
  20. <view class="yong dflex">去使用</view>
  21. </view>
  22. </view>
  23. <view class="infos" v-if="item.isShow">
  24. <view>使用范围:仅限{{item.proudctName}}使用1次</view>
  25. </view>
  26. </view>
  27. </view>
  28. <view class="nodata" v-else>
  29. <image :src="picUrlss+'empty_dd.png'"></image>
  30. <text>暂无次卡</text>
  31. </view>
  32. </view>
  33. </template>
  34. <script>
  35. const req = require("../../utils/request.js");
  36. const api = require("../../utils/api.js");
  37. const app = getApp();
  38. export default {
  39. data() {
  40. return {
  41. mainStyle: app.globalData.mainStyle,
  42. picUrlss: req.public.picUrls,
  43. orderProductId: '',
  44. currentTab: 1,
  45. form:{
  46. page: 1,
  47. limit: 10
  48. },
  49. pageList:[],
  50. isLoad: true,
  51. }
  52. },
  53. components: {},
  54. props: {},
  55. onLoad(options) {
  56. this.orderProductId = options.orderProductId
  57. this.getPageList()
  58. },
  59. onReachBottom() {
  60. this.form.page++
  61. this.getPageList()
  62. },
  63. methods:{
  64. getPageList(){
  65. if (!this.isLoad) return false;
  66. this.isLoad = false;
  67. let that = this;
  68. let form = that.form
  69. form.state = that.currentTab
  70. form.orderProductId = that.orderProductId
  71. if(form.page == 1){
  72. uni.showLoading()
  73. }
  74. req.getRequest(api.card_page,form,data=>{
  75. if (data.list && data.list.length >= 10) that.isLoad = true;
  76. if (that.form.page > 1) data.list = that.pageList.concat(data.list);
  77. data.list.map(it=>{
  78. it.isShow = false;
  79. return it;
  80. })
  81. that.pageList = data.list
  82. uni.hideLoading();
  83. })
  84. },
  85. checks(item,index){
  86. let pageList = this.pageList;
  87. if(pageList[index].isShow){
  88. pageList[index].isShow = false;
  89. this.pageList=JSON.parse(JSON.stringify(pageList))
  90. }else{
  91. pageList.map((it,dx)=>{
  92. if(dx==index) it.isShow = true;
  93. else it.isShow = false;
  94. return it;
  95. });
  96. this.pageList=JSON.parse(JSON.stringify(pageList))
  97. }
  98. },
  99. jumpUrl(url) {
  100. uni.navigateTo({
  101. url: url
  102. })
  103. },
  104. }
  105. }
  106. </script>
  107. <style>
  108. @import "./secondCardDetail.css"
  109. </style>