简易购物车功能(无任何布局 主要是功能)
  • 数量的加减
  • 商品的总价钱
  • 全选与全不选
  • 删除(全选、价格 受影响)

  1. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  2. <div id="box">
  3. 全选:<input type="checkbox" @click="handleAllChecked($event)" v-model="isAllChecked"/>
  4. <ul>
  5. <li v-for="data,index in list" :key="data.id" style="overflow: hidden;">
  6. <input type="checkbox" :value="data" v-model="checkgroup" style="float: left;"
  7. @change="handleItemChange()"/>
  8. <div style="float: left;">
  9. <div>{{data.name}}</div>
  10. <div>价格:{{data.price}}</div>
  11. <!-- <div>数量:{{data.number}}</div> -->
  12. </div>
  13. <div style="float: left;margin-left: 20px;">
  14. <button @click="handleDel(data)">-</button>
  15. {{data.number}}
  16. <button @click="data.number++">+</button>
  17. </div>
  18. <div style="float: right;">
  19. <button @click='handleRemove(index,data.id)'>remove</button>
  20. </div>
  21. </li>
  22. </ul>
  23. {{checkgroup}}
  24. <p>总金额:{{ getSum() }}</p>
  25. </div>
  26. <script type="text/javascript">
  27. var vm = new Vue({
  28. el:"#box",
  29. data:{
  30. name:"kerwin",
  31. checkgroup:[],
  32. isAllChecked:false,
  33. list:[
  34. {
  35. name:"商品1",
  36. price:10,
  37. number:1,
  38. id:"1",
  39. },
  40. {
  41. name:"商品2",
  42. price:20,
  43. number:2,
  44. id:"2",
  45. },
  46. {
  47. name:"商品3",
  48. price:30,
  49. number:3,
  50. id:"3",
  51. }
  52. ]
  53. },
  54. methods: {
  55. // 每个chekcbox 改变触发, 判读数组的长度与list长度
  56. handleItemChange(){
  57. console.log(this.checkgroup.length)
  58. if(this.checkgroup.length===this.list.length && this.list.length !== 0 ){
  59. //全选chekcbox勾上
  60. this.isAllChecked = true
  61. }else{
  62. // 取消checkbox勾选
  63. this.isAllChecked = false
  64. }
  65. },
  66. //全选按钮处理
  67. handleAllChecked(evt){
  68. if(evt.target.checked){
  69. //全选中
  70. this.checkgroup = this.list
  71. }else{
  72. //全不选中
  73. this.checkgroup = []
  74. }
  75. },
  76. //商品减少
  77. handleDel(data){
  78. data.number--
  79. if(data.number===0){
  80. data.number =1
  81. }
  82. },
  83. //计算总金额
  84. getSum(){
  85. var sum = 0;
  86. for(var i in this.checkgroup){
  87. sum += this.checkgroup[i].price*this.checkgroup[i].number
  88. }
  89. return sum
  90. },
  91. //删除数据
  92. handleRemove(index,id) {
  93. //list
  94. this.list.splice(index,1)
  95. //checkgroup
  96. this.checkgroup =this.checkgroup.filter(item => item.id !== id)
  97. this.handleItemChange()
  98. }
  99. },
  100. })
  101. </script>

vue 入门 ------简单购物车功能实现(全选,数量加减,价格加减)的更多相关文章

  1. jQuery入门简单实现反选与全选

    //html代码<input type="checkbox" id= 'all' value="全选"> 选择全部 一键上路 <input t ...

  2. 基于vue2.0打造移动商城页面实践 vue实现商城购物车功能 基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果

    基于vue2.0打造移动商城页面实践 地址:https://www.jianshu.com/p/2129bc4d40e9 vue实现商城购物车功能 地址:http://www.jb51.net/art ...

  3. 第八十二篇:Vue购物车(三) 实现全选功能

    好家伙, 继续完善购物车相应功能 1.如何实现全选和反全选 1.1.全选框的状态显示(父传子) 来一波合理分析: 在页面中,有三个商品中 三个商品中的第二个未选择, 我么使用一个计算属性(fullSt ...

  4. vue开发购物车,解决全选单选问题

    实现全选单选,在vue中无法通过this获取input中的checkbox的checked属性,但是可以通过vue对input的特殊方式v-model来实现对应数据的绑定,同样也可以通过这种方式实现购 ...

  5. vue.js实现购物车功能

    购物车是电商必备的功能,可以让用户一次性购买多个商品,常见的购物车实现方式有如下几种: 1. 用户更新购物车里的商品后,页面自动刷新. 2. 使用局部刷新功能,服务器端返回整个购物车的页面html 3 ...

  6. 用vue.js实现购物车功能

    购物车是电商必备的功能,可以让用户一次性购买多个商品,常见的购物车实现方式有如下几种: 1. 用户更新购物车里的商品后,页面自动刷新. 2. 使用局部刷新功能,服务器端返回整个购物车的页面html 3 ...

  7. vue - 列表显示(列互相影响,全选控制,更新数据)

    要实现的效果为:全选,且列A列B互相影响,列B勾选则列A一定勾选,列A取消勾选,则相应列B取消勾选 数组 vue中列表渲染有些不是相应式的 var list=[ { a:'aaaa', b:'ddd' ...

  8. php 实现简单购物车功能(2)

    上一篇的时候只是写了简单的加入购物车功能,购物车中产品的删除.提交订单后,库存的减少 以及客户账户的余额都没有完善, 这一篇是接着完善上一篇的,上一篇写到了购物车中删除的功能了,为了使删除的代码少敲一 ...

  9. php--jquery操作全选、批量删除、加减行

随机推荐

  1. 一些常用查询SQL语句以及显示格式

    1.查询当前年.月.周相关时间 1.1.查询当前年份 SELECT TO_CHAR(SYSDATE,'YYYY') AS YEAR FROM DUAL--查询当前年份 SELECT TO_CHAR(S ...

  2. js复制变量值

    来源:JavaScript高级程序设计(第3版)69页. 例如 : var a=1;   var b = a  ;      这里就是把a的值复制给变量  b   了. 但是 复制的变量值  分为  ...

  3. 通过模拟Mybatis动态代理生成Mapper代理类,讲解Mybatis核心原理

    本文将通过模拟Mybatis动态代理生成Mapper代理类,讲解Mybatis原理 1.平常我们是如何使用Mapper的 先写一个简单的UserMapper,它包含一个全表查询的方法,代码如下 pub ...

  4. CF 558 C

    Amr loves Chemistry, and specially doing experiments. He is preparing for a new interesting experime ...

  5. Redis 分布式锁的正确实现方式( Java 版 )

    前言 分布式锁一般有三种实现方式:1. 数据库乐观锁:2. 基于Redis的分布式锁:3. 基于ZooKeeper的分布式锁.本篇博客将介绍第二种方式,基于Redis实现分布式锁.虽然网上已经有各种介 ...

  6. Win10永久版低价购买及激活工具使用说明

    目录 按 发展历程 用户界面 激活工具 按 Windows 10是由美国微软公司开发的应用于计算机和平板电脑的操作系统,于2015年7月29日发布正式版. Windows 10操作系统在易用性和安全性 ...

  7. 如何优雅的用策略模式,取代臃肿的 if-else 嵌套,看这篇就够了

    经常听同事抱怨,订单来源又加了一种,代码又要加一层if-else判断,光判断订单来源的if-else就好几百行代码,代码我都不想看了,相信很多同行都有过这样的感受! Java的二十几种设计模式背的滚瓜 ...

  8. 如何构建可伸缩的Web应用?

    为什么要构建可伸缩的Web应用? 想象一下,你的营销活动吸引了很多用户,在某个时候,应用必须同时为成千上万的用户提供服务,这么大的并发量,服务器的负载会很大,如果设计不当,系统将无法处理. 接下来发生 ...

  9. SycSec成都信息工程大学2019CTF-前五道WEB题writeup

    一.WEB (1)一起来撸猫 flag藏在标签的注释内  <!--这是注释--> (2)你看见过我的菜刀么 eval漏洞 利用蚁剑连接 连接密码就是要post传的参数 连接成功后在网站根目 ...

  10. if(a)是什么意思

    if(a)等价于 if(a!=0) if(!a)等价于 if(a==0)