index.vue 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  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. <view class="home-mendian flex alcenter space plr15 cl-w9" style="display: none;">
  9. <navigator style="width: calc(100% - 80rpx);" url="/pages/client/tuan/ss">
  10. <view class="flex alcenter" style="width: calc(100% - 80rpx);">
  11. <text class="iconfont iconsousuo ft14 mr10"></text>
  12. <text class="text-over ft14" style="width: calc(100% - 60rpx);">请输入搜索内容</text>
  13. </view>
  14. </navigator>
  15. <text @click="saoma()" class="iconfont iconicon_saoma ft24"></text>
  16. </view>
  17. <view class="">
  18. <home-banner :banners="banners"></home-banner>
  19. </view>
  20. </view>
  21. <view class="integral-mall-main plr15" style="margin-top: 30upx;">
  22. <view class="integal-mall-menu flex pt10 pb10">
  23. <view class="col2 text-center" @click="linkTo" data-link="/pages/zhuiju/index" data-type='tabbar'>
  24. <view>
  25. <!-- <image style="width: 100rpx; height: 100rpx;" :src="statics.zhuico[0]"></image> -->
  26. <image style="width: 100rpx; height: 100rpx;" src="/static/icon/index/zuiju.png"></image>
  27. </view>
  28. <view class="ft14 ftw600">追剧</view>
  29. </view>
  30. <view class="col2 text-center bd-left" @click="linkTo" data-link="/pages/index/billboard/index">
  31. <view>
  32. <!-- <image style="width: 100rpx; height: 100rpx;" :src="statics.zhuico[2]"></image> -->
  33. <image style="width: 100rpx; height: 100rpx;" src="/static/icon/index/phb.png"></image>
  34. </view>
  35. <view class="ft14 ftw600">排行</view>
  36. </view>
  37. <view class="col2 text-center bd-left" @click="linkTo" data-link="/pages/index/new/index">
  38. <view>
  39. <!-- <image style="width: 100rpx; height: 100rpx;" :src="statics.zhuico[6]"></image> -->
  40. <image style="width: 100rpx; height: 100rpx;" src="/static/icon/index/new.png"></image>
  41. </view>
  42. <view class="ft14 ftw600">最新</view>
  43. </view>
  44. </view>
  45. <view class="mt24">
  46. <view class="flex alcenter start">
  47. <view class="flex alcenter">
  48. <image style="width: 40rpx;height: 40rpx;" :src="statics.zhuico[0]"></image>
  49. <text class="ft16 ftw600 cl-main ml15">{{ hotdata.subject_name }}</text>
  50. </view>
  51. <!-- <navigator url="/pages/client/tuan/ss?selectIndex=1"> -->
  52. <!-- <view @click="huanyihuan()" class="ft14 cl-notice">换一换</view> -->
  53. <!-- </navigator> -->
  54. </view>
  55. <view class="flex space"
  56. style="display:flex; flex-wrap:wrap; padding: 30upx 30upx 0px 30upx;min-height: 100px;">
  57. <block v-for="(value, key) in hotdata.data" :key="key">
  58. <view class="box pb10 mb15" style="width:31%; border-radius:20rpx;" @click="detail(value)">
  59. <!-- <view class="btn-mini" style="position: absolute; top: 20upx; right: 20upx; border-radius: 10upx;font-size: 18upx;width: 60upx; height: 36upx; z-index: 1;" :style="getBtnStyle">{{value.lxname}}</view> -->
  60. <image class="integral-mall-goods" mode="aspectFill" :src="value.cover_image"></image>
  61. <view class="mt8 plr10 ft14 ftw400 text-center text-over cl-main">{{ value.name }}</view>
  62. </view>
  63. </block>
  64. </view>
  65. </view>
  66. <view class="mt24">
  67. <view class="flex alcenter start">
  68. <view class="flex alcenter">
  69. <image style="width: 40rpx;height: 40rpx;" :src="statics.zhuico[0]"></image>
  70. <text class="ft16 ftw600 cl-main ml15">{{ givedata.subject_name }}</text>
  71. </view>
  72. <!-- <navigator url="/pages/client/tuan/ss?selectIndex=1"> -->
  73. <!-- <view @click="huanyihuan()" class="ft14 cl-notice">换一换</view> -->
  74. <!-- </navigator> -->
  75. </view>
  76. <view class="flex space"
  77. style="display:flex; flex-wrap:wrap; padding: 30upx 30upx 0px 30upx;min-height: 100px;">
  78. <block v-for="(value, key) in givedata.data" :key="key">
  79. <view class="box pb10 mb15" style="width:31%; border-radius:20rpx;" @click="detail(value)">
  80. <image class="integral-mall-goods" mode="aspectFill" :src="value.cover_image"></image>
  81. <view class="mt8 plr10 ft14 ftw400 text-center text-over cl-main">{{ value.name }}</view>
  82. </view>
  83. </block>
  84. </view>
  85. </view>
  86. </view>
  87. </view>
  88. </template>
  89. <script>
  90. import {
  91. getMiniprogramHall
  92. } from '@/common/apis/index.js'
  93. import {
  94. getConfigInfo
  95. } from "@/common/apis/common.js";
  96. import cellGroup from '../../uni_modules/uview-ui/libs/config/props/cellGroup';
  97. export default {
  98. data() {
  99. return {
  100. navLock: false,
  101. banners: [],
  102. hotdata: [],
  103. givedata: [],
  104. typetab: [{
  105. name: '推荐短剧',
  106. id: 1
  107. }, ],
  108. selecttype: 0,
  109. scrollTop: 0,
  110. type: 1,
  111. mbgColor: this.$mbgColor,
  112. }
  113. },
  114. computed: {
  115. },
  116. onPageScroll(e) {
  117. if (e.scrollTop > 44) {
  118. if (this.navLock == false) {
  119. this.navLock = true;
  120. uni.setNavigationBarColor({
  121. frontColor: "#000000",
  122. backgroundColor: "#FFFFFF",
  123. complete: () => {
  124. this.navLock = false;
  125. }
  126. });
  127. }
  128. } else {
  129. if (this.navLock == false) {
  130. this.navLock = true;
  131. let this_ = this
  132. uni.setNavigationBarColor({
  133. frontColor: "#000000",
  134. backgroundColor: this_.mbgColor,
  135. complete: () => {
  136. this.navLock = false;
  137. }
  138. });
  139. }
  140. }
  141. },
  142. onLoad(e) {
  143. this.settitle();
  144. },
  145. onShow() {
  146. this.getList();
  147. },
  148. methods: {
  149. async settitle() {
  150. let res = await getConfigInfo();
  151. let config = res.data;
  152. uni.setNavigationBarTitle({
  153. title: config.play_name
  154. });
  155. },
  156. changeIndex(index) {
  157. if (this.typetab[index].id) {
  158. this.type = this.typetab[index].id
  159. //this.getList(0)
  160. }
  161. console.log(this.type)
  162. this.selecttype = index;
  163. },
  164. huanyihuan() {
  165. },
  166. getList() {
  167. getMiniprogramHall().then(res => {
  168. console.log(res, 'getMiniprogramHallgetMiniprogramHall')
  169. this.banners = res.data.banner
  170. this.hotdata = res.data.recommend[0]
  171. this.givedata = res.data.recommend[1]
  172. })
  173. },
  174. saoma() {
  175. //#ifdef APP-PLUS
  176. uni.scanCode({
  177. success: function(res) {
  178. if (res.result.indexOf("uid") != -1) {
  179. var obj = JSON.parse(res.result);
  180. if (obj.uid) {
  181. uni.navigateTo({
  182. url: '/pages/login/reg?uid=' + obj.uid
  183. })
  184. }
  185. } else {
  186. uni.showToast({
  187. title: res.result,
  188. icon: "none"
  189. });
  190. }
  191. }
  192. });
  193. //#endif
  194. },
  195. detail(value) {
  196. uni.navigateTo({
  197. url: '/pages/video/index?video_id=' + value.video_id
  198. })
  199. },
  200. linkTo(e) {
  201. console.log(e, 'linkTolinkTolinkTo')
  202. let link = e.currentTarget.dataset.link;
  203. let type = e.currentTarget.dataset.type;
  204. if (type == 'tabbar') {
  205. uni.switchTab({
  206. url: link
  207. })
  208. } else {
  209. uni.navigateTo({
  210. url: link
  211. })
  212. }
  213. },
  214. },
  215. }
  216. </script>
  217. <style lang="scss" scoped>
  218. .home-header {
  219. /* height: 300rpx; */
  220. width: 100%;
  221. position: relative;
  222. border-radius: 0rpx 0rpx 48rpx 48rpx;
  223. }
  224. .home-mendian {
  225. width: 100%;
  226. height: 84rpx;
  227. background: rgba(255, 255, 255, 0.1);
  228. border-radius: 42rpx;
  229. }
  230. .integral-mall-main {
  231. position: relative;
  232. /* margin-top: -104rpx; */
  233. }
  234. .integal-mall-menu {
  235. width: 100%;
  236. height: 190rpx;
  237. background: #FFFFFF;
  238. border-radius: 20rpx;
  239. }
  240. .integral-mall-goods {
  241. width: 100%;
  242. height: 280rpx;
  243. background: #F2F2F2;
  244. border-radius: 16upx;
  245. }
  246. .titleNview-placing {
  247. height: var(--status-bar-height);
  248. padding-top: 44px;
  249. box-sizing: content-box;
  250. }
  251. </style>