index.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. // var isFormal = window.location.href.indexOf('www.caimei365.com') !== -1;
  2. // if(isFormal){var _czc = _czc || [];_czc.push(["_setAccount", "1279558759"]);}
  3. var homeData = new Vue({
  4. el: '#container',
  5. data: {
  6. userId:0,
  7. asideNav: [],
  8. liveList:[],//右侧直播模块
  9. cmImageList:[],//右侧活动模块
  10. infoList:[],//右侧文章模块
  11. popupFlag:false,
  12. homePageFloor:[]//楼层
  13. },
  14. filters: {
  15. NumFormat: function(value) {//处理金额
  16. return Number(value).toFixed(2);
  17. },
  18. },
  19. methods: {
  20. // 美博会弹窗链接
  21. popupPage:function(){
  22. this.popupFlag=false;
  23. window.location.href='/product/activity-306.html';
  24. localStorage.setItem('lockTime',Date.now());
  25. window.localStorage.setItem('isActivityStatus',true);
  26. },
  27. // 关闭美博会弹窗
  28. closePopup:function(){
  29. this.popupFlag=false;
  30. $('.Popup').slideUp(100);
  31. localStorage.setItem('lockTime',Date.now());
  32. localStorage.setItem('isActivityStatus',true);
  33. },
  34. diffTime:function(time){
  35. var date = Date.now();
  36. console.log('缓存时间戳',time);
  37. console.log('当前时间戳',date);
  38. console.log('计算时间戳',(date-time));
  39. return (date -time) < 2*60*1000 ? false : true
  40. },
  41. // 页面主图轮播
  42. swiperBanner: function(){
  43. setTimeout(function(){
  44. if (isPC) {
  45. $('#swiper-container').slide({
  46. mainCell:".swiper-wrapper-banner",
  47. titCell:".swiper-pagination-banner span",
  48. effect: "leftLoop",
  49. prevCell:".swiper-button-prev",
  50. nextCell:".swiper-button-next",
  51. interTime: 3000,
  52. autoPlay: true,
  53. autoPage: false,
  54. trigger: "mouseover"
  55. });
  56. } else {
  57. var swiper = new Swiper('#swiper-container', {
  58. loop : true,
  59. autoplay: {
  60. delay: 3000,
  61. disableOnInteraction: false
  62. },
  63. navigation: {
  64. nextEl: '.swiper-button-next',
  65. prevEl: '.swiper-button-prev'
  66. },
  67. pagination: {
  68. el: '.swiper-pagination',
  69. clickable :true
  70. }
  71. });
  72. }
  73. },300);
  74. },
  75. GetHomeRightData: function(){
  76. var _self = this;
  77. PublicApi.GetHomeRightData({ source: 1 },function(response){
  78. if(response.code == 0){
  79. var data = response.data;
  80. _self.liveList = data.liveList;
  81. _self.cmImageList = data.cmImageList;
  82. _self.infoList = data.infoList;
  83. }else{
  84. CAIMEI.Alert(response.msg, '确定');
  85. }
  86. });
  87. },
  88. GetHomeData: function(){//获取首页楼层
  89. var _self = this;
  90. PublicApi.GetHomeData({ source: 1,userId: _self.userId },function(response){
  91. if(response.code == 0){
  92. var data = response.data;
  93. _self.homePageFloor = data.homePageFloor;
  94. setTimeout(function(){
  95. // 图片懒加载
  96. $("img[data-original]").lazyload();
  97. _self.setAsideNav();
  98. _self.swiperFloor();
  99. // 设置页面查看更多
  100. _self.setReadeMore();
  101. },500);
  102. }else{
  103. CAIMEI.Alert(response.msg, '确定');
  104. }
  105. });
  106. },
  107. PromotionsFormat:function(promo){//促销活动类型数据处理
  108. if(promo!=null){
  109. if(promo.type == 1 && promo.mode == 1){
  110. return true
  111. }else{
  112. return false
  113. }
  114. }
  115. return false
  116. },
  117. setAsideNav: function(){
  118. var _self = this;
  119. if (isPC) {
  120. var titArr = $('.section_page_title').find('h1');
  121. _self.asideNav = [];
  122. for (var i=0; i<titArr.length; i++){
  123. _self.asideNav.push({
  124. id: $(titArr[i]).attr("data-id"),
  125. value: $(titArr[i]).text()
  126. })
  127. }
  128. }
  129. },
  130. // 商品楼层轮播
  131. swiperFloor: function(){
  132. setTimeout(function(){
  133. // 商品轮播
  134. if (isPC) {
  135. var cell = $(".swiper-pagination-floor");
  136. var size = Math.ceil(cell.attr("data-id")/5);
  137. var span = '';
  138. for (var i = 0; i < size; i++) {
  139. span += '<span></span>';
  140. }
  141. cell.html(span);
  142. $('#recommendBox').slide({
  143. mainCell:".recommendBox-wrapper",
  144. titCell:".swiper-pagination-floor span",
  145. effect: "leftLoop",
  146. autoPlay: false,
  147. scroll:5,
  148. vis:5
  149. });
  150. } else {
  151. var swiper = new Swiper('#recommendBox', {
  152. slidesPerView: 2,
  153. slidesPerColumn: 2,
  154. spaceBetween:0,
  155. slidesPerGroup: 2,
  156. autoplay: {
  157. delay: 3000,
  158. disableOnInteraction: false
  159. },
  160. pagination: {
  161. el: '.swiper-pagination'
  162. }
  163. });
  164. }
  165. // 图片懒加载
  166. setTimeout(function(){
  167. $("#recommendBox img[data-original]").lazyload();
  168. },0)
  169. },500);
  170. },
  171. // showSubNav: function(event){
  172. // var el = event.currentTarget;
  173. // var parent = $(el).parent();
  174. // parent.siblings().removeAttr("style").removeClass("on").find(".navItem").hide();
  175. // if (parent.hasClass("on")) {
  176. // parent.removeAttr("style").removeClass("on").find(".navItem").slideUp(200);
  177. // } else {
  178. // var height = parent.height();
  179. // parent.addClass("on").find(".navItem").slideDown(200);
  180. // if (parent.find(".navItem").length>0) {
  181. // setTimeout(function(){
  182. // height += parent.find(".navItem").height();
  183. // parent.css("height",height);
  184. // },200);
  185. // }
  186. // }
  187. // },
  188. // 设置页面查看更多按钮显示
  189. setReadeMore: function(){
  190. $(".section_page_more").each(function(){
  191. var id = $(this).attr('data-id')*1;
  192. var size = $(this).attr('data-size')*1;
  193. var el = $(this);
  194. var readMore = false;
  195. if (isPC) {
  196. if([1,3].indexOf(id) !== -1 && size>7) {
  197. readMore = true;
  198. }
  199. if([2,4].indexOf(id) !== -1 && size>5) {
  200. readMore = true;
  201. }
  202. if([5,6,7].indexOf(id) !== -1 && size>10) {
  203. readMore = true;
  204. }
  205. } else {
  206. if([1,3].indexOf(id) !== -1 && size>3) {
  207. readMore = true;
  208. }
  209. if([2,4].indexOf(id) !== -1 && size>2) {
  210. readMore = true;
  211. }
  212. if([5,6,7].indexOf(id) !== -1 && size>4) {
  213. readMore = true;
  214. }
  215. }
  216. if (readMore) {
  217. el.addClass("show");
  218. } else {
  219. el.parents(".section_page").find(".section_page_main").addClass("max");
  220. }
  221. });
  222. },
  223. // 点击查看更多
  224. showMoreItem: function(e){
  225. var el = e.currentTarget;
  226. $(el).parents(".section_page").find(".section_page_main").addClass("max");
  227. $(el).parents(".section_page_more").hide();
  228. },
  229. // 设置页面商品价格
  230. setPriceShown: function(){
  231. var productIds = [];
  232. var userId = GLOBAL_USER_ID;
  233. var shopId = GLOBAL_SHOP_ID;
  234. var userIdentity = GLOBAL_USER_IDENTITY;
  235. $(".main_price_text").each(function(){
  236. var id = $(this).attr('data-id');
  237. if (productIds.indexOf(id) === -1) {
  238. productIds .push(id);
  239. }
  240. });
  241. // 获取商品价格列表
  242. $.getJSON(coreServer+"/commodity/price/list",{
  243. userId: GLOBAL_USER_ID,
  244. productIds: productIds.join(',')
  245. }).done(function (res) {
  246. if (res.code === 0 && res.data) {
  247. var priceList = res.data;
  248. $(".main_price_none").hide();
  249. $(".price_grade_club").hide();
  250. $(".price_grade_shop").hide();
  251. $(".main_price_login").show();
  252. priceList.map(function(price){
  253. // userIdentity用户身份: 0、个人 1、协销 2、会员机构 3、供应商 4,普通机构
  254. // priceFlag: 0公开价格 1不公开价格 2仅对会员机构公开
  255. var parent = $(".main_price_text.product_"+ price.productId);
  256. var priceFlag = parent.find(".main_price_login").attr('data-id')*1;
  257. if (priceFlag===3 || userIdentity===2 || (priceFlag === 0 && userIdentity===4 ) || (userIdentity===3 && shopId === price.shopId*1)) {
  258. parent.find(".price_o_num").text(Number(price.originalPrice).toFixed(2));
  259. parent.find(".price_num").text(Number(price.price).toFixed(2));
  260. if(price.promotions && price.promotions.type*1===1 && price.promotions.mode*1===1){
  261. parent.find(".main_price_show").hide();
  262. parent.find(".main_price_show.none").show();
  263. parent.find(".price_unit").show();
  264. }
  265. } else if (userIdentity===4 && priceFlag === 2){
  266. parent.find(".main_price_show").hide();
  267. parent.find(".price_grade_club").show();
  268. } else {
  269. parent.find(".main_price_show").hide();
  270. parent.find(".price_grade_shop").show();
  271. }
  272. });
  273. }
  274. });
  275. }
  276. },
  277. created: function() {
  278. if(GLOBAL_TOKEN){
  279. this.userId = GLOBAL_USER_ID;
  280. }
  281. },
  282. mounted: function() {
  283. var _this = this;
  284. // 页面主图轮播
  285. this.swiperBanner();
  286. // 获取设置商品价格
  287. if (GLOBAL_USER_ID) {
  288. this.GetHomeData();
  289. }else{
  290. // 设置页面查看更多
  291. this.setReadeMore();
  292. // 设置右侧导航
  293. this.setAsideNav();
  294. // 推荐专区商品轮播
  295. this.swiperFloor();
  296. }
  297. // Dom加载后
  298. this.$nextTick(function(){
  299. // 图片懒加载
  300. $("img[data-original]").lazyload();
  301. });
  302. // 侧边栏滚动判断
  303. var distance = 0;
  304. $(window).scroll(function () {
  305. if($('body').attr("style") && $('body').attr("style").indexOf('fixed')>0){
  306. return false;
  307. }
  308. var scrollSize = Math.max($('html').scrollTop(), $('body').scrollTop());
  309. if(scrollSize >300){
  310. $('#sideNav').show();
  311. if(isPC){
  312. // $('#advertising').show();
  313. // 鼠标滚动楼层
  314. setTimeout(function () {
  315. distance = scrollSize;
  316. },0);
  317. // 侧边导航栏高亮
  318. $('.section_page_title').each(function (i,e) {
  319. //每个元素距离顶部的距离
  320. var top = $(e).offset().top;
  321. if(scrollSize > distance){
  322. if(scrollSize >= (top-300)){
  323. $('#sideNav').find('a').eq(i).addClass('on').siblings().removeClass("on");
  324. }
  325. }else {
  326. if(scrollSize >= (top-600)){
  327. $('#sideNav').find('a').eq(i).addClass('on').siblings().removeClass("on");
  328. }
  329. }
  330. });
  331. // 侧边模块固定 fixed
  332. if($('#fixed-wrap').length>0 && $(window).height()>750) {
  333. var tocWrap = $('#fixed-wrap');
  334. var changeSize = $("#globalHead").outerHeight() + $("#swiper-container").outerHeight() + $("#sidebar").outerHeight();
  335. scrollSize >= changeSize ? tocWrap.addClass("fixed") : tocWrap.removeClass("fixed");
  336. }
  337. }
  338. }else {
  339. $('#sideNav').hide();
  340. $('#advertising').hide();
  341. }
  342. });
  343. // 侧边导航
  344. setTimeout(function(){
  345. $('#sideNav').on("click", 'a[data-id]',function () {
  346. var id = $(this).attr('data-id');
  347. var floorScroll = $('.section_page_title [data-id='+id+']').offset().top-200;
  348. $('html,body').animate({scrollTop: floorScroll},600);
  349. });
  350. },2000);
  351. //关闭广告图
  352. // $('#advertising').on('click','.close',function () {
  353. // $(this).parents('.item').hide();
  354. // });
  355. // var isActivityStatus = localStorage.getItem('isActivityStatus');
  356. // //新加优惠券弹窗
  357. // if(isActivityStatus){
  358. // var lockTime = localStorage.getItem('lockTime');
  359. // _this.popupFlag = this.diffTime(lockTime);
  360. // }else{
  361. // setTimeout(function () {
  362. // _this.popupFlag = true;
  363. // },1000);
  364. // }
  365. }
  366. });