2019-09-06 23:53:10 +08:00

1137 lines
41 KiB
JavaScript
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**删除批量上传的图片**/
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('<input type="hidden" class="j-gallery-img" iv="'+json.savePath + json.thumb+'" v="' +json.savePath + json.name+'"/>');
//$li.append('<span class="btn-setDefault">默认</span>' );
var delBtn = $('<span class="btn-del">删除</span>');
$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("<option value='' >-请选择-</option>");
if(json.status==1 && json.list){
json = json.list;
for(var i=0;i<json.length;i++){
cat = json[i];
html.push("<option value='"+cat.catId+"' "+((objVal==cat.catId)?"selected":"")+">"+cat.catName+"</option>");
}
}
$('#'+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("<option value='' >-请选择-</option>");
if(json.status==1 && json.list){
json = json.list;
for(var i=0;i<json.length;i++){
cat = json[i];
html.push("<option value='"+cat.brandId+"' "+((objVal==cat.brandId)?"selected":"")+">"+cat.brandName+"</option>");
}
}
$('#'+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('<div class="spec-item">',
'<input type="checkbox" class="j-speccat j-speccat_'+opts.catId+' j-spec_'+opts.catId+'_'+specNum+'" cat="'+opts.catId+'" num="'+specNum+'" onclick="javascript:addSpecSaleCol()" '+opts.checked+'/>',
'<input type="text" class="spec-ipt" id="specName_'+opts.catId+'_'+specNum+'" maxLength="50" value="'+WST.blank(opts.val)+'" onblur="batchChangeTxt(this.value,'+opts.catId+','+specNum+')"/>',
'<span class="item-del" onclick="delSpec(this,'+opts.catId+','+specNum+')"></span>',
'</div>');
$(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('<tr>',
'<td>',
'<input type="checkbox" class="j-speccat j-speccat_'+opts.catId+' j-spec_'+opts.catId+'_'+specNum+'" cat="'+opts.catId+'" num="'+specNum+'" onclick="javascript:addSpecSaleCol()" '+opts.checked+'/>',
'<input type="text" id="specName_'+opts.catId+'_'+specNum+'" maxLength="50" value="'+WST.blank(opts.val)+'" onblur="batchChangeTxt(this.value,'+opts.catId+','+specNum+')"/>',
'</td>',
'<td id="uploadMsg_'+opts.catId+'_'+specNum+'">',
(opts.specImg)?'<img height="25" width="25" id="specImg_'+opts.catId+'_'+specNum+'" src="'+WST.conf.IMGURL+"/"+opts.specImg+'" v="'+opts.specImg+'"/>':"",
'</td><td><div id="specImgPicker_'+specNum+'" class="j-specImg">上传图片</div></td>'
);
if($('#specTby').children().size()==0){
html.push('<td><input type="button" id="specImgBtn" value="新增" onclick="addSpecImg({catId:'+opts.catId+',checked:\'\'})"/></td>');
}else{
html.push('<td><input type="button" id="specImgBtn" value="删除" onclick="delSpecImg(this,'+opts.catId+','+specNum+')"/></td>');
}
html.push('</tr>');
$('#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('<img id="specImg_'+this.cat+"_"+this.num+'" v="'+json.savePath+json.name+'" src="'+WST.conf.IMGURL+"/"+json.savePath+json.thumb+'" height="25" width="25"/>');
}
},
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<OBJ.saleSpec.length;i++){
tmpids = [];
ids = OBJ.saleSpec[i].specIds;
ids = ids.split(':');
for(var j=0;j<ids.length;j++){
tmpids.push(id2SepcNumConverter[ids[j]]);
}
tmpids = tmpids.join('-');
if(OBJ.saleSpec[i].isDefault)$('#isDefault_'+tmpids).attr('checked',true);
$('#productNo_'+tmpids).val(OBJ.saleSpec[i].productNo);
$('#marketPrice_'+tmpids).val(OBJ.saleSpec[i].marketPrice);
$('#specPrice_'+tmpids).val(OBJ.saleSpec[i].specPrice);
$('#initNum_'+tmpids).val(OBJ.saleSpec[i].initNum);
$('#whslePrice_'+tmpids).val(OBJ.saleSpec[i].whslePrice);
$('#specStock_'+tmpids).val(OBJ.saleSpec[i].specStock);
$('#warnStock_'+tmpids).val(OBJ.saleSpec[i].warnStock);
$('#saleNum_'+tmpids).val(OBJ.saleSpec[i].saleNum);
$('#saleNum_'+tmpids).attr('sid',OBJ.saleSpec[i].id);
}
}
/**生成销售规格表**/
function addSpecSaleCol(){
//获取规格分类和规格值
var catId,snum,specCols = {},obj = [];
$('.j-speccat').each(function(){
if($(this)[0].checked){
catId = $(this).attr('cat');
snum = $(this).attr('num');
if(!specCols[catId]){
specCols[catId] = [];
specCols[catId].push({id:catId+"_"+snum,val:$.trim($('#specName_'+catId+"_"+snum).val())});
}else{
specCols[catId].push({id:catId+"_"+snum,val:$.trim($('#specName_'+catId+"_"+snum).val())});
}
}
});
//创建表头
$('.j-saleTd').remove();
var html = [],specArray = [];;
for(var key in specCols){
html.push('<th class="j-saleTd">'+$('#specCat_'+key).html()+'</th>');
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<specsRows.length;i++){
id = [],specHtml = [];
html.push('<tr class="j-saleTd">');
if(specsRows[i].length){
for(var j=0;j<specsRows[i].length;j++){
id.push(specsRows[i][j].id);
specHtml.push('<td class="j-td_'+specsRows[i][j].id+'">' + specsRows[i][j].val + '</td>');
}
}else{
id.push(specsRows[i].id);
specHtml.push('<td>' + specsRows[i].val + '</td>');
}
id = id.join('-');
if(OBJ.goodsId==0){
specProductNo = productNo+'-'+key;
}
html.push(' <td><input type="radio" id="isDefault_'+id+'" name="defaultSpec" class="j-ipt" value="'+id+'"/></td>');
html.push(specHtml.join(''));
html.push(' <td><input type="text" class="spec-sale-goodsNo j-ipt" id="productNo_'+id+'" value="'+specProductNo+'" onblur="checkProductNo(this)" ></td>',
' <td><input type="text" class="spec-sale-ipt j-ipt" id="marketPrice_'+id+'" onblur="WST.limitDecimal(this,2);javascript:WST.limitDecimal(this,2)" onkeypress="return WST.isNumberdoteKey(event)" onkeyup="javascript:WST.isChinese(this,1)"></td>',
' <td><input type="text" class="spec-sale-ipt j-ipt" id="specPrice_'+id+'" onblur="WST.limitDecimal(this,2);javascript:WST.limitDecimal(this,2)" onkeypress="return WST.isNumberdoteKey(event)" onkeyup="javascript:WST.isChinese(this,1)"></td>',
' <td><input type="text" class="spec-sale-ipt j-ipt" id="initNum_'+id+'" onblur="WST.limitDecimal(this,2);javascript:WST.limitDecimal(this,2)" onkeypress="return WST.isNumberdoteKey(event)" onkeyup="javascript:WST.isChinese(this,1)"></td>',
' <td><input type="text" class="spec-sale-ipt j-ipt" id="whslePrice_'+id+'" onblur="WST.limitDecimal(this,2);javascript:WST.limitDecimal(this,2)" onkeypress="return WST.isNumberdoteKey(event)" onkeyup="javascript:WST.isChinese(this,1)"></td>',
' <td><input type="text" class="spec-sale-ipt j-ipt" id="specStock_'+id+'" onkeypress="return WST.isNumberKey(event)" onkeyup="javascript:WST.isChinese(this,1)"></td>',
' <td><input type="text" class="spec-sale-ipt j-ipt" id="warnStock_'+id+'" onkeypress="return WST.isNumberKey(event)" onkeyup="javascript:WST.isChinese(this,1)"></td>',
' <td class="j-ws" v="'+id+'" id="saleNum_'+id+'">0</td>',
'</tr>');
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('<div class="spec-head">商品规格</div>');
html.push('<div class="spec-body">');
if(json.data.spec0){
tmp = json.data.spec0;
html.push('<div id="specCat_'+tmp.catId+'">'+tmp.catName+'</div>');
html.push('<table><tbody id="specTby"></tbody></table>');
}
if(json.data.spec1){
for(var i=0;i<json.data.spec1.length;i++){
tmp = json.data.spec1[i];
html.push('<div class="spec-line"></div>',
'<div id="specCat_'+tmp.catId+'">'+tmp.catName+'</div>',
'<div>',
'<input type="button" value="新增" id="specAddBtn_'+tmp.catId+'" onclick="javascript:addSpec({catId:'+tmp.catId+',checked:\'\'})"/>',
'</div>'
);
}
}
html.push('</div>');
html.push($('#specTips').html());
html.push('<div id="specSaleHead" class="spec-head">销售规格</div>',
'<table class="specs-sale-table">',
' <thead id="spec-sale-hed">',
' <tr>',
' <th>推荐<br/>规格</th>',
' <th id="thCol"><font color="red">*</font>货号</th>',
' <th><font color="red">*</font>市场价<br/><input type="text" class="spec-sale-ipt" onblur="WST.limitDecimal(this,2);batchChange(this.value,\'marketPrice\')" onkeypress="return WST.isNumberdoteKey(event)" onkeyup="javascript:WST.isChinese(this,1)"></th>',
' <th><font color="red">*</font>本店价<br/><input type="text" class="spec-sale-ipt" onblur="WST.limitDecimal(this,2);batchChange(this.value,\'specPrice\')" onkeypress="return WST.isNumberdoteKey(event)" onkeyup="javascript:WST.isChinese(this,1)"></th>',
' <th><font color="red">*</font>起批数<br/><input type="text" class="spec-sale-ipt" onblur="WST.limitDecimal(this,2);batchChange(this.value,\'initNum\')" onkeypress="return WST.isNumberdoteKey(event)" onkeyup="javascript:WST.isChinese(this,1)"></th>',
' <th><font color="red">*</font>批发价<br/><input type="text" class="spec-sale-ipt" onblur="WST.limitDecimal(this,2);batchChange(this.value,\'whslePrice\')" onkeypress="return WST.isNumberdoteKey(event)" onkeyup="javascript:WST.isChinese(this,1)"></th>',
' <th><font color="red">*</font>库存<br/><input type="text" class="spec-sale-ipt" onblur="batchChange(this.value,\'specStock\')" onkeypress="return WST.isNumberKey(event)" onkeyup="javascript:WST.isChinese(this,1)"></th>',
' <th><font color="red">*</font>预警库存<br/><input type="text" class="spec-sale-ipt" onblur="batchChange(this.value,\'warnStock\')" onkeypress="return WST.isNumberKey(event)" onkeyup="javascript:WST.isChinese(this,1)"></th>',
' <th>销量</th>',
' </tr>',
' </thead>',
' <tbody id="spec-sale-tby"></tbody></table>'
);
}
if(json.data.attrs){
html.push('<div class="spec-head">商品属性</div>');
html.push('<div class="spec-body">');
html.push('<table class="attr-table">');
for(var i=0;i<json.data.attrs.length;i++){
tmp = json.data.attrs[i];
html.push('<tr><th width="120" nowrap>'+tmp.attrName+'</th><td>');
if(tmp.attrType==1){
str = tmp.attrVal.split(',');
for(var j=0;j<str.length;j++){
html.push('<label><input type="checkbox" class="j-ipt" name="attr_'+tmp.attrId+'" value="'+str[j]+'"/>'+str[j]+'</label>');
}
}else if(tmp.attrType==2){
html.push('<select name="attr_'+tmp.attrId+'" id="attr_'+tmp.attrId+'" class="j-ipt">');
html.push('<option value="0">请选择</option>');
str = tmp.attrVal.split(',');
for(var j=0;j<str.length;j++){
html.push('<option value="'+str[j]+'">'+str[j]+'</option>');
}
html.push('</select>');
}else{
html.push('<input type="text" name="attr_'+tmp.attrId+'" id="attr_'+tmp.attrId+'" class="spec-sale-text j-ipt"/>');
}
html.push('</td></tr>');
}
html.push('</table>');
html.push('</div>');
}
$('#specsAttrBox').html(html.join(''));
//如果是编辑的话,第一次要设置之前设置的值
if(OBJ.goodsId>0 && specNum==0){
//设置规格值
if(OBJ.spec0){
for(var i=0;i<OBJ.spec0.length;i++){
addSpecImg({catId:OBJ.spec0[i].catId,checked:'checked',val:OBJ.spec0[i].itemName,itemId:OBJ.spec0[i].itemId,specImg:OBJ.spec0[i].itemImg});
}
}
if(OBJ.spec1){
for(var i=0;i<OBJ.spec1.length;i++){
addSpec({catId:OBJ.spec1[i].catId,checked:'checked',val:OBJ.spec1[i].itemName,itemId:OBJ.spec1[i].itemId});
}
}
addSpecSaleCol();
//设置商品属性值
var tmp = null;
if(OBJ.attrs.length){
for(var i=0;i<OBJ.attrs.length;i++){
if(OBJ.attrs[i].attrType==1){
tmp = OBJ.attrs[i].attrVal.split(',');
WST.setValue("attr_"+OBJ.attrs[i].attrId,tmp);
}else{
WST.setValue("attr_"+OBJ.attrs[i].attrId,OBJ.attrs[i].attrVal);
}
}
}
}
//给没有初始化的规格初始化一个输入框
if(json.data.spec0 && !$('.j-speccat_'+json.data.spec0.catId)[0]){
addSpecImg({catId:json.data.spec0.catId,checked:''});
}
if(json.data.spec1){
for(var i=0;i<json.data.spec1.length;i++){
if(!$('.j-speccat_'+json.data.spec1[i].catId)[0])addSpec({catId:json.data.spec1[i].catId,checked:''});
}
}
$('#specBtns').show();
}
});
}
function changeGoodsType(v){
if(v==0){
$('#goodsStockTr').show();
$('#goodsStock').removeAttr('disabled');
}else{
$('#goodsStockTr').hide();
$('#goodsStock').prop('disabled',true);
}
var goodsCatId =WST.ITGetGoodsCatVal('j-goodsCats');
getSpecAttrs(goodsCatId);
}
function toStock(id,src){
location.href=WST.U('home/goodsvirtuals/stock','id='+id+"&src="+src);
}
function saleByPage(p){
$('#list').html('<tr><td colspan="11"><img src="'+WST.conf.ROOT+'/hyhproject/home/view/default/img/loading.gif">正在加载数据...</td></tr>');
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('<tr><td colspan="11"><img src="'+WST.conf.ROOT+'/hyhproject/home/view/default/img/loading.gif">正在加载数据...</td></tr>');
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('<tr><td colspan="11"><img src="'+WST.conf.ROOT+'/hyhproject/home/view/default/img/loading.gif">正在加载数据...</td></tr>');
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('<tr><td colspan="4"><img src="'+WST.conf.ROOT+'/hyhproject/home/view/default/img/loading.gif">正在加载数据...</td></tr>');
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('<tr><td colspan="11"><img src="'+WST.conf.ROOT+'/hyhproject/home/view/default/img/loading.gif">正在加载数据...</td></tr>');
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('<option value="'+json.data[i].goodsId+'" gt="'+json.data[i].goodsType+'">'+json.data[i].goodsName+'</option>');
}
$('#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("<option value='"+data['specs'][i].productNo+"'>"+data['specs'][i].productNo+"</option>");
changeSpecs();
}
}else{
var html = [];
html.push('<option value="">无商品货号</option>');
$('#productNo').html(html.join(''));
//$("#productNo").html('<option value=0>无商品货号</option>');
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("<option value='"+json.productNo+"'>"+json.productNo+"</option>");
}
else{
$("#productNo").html("<option value=''>无商品货号</option>");
}
}
//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<params.startTime){
WST.msg('结束时间不能小于结束时间!', {icon: 5});
return;
}
var loading = WST.msg('正在提交数据,请稍后...', {icon: 16,time:60000});
params.id=id;
$.post(WST.U('home/goods/'+((id==0)?"addLimitGoods":"editLimitGoods")),params,function(data,textStatus){
layer.close(loading);
var json = WST.toJson(data);
//alert(json)
if(json.status=='1'){
WST.msg("操作成功",{icon:1});
layer.close(box);
$('#goodsBox').hide();
limitPriceByPage(0);
}else{
WST.msg(json.msg,{icon:2});
}
});
//$('#goodsForm').submit();
}});
});
}
//删除限时价格商品
function delLimitGoods(id){
var c = WST.confirm({content:'您确定要删除商品吗?',yes:function(){
layer.close(c);
var load = WST.load({msg:'正在删除,请稍后...'});
$.post(WST.U('home/goods/delLimitGoods'),{id:id},function(data){
layer.close(load);
var json = WST.toJson(data);
if(json.status==1){
WST.msg("删除成功",{icon:1});
limitPriceByPage(0);
}else{
WST.msg(json.msg,{icon:2});
}
});
}});
}
function del(id,func){
var c = WST.confirm({content:'您确定要删除商品吗?',yes:function(){
layer.close(c);
var load = WST.load({msg:'正在删除,请稍后...'});
$.post(WST.U('home/goods/del'),{id:id},function(data,textStatus){
layer.close(load);
var json = WST.toJson(data);
if(json.status==1){
switch(func){
case 'store':storeByPage(0);break;
case 'sale':saleByPage(0);break;
case 'audit':auditByPage(0);break;
case 'illegal':illegalByPage(0);break;
}
}else{
WST.msg(json.msg,{icon:2});
}
});
}});
}
// 批量 上架/下架
function changeSale(i,func){
var ids = WST.getChks('.chk');
if(ids==''){
WST.msg('请先选择商品!', {icon: 5});
return;
}
var params = {};
params.ids = ids;
params.isSale = i;
$.post(WST.U('home/goods/changeSale'), params, function(data,textStatus){
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 if(json.status=='-2'){
WST.msg(json.msg, {icon: 5});
}else if(json.status=='2'){
WST.msg(json.msg, {icon: 5},function(){
switch(func){
case 'store':storeByPage(0);break;
case 'sale':saleByPage(0);break;
case 'audit':auditByPage(0);break;
}
});
}else if(json.status=='-3'){
WST.msg(json.msg, {icon: 5,time:3000});
}else{
WST.msg('操作失败!', {icon: 5});
}
});
}
// 批量设置 精品/新品/推荐/热销
function changeGoodsStatus(isWhat,func){
var ids = WST.getChks('.chk');
if(ids==''){
WST.msg('请先选择商品!', {icon: 5});
return;
}
var params = {};
params.ids = ids;
params.is = isWhat;
$.post(WST.U('home/goods/changeGoodsStatus'),params,function(data,textStatus){
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 changeStoreStatus(isWhat,func){
var ids = WST.getChks('.chk');
if(ids==''){
WST.msg('请先选择商品!', {icon: 5});
return;
}
var params = {};
params.ids = ids;
params.is = isWhat;
$.post(WST.U('home/goods/changeStoreStatus'),params,function(data,textStatus){
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 changSaleStatus(isWhat, obj, id){
var params = {};
status = $(obj).attr('status');
params.status = status;
params.id = id;
switch(isWhat){
case 'r':params.is = "isRecom";break;
case 'b':params.is = "isBest";break;
case 'n':params.is = "isNew";break;
case 'h':params.is = "isHot";break;
case 's':params.is = "storeRecom";break;
}
var load = WST.load({msg:'请稍后...'});
$.post(WST.U('home/goods/changSaleStatus'),params,function(data,textStatus){
layer.close(load);
var json = WST.toJson(data);
if(json.status==1){
if(status==0){
$(obj).attr('status',1);
$(obj).removeClass('wrong').addClass('right');
}else{
$(obj).attr('status',0);
$(obj).removeClass('right').addClass('wrong');
}
}else{
WST.msg('操作失败',{icon:5});
}
});
}
// 双击修改店长推荐
function changStoreRecom(isWhat, obj, id){
var params = {};
status = $(obj).attr('status');
params.status = status;
params.id = id;
var load = WST.load({msg:'请稍后...'});
$.post(WST.U('home/goods/changStoreRecom'),params,function(data,textStatus){
layer.close(load);
var json = WST.toJson(data);
if(json.status==1){
if(status==0){
$(obj).attr('status',1);
$(obj).removeClass('wrong').addClass('right');
}else{
$(obj).attr('status',0);
$(obj).removeClass('right').addClass('wrong');
}
}else{
WST.msg('操作失败',{icon:5});
}
});
}
//双击修改
function toEditGoodsBase(fv,goodsId,flag){
if((fv==2 || fv==3) && flag==1){
WST.msg('该商品存在商品属性,不能直接修改,请进入编辑页修改', {icon: 5});
return;
}else{
$("#ipt_"+fv+"_"+goodsId).show();
$("#span_"+fv+"_"+goodsId).hide();
$("#ipt_"+fv+"_"+goodsId).focus();
$("#ipt_"+fv+"_"+goodsId).val($("#span_"+fv+"_"+goodsId).html());
}
}
function endEditGoodsBase(fv,goodsId){
$('#span_'+fv+'_'+goodsId).html($('#ipt_'+fv+'_'+goodsId).val());
$('#span_'+fv+'_'+goodsId).show();
$('#ipt_'+fv+'_'+goodsId).hide();
}
function editGoodsBase(fv,goodsId){
var vtext = $.trim($('#ipt_'+fv+'_'+goodsId).val());
if(fv==2){
if(vtext=='' || parseFloat(vtext,10)<=0){
WST.msg('价格必须大于0', {icon: 5});
return;
}
}else if(fv==3){
if(vtext=='' || parseInt(vtext,10)<0 || vtext.indexOf('.')>-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("<option value='' >-请选择-</option>");
$('#cat3').html("<option value='' >-请选择-</option>");
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("<option value='' >-请选择-</option>");
if(json.status==1 && json.list){
json = json.list;
for(var i=0;i<json.length;i++){
cat = json[i];
html.push("<option value='"+cat.catId+"'>"+cat.catName+"</option>");
}
}
$('#cat2').html(html.join(''));
$('#cat3').html(html.join(''));
});
}
function resetForm(){
location.reload();
}