js 文件 部分
//添加规格
$('#addskus').on('click', function () {
var name = $('#space_name').val();
if (name == '') {
layer.msg('规格名称不能为做空');
return false;
} else {
var object = new Object();
object.title = name;
object.values = [];
var spacenamelist = $('#spacenamelist').val();
if (spacenamelist == '') {
//首次添加
spacenamelist = new Array();
spacenamelist.push(object);
spacenamelist = JSON.stringify(spacenamelist);
} else {
spacenamelist = JSON.parse(spacenamelist);
for (var i = 0; i < spacenamelist.length; i++) {
if (spacenamelist[i].title == name) {
layer.msg('此规格已存在');
return false;
}
}
spacenamelist.push(object);
spacenamelist = JSON.stringify(spacenamelist);
}
$('#spacenamelist').val(spacenamelist);
console.log($('#spacenamelist').val());
}
var space_list = '<div class="form-group skuMain">' +
'<label class="control-label col-xs-12 col-sm-2">' + name + ':</label>' +
' <div class="col-xs-4 col-sm-4"><input type="text" maxlength="22" placeholder="请输入子规格名称" class="form-control"></div> ' +
'<div class="col-xs-4 col-sm-4"><span class="btn btn-primary">添加</span> <span class="btn btn-danger" >移除</span></div> ' +
'<div class="col-xs-8 col-sm-8 col-xs-offset-2 col-sm-offset-2 skuChildrenBox"></div>' +
'</div>';
$('#space').append(space_list);
$('#space_name').val('');
//删除skus_value skus_title
$('#skus_value').html('');
$('#skus_title').html('');
});
//移除规格
$('#space').on('click', '.btn-danger', function (e) {
//获取规格名称
var text = $($(this).parent().parent().children()[0]).text();
text = text.substring(0, text.length - 1)
//删除规格值
var spacenamelist = $('#spacenamelist').val();
spacenamelist = JSON.parse(spacenamelist);
for (var i = 0; i < spacenamelist.length; i++) {
if (spacenamelist[i]['title'] == text) {
spacenamelist.splice(i, 1);
}
}
$('#spacenamelist').val(JSON.stringify(spacenamelist));
$(this).parent().parent().remove();
//删除skus_value skus_title
$('#skus_value').html('');
$('#skus_title').html('');
});
//添加规格值
$('#space').on('click', '.btn-primary', function (e) {
var value = $(this).parent().prev().children()[0].value;
if (value == '') {
layer.msg('规格值不能为做空');
return false;
}
//获取规格名称
var text = $($(this).parent().parent().children()[0]).text();
text = text.substring(0, text.length - 1)
//获取规格值
var spacenamelist = $('#spacenamelist').val();
spacenamelist = JSON.parse(spacenamelist);
for (var i = 0; i < spacenamelist.length; i++) {
if (spacenamelist[i]['title'] == text) {
if ($.inArray(value, spacenamelist[i]['values']) >= 0) {
layer.msg('此规格值已存在');
return false;
}
spacenamelist[i]['values'].push(value);
}
}
$('#spacenamelist').val(JSON.stringify(spacenamelist));
console.log(spacenamelist)
var space_valeu_lsit = '<div class="skuChildren"><span>' + value + '</span> <i class="fa fa-close skuChildren-close"></i></div>';
$(this).parent().next().append(space_valeu_lsit);
$($(this).parent().prev().children()[0]).val('');
//删除skus_value skus_title
$('#skus_value').html('');
$('#skus_title').html('');
});
//移除规格值
$('#space').on('click', '.fa-close', function (e) {
//获取规格值
var value = $(this).prev().text();
//获取规格名称
var text = $(this).parent().parent().prev().prev().prev().text();
text = text.substring(0, text.length - 1)
//获取规格值
var spacenamelist = $('#spacenamelist').val();
spacenamelist = JSON.parse(spacenamelist);
//删除规格值
for (var i = 0; i < spacenamelist.length; i++) {
if (spacenamelist[i]['title'] == text) {
console.log(spacenamelist[i]['values'])
spacenamelist[i]['values'].splice($.inArray(value, spacenamelist[i]['values']), 1);
}
}
$('#spacenamelist').val(JSON.stringify(spacenamelist));
$(this).parent().remove();
//删除skus_value skus_title
$('#skus_value').html('');
$('#skus_title').html('');
});
//生成商品规格
$('#create_skus').on('click', function () {
var spacenamelist = $('#spacenamelist').val();
spacenamelist = JSON.parse(spacenamelist);
if (spacenamelist == '') {
layer.msg('请先生成规格');
return false;
}
for (var i = 0; i < spacenamelist.length; i++) {
if (spacenamelist[i].values.length == 0) {
layer.msg(spacenamelist[i].title + '规格值为空');
return false;
}
}
//生成SKUS名称
var item = '<tr>';
for (var i = 0; i < spacenamelist.length; i++) {
item += '<th>' + spacenamelist[i]['title'] + '</th>';
}
item += ' <th width="80"><span data-toggle="tooltip" data-placement="bottom" title="批量设置" class="tooltip-toggle">现价<i class="fa fa-indent i-color"></i></span></th>\n' +
' <th width="80"><span data-toggle="tooltip" data-placement="bottom" title="批量设置" class="tooltip-toggle">库存<i class="fa fa-indent i-color"></i></span></th>\n' +
' <th width="80"><span data-toggle="tooltip" data-placement="bottom" title="批量设置" class="tooltip-toggle">重量<i class="fa fa-indent i-color"></i></span></th>\n' +
' <th width="80"><span data-toggle="tooltip" data-placement="bottom" title="批量设置" class="tooltip-toggle">编码<i class="fa fa-indent i-color"></i></span></th>\n' +
' <th width="80">图片</th>\n' +
' <th width="80">当前状态</th></tr>';
$('#skus_title').html(item);
//生成规格值
var temp = [];
for (var i = 0; i < spacenamelist.length; i++) {
var temp_p = [];
for (var v = 0; v < spacenamelist[i].values.length; v++) {
if (temp.length == 0) {
temp_p.push(spacenamelist[i].values[v]);
} else {
for (var t = 0; t < temp.length; t++) {
temp_p.push(temp[t] + ',' + spacenamelist[i].values[v]);
}
}
}
temp = temp_p;
}
console.log(temp);
var string = '<tr>';
temp.map(function (item) {
var data = item.split(",");
data.map(function (key) {
string += '<td>' + key + '</td>'
})
string += '' +
'<td width="80"><input type="number" class="input-sm form-control"></td>\n' +
' <td width="80"><input type="number" class="input-sm form-control"></td>\n' +
' <td width="80"><input type="number" class="input-sm form-control"></td>\n' +
' <td width="80"><input type="text" class="input-sm form-control"></td>\n' +
' <td width="80">上传图片</td>\n' +
' <td width="80"><span class="input-sm form-control status">上架</span></td>\n' +
' </tr>'
})
$('#skus_value').html(string);
$('#skus_title').parent().parent().parent().addClass('show');
});
html 部分
<div class="widget-body no-padding">
<div class="form-group">
<legend>规格价格<span class="legend-tip">(请完善主规格子规格,然后点击生成表单填写价格库存)</span></legend>
</div>
<div class="form-group">
<input type="text" name="skus" id ='spacenamelist' size="500">
<label class="control-label col-xs-12 col-sm-2">添加主规格:</label>
<div class="col-xs-4 col-sm-4"><input type="text" placeholder="请输入主规格名称" maxlength="5" class="form-control" id="space_name"></div>
<div class="col-xs-4 col-sm-4"><span class="btn btn-primary" id='addskus'>确认</span> <span class="btn btn-info" id='create_skus'>生成规格</span></div>
</div>
<div id='space'>
</div>
<div>
<div class="row" >
<div class="col-md-12">
<table class="table">
<thead id="skus_title"></thead>
<tbody id="skus_value"></tbody>
</table>
</div>
</div>
</div>
</div>
<style type="text/css">
/*头部样式*/
.legend-tip {
color: #f00;
font-size: 14px;
margin-left: 5px;
}
/*规格样式*/
.skuChildren {
margin-right: 10px;
margin-top: 10px;
padding: 0 5px;
height: 24px;
line-height: 24px;
color: rgba(80, 80, 80, 1);
border-radius: 2px;
font-size: 12px;
text-align: center;
border: 1px solid rgba(231, 231, 231, 1);
position: relative;
}
/*规格值*/
.skuChildrenBox {
display: flex;
padding: 0 15px;
flex-wrap: wrap;
}
/*规格小叉号*/
.skuChildren-close {
position: absolute;
background: rgba(212, 48, 48, 1);
color: #fff;
border-radius: 50%;
width: 12px;
height: 12px;
top: -6px;
right: -6px;
font-style: 12px;
-webkit-transform: scale(0.8);
}
</style>