mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 18:33:27 +08:00
【新增】商品添加编辑功能,增加一键上传sku图片,一键设置sku各项属性。
This commit is contained in:
@@ -218,6 +218,135 @@
|
||||
<div id="more_spec"></div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="layui-form" id="batchSetting" style="display:none;">
|
||||
<div class="layui-tab" lay-filter="batchSetting-hash">
|
||||
<ul class="layui-tab-title">
|
||||
<li class="layui-this" lay-id="11">参数设置</li>
|
||||
<li lay-id="22">图片设置</li>
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
<div class="layui-tab-item layui-show">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">重量</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetWeight">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(4)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
<label class="layui-form-label">赠送积分</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetPoints">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(5)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">库存</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetStock">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(7)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
<label class="layui-form-label">积分最大抵扣</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetPointsDeduction">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(6)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">销售价</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetPrice">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(8)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
<label class="layui-form-label"> 一级返现</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetLevelOne">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(11)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">成本价</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetCostPrice">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(9)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
<label class="layui-form-label">二级返现</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetLevelTwo">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(12)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">市场价</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetMktPrice">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(10)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
<label class="layui-form-label"> 三级返现</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetLevelThree">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(13)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="layui-tab-item">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">SKU选择</label>
|
||||
<div class="layui-input-block" id="skuSetImage"></div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" for="avatarImage">图片:</label>
|
||||
<div class="layui-input-inline" style="margin-left:20px;">
|
||||
<div class="layui-upload upload">
|
||||
<button type="button" class="layui-btn" id="uploadImageForMoreSku">一键上传图片</button>
|
||||
<input class="layui-upload-file" type="file" accept="" name="file">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-tab-item">
|
||||
@@ -409,14 +538,14 @@
|
||||
<input type="hidden" name="paramsKey[{{index}}]" value="{{item.id}}" class="layui-input">
|
||||
<input type="hidden" name="paramsType[{{index}}]" value="{{item.type}}" class="layui-input">
|
||||
{{# if(item.type && item.type==='radio'){ }}
|
||||
<input type="hidden" name="paramsValueCount[{{index}}]" value="{{layui.coreHelper.stringToArrayLength(item.value)}}" class="layui-input" lay-verify="required" lay-reqText="请选择参数:{{item.name}}" >
|
||||
<input type="hidden" name="paramsValueCount[{{index}}]" value="{{layui.coreHelper.stringToArrayLength(item.value)}}" class="layui-input" lay-verify="required" lay-reqText="请选择参数:{{item.name}}">
|
||||
{{# layui.each(layui.coreHelper.stringToArray(item.value), function(indexRadio, itemRadio){ }}
|
||||
<input type="radio" name="paramsValue[{{index}}]" value="{{itemRadio}}" title="{{itemRadio}}" {{ indexRadio===0 ?'checked':'' }} lay-verify="required" lay-reqText="请输入参数:{{item.name}}" >
|
||||
<input type="radio" name="paramsValue[{{index}}]" value="{{itemRadio}}" title="{{itemRadio}}" {{ indexRadio===0 ?'checked':'' }} lay-verify="required" lay-reqText="请输入参数:{{item.name}}">
|
||||
{{# }); }}
|
||||
{{# } else if (item.type && item.type==='checkbox'){ }}
|
||||
<input type="hidden" name="paramsValueCount[{{index}}]" value="{{layui.coreHelper.stringToArrayLength(item.value)}}" class="layui-input" lay-verify="required" lay-reqText="请选择参数:{{item.name}}">
|
||||
{{# layui.each(layui.coreHelper.stringToArray(item.value), function(indexCheckbox, itemCheckbox){ }}
|
||||
<input type="checkbox" name="paramsValue[{{index}}][]" value="{{itemCheckbox}}" lay-skin="primary" title="{{itemCheckbox}}" value="{{itemCheckbox}}" lay-verify="required" lay-reqText="请选择参数:{{item.name}}">
|
||||
<input type="checkbox" name="paramsValue[{{index}}][]" value="{{itemCheckbox}}" lay-skin="primary" title="{{itemCheckbox}}" value="{{itemCheckbox}}" lay-verify="required" lay-reqText="请选择参数:{{item.name}}">
|
||||
{{# }); }}
|
||||
{{# } else if (item.type && item.type==='text'){ }}
|
||||
<input type="hidden" name="paramsValueCount[{{index}}]" value="1" class="layui-input">
|
||||
@@ -448,7 +577,7 @@
|
||||
<input type="checkbox" name="selectSpec&&{{itemValue.id}}&&{{item.name}}" value="{{itemValue.value}}" lay-skin="switch" lay-filter="spec_select" class="spec-select" lay-text="启用|关闭">
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" value="{{itemValue.value}}" name="newSpec&&{{itemValue.id}}" class="layui-input">
|
||||
<input type="text" value="{{itemValue.value}}" name="newSpec&&{{itemValue.id}}" readonly="readonly" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
{{# }); }}
|
||||
@@ -463,6 +592,11 @@
|
||||
<div class="layui-input-inline">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" lay-active="getGenerateSpecBtn"><i class="layui-icon layui-icon-export"></i>生成SKU货品列表</button>
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<button type="button" class="aKeySetBtn layui-btn layui-btn-warm layui-btn-sm">
|
||||
<i class="layui-icon layui-icon-set"></i>一键设置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="more_spec"></div>
|
||||
@@ -488,6 +622,12 @@
|
||||
{{# }); }}
|
||||
</select>
|
||||
</script>
|
||||
<!--//一键设置SKU图片时自动生成选中的SKU-->
|
||||
<script id="imageSetMoreSku_tpl" type="text/html">
|
||||
{{# layui.each(d, function(index, item){ }}
|
||||
<input type="checkbox" name="skuAttrValue" value="{{item}}" title="{{item}}" lay-filter="skuAttrValue-filter">
|
||||
{{# }); }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var $;
|
||||
@@ -828,6 +968,71 @@
|
||||
form.render();
|
||||
});
|
||||
|
||||
var skuAttrCheckedValue = [];
|
||||
// checkbox 事件
|
||||
form.on('checkbox(skuAttrValue-filter)', function (data) {
|
||||
var elem = data.elem; // 获得 checkbox 原始 DOM 对象
|
||||
|
||||
if (elem.checked && skuAttrCheckedValue.indexOf(elem.value) == -1) {
|
||||
skuAttrCheckedValue.push(elem.value);
|
||||
} else if (!elem.checked && skuAttrCheckedValue.indexOf(elem.value) > -1) {
|
||||
for (var i = 0; i < skuAttrCheckedValue.length; i++) {
|
||||
if (skuAttrCheckedValue[i] == elem.value) {
|
||||
skuAttrCheckedValue.splice(i, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log("skuAttrCheckedValue", skuAttrCheckedValue);
|
||||
});
|
||||
|
||||
//SKU缩略图一键上传
|
||||
var uploadInst4 = upload.render({
|
||||
elem: '#uploadImageForMoreSku'
|
||||
, url: '/api/Tools/UploadFiles' //改成您自己的上传接口
|
||||
, multiple: false
|
||||
, accept: 'images'
|
||||
, exts: 'jpg|jpeg|png|gjf|webp|bmp|tif'
|
||||
, drag: true
|
||||
, before: function (obj) {
|
||||
if (!skuAttrCheckedValue) {
|
||||
layer.msg("请先选择一个SKU属性");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
, done: function (res) {
|
||||
var loadIndex = layer.load(2);
|
||||
//如果上传失败
|
||||
if (res.code > 0) {
|
||||
return layer.msg('上传失败');
|
||||
}
|
||||
else {
|
||||
var url = res.data.src;//缩略图地址
|
||||
var _that = this.item;
|
||||
if (!skuAttrCheckedValue) {
|
||||
layer.msg("请先选择一个SKU属性");
|
||||
return
|
||||
}
|
||||
console.log("skuAttrCheckedValue", skuAttrCheckedValue);
|
||||
|
||||
$.each($("#productsTbody tr"), function (i, item) {
|
||||
var tdValue = $(item).find("td:eq(3) input").attr("value");
|
||||
for (var i = 0; i < skuAttrCheckedValue.length; i++) {
|
||||
if (tdValue.indexOf(skuAttrCheckedValue[i]) > -1) {
|
||||
$($(item).find("td:eq(1) .spec_image img")).attr("src", url);
|
||||
$($(item).find("td:eq(1) .spec_image input")).val(url);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
//var item = $(_that);
|
||||
layer.msg(res.msg);
|
||||
layer.close(loadIndex);
|
||||
}
|
||||
}
|
||||
, error: function () {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
//表单验证规则
|
||||
form.verify({
|
||||
@@ -1037,6 +1242,36 @@
|
||||
return false;
|
||||
});
|
||||
|
||||
//一键设置
|
||||
$(document).on('click', '.aKeySetBtn', function () {
|
||||
layer.open({
|
||||
type: 1,
|
||||
area: ['700px', '500px'],
|
||||
offset: '50px',
|
||||
title: '一键设置',
|
||||
closeBtn: 1,
|
||||
shadeClose: true,
|
||||
content: $("#batchSetting"),
|
||||
shade: 0,
|
||||
btn: ['关闭'],
|
||||
btn1: function (index, layero) {
|
||||
$("#batchSetting").css("display", "none");
|
||||
layer.closeAll();
|
||||
return false;
|
||||
},
|
||||
btn2: function (index, layero) {
|
||||
$("#batchSetting").css("display", "none");
|
||||
layer.closeAll();
|
||||
return false;
|
||||
},
|
||||
cancel: function (layero, index) {
|
||||
$("#batchSetting").css("display", "none");
|
||||
layer.closeAll();
|
||||
return false
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//默认货品选择
|
||||
form.on('checkbox(isdefalut)', function (data) {
|
||||
console.log("选择isdefalut");
|
||||
@@ -1209,6 +1444,17 @@
|
||||
coreHelper.Post("Api/CoreCmsGoods/GetSpecHtml", { entity: array }, function (e) {
|
||||
if (debug) { console.log(e); } //开启调试返回数据
|
||||
if (e.code == 0) {
|
||||
//批量设置sku图片
|
||||
if (e.data.skuArray) {
|
||||
//生成一键SKU上传图片的内容
|
||||
var tmpData2 = e.data.skuArray;
|
||||
var getTpl2 = imageSetMoreSku_tpl.innerHTML, view2 = document.getElementById('skuSetImage');
|
||||
laytpl(getTpl2).render(tmpData2, function (html) {
|
||||
view2.innerHTML = html;
|
||||
});
|
||||
form.render("radio");
|
||||
}
|
||||
|
||||
//赋值数据
|
||||
var getTpl = getSpec_tpl.innerHTML, view = document.getElementById('more_spec');
|
||||
var tmpData = [];
|
||||
@@ -1512,4 +1758,51 @@
|
||||
}
|
||||
$('#imageIds').val(imgs);
|
||||
}
|
||||
|
||||
function oneKeySet(tag) {
|
||||
var curValue = 0;
|
||||
if (tag == 4) {
|
||||
curValue = $("#oneKeySetWeight").val()
|
||||
}
|
||||
else if (tag == 5) {
|
||||
curValue = $("#oneKeySetPoints").val()
|
||||
}
|
||||
else if (tag == 6) {
|
||||
curValue = $("#oneKeySetPointsDeduction").val()
|
||||
}
|
||||
else if (tag == 8) {
|
||||
curValue = $("#oneKeySetPrice").val()
|
||||
}
|
||||
else if (tag == 9) {
|
||||
curValue = $("#oneKeySetCostPrice").val()
|
||||
}
|
||||
else if (tag == 10) {
|
||||
curValue = $("#oneKeySetMktPrice").val()
|
||||
}
|
||||
else if (tag == 7) {
|
||||
curValue = $("#oneKeySetStock").val()
|
||||
}
|
||||
else if (tag == 11) {
|
||||
curValue = $("#oneKeySetLevelOne").val()
|
||||
}
|
||||
else if (tag == 12) {
|
||||
curValue = $("#oneKeySetLevelTwo").val()
|
||||
}
|
||||
else if (tag == 13) {
|
||||
curValue = $("#oneKeySetLevelThree").val()
|
||||
}
|
||||
|
||||
curValue = $.trim(curValue);
|
||||
|
||||
if (isNaN(curValue) || !curValue) {
|
||||
layer.msg("请输入数字");
|
||||
return
|
||||
}
|
||||
|
||||
$.each($("#productsTbody tr"), function (i, item) {
|
||||
$($(item).find("td:eq(" + tag + ") input")).val(curValue);
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
@@ -304,7 +304,6 @@
|
||||
<th>图片</th>
|
||||
<th>货号</th>
|
||||
<th>SKU</th>
|
||||
<th>冻结库存</th>
|
||||
<th>重量(克)</th>
|
||||
<th>赠送积分</th>
|
||||
<th>积分最大<br />可抵金额</th>
|
||||
@@ -315,6 +314,7 @@
|
||||
<th>一级返现</th>
|
||||
<th>二级返现</th>
|
||||
<th>三级返现</th>
|
||||
<th>冻结库存</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -352,9 +352,6 @@
|
||||
<input type="hidden" name="product[spesDesc][]" value="{{item.spesDesc}}" placeholder="SKU" class="layui-input">
|
||||
{{item.spesDesc}}
|
||||
</td>
|
||||
<td>
|
||||
{{item.freezeStock}}
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" name="product[weight][]" value="{{item.weight}}" placeholder="重量" class="layui-input layui-inline-1">
|
||||
</td>
|
||||
@@ -385,6 +382,9 @@
|
||||
<td>
|
||||
<input type="text" name="product[levelThree][]" value="{{item.levelThree}}" placeholder="三级返现" class="layui-input layui-inline-1">
|
||||
</td>
|
||||
<td>
|
||||
{{item.freezeStock}}
|
||||
</td>
|
||||
<td>
|
||||
<a class="layui-btn layui-btn-danger layui-btn-xs del-class" lay-active="delTr">删除</a>
|
||||
</td>
|
||||
@@ -445,7 +445,7 @@
|
||||
<input type="checkbox" name="selectSpec&&{{itemValue.id}}&&{{item.name}}" value="{{itemValue.value}}" lay-skin="switch" {{isSelectedTypeSpec(d.model.spesDesc, itemValue.id,item.name)?'checked="checked"':''}} lay-filter="spec_select" class="spec-select" lay-text="启用|关闭">
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" value="{{getSelectedTypeSpecValue(d.model.newSpec, itemValue.id, itemValue.value)}}" name="newSpec&&{{itemValue.id}}" class="layui-input">
|
||||
<input type="text" value="{{getSelectedTypeSpecValue(d.model.newSpec, itemValue.id, itemValue.value)}}" name="newSpec&&{{itemValue.id}}" readonly="readonly" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
{{# }); }}
|
||||
@@ -461,9 +461,149 @@
|
||||
<div class="layui-input-inline">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" lay-active="getGenerateSpecBtn"><i class="layui-icon layui-icon-export"></i>生成SKU货品列表</button>
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<button type="button" class="aKeySetBtn layui-btn layui-btn-warm layui-btn-sm">
|
||||
<i class="layui-icon layui-icon-set"></i>一键设置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="more_spec"></div>
|
||||
<div class="layui-form" id="batchSetting" style="display:none;">
|
||||
<div class="layui-tab" lay-filter="batchSetting-hash">
|
||||
<ul class="layui-tab-title">
|
||||
<li class="layui-this" lay-id="11">参数设置</li>
|
||||
<li lay-id="22">图片设置</li>
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
<div class="layui-tab-item layui-show">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">重量</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetWeight">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(4)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
<label class="layui-form-label">赠送积分</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetPoints">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(5)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">库存</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetStock">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(7)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
<label class="layui-form-label">积分最大抵扣</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetPointsDeduction">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(6)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">销售价</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetPrice">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(8)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
<label class="layui-form-label"> 一级返现</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetLevelOne">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(11)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">成本价</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetCostPrice">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(9)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
<label class="layui-form-label">二级返现</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetLevelTwo">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(12)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">市场价</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetMktPrice">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(10)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
<label class="layui-form-label"> 三级返现</label>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<input class="layui-input" id="oneKeySetLevelThree">
|
||||
</div>
|
||||
<div class="layui-input-inline layui-inline-2">
|
||||
<button type="button" class="layui-btn layui-btn-warm layui-btn-sm" style="margin-top:5px;" onclick="oneKeySet(13)">
|
||||
<i class="layui-icon layui-icon-set"></i>确定
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="layui-tab-item">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">SKU选择</label>
|
||||
<div class="layui-input-block" id="skuSetImage">
|
||||
{{# if(d.goodsTypeSpec){ }}
|
||||
{{# layui.each(d.products, function(index, item){ }}
|
||||
<input type="checkbox" name="skuAttrValue" value="{{item.spesDesc}}" title="{{item.spesDesc}}" lay-filter="skuAttrValue-filter" />
|
||||
{{# }); }}
|
||||
{{# } }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label" for="avatarImage">图片:</label>
|
||||
<div class="layui-input-inline" style="margin-left:20px;">
|
||||
<div class="layui-upload upload">
|
||||
<button type="button" class="layui-btn" id="uploadImageForMoreSku">一键上传图片</button>
|
||||
<input class="layui-upload-file" type="file" accept="" name="file">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</script>
|
||||
|
||||
@@ -486,8 +626,12 @@
|
||||
{{# }); }}
|
||||
</select>
|
||||
</script>
|
||||
|
||||
|
||||
<!--//一键设置SKU图片时自动生成选中的SKU-->
|
||||
<script id="imageSetMoreSku_tpl" type="text/html">
|
||||
{{# layui.each(d, function(index, item){ }}
|
||||
<input type="checkbox" name="skuAttrValue" value="{{item}}" title="{{item}}" lay-filter="skuAttrValue-filter">
|
||||
{{# }); }}
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var $;
|
||||
@@ -544,7 +688,7 @@
|
||||
|
||||
//初始化已经确认商品SKU
|
||||
if (d.data.goodsTypeSpec) {
|
||||
var tmpData = { goodsTypeSpec: d.data.goodsTypeSpec, model: d.data.model };
|
||||
var tmpData = { goodsTypeSpec: d.data.goodsTypeSpec, model: d.data.model, products: d.data.products };
|
||||
//赋值商品参数数据
|
||||
var getTpl = sku_tpl.innerHTML, viewBox = document.getElementById('product-info');
|
||||
laytpl(getTpl).render(tmpData, function (html) {
|
||||
@@ -905,6 +1049,72 @@
|
||||
form.render();
|
||||
});
|
||||
|
||||
var skuAttrCheckedValue = [];
|
||||
// checkbox 事件
|
||||
form.on('checkbox(skuAttrValue-filter)', function (data) {
|
||||
var elem = data.elem; // 获得 checkbox 原始 DOM 对象
|
||||
|
||||
if (elem.checked && skuAttrCheckedValue.indexOf(elem.value) == -1) {
|
||||
skuAttrCheckedValue.push(elem.value);
|
||||
} else if (!elem.checked && skuAttrCheckedValue.indexOf(elem.value) > -1) {
|
||||
for (var i = 0; i < skuAttrCheckedValue.length; i++) {
|
||||
if (skuAttrCheckedValue[i] == elem.value) {
|
||||
skuAttrCheckedValue.splice(i, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log("skuAttrCheckedValue", skuAttrCheckedValue);
|
||||
});
|
||||
|
||||
//SKU缩略图一键上传
|
||||
var uploadInst4 = upload.render({
|
||||
elem: '#uploadImageForMoreSku'
|
||||
, url: '/api/Tools/UploadFiles' //改成您自己的上传接口
|
||||
, multiple: false
|
||||
, accept: 'images'
|
||||
, exts: 'jpg|jpeg|png|gjf|webp|bmp|tif'
|
||||
, drag: true
|
||||
, before: function (obj) {
|
||||
if (!skuAttrCheckedValue) {
|
||||
layer.msg("请先选择一个SKU属性");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
, done: function (res) {
|
||||
var loadIndex = layer.load(2);
|
||||
//如果上传失败
|
||||
if (res.code > 0) {
|
||||
return layer.msg('上传失败');
|
||||
}
|
||||
else {
|
||||
var url = res.data.src;//缩略图地址
|
||||
var _that = this.item;
|
||||
if (!skuAttrCheckedValue) {
|
||||
layer.msg("请先选择一个SKU属性");
|
||||
return
|
||||
}
|
||||
console.log("skuAttrCheckedValue", skuAttrCheckedValue);
|
||||
|
||||
$.each($("#productsTbody tr"), function (i, item) {
|
||||
var tdValue = $(item).find("td:eq(3) input").attr("value");
|
||||
for (var i = 0; i < skuAttrCheckedValue.length; i++) {
|
||||
if (tdValue.indexOf(skuAttrCheckedValue[i]) > -1) {
|
||||
$($(item).find("td:eq(1) .spec_image img")).attr("src", url);
|
||||
$($(item).find("td:eq(1) .spec_image input")).val(url);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
//var item = $(_that);
|
||||
layer.msg(res.msg);
|
||||
layer.close(loadIndex);
|
||||
}
|
||||
}
|
||||
, error: function () {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
//表单验证规则
|
||||
form.verify({
|
||||
money: [/((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/, '请输入金额'],
|
||||
@@ -1112,6 +1322,36 @@
|
||||
return false;
|
||||
});
|
||||
|
||||
//一键设置
|
||||
$(document).on('click', '.aKeySetBtn', function () {
|
||||
layer.open({
|
||||
type: 1,
|
||||
area: ['700px', '500px'],
|
||||
offset: '50px',
|
||||
title: '一键设置',
|
||||
closeBtn: 1,
|
||||
shadeClose: true,
|
||||
content: $("#batchSetting"),
|
||||
shade: 0,
|
||||
btn: ['关闭'],
|
||||
btn1: function (index, layero) {
|
||||
$("#batchSetting").css("display", "none");
|
||||
layer.closeAll();
|
||||
return false;
|
||||
},
|
||||
btn2: function (index, layero) {
|
||||
$("#batchSetting").css("display", "none");
|
||||
layer.closeAll();
|
||||
return false;
|
||||
},
|
||||
cancel: function (layero, index) {
|
||||
$("#batchSetting").css("display", "none");
|
||||
layer.closeAll();
|
||||
return false
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//默认货品选择
|
||||
form.on('checkbox(isdefalut)', function (data) {
|
||||
console.log(data.elem.checked);
|
||||
@@ -1288,6 +1528,18 @@
|
||||
coreHelper.Post("Api/CoreCmsGoods/GetSpecHtml", { entity: array }, function (e) {
|
||||
if (debug) { console.log(e); } //开启调试返回数据
|
||||
if (e.code == 0) {
|
||||
|
||||
//批量设置sku图片
|
||||
if (e.data.skuArray) {
|
||||
//生成一键SKU上传图片的内容
|
||||
var tmpData2 = e.data.skuArray;
|
||||
var getTpl2 = imageSetMoreSku_tpl.innerHTML, view2 = document.getElementById('skuSetImage');
|
||||
laytpl(getTpl2).render(tmpData2, function (html) {
|
||||
view2.innerHTML = html;
|
||||
});
|
||||
form.render("radio");
|
||||
}
|
||||
|
||||
//赋值数据
|
||||
var getTpl = getSpec_tpl.innerHTML, view = document.getElementById('more_spec');
|
||||
var tmpData = [];
|
||||
@@ -1298,24 +1550,6 @@
|
||||
var oldData = _that.tempMultitermData;
|
||||
var oldHaveDefault = false;
|
||||
|
||||
//if (skuArray) {
|
||||
// for (var i = 0; i < skuArray.length; i++) {
|
||||
// var isHave = false;
|
||||
// for (var j = 0; j < oldData.length; j++) {
|
||||
// if (skuArray.indexOf(oldData[i].spesDesc) != -1) {
|
||||
// tmpData.push(oldData[i]);
|
||||
// if (oldData[i].isDefalut) {
|
||||
// oldHaveDefault = true;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if (isHave == false) {
|
||||
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
if (oldData) {
|
||||
for (var i = 0; i < oldData.length; i++) {
|
||||
if (skuArray.indexOf(oldData[i].spesDesc) != -1) {
|
||||
@@ -1704,4 +1938,50 @@
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
function oneKeySet(tag) {
|
||||
var curValue = 0;
|
||||
if (tag == 4) {
|
||||
curValue = $("#oneKeySetWeight").val()
|
||||
}
|
||||
else if (tag == 5) {
|
||||
curValue = $("#oneKeySetPoints").val()
|
||||
}
|
||||
else if (tag == 6) {
|
||||
curValue = $("#oneKeySetPointsDeduction").val()
|
||||
}
|
||||
else if (tag == 8) {
|
||||
curValue = $("#oneKeySetPrice").val()
|
||||
}
|
||||
else if (tag == 9) {
|
||||
curValue = $("#oneKeySetCostPrice").val()
|
||||
}
|
||||
else if (tag == 10) {
|
||||
curValue = $("#oneKeySetMktPrice").val()
|
||||
}
|
||||
else if (tag == 7) {
|
||||
curValue = $("#oneKeySetStock").val()
|
||||
}
|
||||
else if (tag == 11) {
|
||||
curValue = $("#oneKeySetLevelOne").val()
|
||||
}
|
||||
else if (tag == 12) {
|
||||
curValue = $("#oneKeySetLevelTwo").val()
|
||||
}
|
||||
else if (tag == 13) {
|
||||
curValue = $("#oneKeySetLevelThree").val()
|
||||
}
|
||||
|
||||
curValue = $.trim(curValue);
|
||||
|
||||
if (isNaN(curValue) || !curValue) {
|
||||
layer.msg("请输入数字");
|
||||
return
|
||||
}
|
||||
|
||||
$.each($("#productsTbody tr"), function (i, item) {
|
||||
$($(item).find("td:eq(" + tag + ") input")).val(curValue);
|
||||
})
|
||||
}
|
||||
|
||||
</script>
|
||||
Reference in New Issue
Block a user