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>

更多相关文章

  1. 菜单Menu
  2. android的socket开发注意事项
  3. 【Android自学笔记】Android中的Log小技巧
  4. Android(安卓)中的单元测试(使用AndroidTestCase 进行 Content P
  5. 【android】android 开发错误集锦4月
  6. Mac完整卸载Android(安卓)Studio的方法
  7. 升级 Android(安卓)Studio 3.2.1 后出现的一些问题的解决办法
  8. php有序列表或数组中删除指定的值的实现代码
  9. 【北亚数据恢复】分布式存储hbase和hive数据库底层文件被误删除

随机推荐

  1. Vue 3 中令人兴奋的新功能[每日前端夜话0
  2. 用 MelonJS 开发一个游戏[每日前端夜话0x
  3. Java面试题全集(8)
  4. Linux性能优化(三)——sysstat性能监控工具
  5. 我们应该为 JavaScript 重新命名吗?[每日
  6. React17 系统精讲 结合TS打造旅游电商平
  7. 完全搞懂 Javascript 中的... [每日前端
  8. 共享可变状态中出现的问题以及如何避免[
  9. Android 应用程序构建实战+原理精讲
  10. Java面试题全集(9)