$(function() { var commodityList = {}; commodityList.init = function(){ this.commonInit(); this.outsideEvent(); }; commodityList.commonInit = function(){ $(document).on("mouseenter",".categoryFirst > li > a",function(){ $(this).parent().siblings("li").find(".categorySecond").hide(); $(this).siblings(".categorySecond").show(); }).on("mouseleave",".categoryFirst > li",function(){ $(this).find(".categorySecond").hide(); }).on("mouseenter",".categorySecond > li > a",function(){ if(!$(this).siblings(".categoryThird").length) return; var li = $(this).parent(), third = $(this).siblings(".categoryThird").css("left","100%"), left = -(third.width()||0); li.offset().left + li.outerWidth() + third.outerWidth() > $(window).width() && third.css("left",left); //li.index() != 0 && third.find("li").length > li.index() && third.css("top",-li.position().top); li.siblings("li").find(".categoryThird").hide(); third.show(); }).on("mouseleave",".categorySecond > li",function(){ $(this).find(".categoryThird").hide(); }); this.updataModity(); //更新数据 } //发布后 commodityList.outsideEvent = function(){ //浏览分类数据 $(document).on("click",".modityCategory a",function(e){ //if($(this).hasClass("active")) return; var contactId = $(this).parents(".wqdcommodityCategory").attr("wqdmark") || "ssss", modityDom = $(".wqdcommodityList[wqdmark="+contactId+"]"), stype = modityDom.attr("sorttype") || "time", USERID = modityDom.attr("userid") || "", categoryid = $(this).attr("data-category") || (modityDom.attr("data-categoryids") ? modityDom.attr("data-categoryids") : ""); commodityList.requestDate("/fixed/item/getItems",{userId:USERID,categoryId:categoryid,sortType:stype},function(data){ modityDom.data("cacheData",data.data); //缓存数据 data.status == 200 && commodityList.dataInit.call(modityDom,data.data); }); $(this).parents(".wqdcommodityCategory").find(".modityCategory a").removeClass("active"); $(this).addClass("active"); $(this).parents(".categoryThird").siblings("a").addClass("active"); $(this).parents(".categorySecond").siblings("a").addClass("active"); /* 当点击二级分类的时候 调接口 加载高级搜索的筛选 条件, 调用 loadSearch*() 方法*/ if($(this).parents('.categorySecond').length) { // 清空高级搜索框并为其添加样式 var wqdcommodityAdvanceSearch = $(this).parents('.wqdcommodityCategory').siblings('.wqdcommodityAdvanceSearch[wqdmark="'+contactId+'"]'); /* 判定用户是否开启了 高级搜索 */ if(!$(this).parents(".wqdcommodityCategory").hasClass('advance-search')) { return false; } // 获取点击的分类 var dataJSON = {}; dataJSON.firstId = $(this).parents('.categorySecond').prev().data('category'); dataJSON.firstVal = $(this).parents('.categorySecond').prev().text(); dataJSON.secondId = $(this).data('category'); dataJSON.secondVal = $(this).text(); advSearch.init(wqdcommodityAdvanceSearch, dataJSON); /** * @param id 传入当前二级分类的分类id * @param obj 传入高级搜索对象 * @param string 传入当前对象组的mark属性 * */ advSearch.loadSearch($(this).data('category'), wqdcommodityAdvanceSearch, contactId); } }).on("click",".wqdcommodityList .admireMark svg",function(event){ //点赞 return; //列表不用点赞了,暂时保留代码 event.stopPropagation(); event.preventDefault(); if($(this).parent().hasClass("active")) return; var that = $(this), modityId = that.parents(".commodityWrap").parent().attr("data-modity") || "!!!!!!"; $.ajax({ type: "post", url: "/fixed/item/review", data : {modityId:modityId}, dataType: "json", success:function(data){ if(data.status == 200){ that.parent().addClass("active").end().siblings("span").text(that.siblings("span").text()-0+1); commodityList.setCookie(modityId,"admire"); }else{ alert(data.msg) } } }); }).on("click",".pagingWrap .pagingBtn, .pagingWrap .pagingList li",function(){ //翻页 if($(this).hasClass("active")) return; var parent = $(this).parents(".pagingWrap"), pagenum = null, index = parent.find(".pagingList li.active").text()-1, maxVal = parent.find(".pagingList li:last-child").text()-0, modityDom = $(this).parents(".wqdcommodityList"); if($(this).hasClass("firstPage")){ //首页 if(index == 0) return; pagenum = 0; commodityList.caeatePaging.call(parent,1,1,maxVal); }else if($(this).hasClass("prevPage")){ //上一页 if(index == 0) return; pagenum = index - 1; if(parent.find(".pagingList li:first-child").hasClass("active")){ commodityList.caeatePaging.call(parent,index,index,maxVal); }else{ parent.find(".pagingList li.active").prev().addClass("active").siblings().removeClass("active"); } }else if($(this).hasClass("nextPage")){ //下一页 if(parent.find(".pagingList li:last-child").hasClass("active")) return; pagenum = index + 1; if(parent.find(".pagingList li.active").next().text()=="..."){ var star = maxVal-pagenum>6 ? pagenum+1 : maxVal-6; commodityList.caeatePaging.call(parent,star,pagenum+1,maxVal); }else{ parent.find(".pagingList li.active").next().addClass("active").siblings().removeClass("active"); } }else if($(this).hasClass("lastPage")){ //末页 if(parent.find(".pagingList li:last-child").hasClass("active")) return; pagenum = parent.find(".pagingList li:last-child").text()-1; var star = maxVal>6 ? maxVal-6 : 1; commodityList.caeatePaging.call(parent,star,maxVal,maxVal); }else{ if(parent.find(".pagingList li:last-child").text()-parent.find(".pagingList li:first-child").text()>6){ var html = ""; if($(this).index() == 5){ pagenum = $(this).prev().text() - 0; var star = maxVal-$(this).prev().text()>6 ? pagenum + 1 : maxVal-6; commodityList.caeatePaging.call(parent,star,pagenum+1,maxVal); }else if($(this).index() == 6){ pagenum = maxVal - 1; commodityList.caeatePaging.call(parent,maxVal-6,maxVal,maxVal); }else{ pagenum = $(this).text() - 1; $(this).addClass("active").siblings().removeClass("active"); } }else{ pagenum = $(this).text() - 1; $(this).addClass("active").siblings().removeClass("active"); } } var cacheData = modityDom.data("cacheData") || []; dataStyle = modityDom.attr("data-style") || "", column = commodityList.getParam(dataStyle,"modity-column") || 4, row = commodityList.getParam(dataStyle,"modity-row") || 1, star = row*column*pagenum, dataArr = cacheData.slice(star); commodityList.dataInit.call(modityDom,dataArr,true); }); }; //生成分页 commodityList.caeatePaging = function(star,active,maxVal){ var html = ""; for(var k=star; k'; }else if(k == star+5 && maxVal-star > 6){ html += '
  • ...
  • '; }else if(k == star+6 && maxVal-star > 6){ html += '
  • '+maxVal+'
  • '; }else{ html += '
  • '+k+'
  • '; } } $(this).find(".pagingList").html(html); }; commodityList.requestDate = function(url,data,callback) { $.ajax({ type: "GET", url: url, data : data, dataType: "json", success:callback }); }; //更新数据 commodityList.updataModity = function(){ $(".wqdcommodityCategory").each(function(){ var that = $(this), contactId = $(this).attr("wqdmark") || "ssss", USERID = $(".wqdcommodityList[wqdmark="+contactId+"]").attr("userid") || "", categoryIds = $(".wqdcommodityList[wqdmark="+contactId+"]").attr("data-categoryIds") || ""; commodityList.requestDate("/fixed/item/getAllCategory",{userId:USERID},function(data){ //commodityList.categoryData = data.data; //缓存数据 data.status == 200 && commodityList.categoryInit.call(that,commodityList.getCatetoryDate(data.data, categoryIds)); }); }); $(".wqdcommodityList").each(function(){ var that = $(this), USERID = that.attr("userid") || "", stype = $(this).attr("sorttype") || "time", categoryIds = that.attr("data-categoryIds") || ""; commodityList.requestDate("/fixed/item/getItems",{userId:USERID,categoryId:categoryIds,sortType:stype},function(data){ that.data("cacheData",data.data); //缓存数据 data.status == 200 && commodityList.dataInit.call(that,data.data); }); }); }; //渲染分类 commodityList.categoryInit = function(data){ var html = ""; if(data && data.length && data[0]){ html += '
    全部分类
    '; } $(this).find(".modityCategory").html(html); }; //渲染商品信息 commodityList.dataInit = function(data,bool){ var pageNum = 0, USERID = $(this).attr("userid") || "", pageId = $(this).attr("data-pageid") || "", modityStr = "", pagingStr = "", dataStyle = $(this).attr("data-style") || "", column = parseInt(commodityList.getParam(dataStyle,"modity-column") || 4), row = parseInt(commodityList.getParam(dataStyle,"modity-row") || 1); if(data && data.length && data[0]){ pageNum = parseInt(data.length/(column*row)); pageNum = data.length % (column*row) == 0 ? pageNum : pageNum+1; for(var i=0; i
      ' : "", modityCookie = commodityList.getCookie(data[i].id), act_class = modityCookie ? "" : "", //现在只作展示没有选中效果,代码保留 _blank = data[i].widowsType=="news" ? ' target="_blank"' : "", hrefUrl = pageId ? "pageItem_"+pageId+"_"+data[i].id+".html?catch="+USERID : "javascript:;"; hrefUrl = data[i].detailsType=="external" ? data[i].itemLink : hrefUrl; modityStr += parentStr+'
    1. '; modityStr += '
      '; modityStr += '

      '+data[i].name+'

      '; modityStr += '
      '; modityStr += '
      ¥'+data[i].currentPrice+'
      '; modityStr += '
      ¥'+data[i].originalPrice+'
      '; modityStr += '
      '; modityStr += ''+data[i].favorable+'
      已售出'+data[i].salesVolume+'
    2. '; } modityStr += '
    '; if(!bool){ //分页 pagingStr += '首页'; pagingStr += '上一页'; pagingStr += '
      '; for(var k=1; k<=pageNum && k<=7; k++){ var num = k; if(k==6){ num = pageNum > 7 ? "..." : 6; }else if(k==7){ num = pageNum; } pagingStr += '
    1. '+num+'
    2. '; } pagingStr += '
    下一页'; pagingStr += '末页'; } }else{ modityStr = '

    该分类暂无商品信息!

    '; } $(this).find(".commodityList").html(modityStr); !bool && $(this).find(".pagingWrap").html(pagingStr).find(".pagingList li:first-child").addClass("active"); commodityList.updateboxHeight($(this)); }; //提取参数 commodityList.getParam = function (objString,name) { if(!objString || !name) return ""; var paramVal = "", paramObj = {}; $.each(objString.split(";"),function (i,_) { if(!_) return true; var key = _.split(":"); paramObj[key[0]] = key[1]; }); paramVal = paramObj[name] || ""; return paramVal; }; //更新图片容器宽度 commodityList.updateboxHeight = function (dom) { var scale = 3/4, width = dom.find(".commodityWrap .modityImg").width(), height = width*scale; dom.find(".commodityWrap .modityImg").height(height); }; //根据分类id提取相应的数据 commodityList.getCatetoryDate = function(dataArr,categoryIds){ var newArr = []; if(categoryIds){ categoryIds = categoryIds.split(","); $.map(dataArr,function(_i){ for(var k=0; k', '
    '+_.name+'
    ', '
    ', getStr(_.values), '
    ', '
    展开', '', '', '', '', '
    ', '',].join(''); }); /* 拼出属性值 */ function getStr(arr) { var strHtml = ''; for(var i = 0; i< arr.length; i++) { strHtml += ''+arr[i].name+'' } return strHtml; } // 插入字符串 并显示 高级搜索 $_obj.find('.type-box').empty().append(str); // 插入折叠和展开按钮 $_obj.find('.pc-container-box').css('position','relative') $_obj.find('.pc-container-box').find('.more-choose').length && $_obj.find('.pc-container-box').find('.more-choose').remove(); $_obj.find('.type-box-group').after('
    折叠
    '); // 为高级搜索设置最小默认高度 超出部分隐藏 并有滚动条 $_obj.css({ 'top': $_obj.siblings('.wqdcommodityCategory[wqdmark="'+markId+'"]').offset().top - $_obj.parent().offset().top + $_obj.siblings('.wqdcommodityCategory[wqdmark="'+markId+'"]').height() + 'px', 'left': $_obj.siblings('.wqdcommodityCategory[wqdmark="'+markId+'"]').css('left'), 'height':4*41 + $_obj.find('.more-choose').height() + 35 + $_obj.find('.type-item').length*1 +6+'px', }); // $_obj.parents('.wqdelementEditBox, .wqdelementEdit .wqdelementContent') $_obj.find('.type-item:last').css('border-bottom-style','solid'); $_obj.show(); $_obj.find('.type-box-group').show(); $_obj.find('.nano').nanoScroller({alwaysVisible:true}); // 绑定事件,并传入必要的参数 self.bindEvent($_obj, data.data.categoryId, markId); } } }); } /** * 为加载后的搜索条件绑定事件 * @param {[Object]} $obj 传入当前高级搜索区域 对象 * @param {[string]} categoryId 传入当前二级分类的分类id * @param {[string]} markId 当前对象组的markId值 */ advSearch.bindEvent = function ($obj, categoryId, markId) { /* 点击 展开 隐藏 */ $obj.off('click.operation').on('click.operation', '.operation', function () { if($(this).hasClass('on')) { $(this).removeClass('on') $(this).prev().css('overflow','hidden'); $(this).siblings('.type-name').css('height','40px'); // 图标翻转 $(this).find('.icon').css({ 'transform':'rotate(0deg)', '-ms-transform':'rotate(0deg)', /* IE 9 */ '-moz-transform':'rotate(0deg)', /* Firefox */ '-webkit-transform':'rotate(0deg)', /* Safari 和 Chrome */ '-o-transform':'rotate(0deg)', /* Opera */ }); } else { $(this).addClass('on') $(this).prev().css('overflow','visible'); $(this).siblings('.type-name').css('height',$(this).parents('.type-item').css('height')); // 图标翻转 $(this).find('.icon').css({ 'transform':'rotate(180deg)', '-ms-transform':'rotate(180deg)', /* IE 9 */ '-moz-transform':'rotate(180deg)', /* Firefox */ '-webkit-transform':'rotate(180deg)', /* Safari 和 Chrome */ '-o-transform':'rotate(180deg)', /* Opera */ }) } }); /* 点击关闭按钮 关闭整个浮层 */ $obj.off('click.closeAll').on('click.closeAll', '.pc-nav-bar .closeAll', function () { $obj.hide(); }); /* 点击折叠按钮 */ $obj.off('click.more-choose').on('click.more-choose', '.pc-container-box .more-choose', function () { if($(this).hasClass('on')) { $(this).removeClass('on') // 由于滚动条给type-box-group加了一个高度 所以清空 之后再加上 $obj.find('.type-box-group').show(); $(this).html('折叠 '); // 图标翻转 $(this).find('.switch').css({ 'transform':'rotate(180deg)', '-ms-transform':'rotate(180deg)', /* IE 9 */ '-moz-transform':'rotate(180deg)', /* Firefox */ '-webkit-transform':'rotate(180deg)', /* Safari 和 Chrome */ '-o-transform':'rotate(180deg)', /* Opera */ }); } else { $(this).addClass('on'); $obj.find('.type-box-group').hide(); $(this).html('展开 '); // 图标翻转 $(this).find('.switch').css({ 'transform':'rotate(0deg)', '-ms-transform':'rotate(0deg)', /* IE 9 */ '-moz-transform':'rotate(0deg)', /* Firefox */ '-webkit-transform':'rotate(0deg)', /* Safari 和 Chrome */ '-o-transform':'rotate(0deg)', /* Opera */ }); } }); /* 点击 对应的筛选条件 */ $obj.off('click.choice').on('click.choice', '.type-content span', function () { // 获取属性名/值 或 规格名/值 var attr = $(this).parent().siblings('.type-name').text(); var val = $(this).text(); // 插入头部 $obj.find('.pc-nav-bar').append(''+attr + '/' + val+' ') $obj.find('.pc-nav-bar .need2show').show(); // advSearch.renderShopList($(this).data('categoryId')) // 隐藏已被选择的选项并加载商品信息 $(this).parents('.type-item').hide(); // 获取已选的搜索条件id var idArr = []; $.each($obj.find('.pc-nav-bar .last-nav'), function (i, v) { idArr.push($(v).data('id')); }); // 渲染商品列表 advSearch.renderShopList(categoryId, idArr, markId); resetStyle($obj); }); /* 点击导航条上面的关闭当前选筛选条件 */ $obj.off('click.close').on('click.close', '.pc-nav-bar .last-nav svg', function () { // 清空当前值 $(this).parents('.last-nav').remove(); // 显示之前隐藏的选项 $obj.find('.type-box .type-item[data-flag="'+$(this).parents('.last-nav').data('flag')+'"]').show(); // 获取已选的搜索条件id var idArr = []; $.each($obj.find('.pc-nav-bar .last-nav'), function (i, v) { idArr.push($(v).data('id')); }); /* 先执行展开操作 放置样式错乱 */ if($obj.find('.pc-container-box .more-choose.on').length) $obj.find('.pc-container-box .more-choose').click(); // 渲染数据/* */ advSearch.renderShopList(categoryId, idArr, markId); resetStyle($obj); }); function resetStyle ($_obj) { // 设置高级搜索对象 始终跟随分类导航条 并与之左对齐 $_obj.css({ 'top': $_obj.siblings('.wqdcommodityCategory[wqdmark="'+markId+'"]').offset().top - $_obj.parent().offset().top + $_obj.siblings('.wqdcommodityCategory[wqdmark="'+markId+'"]').height() + 'px', 'left': $_obj.siblings('.wqdcommodityCategory[wqdmark="'+markId+'"]').css('left'), 'height':4*41 + 6+ $_obj.find('.more-choose').height() + $_obj.find('.pc-nav-bar').height()+'px', }); // 加入 搜索条件已被全部选完,则nav 下边框也变为实心的 if(!$_obj.find('.type-box .type-item:visible').length) { $_obj.find('.type-box').css('border-top-color','transparent'); $_obj.find('.pc-nav-bar').css({ 'border-bottom-right-radius': '3px', 'border-bottom-left-radius': '3px', 'border-bottom-color':'rgb(220, 220, 220)' }) } else { $_obj.find('.type-box').css('border-top-color','rgba(220, 220, 220, 1)'); $_obj.find('.pc-nav-bar').css({ 'border-bottom-right-radius': '0px', 'border-bottom-left-radius': '0px', 'border-bottom-color':'transparent' }) } $_obj.find('.type-item:last').css('border-bottom-style','solid'); } } /** * 渲染商品列表 * @param {[Object]} categoryId 传入当前二级分类的分类id * @param {[Array]} idArr 传入选择的 属性或规格值id数组 * @param {[string]} markId 当前对象组的markId值 */ advSearch.renderShopList = function (categoryId, idArr, markId) { // 更新数据 // 获取 参数 var contactId = markId, modityDom = $(".wqdcommodityList[wqdmark="+contactId+"]"), stype = modityDom.attr("sorttype") || "time", USERID = modityDom.attr("userid") || ""; // 调用commodityList.requestDate() 方法执行ajax 请求 渲染商品列表 // categoryid = $(this).attr("data-category") || (modityDom.attr("data-categoryids") ? modityDom.attr("data-categoryids") : ""); commodityList.requestDate("/fixed/item/getItems",{userId:USERID,categoryId:categoryId,sortType:stype,properyId:idArr.join(',')},function(data){ // modityDom.data("cacheData",data.data); //缓存数据 data.status == 200 && commodityList.dataInit.call(modityDom, data.data); }); } });