電商系統 SKU 設計和優化


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM