购物车之上线版思路
程序员文章站
2022-07-09 21:01:09
购物车之进阶版 ......
购物车之进阶版
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') } },
上一篇: 数据库学习1
下一篇: Nginx集群之WCF分布式消息队列