购物车之进阶版
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")
}
}, if (this.$store.state.loginState === "ok"