index.vue 7.3 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/client/zui" 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">
  56. <block v-for="(value,key) in hotdata.data" :key="key">
  57. <view class="box card" style="width:31%; position: relative; border-radius:20rpx;"
  58. @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="mt16 card-wrapper">
  77. <block v-for="(value,key) in givedata.data" :key="key">
  78. <view class="box card" style="width:31%; position: relative; border-radius:20rpx;"
  79. @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. <!-- <home-default :datasa="datasa"></home-default> -->
  89. </view>
  90. </view>
  91. </template>
  92. <script>
  93. import {
  94. getMiniprogramHall
  95. } from '@/common/apis/index.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. onShow() {
  144. this.getList();
  145. },
  146. methods: {
  147. changeIndex(index) {
  148. if (this.typetab[index].id) {
  149. this.type = this.typetab[index].id
  150. //this.getList(0)
  151. }
  152. console.log(this.type)
  153. this.selecttype = index;
  154. },
  155. huanyihuan() {
  156. },
  157. getList() {
  158. getMiniprogramHall().then(res => {
  159. console.log(res, 'getMiniprogramHallgetMiniprogramHall')
  160. this.banners = res.banner
  161. this.hotdata = res.recommend[0]
  162. this.givedata = res.recommend[1]
  163. })
  164. },
  165. saoma() {
  166. //#ifdef APP-PLUS
  167. uni.scanCode({
  168. success: function(res) {
  169. if (res.result.indexOf("uid") != -1) {
  170. var obj = JSON.parse(res.result);
  171. if (obj.uid) {
  172. uni.navigateTo({
  173. url: '/pages/login/reg?uid=' + obj.uid
  174. })
  175. }
  176. } else {
  177. uni.showToast({
  178. title: res.result,
  179. icon: "none"
  180. });
  181. }
  182. }
  183. });
  184. //#endif
  185. },
  186. detail(value) {
  187. uni.navigateTo({
  188. url: '/pages/video/index?video_id=' + value.video_id
  189. })
  190. },
  191. linkTo(e) {
  192. console.log(e, 'linkTolinkTolinkTo')
  193. let link = e.currentTarget.dataset.link;
  194. let type = e.currentTarget.dataset.type;
  195. if (type == 'tabbar') {
  196. uni.switchTab({
  197. url: link
  198. })
  199. } else {
  200. uni.navigateTo({
  201. url: link
  202. })
  203. }
  204. },
  205. },
  206. }
  207. </script>
  208. <style lang="scss" scoped>
  209. .card-wrapper {
  210. display: flex;
  211. justify-content: start;
  212. .card {
  213. margin: 6px;
  214. }
  215. }
  216. .home-header {
  217. /* height: 300rpx; */
  218. width: 100%;
  219. position: relative;
  220. border-radius: 0rpx 0rpx 48rpx 48rpx;
  221. }
  222. .home-mendian {
  223. width: 100%;
  224. height: 84rpx;
  225. background: rgba(255, 255, 255, 0.1);
  226. border-radius: 42rpx;
  227. }
  228. .integral-mall-main {
  229. position: relative;
  230. /* margin-top: -104rpx; */
  231. }
  232. .integal-mall-menu {
  233. width: 100%;
  234. height: 190rpx;
  235. background: #FFFFFF;
  236. border-radius: 20rpx;
  237. }
  238. .integral-mall-goods {
  239. width: 100%;
  240. height: 280rpx;
  241. background: #F2F2F2;
  242. border-radius: 16upx;
  243. }
  244. .titleNview-placing {
  245. height: var(--status-bar-height);
  246. padding-top: 44px;
  247. box-sizing: content-box;
  248. }
  249. </style>