原文:
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)
});
});