博主信息
博文 26
粉丝 0
评论 0
访问量 27923
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
vue 的购物车案例
default
原创
1527人浏览过
  1. <template>
  2. <div>
  3. <input type="checkbox" name="" v-model="isAll" id="" @change="click" >全选
  4. <ul>
  5. <li v-for="(item,key) in list" :key="item.id" >
  6. <input type="checkbox" name="" v-model="checkList" :value="item" @change="itemClick" >
  7. <img :src="item.img" alt="">
  8. <div>
  9. <span>商品名:{{item.name}}</span>
  10. <br>
  11. <span>价格:{{item.price}}</span>
  12. </div>
  13. <div>
  14. <button @click="item.number++" :disabled="item.number===item.limit" >+</button>{{item.number}} <button @click="item.number--" :disabled="item.number === 0">-</button>
  15. </div>
  16. <div>
  17. <button @click="del(key,item.id)"> 删除</button>
  18. </div>
  19. </li>
  20. </ul>
  21. 总价格:{{sum()}}
  22. <br>
  23. {{checkList}}
  24. </div>
  25. </template>
  26. <script>
  27. export default {
  28. data(){
  29. return{
  30. isAll:false,
  31. list:[
  32. {
  33. id:1,
  34. name:'ddd1',
  35. img:'https://img1.baidu.com/it/u=1583661127,1393133506&fm=26&fmt=auto',
  36. number:0,
  37. limit:5,
  38. price:20
  39. },
  40. {
  41. id:2,
  42. name:'ddd2',
  43. img:'https://img1.baidu.com/it/u=1583661127,1393133506&fm=26&fmt=auto',
  44. number:0,
  45. limit:5,
  46. price:30
  47. },
  48. {
  49. id:3,
  50. name:'ddd3',
  51. img:'https://img1.baidu.com/it/u=1583661127,1393133506&fm=26&fmt=auto',
  52. number:0,
  53. limit:5,
  54. price:40
  55. }
  56. ],
  57. checkList:[]
  58. }
  59. },
  60. methods:{
  61. sum(){
  62. var total = 0
  63. this.checkList.forEach(item=>{
  64. total += item.number * item.price
  65. })
  66. return total
  67. },
  68. del(key,id){
  69. this.list.splice(key,1)
  70. //删除原数组的同时过滤掉选中数组中的不存在的值
  71. this.checkList = this.checkList.filter(item=>item.id!==id)
  72. },
  73. click(){
  74. if(this.isAll ){
  75. this.checkList = this.list
  76. }else{
  77. this.checkList = []
  78. }
  79. },
  80. itemClick(){
  81. console.log(this.checkList.length)
  82. if(this.checkList.length === this.list.length){
  83. this.isAll = true
  84. }else{
  85. this.isAll = false
  86. }
  87. }
  88. }
  89. }
  90. </script>
  91. <style>
  92. ul{
  93. width: 500px;
  94. }
  95. li{
  96. display: flex;
  97. flex-flow: nowrap row;
  98. justify-content: space-around;
  99. margin: 10px;
  100. }
  101. img{
  102. width: 200px;
  103. }
  104. </style>
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学