index.vue 8.2 KB

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