/**删除批量上传的图片**/ function delBatchUploadImg(obj){ var c = WST.confirm({content:'您确定要删除商品图片吗?',yes:function(){ $(obj).parent().remove("li"); layer.close(c); }}); } function lastGoodsCatCallback(opts){ if(opts.isLast && opts.val){ getSpecAttrs(opts.val); }else{ $('#specBtns').hide(); $('#specsAttrBox').empty(); } } /**初始化**/ function initEdit(){ $('#tab').TabPanel({tab:0,callback:function(no){ if(no==1){ $('.j-specImg').children().each(function(){ if(!$(this).hasClass('webuploader-pick'))$(this).css({width:'80px',height:'25px'}); }); } if(!initBatchUpload && no==2){ initBatchUpload = true; var uploader = batchUpload({uploadPicker:'#batchUpload',uploadServer:WST.U('home/index/uploadPic'),formData:{dir:'goods',isWatermark:1,isThumb:1},uploadSuccess:function(file,response){ var json = WST.toJson(response); if(json.status==1){ $li = $('#'+file.id); $li.append(''); //$li.append('默认' ); var delBtn = $('删除'); $li.append(delBtn); delBtn.on('click',function(){ delBatchUploadImg($(this),function(){ uploader.removeFile(file); uploader.refresh(); }); }); $('.filelist li').css('border','1px solid rgb(59, 114, 165)'); }else{ WST.msg(json.msg,{icon:2}); } }}); } $('.btn-del').click(function(){ delBatchUploadImg($(this),function(){ $(this).parent().remove(); }); }) }}); WST.upload({ pick:'#goodsImgPicker', /**不让上传图片压缩,否则图片不清晰,make cheng 20180703**/ formData: {dir:'goods',isWatermark:1,isThumb:0}, accept: {extensions: 'gif,jpg,jpeg,png',mimeTypes: 'image/jpg,image/jpeg,image/png,image/gif'}, callback:function(f){ var json = WST.toJson(f); console.log(json); if(json.status==1){ $('#uploadMsg').empty().hide(); // $('#preview').attr('src',WST.conf.ROOT+"/"+json.savePath+json.thumb); // 修改为oss 地址 mark 20180612 by zll $('#preview').attr('src',WST.conf.IMGURL+"/"+json.savePath+json.thumb); $('#goodsImg').val(json.savePath+json.name); $('#msg_goodsImg').hide(); } }, progress:function(rate){ $('#uploadMsg').show().html('已上传'+rate+"%"); } }); KindEditor.ready(function(K) { editor1 = K.create('textarea[name="goodsDesc"]', { height:'350px', width:'800px', uploadJson : WST.conf.ROOT+'/home/goods/editorUpload', allowFileManager : false, allowImageUpload : true, allowMediaUpload : false, items:[ 'source', '|', 'undo', 'redo', '|', 'preview', 'print', 'template', 'code', 'cut', 'copy', 'paste', 'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript', 'superscript', 'clearhtml', 'quickformat', 'selectall', '|', 'fullscreen', '/', 'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|','image','multiimage','media','table', 'hr', 'emoticons', 'baidumap', 'pagebreak', 'anchor', 'link', 'unlink', '|', 'about' ], afterBlur: function(){ this.sync(); } }); }); if(OBJ.goodsId>0){ var goodsCatIds = OBJ.goodsCatIdPath.split('_'); getBrands('brandId',goodsCatIds[0],OBJ.brandId); if(goodsCatIds.length>1){ var objId = goodsCatIds[0]; $('#cat_0').val(objId); var opts = {id:'cat_0',val:goodsCatIds[0],childIds:goodsCatIds,className:'j-goodsCats',afterFunc:'lastGoodsCatCallback'} WST.ITSetGoodsCats(opts); } getShopsCats('shopCatId2',OBJ.shopCatId1,OBJ.shopCatId2); } } /**获取本店分类**/ function getShopsCats(objId,pVal,objVal){ $('#'+objId).empty(); $.post(WST.U('home/shopcats/listQuery'),{parentId:pVal},function(data,textStatus){ var json = WST.toJson(data); var html = [],cat; html.push(""); if(json.status==1 && json.list){ json = json.list; for(var i=0;i"+cat.catName+""); } } $('#'+objId).html(html.join('')); }); } /**获取品牌**/ function getBrands(objId,catId,objVal){ $('#'+objId).empty(); $.post(WST.U('home/brands/listQuery'),{catId:catId},function(data,textStatus){ var json = WST.toJson(data); var html = [],cat; html.push(""); if(json.status==1 && json.list){ json = json.list; for(var i=0;i"+cat.brandName+""); } } $('#'+objId).html(html.join('')); }); } function toEdit(id,src){ location.href = WST.U('home/goods/edit','id='+id+'&src='+src); } /**保存商品数据**/ function save(){ var va = $("input[name='defaultSpec']:checked").val(); if(va){ $("#marketPrice").val($("#marketPrice_"+va).val()); $("#shopPrice").val( $("#specPrice_"+va).val()); } $('#editform').isValid(function(v){ if(v){ var params = WST.getParams('.j-ipt'); params.goodsCatId = WST.ITGetGoodsCatVal('j-goodsCats'); params.specNum = specNum; var specsName,specImg; $('.j-speccat').each(function(){ specsName = 'specName_'+$(this).attr('cat')+'_'+$(this).attr('num'); specImg = 'specImg_'+$(this).attr('cat')+'_'+$(this).attr('num'); if($(this)[0].checked){ params[specsName] = $.trim($('#'+specsName).val()); params[specImg] = $.trim($('#'+specImg).attr('v')); } }); var gallery = []; $('.j-gallery-img').each(function(){ gallery.push($(this).attr('v')); }); params.gallery = gallery.join(','); var specsIds = []; var specidsmap = []; $('.j-ws').each(function(){ specsIds.push($(this).attr('v')); specidsmap.push(WST.blank($(this).attr('sid'))+":"+$(this).attr('v')); }); var specmap = []; for(var key in id2SepcNumConverter){ specmap.push(key+":"+id2SepcNumConverter[key]); } params.specsIds = specsIds.join(','); params.specidsmap = specidsmap.join(','); params.specmap = specmap.join(','); var loading = WST.msg('正在提交数据,请稍后...', {icon: 16,time:60000}); $.post(WST.U('home/goods/'+((params.goodsId==0)?"toAdd":"toEdit")),params,function(data,textStatus){ layer.close(loading); var json = WST.toJson(data); if(json.status=='1'){ WST.msg(json.msg,{icon:1},function(){ if(params.goodsType==1){ location.href=WST.U('home/goodsvirtuals/stock','id='+json.data.id); }else{ location.href=WST.U('home/goods/'+src); } }); }else{ WST.msg(json.msg,{icon:2}); } }); } }); } var id2SepcNumConverter = {}; /**添加普通规格值**/ function addSpec(opts){ var html = []; html.push('
', '', '', '', '
'); $(html.join('')).insertBefore('#specAddBtn_'+opts.catId); if(opts.itemId){ id2SepcNumConverter[opts.itemId] = opts.catId+'_'+specNum; } specNum++; } /**删除普通规格值**/ function delSpec(obj,catId,num){ if($('.j-spec_'+catId+'_'+num)[0].checked){ $('.j-spec_'+catId+'_'+num)[0].checked = false; addSpecSaleCol(); } $(obj).parent().remove(); } /**添加带图片的规格值**/ function addSpecImg(opts){ var html = []; html.push('', '', '', '', '', '', (opts.specImg)?'':"", '
上传图片
' ); if($('#specTby').children().size()==0){ html.push(''); }else{ html.push(''); } html.push(''); $('#specTby').append(html.join('')); WST.upload({ num:specNum, cat:opts.catId, pick:'#specImgPicker_'+specNum, formData: {dir:'goods',isThumb:1}, accept: {extensions: 'gif,jpg,jpeg,png',mimeTypes: 'image/jpg,image/jpeg,image/png,image/gif'}, callback:function(f){ var json = WST.toJson(f); if(json.status==1){ $('#uploadMsg_'+this.cat+"_"+this.num).html(''); } }, progress:function(rate){ $('#uploadMsg_'+this.cat+"_"+this.num).html('已上传'+rate+"%"); } }); if(opts.itemId){ id2SepcNumConverter[opts.itemId] = opts.catId+'_'+specNum; } specNum++; } /**删除带图片的规格值**/ function delSpecImg(obj,catId,num){ if($('.j-spec_'+catId+'_'+num)[0].checked){ $('.j-spec_'+catId+'_'+num)[0].checked = false; addSpecSaleCol(); } $(obj).parent().parent().remove(); } /**给销售规格表填上值**/ function fillSepcSale(){ var ids = '',tmpids = []; for(var i=0;i'+$('#specCat_'+key).html()+''); specArray.push(specCols[key]); } if(html.length==0){ $('#goodsStock').removeAttr('disabled'); $('#shopPrice').removeAttr('disabled'); $('#marketPrice').removeAttr('disabled'); $('#warnStock').removeAttr('disabled'); return; } $(html.join('')).insertBefore('#thCol'); //组合规格值 this.combined = function(doubleArrays){ var len = doubleArrays.length; if (len >= 2) { var arr1 = doubleArrays[0]; var arr2 = doubleArrays[1]; var len1 = doubleArrays[0].length; var len2 = doubleArrays[1].length; var newlen = len1 * len2; var temp = new Array(newlen),ntemp; var index = 0; for (var i = 0; i < len1; i++) { if(arr1[i].length){ for (var k = 0; k < len2; k++) { ntemp = arr1[i].slice(); ntemp.push(arr2[k]); temp[index] = ntemp; index++; } }else{ for (var j = 0; j < len2; j++) { temp[index] = [arr1[i],arr2[j]]; index++; } } } var newArray = new Array(len - 1); newArray[0] = temp; if (len > 2) { var _count = 1; for (var i = 2; i < len; i++) { newArray[_count] = doubleArrays[i]; _count++; } } return this.combined(newArray); }else { return doubleArrays[0]; } } var specsRows = this.combined(specArray); //生成规格值表 html = []; var id=[],key=1,specHtml = []; var productNo = $('#productNo').val(),specProductNo = ''; for(var i=0;i'); if(specsRows[i].length){ for(var j=0;j' + specsRows[i][j].val + ''); } }else{ id.push(specsRows[i].id); specHtml.push('' + specsRows[i].val + ''); } id = id.join('-'); if(OBJ.goodsId==0){ specProductNo = productNo+'-'+key; } html.push(' '); html.push(specHtml.join('')); html.push(' ', ' ', ' ', ' ', ' ', ' ', ' ', ' 0', ''); key++; } $('#spec-sale-tby').append(html.join('')); //判断是否禁用商品价格和库存字段 if($('#spec-sale-tby').html()!=''){ $('#goodsStock').prop('disabled',true); $('#shopPrice').prop('disabled',true); $('#marketPrice').prop('disabled',true); $('#warnStock').prop('disabled',true); } //设置销售规格表值 if(OBJ.saleSpec)fillSepcSale(); } /**根据批量修改销售规格值**/ function batchChange(v,id){ if($.trim(v)!=''){ $('input[type=text][id^="'+id+'_"]').val(v); } } /**根据规格值修改 销售规格表 里的值**/ function batchChangeTxt(v,catId,num){ $('.j-td_'+catId+"_"+num).each(function(){ $(this).html(v); }); } /**检测商品销售规格值是否重复**/ function checkProductNo(obj){ v = $.trim(obj.value); var num = 0; $('input[type=text][id^="productNo_"]').each(function(){ if(v==$.trim($(this).val()))num++; }); if(num>1){ WST.msg('已存在相同的货号',{icon:2}); obj.value = ''; } } /**获取商品规格和属性**/ function getSpecAttrs(goodsCatId){ $('#specsAttrBox').empty(); $('#specBtns').hide(); specNum = 0; $.post(WST.U('home/goods/getSpecAttrs'),{goodsCatId:goodsCatId,goodsType:$('#goodsType').val()},function(data,textStatus){ var json = WST.toJson(data); if(json.status==1 && json.data){ var html = [],tmp,str; if(json.data.spec0 || json.data.spec1){ html.push('
商品规格
'); html.push('
'); if(json.data.spec0){ tmp = json.data.spec0; html.push('
'+tmp.catName+'
'); html.push('
'); } if(json.data.spec1){ for(var i=0;i
', '
'+tmp.catName+'
', '
', '', '
' ); } } html.push(''); html.push($('#specTips').html()); html.push('
销售规格
', '', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '
推荐
规格
*货号*市场价
*本店价
*起批数
*批发价
*库存
*预警库存
销量
' ); } if(json.data.attrs){ html.push('
商品属性
'); html.push('
'); html.push(''); for(var i=0;i'); } html.push('
'+tmp.attrName+':'); if(tmp.attrType==1){ str = tmp.attrVal.split(','); for(var j=0;j'+str[j]+''); } }else if(tmp.attrType==2){ html.push(''); }else{ html.push(''); } html.push('
'); html.push('
'); } $('#specsAttrBox').html(html.join('')); //如果是编辑的话,第一次要设置之前设置的值 if(OBJ.goodsId>0 && specNum==0){ //设置规格值 if(OBJ.spec0){ for(var i=0;i正在加载数据...'); var params = {}; params = WST.getParams('.s-query'); params.key = $.trim($('#key').val()); params.page = p; $.post(WST.U('home/goods/saleByPage'),params,function(data,textStatus){ var json = WST.toJson(data); if(json.status==1 && json.Rows){ var gettpl = document.getElementById('tblist').innerHTML; laytpl(gettpl).render(json.Rows, function(html){ $('#list').html(html); $('.j-lazyGoodsImg').lazyload({ effect: "fadeIn",failurelimit : 10,skip_invisible : false,threshold: 200,placeholder:window.conf.IMGURL+'/'+window.conf.GOODS_LOGO});//商品默认图片 }); if(json.TotalPage>1){ laypage({ cont: 'pager', pages:json.TotalPage, curr: json.CurrentPage, skin: '#e23e3d', groups: 3, jump: function(e, first){ if(!first){ saleByPage(e.curr); } } }); }else{ $('#pager').empty(); } } }); } function auditByPage(p){ $('#list').html('正在加载数据...'); var params = {}; params = WST.getParams('.s-query'); params.key = $.trim($('#key').val()); params.page = p; $.post(WST.U('home/goods/auditByPage'),params,function(data,textStatus){ var json = WST.toJson(data); if(json.status==1 && json.Rows){ var gettpl = document.getElementById('tblist').innerHTML; laytpl(gettpl).render(json.Rows, function(html){ $('#list').html(html); $('.j-lazyGoodsImg').lazyload({ effect: "fadeIn",failurelimit : 10,skip_invisible : false,threshold: 200,placeholder:window.conf.IMGURL+'/'+window.conf.GOODS_LOGO});//商品默认图片 }); if(json.TotalPage>1){ laypage({ cont: 'pager', pages:json.TotalPage, curr: json.CurrentPage, skin: '#e23e3d', groups: 3, jump: function(e, first){ if(!first){ auditByPage(e.curr); } } }); }else{ $('#pager').empty(); } } }); } function storeByPage(p){ $('#list1').html('正在加载数据...'); var params = {}; params = WST.getParams('.s-query'); params.key = $.trim($('#key1').val()); params.page = p; $.post(WST.U('home/goods/storeByPage'),params,function(data,textStatus){ var json = WST.toJson(data); if(json.status==1 && json.Rows){ var gettpl = document.getElementById('tblist1').innerHTML; laytpl(gettpl).render(json.Rows, function(html){ $('#list1').html(html); $('.j-lazyGoodsImg').lazyload({ effect: "fadeIn",failurelimit : 10,skip_invisible : false,threshold: 200,placeholder:window.conf.IMGURL+'/'+window.conf.GOODS_LOGO});//商品默认图片 }); if(json.TotalPage>1){ laypage({ cont: 'pager1', pages:json.TotalPage, curr: json.CurrentPage, skin: '#e23e3d', groups: 3, jump: function(e, first){ if(!first){ storeByPage(e.curr); } } }); }else{ $('#pager1').empty(); } } }); } function illegalByPage(p){ $('#list2').html('正在加载数据...'); var params = {}; params = WST.getParams('.s-query'); params.key = $.trim($('#key2').val()); params.page = p; $.post(WST.U('home/goods/illegalByPage'),params,function(data,textStatus){ var json = WST.toJson(data); if(json.status==1 && json.Rows){ var gettpl = document.getElementById('tblist2').innerHTML; laytpl(gettpl).render(json.Rows, function(html){ $('#list2').html(html); $('.j-lazyGoodsImg').lazyload({ effect: "fadeIn",failurelimit : 10,skip_invisible : false,threshold: 200,placeholder:window.conf.IMGURL+'/'+WST.conf.GOODS_LOGO}); }); if(json.TotalPage>1){ laypage({ cont: 'pager2', pages:json.TotalPage, curr: json.CurrentPage, skin: '#e23e3d', groups: 3, jump: function(e, first){ if(!first){ illegalByPage(e.curr); } } }); }else{ $('#pager2').empty(); } } }); } function limitPriceByPage(p){ $('#list').html('正在加载数据...'); var params = {}; params = WST.getParams('.s-query'); params.key = $.trim($('#key').val()); params.page = p; $.post(WST.U('home/goods/limitPriceByPage'),params,function(data,textStatus){ var json = WST.toJson(data); if(json.status==1 && json.Rows){ var gettpl = document.getElementById('tblist').innerHTML; laytpl(gettpl).render(json.Rows, function(html){ $('#list').html(html); $('.j-lazyGoodsImg').lazyload({ effect: "fadeIn",failurelimit : 10,skip_invisible : false,threshold: 200,placeholder:window.conf.IMGURL+'/'+window.conf.GOODS_LOGO});//商品默认图片 }); if(json.TotalPage>1){ laypage({ cont: 'pager', pages:json.TotalPage, curr: json.CurrentPage, skin: '#e23e3d', groups: 3, jump: function(e, first){ if(!first){ auditByPage(e.curr); } } }); }else{ $('#pager').empty(); } } }); } function limitPriceGoods(){ var params = WST.getParams('.ipt'); //alert(JSON.stringify(params)); var loading = WST.msg('正在提交数据,请稍后...', {icon: 16,time:60000}); $.post(WST.U('home/goods/limitPrice'),params,function(data){ layer.close(loading); var json = WST.toJson(data); if(json.status==1){ var html = []; var option1 = []; for(i in json.data){ if(i==0)option1 = json.data[i]; html.push(''); } $('#goodsId').html(html.join('')); }else{ WST.msg("获取失败",{icon:2}); } }); } function changeGoods(){ var goodsId=document.getElementById("goodsId").value; $.post("getGoodsProduct",{goodsId:goodsId},function(data){ $("#productNo").empty(); if(data['specs']!=''){ for(var i in data['specs']){ $("#productNo").append(""); changeSpecs(); } }else{ var html = []; html.push(''); $('#productNo').html(html.join('')); //$("#productNo").html(''); document.getElementById('specs').value = ''; } } , "json") } function changeSpecs(){ var productNo=document.getElementById("productNo").value; $.post("getGoodsSpecs",{productNo:productNo},function(data){ document.getElementById('specs').value = data['itemName']; }, "json") } //添加限时价格商品 function addLimitGoods(id){ var laydate = layui.laydate; laydate.render({ elem: '#startTime', type: 'datetime' }); laydate.render({ elem: '#endTime', type: 'datetime' }); $('#goodsForm').get(0).reset(); $.post(WST.U('home/goods/getLimitGoods'),{id:id},function(data,textStatus){ var json = WST.toJson(data); WST.setValues(json); if(id>0){ if(json.productNo!=""){ $("#productNo").html(""); } else{ $("#productNo").html(""); } } //alert(JSON.stringify(json.productNo)) var title =(id==0)?"新增":"编辑"; var box = WST.open({title:title,type:1,content:$('#goodsBox'),area: ['750px', '320px'],btn:['确定','取消'], end:function(){$('#goodsBox').hide();},yes:function(){ var params = WST.getParams('.j-ipt'); //alert(JSON.stringify(params)); if(params.goodsId==''){ WST.msg('请先选择商品!', {icon: 5}); return; } if(params.startTime==''){ WST.msg('开始时间不能为空!', {icon: 5}); return; } if(params.endTime==''){ WST.msg('结束时间不能为空!', {icon: 5}); return; } if(params.endTime-1){ WST.msg('库存必须为正整数', {icon: 5}); return; } } var params = {}; (fv==2)?params.shopPrice=vtext:params.goodsStock=vtext; params.goodsId = goodsId; $.post(WST.U('Home/Goods/editGoodsBase'),params,function(data,textStatus){ var json = WST.toJson(data); if(json.status>0){ $('#img_'+fv+'_'+goodsId).fadeTo("fast",100); endEditGoodsBase(fv,goodsId); $('#img_'+fv+'_'+goodsId).fadeTo("slow",0); }else{ WST.msg(json.msg, {icon: 5}); } }); } function benchDel(func,flag){ if(flag==1){ var ids = WST.getChks('.chk1'); }else{ var ids = WST.getChks('.chk'); } if(ids==''){ WST.msg('请先选择商品!', {icon: 5}); return; } var params = {}; params.ids = ids; var load = WST.load({msg:'请稍后...'}); $.post(WST.U('home/goods/batchDel'),params,function(data,textStatus){ layer.close(load); var json = WST.toJson(data); if(json.status=='1'){ WST.msg('操作成功',{icon:1},function(){ $('#all').prop('checked',false); switch(func){ case 'store':storeByPage(0);break; case 'sale':saleByPage(0);break; case 'audit':auditByPage(0);break; } }); }else{ WST.msg('操作失败',{icon:5}); } }); } function getCat(val){ if(val==''){ $('#cat2').html(""); $('#cat3').html(""); return; } $.post(WST.U('home/shopcats/listQuery'),{parentId:val},function(data,textStatus){ //alert(JSON.stringify(data)) var json = WST.toJson(data); var html = [],cat; html.push(""); if(json.status==1 && json.list){ json = json.list; for(var i=0;i"+cat.catName+""); } } $('#cat2').html(html.join('')); $('#cat3').html(html.join('')); }); } function resetForm(){ location.reload(); }