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**/ });