index.vue 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <template>
  2. <view class="container home clearfix" :style="{ paddingTop: CustomBar + 'px' }">
  3. <tui-skeleton
  4. v-if="skeletonShow"
  5. backgroundColor="#fafafa"
  6. borderRadius="10rpx"
  7. :isLoading="true"
  8. :loadingType="5"
  9. />
  10. <customer ref="customer" :isScroll="isScroll" :navbar-data="nvabarData" :navBarsList="navBarsList" v-if="isNavRequest" /> <!-- 主页内容 -->
  11. <view class="container-home tui-skeleton">
  12. <!-- 轮播 -->
  13. <banner :list="bannerImageList" v-if="isNavRequest" />
  14. <!-- 金刚区菜单 -->
  15. <navbars :list="shortcutList" v-if="isNavRequest" />
  16. <!-- 优惠券入口 -->
  17. <!-- <coupon v-if="isNavRequest" /> -->
  18. <!-- 直播 -->
  19. <!-- <page-special :templateData="templateData" v-if="isLiveRequest" /> -->
  20. <!-- 新品橱窗 -->
  21. <hot-floor
  22. :list="hotListPageFloor"
  23. :usserIdentity="userIdentity"
  24. :autoplay="autoplay"
  25. v-if="isRequest && hotListPageFloor.length > 0"
  26. />
  27. </view>
  28. <!-- 楼层 -->
  29. <view class="container-section tui-skeleton">
  30. <!-- <page-floor :list="pageList" :userIdentity="userIdentity" :pageType="1" v-if="isRequest" /> -->
  31. <zone-floor :list="pageList" :userIdentity="userIdentity" :pageType="1" v-if="isRequest" />
  32. <supplier-list :supplierObj="supplierObj" v-if="isRequest" />
  33. <recommend-floor :recommendProducts="recommendProducts" :userIdentity="userIdentity" v-if="isRequest" />
  34. </view>
  35. <!-- 侧边 -->
  36. <scroll-top :isScrollTop="isScrollTop" :isShowSupplier="true" :isShowKefu='false' :bottom="130" />
  37. <!-- 活动弹窗 -->
  38. <!-- <activityAlert :show="isActivity" @click="handleClick" @cancel="handleCancelClick" /> -->
  39. <!-- 活动弹窗 -->
  40. <activityAlert :show="centerImageShow" :list="centerImage" @click="handleCenterImageClick" @cancel="handleCenterImageCancelClick" />
  41. <!-- 采美豆提示弹窗 -->
  42. <activityBean
  43. v-if="isActivityBean"
  44. :show="isActivityBean"
  45. :beansType="beansType"
  46. :beanNumber="beanNumber"
  47. @cancel="handleBeanlClick"
  48. />
  49. <cm-seller-modal :suid="suid" />
  50. </view>
  51. </template>
  52. <script>
  53. import { mapState, mapMutations } from 'vuex'
  54. import customer from './components/customer.vue'
  55. import banner from './components/banner.vue'
  56. import navbars from './components/navbars.vue'
  57. import coupon from './components/coupon.vue'
  58. import pageFloor from './components/pageFloor.vue'
  59. import hotFloor from './components/hotFloor.vue'
  60. import zoneFloor from './components/zoneFloor.vue'
  61. import recommendFloor from './components/recommendFloor.vue'
  62. import pageSpecial from './components/pageSpecial.vue'
  63. import supplierList from './components/supplierList.vue'
  64. import activityAlert from '@/components/cm-module/activity/activities.vue'
  65. import activityBean from '@/components/cm-module/activity/activityBean.vue'
  66. import cmSellerModal from '@/components/cm-share-popup/cm-seller-modal.vue'
  67. import homeMiXins from './index.js'
  68. export default {
  69. mixins: [ homeMiXins ],
  70. components: {
  71. customer,
  72. banner,
  73. navbars,
  74. coupon,
  75. pageFloor,
  76. zoneFloor,
  77. recommendFloor,
  78. hotFloor,
  79. pageSpecial,
  80. supplierList,
  81. activityAlert,
  82. activityBean,
  83. cmSellerModal
  84. },
  85. data() {
  86. return {
  87. nvabarData: {
  88. // 顶部自定义导航
  89. showCapsule: 1, // 是否显示左上角图标 1表示显示 0表示不显示,
  90. showSearch: 0,
  91. title: '采美采购商城', // 导航栏 中间的标题
  92. haveBack: false,
  93. textLeft: this.$store.state.isIphone,
  94. textColor: '#333333'
  95. },
  96. CustomBar: this.CustomBar, // 顶部导航栏高度
  97. isScrollTop: false,
  98. }
  99. },
  100. onLoad(option) {
  101. this.options = option
  102. },
  103. computed: {
  104. ...mapState(['hasLogin', 'userInfo'])
  105. },
  106. onPageScroll(e) {
  107. if (e.scrollTop > 0) {
  108. this.isScroll = true
  109. } else {
  110. this.isScroll = false
  111. }
  112. if (e.scrollTop > 400) {
  113. this.isScrollTop = true
  114. } else {
  115. this.isScrollTop = false
  116. }
  117. },
  118. onPullDownRefresh() {
  119. //下拉刷新
  120. this.getHomeInformation()
  121. uni.stopPullDownRefresh()
  122. },
  123. onShareAppMessage(res) {
  124. //分享转发
  125. if (res.from === 'button') {
  126. // 来自页面内转发按钮
  127. }
  128. return {
  129. title: '生美医美正品采购服务平台',
  130. path: 'pages/tabBar/home/index',
  131. imageUrl: 'https://static.caimei365.com/app/img/bg/min-banner.jpg'
  132. }
  133. },
  134. onShow() {
  135. this.autoplay = true
  136. this.GetWxAuthorize()
  137. const suid = this.options.suid ? this.options.suid : uni.getStorageSync('suid') * 1 ? uni.getStorageSync('suid') * 1 : 0 // 协销userId
  138. const spId = this.options.spId ? this.options.spId : uni.getStorageSync('spId') * 1 ? uni.getStorageSync('spId') * 1 : 0 // 协销id
  139. const isShare = this.options.type == 4 ? true : false //是否从分享页进入
  140. if ((isShare || uni.getStorageSync('suid') * 1 > 0) && this.userInfo.userIdentity !== 1) { // 分享进入 且 用户非协销
  141. if (!uni.getStorageSync('spUserId') || (uni.getStorageSync('spUserId') * 1 === uni.getStorageSync('suid') * 1)) {// 如果未分配或者分配相同
  142. this.suid = suid
  143. uni.setStorageSync('suid', suid)
  144. uni.setStorageSync('spId', spId)
  145. } else {
  146. uni.setStorageSync('suid', 0)
  147. this.suid = 0
  148. uni.setStorageSync('spId', 0)
  149. }
  150. }
  151. console.log(this.suid, 'uni.getStorageSync(\'spId\')', uni.getStorageSync('spId'))
  152. },
  153. onHide() {
  154. this.autoplay = false
  155. }
  156. }
  157. </script>
  158. <style lang="scss">
  159. page {
  160. background-color: #ffffff;
  161. }
  162. .container-section {
  163. width: 100%;
  164. height: auto;
  165. background-color: #f7f7f7;
  166. }
  167. </style>