index.vue 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  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;"
  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" style="min-height: 100px;">
  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 {getConfigInfo} from "@/common/apis/common.js";
  97. import cellGroup from '../../uni_modules/uview-ui/libs/config/props/cellGroup';
  98. export default {
  99. data() {
  100. return {
  101. navLock: false,
  102. banners: [],
  103. hotdata: [],
  104. givedata: [],
  105. typetab: [{
  106. name: '推荐短剧',
  107. id: 1
  108. }, ],
  109. selecttype: 0,
  110. scrollTop: 0,
  111. type: 1,
  112. mbgColor: this.$mbgColor,
  113. }
  114. },
  115. computed: {
  116. },
  117. onPageScroll(e) {
  118. if (e.scrollTop > 44) {
  119. if (this.navLock == false) {
  120. this.navLock = true;
  121. uni.setNavigationBarColor({
  122. frontColor: "#000000",
  123. backgroundColor: "#FFFFFF",
  124. complete: () => {
  125. this.navLock = false;
  126. }
  127. });
  128. }
  129. } else {
  130. if (this.navLock == false) {
  131. this.navLock = true;
  132. let this_ = this
  133. uni.setNavigationBarColor({
  134. frontColor: "#000000",
  135. backgroundColor: this_.mbgColor,
  136. complete: () => {
  137. this.navLock = false;
  138. }
  139. });
  140. }
  141. }
  142. },
  143. onLoad(e) {
  144. this.settitle();
  145. },
  146. onShow() {
  147. this.getList();
  148. },
  149. methods: {
  150. async settitle(){
  151. let config = await getConfigInfo();
  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.banner
  170. this.hotdata = res.recommend[0]
  171. this.givedata = res.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. .card-wrapper {
  219. display: flex;
  220. justify-content: start;
  221. .card {
  222. margin: 6px;
  223. }
  224. }
  225. .home-header {
  226. /* height: 300rpx; */
  227. width: 100%;
  228. position: relative;
  229. border-radius: 0rpx 0rpx 48rpx 48rpx;
  230. }
  231. .home-mendian {
  232. width: 100%;
  233. height: 84rpx;
  234. background: rgba(255, 255, 255, 0.1);
  235. border-radius: 42rpx;
  236. }
  237. .integral-mall-main {
  238. position: relative;
  239. /* margin-top: -104rpx; */
  240. }
  241. .integal-mall-menu {
  242. width: 100%;
  243. height: 190rpx;
  244. background: #FFFFFF;
  245. border-radius: 20rpx;
  246. }
  247. .integral-mall-goods {
  248. width: 100%;
  249. height: 280rpx;
  250. background: #F2F2F2;
  251. border-radius: 16upx;
  252. }
  253. .titleNview-placing {
  254. height: var(--status-bar-height);
  255. padding-top: 44px;
  256. box-sizing: content-box;
  257. }
  258. </style>