|
|
/**
|
|
|
* 品牌店铺首页
|
|
|
*/
|
|
|
|
|
|
var $ = require('yoho-jquery'),
|
|
|
IScroll = require('yoho-iscroll/build/iscroll-probe'),
|
|
|
lazyLoad = require('yoho-jquery-lazyload'),
|
|
|
Swiper = require('yoho-swiper');
|
|
|
var bannerSwiper,
|
|
|
multiSwiper,
|
|
|
myScroll,
|
|
|
imgH,
|
|
|
nav1H,
|
|
|
main1H,
|
|
|
main1oH,
|
|
|
nav2H,
|
|
|
main2oH,
|
|
|
scH,
|
|
|
$nav1 = $('#pos-nav'),
|
|
|
$nav2 = $('#pos-list'),
|
|
|
sTop,
|
|
|
toTop = false;
|
|
|
|
|
|
var tip = require('../plugin/tip'),
|
|
|
filter = require('../plugin/filter'),
|
|
|
loading = require('../plugin/loading');
|
|
|
|
|
|
var $subNav = $('.home-sub-nav'),
|
|
|
$collect = $('#collect'),
|
|
|
$goodsContainer = $('#goods-container'),
|
|
|
$goodsChildren = $goodsContainer.children(),
|
|
|
$ngc = $($goodsChildren.get(0)),
|
|
|
$pgc = $($goodsChildren.get(1)),
|
|
|
$dgc = $($goodsChildren.get(2)),
|
|
|
shopId = $('input[name="shop_id"]').val(),
|
|
|
appVersion = $('input[name="app_version"]').val(),
|
|
|
brand = $('input[name="brand"]').val(),
|
|
|
coverChannel = $('input[name="coverChannel"]').val(),
|
|
|
favId = $('input[name="favId"]').val(),
|
|
|
uid = $('input[name="uid"]').val();
|
|
|
|
|
|
var winH = $(window).height(),
|
|
|
noResult = '<p class="no-result">未找到相关搜索结果</p>';
|
|
|
|
|
|
require('../common');
|
|
|
// 默认筛选条件
|
|
|
var defaultOpt = require('../common/query-param');
|
|
|
|
|
|
// pagecache判断app设置cookie,判断是否收藏
|
|
|
(function() {
|
|
|
var param = location.search;
|
|
|
var isApp = param.indexOf('app_version') > -1 || param.indexOf('appVersion') > -1;
|
|
|
|
|
|
//不阻塞字体文件加载
|
|
|
setTimeout(function() {
|
|
|
if (isApp) {
|
|
|
$.ajax({
|
|
|
type: 'GET',
|
|
|
url: '/product/index/shopAppCookie',
|
|
|
xhrFields: {
|
|
|
withCredentials: true
|
|
|
},
|
|
|
error: function() {
|
|
|
tip.show('网络断开连接了~');
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
$.ajax({
|
|
|
type: 'GET',
|
|
|
url: '/product/index/shopFav',
|
|
|
xhrFields: {
|
|
|
withCredentials: true
|
|
|
},
|
|
|
data: {
|
|
|
shopId: $('.shopid').val(),
|
|
|
},
|
|
|
success: function(data) {
|
|
|
if (data.collect) {
|
|
|
$collect.attr('class', 'already-collect');
|
|
|
}
|
|
|
},
|
|
|
error: function() {
|
|
|
tip.show('网络断开连接了~');
|
|
|
}
|
|
|
});
|
|
|
if ($('.popularity-title').data('skns')) {
|
|
|
$.ajax({
|
|
|
type: 'GET',
|
|
|
url: '/product/new/shop/hotlist',
|
|
|
xhrFields: {
|
|
|
withCredentials: true
|
|
|
},
|
|
|
data: {
|
|
|
skns: $('.popularity-title').data('skns'),
|
|
|
},
|
|
|
success: function(data) {
|
|
|
$('.product-warp>.goods-container').html(data)
|
|
|
},
|
|
|
error: function() {
|
|
|
tip.show('网络断开连接了~');
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
$.ajax({
|
|
|
type: 'GET',
|
|
|
url: '/product/search/filter',
|
|
|
data: {
|
|
|
shop_id: $('.shopid').val(),
|
|
|
type: 'default',
|
|
|
order: '0',
|
|
|
channel: defaultOpt.channel
|
|
|
},
|
|
|
success: function(data) {
|
|
|
$goodsContainer.append(data);
|
|
|
|
|
|
// 初始化filter&注册filter回调
|
|
|
filter.initFilter({
|
|
|
fCbFn: search,
|
|
|
hCbFn: function() {
|
|
|
|
|
|
// 切换active状态到$pre上
|
|
|
$pre.addClass('active');
|
|
|
$pre.siblings('.filter').removeClass('active');
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
}, 0)
|
|
|
|
|
|
}());
|
|
|
|
|
|
|
|
|
var $listNav = $('#list-nav'),
|
|
|
|
|
|
// 导航数据信息
|
|
|
navInfo = {
|
|
|
new: {
|
|
|
order: 1,
|
|
|
reload: true,
|
|
|
page: 1,
|
|
|
end: false
|
|
|
},
|
|
|
hot: {
|
|
|
order: 1,
|
|
|
reload: true,
|
|
|
page: 1,
|
|
|
end: false
|
|
|
},
|
|
|
newest: {
|
|
|
order: 0,
|
|
|
reload: true,
|
|
|
page: 0,
|
|
|
end: false
|
|
|
},
|
|
|
price: {
|
|
|
order: 1,
|
|
|
reload: true,
|
|
|
page: 0,
|
|
|
end: false
|
|
|
},
|
|
|
discount: {
|
|
|
order: 1,
|
|
|
reload: true,
|
|
|
page: 0,
|
|
|
end: false
|
|
|
}
|
|
|
},
|
|
|
$pre = $listNav.find('.active'), // 纪录进入筛选前的active项,初始为选中项
|
|
|
searching;
|
|
|
|
|
|
var viewType = 1, // 1-首页,2-上新,3-人气
|
|
|
listCount = $('.category-list li').length,
|
|
|
listModValue = 4 - listCount % 4,
|
|
|
listIndex;
|
|
|
|
|
|
|
|
|
// $('.main-wrap').css({
|
|
|
// position: 'static'
|
|
|
// });
|
|
|
|
|
|
// 焦点效果
|
|
|
if ($('.banner-swiper').find('li').size() > 1) {
|
|
|
bannerSwiper = new Swiper('.banner-swiper', {
|
|
|
lazyLoading: true,
|
|
|
lazyLoadingInPrevNext: true,
|
|
|
loop: true,
|
|
|
autoplay: 3000,
|
|
|
autoplayDisableOnInteraction: false,
|
|
|
paginationClickable: true,
|
|
|
slideElement: 'li',
|
|
|
pagination: '.banner-top .pagination-inner'
|
|
|
});
|
|
|
}
|
|
|
|
|
|
if ($('.multi-browse').find('li').size() > 1) {
|
|
|
multiSwiper = new Swiper('.multi-browse', {
|
|
|
lazyLoading: true,
|
|
|
lazyLoadingInPrevNext: true,
|
|
|
lazyLoadingOnTransitionStart: true,
|
|
|
grabCursor: true,
|
|
|
slidesPerView: 'auto',
|
|
|
slideElement: 'li',
|
|
|
watchSlidesVisibility: true
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// 根据热门品类的个数来改变样式展示
|
|
|
//
|
|
|
if ($('.category-list li').length % 4 !== 0) {
|
|
|
$('.category-list li:last-child').addClass('category-list-last-li');
|
|
|
}
|
|
|
|
|
|
if ($('.category-list li').length < 4) {
|
|
|
$('.category-list').addClass('category-list-top-board');
|
|
|
$('.category-list').find('.buriedpoint').addClass('category-list-only-one-row');
|
|
|
} else if ($('.category-list li').length >= 5) {
|
|
|
for (listIndex = listModValue; listIndex >= 0; listIndex--) {
|
|
|
$('.category-list li').eq(listCount - 4 + listIndex - 1).addClass('category-list-last-full-row');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function getPageGoods(info) {
|
|
|
var nav, navType;
|
|
|
|
|
|
if (searching) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
navType = info.data.type;
|
|
|
nav = navInfo[navType];
|
|
|
// 不需要重新加载并且数据请求结束
|
|
|
if (nav.end && toTop) {
|
|
|
toTop = false;
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (info.data && coverChannel) {
|
|
|
info.data.coverChannel = coverChannel;
|
|
|
}
|
|
|
|
|
|
searching = true;
|
|
|
$.ajax({
|
|
|
type: 'GET',
|
|
|
url: info.url,
|
|
|
data: info.data,
|
|
|
success: function(data) {
|
|
|
nav.end = true;
|
|
|
info.callBack(data);
|
|
|
},
|
|
|
error: function() {
|
|
|
tip.show('网络断开连接了~');
|
|
|
searching = false;
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
function getParam(req) {
|
|
|
if (brand) {
|
|
|
req.data.brand = brand;
|
|
|
}
|
|
|
|
|
|
if (shopId) {
|
|
|
req.data.shop_id = shopId;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function newData(callback) {
|
|
|
var req = {};
|
|
|
|
|
|
req.url = '/product/search/search';
|
|
|
req.data = {
|
|
|
type: 'new',
|
|
|
order: '0',
|
|
|
page: navInfo.new.page,
|
|
|
tagNew: '1',
|
|
|
appVersion: appVersion
|
|
|
};
|
|
|
|
|
|
getParam(req);
|
|
|
|
|
|
req.callBack = function(data) {
|
|
|
$('#new-arrival').append(data);
|
|
|
navInfo.new.page++;
|
|
|
lazyLoad($('#new-arrival .lazy'));
|
|
|
scH = $('#scroller').outerHeight();
|
|
|
searching = false;
|
|
|
callback && $.isFunction(callback) && callback();
|
|
|
};
|
|
|
var result = getPageGoods(req);
|
|
|
if (!result) {
|
|
|
callback && callback();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function hotData(callback) {
|
|
|
var req = {};
|
|
|
|
|
|
req.url = '/product/search/search';
|
|
|
req.data = {
|
|
|
type: 'hot',
|
|
|
order: '1',
|
|
|
page: navInfo.hot.page,
|
|
|
showTag: '1',
|
|
|
appVersion: appVersion
|
|
|
};
|
|
|
|
|
|
getParam(req);
|
|
|
|
|
|
req.callBack = function(data) {
|
|
|
$('#popularity').append(data);
|
|
|
navInfo.hot.page++;
|
|
|
lazyLoad($('#popularity .lazy'));
|
|
|
scH = $('#scroller').outerHeight();
|
|
|
searching = false;
|
|
|
callback && $.isFunction(callback) && callback();
|
|
|
};
|
|
|
var result = getPageGoods(req);
|
|
|
if (!result) {
|
|
|
callback && callback();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function tabChange(dom, index) {
|
|
|
var li = dom.eq(index);
|
|
|
|
|
|
dom.removeClass('active color');
|
|
|
li.addClass('active color');
|
|
|
}
|
|
|
|
|
|
|
|
|
// 首页导航
|
|
|
(function(nav, posNav, main) {
|
|
|
var scrollToNav1 = function() {
|
|
|
window.scrollTo(0, $('#nav').offset().top + 5)
|
|
|
}
|
|
|
$(nav + ' li, ' + posNav + ' li').not('li.all-goods').on('touchstart', function() {
|
|
|
var index = $(this).index(),
|
|
|
activeTab = $(this).attr('tab');
|
|
|
|
|
|
if ($('.filter-mask').length && !$('.filter-mask').hasClass('hide')) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
$nav1.removeClass('fixed-top');
|
|
|
tabChange($(nav + ' li'), index);
|
|
|
tabChange($(posNav + ' li'), index);
|
|
|
$(main).hide();
|
|
|
$('#' + activeTab).fadeIn();
|
|
|
if (activeTab === 'new-arrival') {
|
|
|
toTop = true;
|
|
|
newData(scrollToNav1);
|
|
|
viewType = 2;
|
|
|
} else if (activeTab === 'popularity') {
|
|
|
toTop = true;
|
|
|
hotData(scrollToNav1);
|
|
|
viewType = 3;
|
|
|
} else if (activeTab === 'home-page') {
|
|
|
$nav1.removeClass('fixed-top absolute');
|
|
|
$nav2.removeClass('fixed-top absolute');
|
|
|
viewType = 1;
|
|
|
scrollToNav1();
|
|
|
}
|
|
|
scH = $('#scroller').outerHeight();
|
|
|
});
|
|
|
}('#nav', '#pos-nav', '.main'));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function scrollHandler() {
|
|
|
var scrollCall,
|
|
|
sTop = $(document).scrollTop(),
|
|
|
scH = $('#scroller').outerHeight(),
|
|
|
nav1OffsetTop = $('#nav').length ? $('#nav').offset().top : 0,
|
|
|
nav2OffsetTop = $('#list-nav').length ? $('#list-nav').offset().top : 0;
|
|
|
|
|
|
var tra;
|
|
|
//分页加载店铺商品列表
|
|
|
if (sTop + winH > scH - 0.25 * $goodsContainer.height() - 50) {
|
|
|
if ($pre !== undefined) {
|
|
|
search({
|
|
|
type: 'shop_id',
|
|
|
id: shopId,
|
|
|
brand: brand,
|
|
|
url: '/product/search/search',
|
|
|
nextPage: true
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//分页加载“上新”和“人气”商品数据
|
|
|
if (sTop + winH * 2 > scH) {
|
|
|
switch (viewType) {
|
|
|
case 2:
|
|
|
newData();
|
|
|
break;
|
|
|
case 3:
|
|
|
hotData();
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (sTop > nav2OffsetTop && $('#list-nav').length) {
|
|
|
if ($('#home-page').is(':hidden')) {
|
|
|
return false;
|
|
|
}
|
|
|
$nav2.removeClass('hide');
|
|
|
$nav1.addClass('hide');
|
|
|
} else if (sTop > nav1OffsetTop && $('#nav').length) {
|
|
|
$nav1.removeClass('hide');
|
|
|
$nav2.addClass('hide');
|
|
|
} else {
|
|
|
$nav1.addClass('hide');
|
|
|
$nav2.addClass('hide');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
document.addEventListener('touchmove', function(e) {
|
|
|
// sub classify不阻止默认事件
|
|
|
if ($(e.target).closest('.sub-classify').length === 0) {
|
|
|
//e.preventDefault();
|
|
|
}
|
|
|
if ($('.filter-mask').length && !$('.filter-mask').hasClass('hide')) {
|
|
|
e.preventDefault();
|
|
|
}
|
|
|
}, false);
|
|
|
|
|
|
/* if (!isIphone) {
|
|
|
return;
|
|
|
}*/
|
|
|
|
|
|
|
|
|
// window ready 后重新refresh iscroll
|
|
|
$(window).ready(function() {
|
|
|
// myScroll && myScroll.refresh();
|
|
|
imgH = $('#nav-top').outerHeight();
|
|
|
nav1H = $('#nav').outerHeight();
|
|
|
main1H = $('#nav-main').height();
|
|
|
main1oH = $('#nav-main').outerHeight(true);
|
|
|
nav2H = $('#list-nav').outerHeight(true);
|
|
|
main2oH = $('#goods-container').outerHeight(true);
|
|
|
|
|
|
setTimeout(function() {
|
|
|
scH = $('#scroller').outerHeight();
|
|
|
}, 500);
|
|
|
|
|
|
$(document).scroll(scrollHandler)
|
|
|
lazyLoad($('img.lazy'));
|
|
|
});
|
|
|
|
|
|
function bindGoodThumbClick() {
|
|
|
$(document).trigger('rebindBpEvent');
|
|
|
}
|
|
|
|
|
|
function search(opt, callback) {
|
|
|
var setting = {},
|
|
|
ext,
|
|
|
att,
|
|
|
nav, navType,
|
|
|
page;
|
|
|
|
|
|
if (searching) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if (!opt.url) {
|
|
|
opt.url = '/product/search/search';
|
|
|
}
|
|
|
|
|
|
$pre = $listNav.find('.active').eq(0);
|
|
|
|
|
|
if (!opt.nextPage) {
|
|
|
|
|
|
// 筛选项变更则重置reload为true
|
|
|
for (att in navInfo) {
|
|
|
if (navInfo.hasOwnProperty(att)) {
|
|
|
navInfo[att].reload = true;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$listNav.children('.active').removeClass('active');
|
|
|
$pre.addClass('active');
|
|
|
if (opt.hasOwnProperty('id')) {
|
|
|
switch (opt.type) {
|
|
|
case 'shop_id':
|
|
|
ext = {
|
|
|
shop_id: opt.id
|
|
|
};
|
|
|
break;
|
|
|
case 'gender':
|
|
|
ext = {
|
|
|
gender: opt.id
|
|
|
};
|
|
|
|
|
|
ext.coverChannel = opt.id;
|
|
|
break;
|
|
|
case 'brand':
|
|
|
ext = {
|
|
|
brand: opt.id
|
|
|
};
|
|
|
break;
|
|
|
case 'sort':
|
|
|
ext = {
|
|
|
sort: opt.id
|
|
|
};
|
|
|
break;
|
|
|
case 'color':
|
|
|
ext = {
|
|
|
color: opt.id
|
|
|
};
|
|
|
break;
|
|
|
case 'size':
|
|
|
ext = {
|
|
|
size: opt.id
|
|
|
};
|
|
|
break;
|
|
|
case 'price':
|
|
|
ext = {
|
|
|
price: opt.id
|
|
|
};
|
|
|
break;
|
|
|
case 'discount':
|
|
|
ext = {
|
|
|
discount: opt.id
|
|
|
};
|
|
|
break;
|
|
|
case 'ageLevel':
|
|
|
ext = {
|
|
|
age_level: opt.id
|
|
|
};
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
$.extend(defaultOpt, ext); // 扩展筛选项
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 导航类别
|
|
|
if ($pre.hasClass('new')) {
|
|
|
navType = 'newest';
|
|
|
} else if ($pre.hasClass('price')) {
|
|
|
navType = 'price';
|
|
|
} else if ($pre.hasClass('discount')) {
|
|
|
navType = 'discount';
|
|
|
}
|
|
|
nav = navInfo[navType];
|
|
|
|
|
|
page = nav.page + 1;
|
|
|
if (nav.reload) {
|
|
|
page = 1;
|
|
|
} else if (nav.end) {
|
|
|
|
|
|
// 不需要重新加载并且数据请求结束
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
// 封面图,defaultOpt对象也有可能包含coverChannel,但defaultOpt优先级高
|
|
|
if (coverChannel) {
|
|
|
setting.coverChannel = coverChannel;
|
|
|
}
|
|
|
|
|
|
$.extend(setting, defaultOpt, {
|
|
|
type: navType,
|
|
|
order: nav.order,
|
|
|
page: page,
|
|
|
appVersion: appVersion
|
|
|
});
|
|
|
|
|
|
if (brand) {
|
|
|
setting.brand = brand;
|
|
|
}
|
|
|
if (shopId) {
|
|
|
setting.shop_id = shopId;
|
|
|
}
|
|
|
|
|
|
searching = true;
|
|
|
loading.showLoadingMask();
|
|
|
|
|
|
$.ajax({
|
|
|
type: 'GET',
|
|
|
url: opt.url ? opt.url : '',
|
|
|
data: setting,
|
|
|
success: function(data) {
|
|
|
var $container,
|
|
|
num;
|
|
|
|
|
|
switch (navType) {
|
|
|
case 'newest':
|
|
|
$container = $ngc;
|
|
|
break;
|
|
|
case 'price':
|
|
|
$container = $pgc;
|
|
|
break;
|
|
|
case 'discount':
|
|
|
$container = $dgc;
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
if (data === '') {
|
|
|
nav.end = true;
|
|
|
|
|
|
if (nav.reload) {
|
|
|
$container.html(noResult);
|
|
|
}
|
|
|
} else {
|
|
|
if (nav.reload) {
|
|
|
$container.html(data);
|
|
|
lazyLoad($container.find('.lazy'));
|
|
|
} else {
|
|
|
num = $container.find('.good-info').length;
|
|
|
$container.append(data);
|
|
|
lazyLoad($container.find('.good-info:gt(' + (num - 1) + ') .lazy'));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
scH = $('#scroller').outerHeight();
|
|
|
|
|
|
nav.reload = false;
|
|
|
nav.page = page;
|
|
|
|
|
|
searching = false;
|
|
|
loading.hideLoadingMask();
|
|
|
|
|
|
window.rePosFooter();
|
|
|
|
|
|
// myScroll && myScroll.refresh();
|
|
|
// reNav1Pos();
|
|
|
|
|
|
bindGoodThumbClick();
|
|
|
callback && callback();
|
|
|
},
|
|
|
error: function() {
|
|
|
tip.show('网络断开连接了~');
|
|
|
searching = false;
|
|
|
loading.hideLoadingMask();
|
|
|
callback && callback();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
|
|
|
$listNav.bind('contextmenu', function(e) {
|
|
|
return false;
|
|
|
});
|
|
|
|
|
|
$subNav.on('touchend touchcancel', function(e) {
|
|
|
var $this = $(e.target).closest('li'),
|
|
|
cname,
|
|
|
nav,
|
|
|
navType,
|
|
|
$active;
|
|
|
var bpIdData = $this.attr('data-bp-id') || '';
|
|
|
|
|
|
e.preventDefault();
|
|
|
$(document).trigger('shouldSendBpData', [bpIdData]);
|
|
|
|
|
|
if (typeof $this === 'undefined' || $this.length === 0) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if ($this.hasClass('filter')) {
|
|
|
|
|
|
// 筛选面板切换状态
|
|
|
if ($this.hasClass('active') && !$('.filter-mask').hasClass('hide')) {
|
|
|
$('.home-sub-nav>li.filter').removeClass('active');
|
|
|
$this.removeClass('active');
|
|
|
filter.hideFilter();
|
|
|
} else {
|
|
|
$('.home-sub-nav>li.filter').addClass('active');
|
|
|
$this.addClass('active');
|
|
|
|
|
|
filter.showFilter();
|
|
|
|
|
|
if ($this.closest('.pos-list').length > 0) {
|
|
|
$('.filter-mask').addClass('call-by-fix').css('top', '');
|
|
|
} else {
|
|
|
$('.filter-mask').removeClass('call-by-fix').css('top', $this.offset().top + nav1H);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
window.scrollTo(0, $('#list-nav').offset().top + 5)
|
|
|
} else {
|
|
|
|
|
|
filter.hideFilter();// 隐藏面板
|
|
|
|
|
|
if ($this.hasClass('new')) {
|
|
|
cname = '.new';
|
|
|
navType = 'newest';
|
|
|
} else if ($this.hasClass('price')) {
|
|
|
cname = '.price';
|
|
|
navType = 'price';
|
|
|
} else if ($this.hasClass('discount')) {
|
|
|
cname = '.discount';
|
|
|
navType = 'discount';
|
|
|
}
|
|
|
|
|
|
nav = navInfo[navType];
|
|
|
|
|
|
if ($this.hasClass('active')) {
|
|
|
|
|
|
// 最新无排序切换
|
|
|
if ($this.hasClass('new')) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
if ($this.hasClass('price') || $this.hasClass('discount')) {
|
|
|
$this = $subNav.find(cname);
|
|
|
|
|
|
// 价格/折扣切换排序状态
|
|
|
$this.find('.icon > .iconfont').toggleClass('cur');
|
|
|
nav.reload = true; // 重置reload,HTML会被替换为逆序的HTML
|
|
|
nav.order = nav.order === 0 ? 1 : 0; // 切换排序
|
|
|
|
|
|
$goodsContainer.children('.container:not(.hide)').addClass('hide');
|
|
|
|
|
|
switch (navType) {
|
|
|
case 'newest':
|
|
|
$ngc.removeClass('hide');
|
|
|
break;
|
|
|
|
|
|
case 'price':
|
|
|
$pgc.removeClass('hide');
|
|
|
break;
|
|
|
|
|
|
case 'discount':
|
|
|
$dgc.removeClass('hide');
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
}
|
|
|
} else {
|
|
|
$active = $subNav.find('.active');
|
|
|
|
|
|
if ($active.hasClass('filter')) {
|
|
|
|
|
|
// 若之前active项为筛选,则隐藏筛选面板
|
|
|
filter.hideFilter();
|
|
|
} else {
|
|
|
|
|
|
// 切换container显示
|
|
|
$goodsContainer.children('.container:not(.hide)').addClass('hide');
|
|
|
|
|
|
switch (navType) {
|
|
|
case 'newest':
|
|
|
$ngc.removeClass('hide');
|
|
|
break;
|
|
|
|
|
|
case 'price':
|
|
|
$pgc.removeClass('hide');
|
|
|
break;
|
|
|
|
|
|
case 'discount':
|
|
|
$dgc.removeClass('hide');
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$subNav.children().removeClass('active');
|
|
|
$subNav.find(cname).addClass('active');
|
|
|
}
|
|
|
|
|
|
if (nav.reload) {
|
|
|
search({
|
|
|
type: 'shop_id',
|
|
|
id: shopId,
|
|
|
brand: brand,
|
|
|
appVersion: appVersion,
|
|
|
url: '/product/search/search',
|
|
|
nextPage: false
|
|
|
}, function() {
|
|
|
window.scrollTo(0, $('#list-nav').offset().top + 5)
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
e.stopPropagation();
|
|
|
});
|
|
|
|
|
|
|
|
|
$listNav.on('touchstart', 'li', function(e) {
|
|
|
$(this).addClass('bytouch');
|
|
|
}).on('touchend touchcancel', function() {
|
|
|
$listNav.find('li').removeClass('bytouch');
|
|
|
|
|
|
});
|
|
|
|
|
|
$nav2.on('touchstart', 'li', function(e) {
|
|
|
$(this).addClass('bytouch');
|
|
|
}).on('touchend touchcancel', function() {
|
|
|
$nav2.find('li').removeClass('bytouch');
|
|
|
});
|
|
|
|
|
|
$('.shop-foot-wrapper .buriedpoint').click(function() {
|
|
|
var subGroup = $(this).find('.sub-group');
|
|
|
|
|
|
if (subGroup.hasClass('hide')) {
|
|
|
subGroup.removeClass('hide');
|
|
|
} else {
|
|
|
subGroup.addClass('hide');
|
|
|
}
|
|
|
});
|
|
|
|
|
|
// 店铺收藏 || 取消收藏
|
|
|
$collect.on('touchstart', function() {
|
|
|
var opt;
|
|
|
|
|
|
if (searching) {
|
|
|
return;
|
|
|
}
|
|
|
searching = true;
|
|
|
|
|
|
if ($collect.hasClass('already-collect')) {
|
|
|
opt = 'cancel';
|
|
|
} else {
|
|
|
opt = 'ok';
|
|
|
}
|
|
|
|
|
|
$.ajax({
|
|
|
method: 'get',
|
|
|
url: '' + '/product/opt/favoriteBrand',
|
|
|
data: {
|
|
|
id: favId ? favId : shopId,
|
|
|
appVersion: appVersion,
|
|
|
opt: opt,
|
|
|
type: 'shop',
|
|
|
uid: uid
|
|
|
},
|
|
|
xhrFields: {
|
|
|
withCredentials: true
|
|
|
},
|
|
|
success: function(data) {
|
|
|
var url = '';
|
|
|
|
|
|
if (data.code === 200) {
|
|
|
if ($collect.hasClass('already-collect')) {
|
|
|
$collect.attr('class', 'not-collect');
|
|
|
tip.show('店铺取消收藏成功');
|
|
|
} else {
|
|
|
$collect.attr('class', 'already-collect');
|
|
|
tip.show('店铺收藏成功');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (data.code === 400) {
|
|
|
url = data.data;
|
|
|
if ($('#jump-login').length <= 0) {
|
|
|
$('body').append('<a href=\'' + url + '\'><span id="jump-login"><span></a>');
|
|
|
}
|
|
|
$('#jump-login').click();
|
|
|
}
|
|
|
|
|
|
setTimeout(function() {
|
|
|
myScroll && myScroll.refresh();
|
|
|
scH = $('#scroller').outerHeight();
|
|
|
}, 500);
|
|
|
searching = false;
|
|
|
},
|
|
|
error: function() {
|
|
|
tip.show('网络断开连接了~');
|
|
|
searching = false;
|
|
|
}
|
|
|
});
|
|
|
}); |
...
|
...
|
|