原文:
https://gitee.com/macrozheng/mall
https://gitee.com/macrozheng/mall-admin-web
https://gitee.com/macrozheng/mall-admin-web/blob/master/src/views/pms/product/components/ProductAttrDetail.vue
http://www.macrozheng.com/admin/index.html#/pms/addProduct
https://www.cnblogs.com/shensss/p/12989084.html
前言
初步优化
代码比较乱
效果
核心代码
this.value.skuStockList = [];
let skuList = this.value.skuStockList;
console.log('sku 规格 选中数据 打印------------------------');
console.log(this.selectProductAttr);
// 自定义数据格式
let skuChecked = [];// 选中的sku
this.productAttrTableColumn = [];// 商品规格 table列
this.selectProductAttr.forEach((item, index, array) => {
if (item.values.length > 0) {
this.productAttrTableColumn.push(item);
var arrTemp = [];
item.values.forEach((item2, index2, array2) => {
arrTemp.push({
key: item.name,
value: item2
});
});
skuChecked.push(arrTemp);
}
});
console.log('自定义数据格式--------------')
console.log(skuChecked);
// 生成sku组合
var cartesianProductOf = function () {// 原文:https://www.cnblogs.com/shensss/p/12989084.html
return Array.prototype.reduce.call(arguments, function (a, b) {
var ret = [];
a.forEach(function (a) {
b.forEach(function (b) {
ret.push(a.concat([b]));
});
});
return ret;
}, [[]]);
}
let allSkuArr = cartesianProductOf(...skuChecked)
console.log('所有的sku组合--------------')
console.log(allSkuArr)
// 添加到 商品sku库存信息
allSkuArr.forEach((item, index, array) => {
skuList.push({
spData: JSON.stringify(item)
});
});