zoukankan      html  css  js  c++  java
  • 购物车之上线版思路

    购物车之进阶版

     if (this.$store.state.loginState === 'ok') {
            let result = { pic, name, sale, proid, flag, num }
            if (!localStorage.getItem('cars')) { //1如果触发时没有本地数据 就将新创建的对象obj和新创建的lis购物车作为新的放进本地
              this.lis.push(result)
              this.obj[this.userinfo] = this.lis
              localStorage.setItem('cars', JSON.stringify(this.obj))
            } else { // 2否则就是有本地  如果有本地 下一步
              let dic = JSON.parse(localStorage.getItem('cars'))
              if (dic[this.userinfo] !== undefined) { // 2.1如果本地obj[此时的用户] !==undefined 说明这个用户里的购物车有数据
                this.lis = dic[this.userinfo] //有数据就将老数据赋值给 购物车lis
                let flag = false
                this.lis.map(item => { // 循环老数据,看老数据里的名字与 新添加的 result名字是否有重复
                  if (item.name === result.name) {  //2.1.1如果有重复就将老数据的num+1
                    item.num += 1
                    flag = true //2.1.2并且给flag赋值true 让外面的购物车不要添加进去
                  }
                })
                if (!flag) { // 2.1.3如果flag等于flase就说明老数据没有此商品,正常添加
                  this.lis.push(result)
                  flag = false
                }
                dic[this.userinfo] = this.lis // 最后一步 重新赋值给dic对象
                localStorage.setItem('cars', JSON.stringify(dic)) //解析
              } else {
                this.lis.push(result) //2.2如果老数据里没有这个账户。就说明他没有购物车数据,此时就要重新给他添加数据了
                dic[this.userinfo] = this.lis
                // dic[this.userinfo] = this.lis
                localStorage.setItem('cars', JSON.stringify(dic))
              }
            }
          } else {
            this.$router.push('/login')
          }
        },
    
  • 相关阅读:
    php 基础------数组过滤
    js或者jq 使用cookie 时在谷歌浏览器不好使
    css3 -阻止元素成为鼠标事件目标 pointer-events
    CSS3-----transform 转换
    css3---过渡
    css3动画----animation
    移动端尺寸适配--媒体查询
    工作一年总结
    关于Jquery.Data()和HTML标签的data-*属性
    android shape
  • 原文地址:https://www.cnblogs.com/wangqingjiu/p/11228023.html
Copyright © 2011-2022 走看看