seajs.use([], function () {
$('.my-design-drop').hover(function () {
$(this).addClass('my-design-hover');
}, function () {
$(this).removeClass('my-design-hover');
});
});
seajs.use([
'jdf/1.0.0/ui/switchable/1.0.0/switchable',
'jdf/1.0.0/ui/lazyload/1.0.0/lazyload',
'jdf/1.0.0/unit/cookie/1.0.0/cookie',
'jdf/1.0.0/ui/dialog/1.0.0/dialog'], function (switchable, lazyload, cookie, dialog) {
/*slider*/
$('.j_matchSlider').switchable({
type: 'focus',
navItem: 'slider-item',
navSelectedClass: 'current',
mainClass: 'slider-panel',
mainSelectedClass: 'selected',
callback: function (i) {
this.el.find('.'+this.options.mainClass).eq(i).lazyload({delay:0,source:'data-src'});
}
});
// DOM
var select = $('.j_p-select');
var check = $('.j_p-check');
var option = $('.j_option');
var panel = $('.j_p-panel');
// 选中的商品
var selectedItems = [];
//促销规则
var promotionRule;
// 总价
// var totalPrice = 0;
// 全部SKU
var allSkus = [];
// 价格接口返回的结果
var realPrice = [];
// 更新实时价格
function resetPrice (skus) {
var data = 'J_' + skus.join(',J_');
$.ajax({
url: '//p.3.cn/prices/mgets?type=1&skuIds='+data,
dataType: 'jsonp',
success: function (result) {
if (!result && !result.length) {
return false
}
// 把结果存起来
realPrice = result;
for (var i = 0; i < result.length; i++) {
if (!result[i].id) continue;
var sku = result[i].id.replace('J_', '');
var priceNum = result[i].p;
if (priceNum <= 0) {
panel.filter('[data-id=' + sku + ']').find('.p-price').html('暂无报价');
} else {
panel.filter('[data-id=' + sku + ']').find('.p-price').html('¥' + priceNum + '');
}
}
// 异步价格请求完成后,先计算默认选中的商品
checkSelect();
}
});
}
// 更新库存
function checkStore (skus) {
var data = skus.join(',1;') + ',1';
// 取cookie内的ipLoc-djd
var ipLoc = cookie('ipLoc-djd');
var area = '';
// 如果没取到ipLoc-djd,给一个默认值
if (!ipLoc) {
area = '1,72,2799,0';
} else {
// ipLoc-djd再取前4级地址,格式化
area = ipLoc.split('.')[0].split('-').join(',');
}
$.ajax({
url: '//ss.jd.com/ss/areaStockState/mget?app=isheji&ch=1&skuNum='+data+'&area='+area,
dataType: 'jsonp',
success: function (result) {
if (result && typeof result != null) {
setStore(result);
}
}
});
}
// 设置库存
function setStore (result) {
var noStock = '无货';
panel.each(function () {
var sku = $(this).attr('data-id');
if (+result[sku].b == 1) {
if (+result[sku].a == 34) {
$(this).find('.p-img').append(noStock);
}
}
});
}
function getPromotionRule(){
$.ajax({
url:"//isheji.jd.com/sales/promotion.action",
// url:"//isheji.jd.com/sales/promotion",
type:"GET",
data:{articleId:/(\d+)/.exec(location.href)[0]},
success:function(result){//{"SalesPromotion":[]}
if(result.SalesPromotion.length){
//先检查时间段,如果不在时间段则取消
// var startTime = new Date(promotionRule[0].startTime.replace(/-/g,"/"));
// var endTime = new Date(promotionRule[0].startTime.replace(/-/g,"/"));
// if(new Date()>startTime||new Date() 0 ? realPrice[i].p : 0);
prices.push(parseFloat(realPrice[i].p > 0 ? realPrice[i].p : 0));
}
}
}
var sum = countSum(prices);
$('.j_total-price').find('em').html('¥'+sum);
}
function countSum(arr){
if(!arr.length){
$("#promotion_calc").text("").hide();
return 0;//1.都没选中
}
if(promotionRule){//促销规则入口
var sum = arr.reduce( function ( a, b ) {
return a + b;
});
if(promotionRule[0].type==1||promotionRule[0].type==3){//2.满减,用sum去匹配最大满减额度
var promotionNum = 0;
//先按照额度做个排序
promotionRule.sort(function(a,b){
return b.satisfy-a.satisfy;
});
//从大到小遍历,第一个符合的计算后退出逻辑
for(i=0;i=promotionRule[i].satisfy){
promotionNum = promotionRule[i].favorable;
break;
}
}
if(promotionNum>0){
//2.1提示已经满减,满5000-500,满10000-1000,已省230元
$("#promotion_calc").text("已省"+promotionNum.toFixed(2)+"元").show();
}else{
//2.2清空满减提示
$("#promotion_calc").text("").hide();
}
return (sum - promotionNum).toFixed(2);
}else{//3.满免,末尾喊价后计算
arr.sort(function(a,b){
return b-a;
});
var count = promotionRule[0].satisfy;
var pop = promotionRule[0].favorable;
var pops = 0;
if(arr.length>=count){
for(var j=0;j您还未选择任何商品!',
onReady: function () {
button.unbind('click');
}
});
});
} else {
// 购物车链接 接口返回用接口CPSURL 接口没数据 自己拼个链接http://isheji.jd.com/article/14085.html
var writer = $('#follow-writer').attr('writer-id');
$.ajax({
url: '//isheji.jd.com/article/cpsUrl?id=' + writer + '&skuIds=' + skus.join(',')+"&articleId="+/\/(\d+)\.html/.exec(location.href)[1],
success: function (data) {
if ( !data && !data.length ) {
var cartUrl = '//cart.jd.com/reBuyForOrderCenter.action?wids=' + skus.join(',') + '&nums=1';
button.attr('href', cartUrl).attr('target', '_blank');
} else {
button.attr('href', data).attr('target', '_blank');
}
},
error: function () {
var cartUrl = '//cart.jd.com/reBuyForOrderCenter.action?wids=' + skus.join(',') + '&nums=1';
button.attr('href', cartUrl).attr('target', '_blank');
}
});
}
}
// 更新选择列表,并计算价格,更新购物车链接
function checkSelect () {
$('.j_p-tab').each(function (i) {
if ($(this).find('.j_p-check').hasClass('checked')) {
selectedItems.push($(this).find('.j_p-select').attr('data-selected'));
}
});
$('.j_total-num').find('em').html($('.j_p-check.checked').length);//共4件单品
calcTotalPrice(selectedItems);
addToCart(selectedItems);
selectedItems = [];
}
// 选单品池,初始化TAB
select.click(function () {
var parent = $(this).closest('.j_p-tab');
var parentSiblings = parent.siblings('.j_p-tab');
parentSiblings.removeClass('p-current');
parent.addClass('p-current');
//焦点动作需要
var isInit = parent.attr('init');
if (!isInit) {
parent.switchable({
type: 'tab',
event: 'click',
delay: 0,
navItem: 'j_option',
navSelectedClass: 'selected',
mainClass: 'j_p-panel',
mainSelectedClass: 'curr',
callback: function (i) {
var panel = this.main.eq(i);
var nav = this.nav.eq(i);
panel.lazyload({delay:0,source:'data-src'});
// 如果当前TAB内没有被选择的商品,则取消按钮选择状态
if (!panel.find('.j_p-check').hasClass('checked')) {
nav.removeClass('selected');
}
}
});
parent.attr('init', 'true');
}
});
// 点击勾选按钮,执行选择,更新选择列表
check.click(function () {
var sku = $(this).closest('.j_p-panel').attr('data-id');
var currentOption = $(this).closest('.j_p-tab').find('.j_option');
if ($(this).hasClass('checked')) {//选空
$(this).removeClass('checked');
currentOption.removeClass('selected');
// 映射到3D,还得找到锚点名称吗?两个情况需要映射到3D,
map3Dsku(false,$(this).closest('.j_p-tab').data("anchorname"),sku);
} else {//选中
$(this).addClass('checked');
currentOption.filter('[data-id=' + sku + ']').addClass('selected');
// 映射到3D 直接点勾,如果sku不匹配,需要造成选空,匹配是选中,
map3Dsku(true,$(this).closest('.j_p-tab').data("anchorname"),sku);
}
checkSelect();
});
function map3Dsku(isselected,anchorName,sku){
if(isselected){
$("#container3d").find(".c3d-spotname").each(function(n,f){
if($(this).text()==anchorName){
var $sopt = $(this).closest('.c3d-hotspot');
var spotsku =$sopt.find(".c3d-goods").data("sku");
if(spotsku==sku){
$sopt.find(".c3dg-select").hide().siblings('.c3dg-unselect').show();
}else{
$sopt.find(".c3dg-select").show().siblings('.c3dg-unselect').hide();
}
}
});
}else{
$("#container3d").find(".c3d-spotname").each(function(n,f){
if($(this).text()==anchorName){
$(this).closest('.c3d-hotspot').find(".c3dg-select").show().siblings('.c3dg-unselect').hide();
}
});
}
}
// 单品名称点击,同步SKU,更新当前选中列表
option.click(function () {
// 当前商品tab只有1个商品时
if ($(this).siblings('.j_option').length == 0) {
$(this).addClass('selected');
}
var sku = $(this).attr('data-id');
var name = $(this).find('i').html();
var pTab = $(this).closest('.j_p-tab');
var selected = pTab.find('.j_p-select');
var pPanel = pTab.find('.j_p-panel');
pPanel.find('.j_p-check').removeClass('checked');
pPanel.filter('[data-id=' + sku + ']').find('.j_p-check').addClass('checked');
//映射列表的同时,映射到3D数据,
//sku对头,选中,否则选空!
map3Dsku(true,$(this).closest('.j_p-tab').data("anchorname"),sku);
selected.attr('data-selected', sku);
selected.find('.text').html(name).attr('title', name);
checkSelect();
});
// 图片锚点点击,trigger相应tab
var tag = $('.j_matchSlider').find('.item');
tag.hover(function () {
$(this).find('b').toggleClass('on');
});
tag.each(function (i) {
$(this).click(function () {
tag.find('b').removeClass('active');
$(this).find('b').addClass('active');
select.eq(i).trigger('click');
});
});
// 初始化
function init () {
// 手动初始化第一个TAB
// select.eq(0).trigger('click');
// 手动初始化最后一个TAB
// tag.eq(tag.length - 1).trigger('click');
// 当前搭配全部SKU
option.each(function () {
allSkus.push($(this).attr('data-id'));
});
// 更新价格
resetPrice(allSkus);
// 查询库存
checkStore(allSkus);
//查询促销优惠规则
getPromotionRule();
}
init();
/*生成二维码 start */
$("#qrcode").qrcode({
render : "canvas", //设置渲染方式,有table和canvas,使用canvas方式渲染性能相对来说比较好
text : "https://isheji.m.jd.com/match-detail.html?id="+$("#hidden-id").val(), //扫描二维码后显示的内容,可以直接填一个网址,扫描二维码后自动跳向该链接
width : "62", //二维码的宽度
height : "62", //二维码的高度
background : "#ffffff", //二维码的后景色
foreground : "#000000", //二维码的前景色
src: '../img/jd_icon.png' //二维码中间的图片
});
$(window).scroll(function(){
if($(this).scrollTop()>200){
$("#qrcode").closest(".qrcode-wrap").show();
}else{
$("#qrcode").closest(".qrcode-wrap").hide();
}
});
/*右侧悬浮 返回顶部*/
$('#toUp').click(function (e) {
$(window).scrollTop(0);
})
/** 二维码 end**/
});