美文网首页
商品型号选择器思路分析

商品型号选择器思路分析

作者: 游荡的猫咪 | 来源:发表于2018-12-14 16:12 被阅读0次

    效果图

    示例图-1.png
    示例图-2.png

    效果说明

    可选项为深色边框,不可选项为浅色边框,已选中的为红底白字。
    如图所示的存货数据为:

    幻夜黑-全网通4G64G
    幻夜黑-全网通6G64G
    幻夜黑-全网通6G128G
    幻影蓝-全网通4G64G
    

    在示例图-1中因为选择了幻影蓝,所以模型只有全网通4G64G可选,同级别的幻夜黑也可以选;示例图-2因为选择了全网通和幻夜黑,因为幻夜黑对应三种情况都有,所以三种模型都为可选,而已选中的全网通对应只有幻夜黑,所以幻夜黑可选而炫影蓝为不能选。

    效果分析

    需要有两组数据:

    • 一组数据给定所有可选的型号,示例如下:
    {
      "颜色":[{
        "value":"幻夜黑",
        "selected":false,
        "level":1,
        "active":true
      },{
        "value":"幻影蓝",
        "selected":false,
        "level":1,
        "active":true
      }],
      "模型":[{
        "value":"全网通4G64G",
        "selected":false,
        "level":2,
        "active":true
      },{
        "value":"全网通6G64G",
        "selected":false,
        "level":2,
        "active":true
      },{
        "value":"全网通6G128G",
        "selected":false,
        "level":2,
        "active":true
      }]
    }
    
    • 一组给定所有有库存的数据,示例如下:
    {
      "幻夜黑,全网通4G64G":true,
      "幻夜黑,全网通6G64G":true,
      "幻夜黑,全网通6G128G":true,
      "幻影蓝,全网通4G64G":true
    }
    

    有两步需要实现:

    • 点击事件
      点击时,如果是点击的active按钮,且按钮selected为false,需要同级按钮的选中消失,将该按钮selected设为true;不同级则不用管。如果之前selected就为true了,则需要将selected还原为false。
    • 判断是否active
      判断是否active则需要新建一个selectedName数组按级来装当前级选中的value。比如第一级选中了幻夜黑则存为selectedName[1-1] = '幻影黑',(注意数组是从第0项开始,而level是从第1项开始,则需要减去1)。当第一级选中幻影黑时候判断其他是否可选的思路则是:对于同级假如selectedName[0]换为同级的元素,selectedName[1]为空,判断依据为selectedName里有值为空(有可选空间)或者selectedName这个数组为库存数据的键值,这里同级的幻影蓝active为true。对于不同级,selectedName[0]依然为'幻影黑',下面对于全网通4G64G按钮,selectedName[1]就为''全网通4G64G",然后看selectedName这个数组里有值为空(有可选空间)或者selectedName这个数组为库存数据的键值,这里存在该键值,所以该按钮的active为true。

    关于代码

    有了这些数据结构和分析,只需要根据条件改变数据就能更改在页面中的显示,达到相应效果了。

    相关文章

      网友评论

          本文标题:商品型号选择器思路分析

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