前端实现商品sku属性选择
一、效果图

二、后台返回的数据格式
[{
"saleName": "颜色",
"dim": 1,
"saleAttrList": [{
"imagePath": null,
"saleValue": "白色",
"skuIds": [
1, 2, 3
]
},
{
"imagePath": null,
"saleValue": "黑色",
"skuIds": [
5, 6
]
}
]
}]
dim:代表维度,saleAttrList:代表该维度下商品标签的集合,skuIds:代表当前标签下同类商品skuId。
三、实现
一、进入商品详情页面
1.获取后台数据,添加状态,当前sku为选中状态
2.遍历计算出,同类sku对应的标签数组

3.求所有存在的路径的组合的子集,生成所有存在的路径表
/**
* 求幂积
* @param {Object} arr
*/
function powerset(arr) {
var ps = [[]];
for (var i=0; i < arr.length; i++) {
for (var j = 0, len = ps.length; j < len; j++) {
ps.push(ps[j].concat(arr[i]));
}
}
return ps;
}

4.把已选择的元素添加到一个数组,当用户所有维度都选择后,才进行跳转sku,否则提示,有未选择的维度。
二、用户选择商品属性的点击事件
1.如果不可选,return
2.选中
至同一dim其他为未选中
不同dim中如果选中,则不改变转态,其他设置为未选中
3.未选中
重置所有dim中如果选中,则不改变转态,其他设置为未选中
4.用户所选路径,去查询路径表,如果当前路径不存在,则将当前元素置灰为不可选状态
5.确定唯一sku,跳转
前端实现商品sku属性选择的更多相关文章
- Vue实现仿淘宝商品详情属性选择的功能
Vue实现仿淘宝商品详情属性选择的功能 先看下效果图:(同个属性内部单选,属性与属性之间可以多选) 主要实现过程: 所使用到的数据类型是(一个大数组里面嵌套了另一个数组)具体格式如下: attrA ...
- jquery特效 商品SKU属性规格选择实时联动
转载,原文链接 功能:各种属性的值选中后,SKU填写表格进行变动,对属性.属性值的数量自适应,编辑时不因去掉勾选导致原有值不显示 所有代码均属原创,现在共享,如果有更好的实现方式,希望互相交流 最终实 ...
- 商品sku规格选择效果,没有商品的不能选中,选择顺序不影响展示结果
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- jquery实现商品sku多属性选择(商品详情页)
转载于https://blog.csdn.net/csdn924618338/article/details/51455595 实现效果 源码 <!DOCTYPE HTML> <ht ...
- B2C电子商务系统研发——商品SKU分析和设计(二)
转:http://www.cnblogs.com/winstonyan/archive/2012/01/07/2315886.html 上文谈到5种商品SKU设计模式,本文将做些细化说明. 笔者研究过 ...
- B2C电子商务系统研发——商品SKU分析和设计(一)
一.SKU及相关概念定义 在设计商品SKU之前,首先让我们熟悉一下SKU和相关的一些概念. # 什么是SKU: SKU=Stock Keeping Unit(库存量单位) 同一型号的商品,或者说是同一 ...
- 电商ERP系统——商品SKU与库存设计
面试题经常问道,如何设计库存,哪些库存呢?分类属性的库存:不同颜色 不同尺码的属性的库存,这时候需要针对具体的SKU商品创建表. 总体思路 1.商品关联商品类别,商品类别关联多个商品属性,其中指定某几 ...
- 工具类:每次随机生成有销售库存有实际库存的1个店铺商品和对应的2个店铺商品sku
# coding:utf-8 # @fileName :2.每次随机生成有销售库存有实际库存的1个店铺商品和对应的2个店铺商品sku.py # @createTime :2020/4/4 10:33 ...
- JAVAEE——宜立方商城03:商品类目选择、Nginx端口或域名区分虚拟机、Nginx反向代理、负载均衡、keepalived实现高可用
1. 学习计划 第三天: 1.商品类目选择(EasyUI的tree实现) 2.图片上传 a) 图片服务器FastDFS(Nainx部分) 2. 商品类目选择 2.1. 原型 2.2. 功能分析 展示商 ...
随机推荐
- js的append拼接html丢失css样式解决
htmlApp += "<li id='leftli"+lunci+"'>"; htmlApp += "<span id='left ...
- 【bzoj2038】小Z的袜子
莫队算法是一种针对询问进行分块的离线算法,如果已知区间 [ l , r ] 内的答案,并且可以在较快的时间内统计出区间 [ l-1, r ],[ l , r+1 ] 的答案,即可使用莫队算法. 莫队复 ...
- javascript面向对象精要第一章原始类型和引用类型整理精要
- poj 3678(SCC+2-SAT)
传送门:Problem 3678 https://www.cnblogs.com/violet-acmer/p/9769406.html 难点: 题意理解+构图 题意: 有n个点 v[0,2..... ...
- 7.STL
一.什么是STL STL是standart template library,标准模板库. 是HP实验室开发的一系列软件的统称,从根本上来说,它是一些容器和算法的集合,它是世界上很多最聪明的程序员 ...
- linux系统关闭IPv6的方式
云服务器 ECS> Linux操作运维问题 > 应用配置 > linux系统关闭IPv6的方式 linux系统关闭IPv6的方式 IPv6被认为是IPv4的替代产品,它用来解决现有I ...
- java基础基础总结----- 关键字、标识符、注释、常量和变量、运算符、语句、函数、数组(三)
Java语言基础组成:关键字.标识符.注释.常量和变量.运算符.语句.函数.数组 一.标识符 标识符是在程序中自定义的一些名称,由大小写字母[a-zA-Z],数字[0-9],下划线[ _ ],特殊字符 ...
- 继承的方式完成包装__attr__
__getattr__ 当实例要调用的属性不存在的时候会触发 __setattr__ 当实例要设置属性的时候会触发 __delattr__ 当实例要删除属性的时候会触发 这三个方法是 ...
- 【CSS】元素样式
1.使用CSS的三种方式: 方式一.通过元素的style属性来设置元素的样式 方式二.在HTML头部标签<head>中通过<link>标签引入一个外部的CSS资源,通常是一个C ...
- reids的主从复制配置
本博来简单介绍一下redsi的主从配置.意思就是说有一台主redis,一个从redis,你向主的redis里面写一个数据,然后会同步到从redis里面.注意:从redis 不能写入数据.所以当我们用到 ...