mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2026-02-05 02:49:49 +08:00
【新增】商品添加编辑功能,增加一键上传sku图片,一键设置sku各项属性。
This commit is contained in:
@@ -218,6 +218,135 @@
|
|||||||
<div id="more_spec"></div>
|
<div id="more_spec"></div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</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>
|
||||||
|
|
||||||
<div class="layui-tab-item">
|
<div class="layui-tab-item">
|
||||||
@@ -409,9 +538,9 @@
|
|||||||
<input type="hidden" name="paramsKey[{{index}}]" value="{{item.id}}" class="layui-input">
|
<input type="hidden" name="paramsKey[{{index}}]" value="{{item.id}}" class="layui-input">
|
||||||
<input type="hidden" name="paramsType[{{index}}]" value="{{item.type}}" class="layui-input">
|
<input type="hidden" name="paramsType[{{index}}]" value="{{item.type}}" class="layui-input">
|
||||||
{{# if(item.type && item.type==='radio'){ }}
|
{{# 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){ }}
|
{{# 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'){ }}
|
{{# } 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}}">
|
<input type="hidden" name="paramsValueCount[{{index}}]" value="{{layui.coreHelper.stringToArrayLength(item.value)}}" class="layui-input" lay-verify="required" lay-reqText="请选择参数:{{item.name}}">
|
||||||
@@ -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="启用|关闭">
|
<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>
|
||||||
<div class="layui-input-inline">
|
<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>
|
||||||
</div>
|
</div>
|
||||||
{{# }); }}
|
{{# }); }}
|
||||||
@@ -463,6 +592,11 @@
|
|||||||
<div class="layui-input-inline">
|
<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>
|
<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>
|
||||||
|
<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>
|
</div>
|
||||||
<div id="more_spec"></div>
|
<div id="more_spec"></div>
|
||||||
@@ -488,6 +622,12 @@
|
|||||||
{{# }); }}
|
{{# }); }}
|
||||||
</select>
|
</select>
|
||||||
</script>
|
</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>
|
<script>
|
||||||
var $;
|
var $;
|
||||||
@@ -828,6 +968,71 @@
|
|||||||
form.render();
|
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({
|
form.verify({
|
||||||
@@ -1037,6 +1242,36 @@
|
|||||||
return false;
|
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) {
|
form.on('checkbox(isdefalut)', function (data) {
|
||||||
console.log("选择isdefalut");
|
console.log("选择isdefalut");
|
||||||
@@ -1209,6 +1444,17 @@
|
|||||||
coreHelper.Post("Api/CoreCmsGoods/GetSpecHtml", { entity: array }, function (e) {
|
coreHelper.Post("Api/CoreCmsGoods/GetSpecHtml", { entity: array }, function (e) {
|
||||||
if (debug) { console.log(e); } //开启调试返回数据
|
if (debug) { console.log(e); } //开启调试返回数据
|
||||||
if (e.code == 0) {
|
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 getTpl = getSpec_tpl.innerHTML, view = document.getElementById('more_spec');
|
||||||
var tmpData = [];
|
var tmpData = [];
|
||||||
@@ -1512,4 +1758,51 @@
|
|||||||
}
|
}
|
||||||
$('#imageIds').val(imgs);
|
$('#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>
|
</script>
|
||||||
@@ -304,7 +304,6 @@
|
|||||||
<th>图片</th>
|
<th>图片</th>
|
||||||
<th>货号</th>
|
<th>货号</th>
|
||||||
<th>SKU</th>
|
<th>SKU</th>
|
||||||
<th>冻结库存</th>
|
|
||||||
<th>重量(克)</th>
|
<th>重量(克)</th>
|
||||||
<th>赠送积分</th>
|
<th>赠送积分</th>
|
||||||
<th>积分最大<br />可抵金额</th>
|
<th>积分最大<br />可抵金额</th>
|
||||||
@@ -315,6 +314,7 @@
|
|||||||
<th>一级返现</th>
|
<th>一级返现</th>
|
||||||
<th>二级返现</th>
|
<th>二级返现</th>
|
||||||
<th>三级返现</th>
|
<th>三级返现</th>
|
||||||
|
<th>冻结库存</th>
|
||||||
<th>操作</th>
|
<th>操作</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -352,9 +352,6 @@
|
|||||||
<input type="hidden" name="product[spesDesc][]" value="{{item.spesDesc}}" placeholder="SKU" class="layui-input">
|
<input type="hidden" name="product[spesDesc][]" value="{{item.spesDesc}}" placeholder="SKU" class="layui-input">
|
||||||
{{item.spesDesc}}
|
{{item.spesDesc}}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
|
||||||
{{item.freezeStock}}
|
|
||||||
</td>
|
|
||||||
<td>
|
<td>
|
||||||
<input type="number" name="product[weight][]" value="{{item.weight}}" placeholder="重量" class="layui-input layui-inline-1">
|
<input type="number" name="product[weight][]" value="{{item.weight}}" placeholder="重量" class="layui-input layui-inline-1">
|
||||||
</td>
|
</td>
|
||||||
@@ -385,6 +382,9 @@
|
|||||||
<td>
|
<td>
|
||||||
<input type="text" name="product[levelThree][]" value="{{item.levelThree}}" placeholder="三级返现" class="layui-input layui-inline-1">
|
<input type="text" name="product[levelThree][]" value="{{item.levelThree}}" placeholder="三级返现" class="layui-input layui-inline-1">
|
||||||
</td>
|
</td>
|
||||||
|
<td>
|
||||||
|
{{item.freezeStock}}
|
||||||
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<a class="layui-btn layui-btn-danger layui-btn-xs del-class" lay-active="delTr">删除</a>
|
<a class="layui-btn layui-btn-danger layui-btn-xs del-class" lay-active="delTr">删除</a>
|
||||||
</td>
|
</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="启用|关闭">
|
<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>
|
||||||
<div class="layui-input-inline">
|
<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>
|
||||||
</div>
|
</div>
|
||||||
{{# }); }}
|
{{# }); }}
|
||||||
@@ -461,9 +461,149 @@
|
|||||||
<div class="layui-input-inline">
|
<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>
|
<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>
|
||||||
|
<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>
|
</div>
|
||||||
<div id="more_spec"></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>
|
</form>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -486,8 +626,12 @@
|
|||||||
{{# }); }}
|
{{# }); }}
|
||||||
</select>
|
</select>
|
||||||
</script>
|
</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>
|
<script>
|
||||||
var $;
|
var $;
|
||||||
@@ -544,7 +688,7 @@
|
|||||||
|
|
||||||
//初始化已经确认商品SKU
|
//初始化已经确认商品SKU
|
||||||
if (d.data.goodsTypeSpec) {
|
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');
|
var getTpl = sku_tpl.innerHTML, viewBox = document.getElementById('product-info');
|
||||||
laytpl(getTpl).render(tmpData, function (html) {
|
laytpl(getTpl).render(tmpData, function (html) {
|
||||||
@@ -905,6 +1049,72 @@
|
|||||||
form.render();
|
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({
|
form.verify({
|
||||||
money: [/((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/, '请输入金额'],
|
money: [/((^[1-9]\d*)|^0)(\.\d{0,2}){0,1}$/, '请输入金额'],
|
||||||
@@ -1112,6 +1322,36 @@
|
|||||||
return false;
|
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) {
|
form.on('checkbox(isdefalut)', function (data) {
|
||||||
console.log(data.elem.checked);
|
console.log(data.elem.checked);
|
||||||
@@ -1288,6 +1528,18 @@
|
|||||||
coreHelper.Post("Api/CoreCmsGoods/GetSpecHtml", { entity: array }, function (e) {
|
coreHelper.Post("Api/CoreCmsGoods/GetSpecHtml", { entity: array }, function (e) {
|
||||||
if (debug) { console.log(e); } //开启调试返回数据
|
if (debug) { console.log(e); } //开启调试返回数据
|
||||||
if (e.code == 0) {
|
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 getTpl = getSpec_tpl.innerHTML, view = document.getElementById('more_spec');
|
||||||
var tmpData = [];
|
var tmpData = [];
|
||||||
@@ -1298,24 +1550,6 @@
|
|||||||
var oldData = _that.tempMultitermData;
|
var oldData = _that.tempMultitermData;
|
||||||
var oldHaveDefault = false;
|
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) {
|
if (oldData) {
|
||||||
for (var i = 0; i < oldData.length; i++) {
|
for (var i = 0; i < oldData.length; i++) {
|
||||||
if (skuArray.indexOf(oldData[i].spesDesc) != -1) {
|
if (skuArray.indexOf(oldData[i].spesDesc) != -1) {
|
||||||
@@ -1704,4 +1938,50 @@
|
|||||||
}
|
}
|
||||||
return value;
|
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>
|
</script>
|
||||||
Reference in New Issue
Block a user