coll.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <template>
  2. <view class="coll">
  3. <view class="box_ul">
  4. <view class="box_ul_li flexs" v-for="(item,index) in collList" :key="index" @click="goMessage(item,0)">
  5. <view class="box_ul_li_img">
  6. <image :src="item.image" mode="aspectFill"></image>
  7. </view>
  8. <view class="box_ul_li_main">
  9. <view class="box_ul_li_name">{{ item.box_name }}</view>
  10. <view class="box_ul_li_price">{{ item.coin_price }}金币</view>
  11. <view class="box_ul_li_time flex">
  12. <text>时间:{{ item.star_time }}</text>
  13. <image src="/static/image/me/shanchu@2x.png" mode="" @click.stop="delStar(index,item)"></image>
  14. </view>
  15. </view>
  16. </view>
  17. </view>
  18. </view>
  19. </template>
  20. <script>
  21. export default {
  22. data() {
  23. return {
  24. page:1,
  25. pages:null,
  26. collList:[],//收藏列表
  27. };
  28. },
  29. methods:{
  30. //去详情
  31. goMessage (item,type) {
  32. uni.navigateTo({url:'/pages/index/details?id=' + item.box_id + '&type=' + type})
  33. },
  34. //删除收藏
  35. delStar (index,item) {
  36. uni.showModal({
  37. title: '删除',
  38. content: '是否删除收藏?',
  39. success: (res)=> {
  40. if (res.confirm) {
  41. this.$api.cancelStar({star_id:item.star_id,msg:'收藏删除中'}).then(res=>{
  42. if (res.code === 1) {
  43. uni.showToast({title:res.msg})
  44. this.collList.splice(index,1)
  45. }
  46. })
  47. console.log('用户点击确定');
  48. } else if (res.cancel) {
  49. console.log('用户点击取消');
  50. }
  51. }
  52. });
  53. },
  54. //获取收藏列表
  55. getCollList () {
  56. this.$api.myStar({page:this.page}).then(res=>{
  57. uni.stopPullDownRefresh()
  58. if (res.code === 1) {
  59. this.collList = this.page == 1 ? res.data.data : [...this.collList,...res.data.data]
  60. this.pages = res.data.last_page
  61. }
  62. })
  63. }
  64. },
  65. onLoad() {
  66. this.getCollList()
  67. },
  68. onPullDownRefresh() {
  69. this.page = 1
  70. this.getCollList()
  71. },
  72. onReachBottom() {
  73. if (this.page < this.pages) {
  74. this.page++
  75. this.getCollList()
  76. }
  77. }
  78. }
  79. </script>
  80. <style lang="scss">
  81. .box_ul {
  82. padding: 30rpx 30rpx 0 30rpx;
  83. .box_ul_li {
  84. padding: 30rpx;
  85. margin-bottom: 20rpx;
  86. background: #FFFFFF;
  87. border-radius: 20rpx;
  88. .box_ul_li_img {
  89. image {
  90. width: 168rpx;
  91. height: 168rpx;
  92. border-radius: 10rpx;
  93. }
  94. margin-right: 20rpx;
  95. }
  96. .box_ul_li_main {
  97. flex: 1;
  98. }
  99. .box_ul_li_name {
  100. font-size: 28rpx;
  101. display: -webkit-box;
  102. -webkit-box-orient: vertical;
  103. -webkit-line-clamp: 2;
  104. overflow: hidden;
  105. }
  106. .box_ul_li_price {
  107. color: #CF271B;
  108. font-size: 28rpx;
  109. margin: 15rpx 0;
  110. }
  111. .box_ul_li_time {
  112. text {
  113. color: #999999;
  114. font-size: 22rpx;
  115. }
  116. image {
  117. width: 44rpx;
  118. height: 44rpx;
  119. }
  120. }
  121. }
  122. }
  123. </style>