index.vue 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <template>
  2. <view>
  3. <!-- 标题栏和状态栏占位符 -->
  4. <!-- <view class="titleNview-placing"> </view> -->
  5. <sub-tabvs class="" :tabs="typetab" @change="changeIndex" :selectIndex="selecttype"
  6. :scrollTop="scrollTop"></sub-tabvs>
  7. <view class="home-header pd0_15 mt10" :style="'background: ' + mbgColor + ';'">
  8. <home-banner :banners="banners"></home-banner>
  9. </view>
  10. <view class="integral-mall-main plr15" style="margin-top: 30upx;">
  11. <view class="integal-mall-menu flex pt10 pb10">
  12. <view class="col2 text-center" @click="linkTo" data-link="/pages/zhuiju/index" data-type='tabbar'>
  13. <view>
  14. <!-- <image style="width: 100rpx; height: 100rpx;" :src="statics.zhuico[0]"></image> -->
  15. <image style="width: 100rpx; height: 100rpx;" src="/static/icon/index/zuiju.png"></image>
  16. </view>
  17. <view class="ft14 ftw600">追剧</view>
  18. </view>
  19. <view class="col2 text-center bd-left" @click="linkTo" data-link="/pages/index/billboard/index">
  20. <view>
  21. <!-- <image style="width: 100rpx; height: 100rpx;" :src="statics.zhuico[2]"></image> -->
  22. <image style="width: 100rpx; height: 100rpx;" src="/static/icon/index/phb.png"></image>
  23. </view>
  24. <view class="ft14 ftw600">排行</view>
  25. </view>
  26. <view class="col2 text-center bd-left" @click="linkTo" data-link="/pages/index/new/index">
  27. <view>
  28. <!-- <image style="width: 100rpx; height: 100rpx;" :src="statics.zhuico[6]"></image> -->
  29. <image style="width: 100rpx; height: 100rpx;" src="/static/icon/index/new.png"></image>
  30. </view>
  31. <view class="ft14 ftw600">最新</view>
  32. </view>
  33. </view>
  34. <view class="mt24">
  35. <view class="flex alcenter start mb10">
  36. <view class="flex alcenter">
  37. <image style="width: 40rpx;height: 40rpx;" :src="statics.zhuico[0]"></image>
  38. <text class="ft16 ftw600 cl-main ml15">{{ hotdata.subject_name }}</text>
  39. </view>
  40. </view>
  41. <u-scroll-list :indicator="true">
  42. <view v-for="(value, key) in hotdata.data" :key="key" class="box pb10 mb15"
  43. style="width:30%; border-radius:20rpx;margin: 6px;min-height: 100px;flex: none;"
  44. @click="detail(value)">
  45. <u--image width="100%" height="280rpx" radius="8" mode="scaleToFill" :src="value.cover_image"
  46. :fade="true" duration="450">
  47. <view slot="error" style="font-size: 24rpx;">加载失败</view>
  48. </u--image>
  49. <view class="mt8 plr10 ft14 ftw400 text-center text-over cl-main">{{ value.name }}</view>
  50. </view>
  51. </u-scroll-list>
  52. </view>
  53. <view class="mt24">
  54. <view class="flex alcenter start mb10">
  55. <view class="flex alcenter">
  56. <image style="width: 40rpx;height: 40rpx;" :src="statics.zhuico[0]"></image>
  57. <text class="ft16 ftw600 cl-main ml15">{{ givedata.subject_name }}</text>
  58. </view>
  59. </view>
  60. <u-scroll-list :indicator="true">
  61. <view v-for="(value, key) in givedata.data" :key="key" class="box pb10 mb15"
  62. style="width:30%; border-radius:20rpx;margin: 6px;min-height: 100px;flex: none;"
  63. @click="detail(value)">
  64. <u--image width="100%" height="280rpx" radius="8" mode="scaleToFill" :src="value.cover_image"
  65. :fade="true" duration="450">
  66. <view slot="error" style="font-size: 24rpx;">加载失败</view>
  67. </u--image>
  68. <view class="mt8 plr10 ft14 ftw400 text-center text-over cl-main">{{ value.name }}</view>
  69. </view>
  70. </u-scroll-list>
  71. </view>
  72. </view>
  73. </view>
  74. </template>
  75. <script>
  76. import {
  77. getMiniprogramHall
  78. } from '@/common/apis/index.js'
  79. import {
  80. getConfigInfo
  81. } from "@/common/apis/common.js";
  82. import cellGroup from '../../uni_modules/uview-ui/libs/config/props/cellGroup';
  83. export default {
  84. data() {
  85. return {
  86. navLock: false,
  87. banners: [],
  88. hotdata: [],
  89. givedata: [],
  90. typetab: [{
  91. name: '推荐短剧',
  92. id: 1
  93. }, ],
  94. selecttype: 0,
  95. scrollTop: 0,
  96. type: 1,
  97. mbgColor: this.$mbgColor,
  98. }
  99. },
  100. computed: {
  101. },
  102. onPageScroll(e) {
  103. if (e.scrollTop > 44) {
  104. if (this.navLock == false) {
  105. this.navLock = true;
  106. uni.setNavigationBarColor({
  107. frontColor: "#000000",
  108. backgroundColor: "#FFFFFF",
  109. complete: () => {
  110. this.navLock = false;
  111. }
  112. });
  113. }
  114. } else {
  115. if (this.navLock == false) {
  116. this.navLock = true;
  117. let this_ = this
  118. uni.setNavigationBarColor({
  119. frontColor: "#000000",
  120. backgroundColor: this_.mbgColor,
  121. complete: () => {
  122. this.navLock = false;
  123. }
  124. });
  125. }
  126. }
  127. },
  128. onLoad(e) {
  129. this.settitle();
  130. },
  131. onShow() {
  132. this.getList();
  133. },
  134. methods: {
  135. async settitle() {
  136. let res = await getConfigInfo();
  137. let config = res.data;
  138. uni.setNavigationBarTitle({
  139. title: config.play_name
  140. });
  141. },
  142. changeIndex(index) {
  143. if (this.typetab[index].id) {
  144. this.type = this.typetab[index].id
  145. //this.getList(0)
  146. }
  147. console.log(this.type)
  148. this.selecttype = index;
  149. },
  150. getList() {
  151. getMiniprogramHall().then(res => {
  152. console.log(res, 'getMiniprogramHallgetMiniprogramHall')
  153. this.banners = res.data.banner
  154. this.hotdata = res.data.recommend[0]
  155. this.givedata = res.data.recommend[1]
  156. })
  157. },
  158. detail(value) {
  159. uni.navigateTo({
  160. url: '/pages/video/index?video_id=' + value.video_id
  161. })
  162. },
  163. linkTo(e) {
  164. console.log(e, 'linkTolinkTolinkTo')
  165. let link = e.currentTarget.dataset.link;
  166. let type = e.currentTarget.dataset.type;
  167. if (type == 'tabbar') {
  168. uni.switchTab({
  169. url: link
  170. })
  171. } else {
  172. uni.navigateTo({
  173. url: link
  174. })
  175. }
  176. },
  177. },
  178. }
  179. </script>
  180. <style lang="scss" scoped>
  181. @import "./style/index.scss"
  182. </style>