美文网首页
SKU商品后台管理规格生成

SKU商品后台管理规格生成

作者: SunSeekerX | 来源:发表于2019-06-24 22:55 被阅读0次

SKU商品后台管理规格生成

关于:

在做商品管理系统经常遇到一个需求,需要在前台动态添加商品SKU,然后生成表格,给每个不同的商品录入价格与库存等等参数。

大概效果像这样,http://www.17sucai.com/pins/demo-show?id=8131

1561385404769.png

直接上实现代码,公司一位大牛实现的。自己对于数组迭代嵌套循环逻辑感很差。

// 这是商品规格数据
const sskuObj = {
    color: ['green', 'red', 'yellow'],
    size: ['X1', 'X2', 'X3'],
}
// 这是我们要得到的数据,然后洗一下数据就OK,给每一行添加价格库存等数据,可以配合element-ui表格使用
[ { color: 'green', size: 'X1' },
  { color: 'green', size: 'X2' },
  { color: 'green', size: 'X3' },
  { color: 'red', size: 'X1' },
  { color: 'red', size: 'X2' },
  { color: 'red', size: 'X3' },
  { color: 'yellow', size: 'X1' },
  { color: 'yellow', size: 'X2' },
  { color: 'yellow', size: 'X3' } ]

// 核心方法 

/**
 * @param {Object} skuObj 输入的商品规格对象
 * @returns {Array} 返回规格对象穷举的结果
 */
function j2a(skuObj) {
    const data = Object.values(skuObj)
    const newA = doExchange(data)
    const newB = []
    for (let ai = 0; ai < newA.length; ai++) {
        const newAAA = newA[ai].split('|')
        let aCount = 0
        for (const attr in skuObj) {
            newB[ai] = newB[ai] ? newB[ai] : {}
            newB[ai][attr] = newAAA[aCount]
            aCount++
        }
    }
    return newB
}

function doExchange(arr) {
    var len = arr.length
    // 当数组大于等于2个的时候
    if (len >= 2) {
        // 第一个数组的长度
        var len1 = arr[0].length
        // 第二个数组的长度
        var len2 = arr[1].length
        // 2个数组产生的组合数
        var lenBoth = len1 * len2
        // 申明一个新数组,做数据暂存
        var items = new Array(lenBoth)
        // 申明新数组的索引
        var index = 0
        // 2层嵌套循环,将组合放到新数组中
        for (var i = 0; i < len1; i++) {
            for (var j = 0; j < len2; j++) {
                items[index] = arr[0][i] + '|' + arr[1][j]
                index++
            }
        }
        // 将新组合的数组并到原数组中
        var newArr = new Array(len - 1)
        for (var newi = 2; newi < arr.length; newi++) {
            newArr[newi - 1] = arr[newi]
        }
        newArr[0] = items
        // 执行回调
        return doExchange(newArr)
    } else {
        return arr[0]
    }
}

// 测试和使用
console.log(j2a(sskuObj))

相关文章

  • SKU商品后台管理规格生成

    SKU商品后台管理规格生成 关于: 在做商品管理系统经常遇到一个需求,需要在前台动态添加商品SKU,然后生成表格,...

  • 商城中开发商品sku及其他汇总

    1: sku商品,点击商品进去并不是商品的ID而是sku的id 基本表, 规格表 , 规格属性表 商品sku表 ...

  • 算法实际应用集(上)

    使用笛卡尔算法进行sku组合 需求 对商品规格进行排列组合,电商的sku商品组合 功能截图,对商品规格进行组合排列...

  • vue sku商品规格模板之后台管理系统篇

    刚看到设计稿的时候,还是有点懵的,查询了百度后就开始有了灵感和思路了,下面就来看看实现的效果吧,这个是vue+el...

  • SKU商品规格选择

    在线demo地址 https://qdnzv.csb.app/[https://qdnzv.csb.app/] G...

  • 商品中心

    商品定义 SPU: 规格, 商品描述, 品牌 SKU: 类目, 基础信息(税率, 属性, 生产信息), 其他参数 ...

  • 商品基本要素(摘自电商产品经理宝典)

    商品基本要素 类目、品牌、标题、商品属性、规格、价格、库存、SKU信息、商品图、商品详情描述、物流信息、商品信息标...

  • 使用layui.upload遇到的问题

    在开发商城后台sku是遇到一个问题,商品发布区域需要在对应的规格颜色添加图片,以便在前台选择的时候显示对应的商品图...

  • 商品多维sku设计

    数据库表设计 数据库关系 查询商品 查询商品所有的sku 查询某一个sku的所有规格 将t_product_att...

  • 淘宝专业名词解释

    SKU:宝贝的销售属性集合,供买家在下单时点选,如规格、颜色、尺寸等。商品编码商品款式:宝贝的款式种类,不区分规格...

网友评论

      本文标题:SKU商品后台管理规格生成

      本文链接:https://www.haomeiwen.com/subject/lonaqctx.html