123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
- var homeData = new Vue({
- el: '#container',
- data: {
- userId:0,
- images: [],
- recommends: [],
- recommendPage: 1,
- pageFloors: [],
- advertising: [],
- asideNav: [],
- productIdArr:[],
- },
- methods: {
- getBanners: function(){
- var _self = this;
- $.getJSON("/home/banner").done(function (r) {
- if (r.code === 0 && r.data) {
- _self.images = r.data;
- setTimeout(function(){
- if (isPC) {
- $('#swiper-container').slide({
- mainCell:".swiper-wrapper"
- ,titCell:".swiper-pagination span"
- ,effect: "leftLoop"
- ,prevCell:".swiper-button-prev"
- ,nextCell:".swiper-button-next"
- ,interTime: 2000
- ,autoPlay: true
- ,autoPage: false
- ,trigger: "mouseover"
- });
- } else {
- var swiper = new Swiper('#swiper-container', {
- loop : true,
- autoplay: {
- delay: 2000,
- disableOnInteraction: false
- },
- navigation: {
- nextEl: '.swiper-button-next',
- prevEl: '.swiper-button-prev'
- },
- pagination: {
- el: '.swiper-pagination',
- clickable :true
- }
- });
- }
- },500);
- }
- });
- },
- getRecommends: function(){
- var _self = this;
- $.getJSON("/home/recommend").done(function (r) {
- if (r.code === 0 && r.data) {
- _self.recommends = r.data;
- _self.recommendPage = Math.ceil(r.data.length / 4);
- setTimeout(function(){
- if (isPC) {
- $('#recommendBox').slide({
- mainCell:".swiper-wrapper"
- ,titCell:".swiper-pagination span"
- ,effect: "leftLoop"
- ,interTime: 3000
- ,autoPlay: true
- ,scroll:4
- ,vis:4
- ,trigger: "mouseover"
- });
- } else {
- var swiper = new Swiper('#recommendBox', {
- slidesPerView: 2,
- slidesPerColumn: 2,
- spaceBetween: 0,
- slidesPerGroup: 2,
- autoplay: {
- delay: 3000,
- disableOnInteraction: false
- },
- pagination: {
- el: '.swiper-pagination'
- }
- });
- }
- },500);
- // 获取价格
- // if(_self.userId && _self.userId>0){
- var productIdArr = [];
- _self.recommends.map(function (item) {
- // 0公开价格 1不公开价格 2仅对会员机构公开
- if (item.priceFlag !== 1) {
- productIdArr.push(item.id)
- }
- });
- setProductPrice(_self.recommends, productIdArr.join(","), _self.userId, function () {});
- console.log(_self.recommends)
- // }
- }
- });
- },
- getFloorData: function(){
- var _self = this;
- $.getJSON("/home/floor").done(function (r) {
- if (r.code === 0 && r.data) {
- _self.pageFloors = r.data;
- setTimeout(function(){
- // 设置侧边导航数据
- _self.setAsideNav();
- // 商品专题
- if (isPC) {
- $('#goodsTopic').slide({
- mainCell:".swiper-wrapper"
- ,titCell:".swiper-pagination span"
- ,effect: "leftLoop"
- ,prevCell:".swiper-button-prev"
- ,nextCell:".swiper-button-next"
- ,interTime: 2000
- ,autoPlay: true
- ,autoPage: false
- ,trigger: "mouseover"
- });
- } else {
- var swiper = new Swiper('#goodsTopic', {
- loop : true,
- autoplay: {
- delay: 2000,
- disableOnInteraction: false
- },
- navigation: {
- nextEl: '.swiper-button-next',
- prevEl: '.swiper-button-prev'
- },
- pagination: {
- el: '.swiper-pagination',
- clickable :true
- }
- });
- }
- },500)
- }
- });
- },
- getAdvertising: function(){
- var _self = this;
- $.getJSON("/home/advertising").done(function (r) {
- if (r.code === 0 && r.data) {
- _self.advertising = r.data;
- }
- });
- },
- setAsideNav: function(){
- var _self = this;
- var titArr = $('.floorTit').find('h2,h3');
- for (var i=0; i<titArr.length; i++){
- _self.asideNav.push({
- id: $(titArr[i]).attr("data-id"),
- value: $(titArr[i]).text()
- })
- }
- },
- showSubNav: function(event){
- var el = event.currentTarget;
- var parent = $(el).parent();
- parent.siblings().removeAttr("style").removeClass("on").find(".navItem").hide();
- if (parent.hasClass("on")) {
- parent.removeAttr("style").removeClass("on").find(".navItem").slideUp(200);
- } else {
- var height = parent.height();
- parent.addClass("on").find(".navItem").slideDown(200);
- if (parent.find(".navItem").length>0) {
- setTimeout(function(){
- height += parent.find(".navItem").height();
- parent.css("height",height);
- },200);
- }
- }
- }
- },
- created: function() {
- var userInfo = localStorage.getItem('userInfo');
- if(userInfo){
- this.userId = JSON.parse(userInfo).userId;
- }
- this.getBanners();
- this.getRecommends();
- this.getFloorData();
- },
- mounted: function() {
- this.getAdvertising();
- // 侧边栏滚动判断
- var distance = 0;
- $(window).scroll(function () {
- if($('body').attr("style") && $('body').attr("style").indexOf('fixed')>0){
- return false;
- }
- var scoll = Math.max($('html').scrollTop(), $('body').scrollTop());
- if(scoll >200){
- $('#sideNav').show();
- if(isPC){
- $('#advertising').show();
- // 鼠标滚动楼层
- setTimeout(function () {
- distance = scoll;
- },0);
- $('.floorTit').each(function (i,e) {
- //每个元素距离顶部的距离
- var top = $(e).offset().top;
- if(scoll > distance){
- if(scoll >= (top-300)){
- $('#sideNav').find('a').eq(i).addClass('on').siblings().removeClass("on");
- }
- }else {
- if(scoll >= (top-600)){
- $('#sideNav').find('a').eq(i).addClass('on').siblings().removeClass("on");
- }
- }
- });
- }
- }else {
- $('#sideNav').hide();
- $('#advertising').hide();
- }
- });
- // 置顶
- $('#sideNav').on("click", '.toTop',function () {
- $("html,body").animate({scrollTop:0},500);
- });
- // 侧边导航
- $('#sideNav').on("click", 'a[data-id]',function () {
- var id = $(this).attr('data-id');
- var floorScroll = $('.floorTit [data-id='+id+']').offset().top;
- $('html,body').animate({scrollTop: floorScroll},600);
- });
- //关闭广告图
- $('#advertising').on('click','.close',function () {
- $(this).parents('.item').hide();
- })
- }
- });
|