index.vue 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. <template>
  2. <view>
  3. <view class="body">
  4. <view class="pd16_15" style="box-shadow: 0px 0px 20upx 0px rgba(0,0,0,0.2); border-radius: 20upx;">
  5. <view>
  6. <view class="flex alcenter space top-show">
  7. <view class="flex alcenter">
  8. <text class="ft16 ftw600 cl-main">最近观看</text>
  9. </view>
  10. <navigator url="/pages/zhuiju/zjgk">
  11. <view class="ft14 cl-notice" v-show="historyList.length > 3">更多</view>
  12. <!-- <view class="ft14 cl-notice" >更多</view> -->
  13. </navigator>
  14. </view>
  15. </view>
  16. <view class="mt16 history-box ">
  17. <block v-for="(value, key) in historyList" :key="key" v-if="key < 3">
  18. <view class="history-item-box" @click="detail(value.video_id, value.watch_episode_num)">
  19. <image class="history-item-image" :src="value.cover_image"></image>
  20. <label class="history-item-title">{{ value.name }}</label>
  21. </view>
  22. </block>
  23. <view class="box pb10 history-item-box history-add-box" @click="goToJuYuan">
  24. <image class="add-icon" src="/static/img/zhuiju/add.png"></image>
  25. </view>
  26. </view>
  27. </view>
  28. <view class="mt24 pd16_15">
  29. <view class="flex alcenter space">
  30. <view class="flex alcenter">
  31. <text class="ft16 ftw600 cl-main">我的追剧</text>
  32. </view>
  33. </view>
  34. <view class="mt16 zuiju-box">
  35. <block v-if="zhuijuList.length > 0" v-for="(value, key) in zhuijuList" :key="key">
  36. <view class="box pd16_15 mb16 zuiju-box-item">
  37. <image @click="detail(value.video_id, value.watch_episode_num)" class="zuiju-box-item-cover"
  38. :src="value.cover_image"></image>
  39. <view class="zuiju-box-item-info" @click="detail(value.video_id, value.watch_episode_num)">
  40. <label class="zuiju-box-item-info-title">{{ value.name }}</label>
  41. <label class="zuiju-box-item-info-juji">看到<span class="guankan">{{ value.watch_episode_num
  42. }}集</span></label>
  43. <label class="zuiju-box-item-info-gx">更新至<span class="update-ji">{{ value.updated_episode_num
  44. }}集</span></label>
  45. </view>
  46. <view class="zuiju-box-item-del-box" @click="delzj(value.video_id)">
  47. <image class="del-icon" src="../../static/img/zhuiju/delete.png"></image>
  48. </view>
  49. </view>
  50. </block>
  51. </view>
  52. <view v-if="is_show" class="mt16 zuiju-box-kong">
  53. <image src="../../static/img/zhuiju/kong.png"></image>
  54. <text class="ft14">暂无追剧</text>
  55. <label class="ft16" @click="goToJuYuan()">去追剧</label>
  56. </view>
  57. </view>
  58. </view>
  59. </view>
  60. </view></template>
  61. <script>
  62. import {
  63. watchRecord,
  64. shelfList,
  65. delShelf
  66. } from "@/common/apis/zju.js";
  67. export default {
  68. data() {
  69. return {
  70. more_text: "查看全部",
  71. qdjl: 0,
  72. tdsy: 0,
  73. navLock: false,
  74. datasa: [],
  75. showdyxx: true,
  76. dataconfig: [],
  77. banners: [],
  78. datainfo: [],
  79. dataindex: [],
  80. newsa: [],
  81. record: [],
  82. historyList: [],
  83. zhuijuList: [],
  84. mbgColor: this.$mbgColor,
  85. is_show_more: false,
  86. is_show: false
  87. }
  88. },
  89. computed: {
  90. },
  91. onPageScroll(e) {
  92. },
  93. onShareAppMessage(e) {
  94. },
  95. onShareTimeline(e) {
  96. },
  97. onLoad(e) { },
  98. onShow() {
  99. this.getList();
  100. },
  101. methods: {
  102. changeList() {
  103. if (this.is_show_more) {
  104. this.more_text = "查看全部";
  105. } else {
  106. this.more_text = "收起"
  107. }
  108. this.is_show_more = !this.is_show_more;
  109. },
  110. async getList() {
  111. let historyRes = await watchRecord();
  112. this.historyList = historyRes.data;
  113. let zhuijuRes = await shelfList();
  114. this.zhuijuList = zhuijuRes.data;
  115. if (this.zhuijuList.length < 1) {
  116. this.is_show = 1;
  117. } else {
  118. this.is_show = 0;
  119. }
  120. },
  121. saoma() {
  122. //#ifdef APP-PLUS
  123. uni.scanCode({
  124. success: function (res) {
  125. if (res.result.indexOf("uid") != -1) {
  126. var obj = JSON.parse(res.result);
  127. if (obj.uid) {
  128. uni.navigateTo({
  129. url: '/pages/login/reg?uid=' + obj.uid
  130. })
  131. }
  132. } else {
  133. uni.showToast({
  134. title: res.result,
  135. icon: "none"
  136. });
  137. }
  138. }
  139. });
  140. //#endif
  141. },
  142. detail(video_id, item_id) {
  143. // console.log(value);
  144. uni.navigateTo({ url: '/pages/video/index?video_id=' + video_id + "&sequence=" + item_id + "&ranse_id=3" })
  145. // uni.navigateTo({
  146. // url: '/pages/video/index?video_id=' + value.video_id
  147. // })
  148. },
  149. linkTo(e) {
  150. if (this.isLogin == false) {
  151. this.showLogin = true;
  152. } else {
  153. let link = e.currentTarget.dataset.link;
  154. uni.navigateTo({
  155. url: link
  156. })
  157. }
  158. },
  159. async delzj(id) {
  160. let res = await delShelf(id);
  161. uni.showToast({
  162. title: "删除成功",
  163. icon: "none"
  164. });
  165. // 更新最近列表数据
  166. let zhuijuRes = await shelfList();
  167. this.zhuijuList = zhuijuRes.data;
  168. console.log(res);
  169. },
  170. exchange(e) {
  171. if (this.isLogin == false) {
  172. this.showLogin = true;
  173. } else {
  174. let id = e.currentTarget.dataset.id;
  175. uni.navigateTo({
  176. url: '/pages/client/integral/exchange?id=' + id
  177. })
  178. }
  179. },
  180. goToJuYuan() {
  181. uni.switchTab({
  182. url: '/pages/index/index'
  183. })
  184. }
  185. },
  186. }
  187. </script>
  188. <style>
  189. @import url("style/index.css");
  190. </style>