经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » HTML5 » 查看文章
购物车之上线版思路
来源:cnblogs  作者:des雷锋  时间:2019/7/23 8:45:32  对本文有异议

购物车之进阶版

  1. if (this.$store.state.loginState === 'ok') {
  2. let result = { pic, name, sale, proid, flag, num }
  3. if (!localStorage.getItem('cars')) { //1如果触发时没有本地数据 就将新创建的对象obj和新创建的lis购物车作为新的放进本地
  4. this.lis.push(result)
  5. this.obj[this.userinfo] = this.lis
  6. localStorage.setItem('cars', JSON.stringify(this.obj))
  7. } else { // 2否则就是有本地 如果有本地 下一步
  8. let dic = JSON.parse(localStorage.getItem('cars'))
  9. if (dic[this.userinfo] !== undefined) { // 2.1如果本地obj[此时的用户] !==undefined 说明这个用户里的购物车有数据
  10. this.lis = dic[this.userinfo] //有数据就将老数据赋值给 购物车lis
  11. let flag = false
  12. this.lis.map(item => { // 循环老数据,看老数据里的名字与 新添加的 result名字是否有重复
  13. if (item.name === result.name) { //2.1.1如果有重复就将老数据的num+1
  14. item.num += 1
  15. flag = true //2.1.2并且给flag赋值true 让外面的购物车不要添加进去
  16. }
  17. })
  18. if (!flag) { // 2.1.3如果flag等于flase就说明老数据没有此商品,正常添加
  19. this.lis.push(result)
  20. flag = false
  21. }
  22. dic[this.userinfo] = this.lis // 最后一步 重新赋值给dic对象
  23. localStorage.setItem('cars', JSON.stringify(dic)) //解析
  24. } else {
  25. this.lis.push(result) //2.2如果老数据里没有这个账户。就说明他没有购物车数据,此时就要重新给他添加数据了
  26. dic[this.userinfo] = this.lis
  27. // dic[this.userinfo] = this.lis
  28. localStorage.setItem('cars', JSON.stringify(dic))
  29. }
  30. }
  31. } else {
  32. this.$router.push('/login')
  33. }
  34. },

原文链接:http://www.cnblogs.com/wangqingjiu/p/11228023.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号