最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

基于Vue实现电商SKU组合算法问题

来源:懂视网 责编:小采 时间:2020-11-27 21:55:57
文档

基于Vue实现电商SKU组合算法问题

基于Vue实现电商SKU组合算法问题:前段时间,公司要做添加商品业务模块,这也算是电商业务里面的一个难点了。 令我印象最深的不是什么组合商品、关联商品、关联单品,而是商品SKU的组合问题。 这个问题特别有意思,当时虽然大体上组合成功,总是有些小bug解决不了,然后手上又
推荐度:
导读基于Vue实现电商SKU组合算法问题:前段时间,公司要做添加商品业务模块,这也算是电商业务里面的一个难点了。 令我印象最深的不是什么组合商品、关联商品、关联单品,而是商品SKU的组合问题。 这个问题特别有意思,当时虽然大体上组合成功,总是有些小bug解决不了,然后手上又

前段时间,公司要做“添加商品”业务模块,这也算是电商业务里面的一个难点了。

令我印象最深的不是什么“组合商品”、“关联商品”、“关联单品”,而是商品SKU的组合问题。

这个问题特别有意思,当时虽然大体上组合成功,总是有些小bug解决不了,然后手上又有别的任务就没仔细研究它。

后来过了一个月,空闲下来专门研究了下,终于把问题解决,有必要记录下这次体验。

先看下在业务中的效果(tips: 如看不清可放大浏览器)

这个相对来说比较麻烦,还涉及到了下面“属性图片”的循环,但关键点还是在SKU组合的代码上面

以下是基于element-ui和vue的精简版demo代码:

html:

<div>SKU组合demo</div>
<div v-for="(v, i) in list" :key="i" class="mt-20">
 <b>{{ v.name }}:</b>
 <el-checkbox-group v-model="checkList[i].list">
 <el-checkbox v-for="(k, j) in v.list" :key="j" :label="k" />
 </el-checkbox-group>
</div>
<div class="mt-20">
 <el-button type="primary" @click="handleClick">确定</el-button>
</div>
<div class="mt-20">
 <el-tag v-for="(item, index) in skuList" :key="index" style="margin:10px 10px;">{{ item }}</el-tag>
</div>

css:

.mt-20 {
 margin-top: 20px;
}

JS:

<script>
export default {
 data() {
 return {
 list: [
 { name: '尺码', list: ['S', 'M', 'L', 'XL', 'XXL'] },
 { name: '颜色', list: ['红色', '黄色', '蓝色', '粉色', '紫色'] },
 { name: '图案', list: ['猫咪', '人物', '飞机', '闪电', '字母'] }
 ],
 checkList: [
 { name: '尺码', list: [] },
 { name: '颜色', list: [] },
 { name: '图案', list: [] }
 ],
 skuArray: [],
 skuList: []
 }
 },
 methods: {
 handleClick() {
 // 先清空数据,保证连续点击按钮,数据不会重复
 this.skuArray = []
 this.skuList = []
 // 将选中的规格组合成一个大数组 [[1, 2], [a, b]...]
 this.checkList.forEach(element => {
 element.list.length > 0 ? this.skuArray.push(element.list) : ''
 })
 // 勾选了规格,才调用方法
 if (this.skuArray.length > 0) {
 this.getSkuData([], 0, this.skuArray)
 } else {
 this.$message.error('请先勾选规格')
 }
 },
 // 递归获取每条SKU数据
 getSkuData(skuArr = [], i, list) {
 for (let j = 0; j < list[i].length; j++) {
 if (i < list.length - 1) {
 skuArr[i] = list[i][j]
 this.getSkuData(skuArr, i + 1, list) // 递归循环
 } else {
 this.skuList.push([...skuArr, list[i][j]]) // 扩展运算符,连接两个数组
 }
 }
 }
 }
}
</script>

效果如下:

 只要是做电商的小伙伴应该都会遇到这个SKU组合问题吧,希望能对大家有所帮助!

总结

以上所述是小编给大家介绍的基于Vue实现电商SKU组合算法问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

基于Vue实现电商SKU组合算法问题

基于Vue实现电商SKU组合算法问题:前段时间,公司要做添加商品业务模块,这也算是电商业务里面的一个难点了。 令我印象最深的不是什么组合商品、关联商品、关联单品,而是商品SKU的组合问题。 这个问题特别有意思,当时虽然大体上组合成功,总是有些小bug解决不了,然后手上又
推荐度:
标签: 组合 sku 基于vue
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top