vue实现简单计算商品价格


Posted in Javascript onSeptember 14, 2020

本文实例为大家分享了vue实现简单计算商品价格的具体代码,供大家参考,具体内容如下

vue实现简单计算商品价格

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>Document</title>
 <style>
  table {
   width: 700px;
   text-align: center;
  }

  tr,
  th {
   height: 40px;
  }
 </style>
 <script src="../vue.js"></script>
</head>

<body>
 <div class="box">
  <table cellspacing='0' border="solid 1px">
   <thead>
    <tr>
     <th>全选<input type="checkbox" v-model='isAllChecked'></th>
     <th>id</th>
     <th>商品名称</th>
     <th>商品价格</th>
     <th>商品数量</th>
     <th>小计价格</th>
    </tr>
   </thead>
   <tbody>
    <tr v-for='item in goods'>
     <td><input type="checkbox" v-model='item.isCheck'></td>
     <td>{{item.id}}</td>
     <td>{{item.name}}</td>
     <td>{{item.price}}</td>
     <td>{{item.num}}</td>

     <!-- 计算每个商品的价格根据选中的状态 -->
     <td>{{goodsPrice(item)}}元</td>
    </tr>
    <tr>
     <td colspan="6">商品总价:{{total}}元</td>
    </tr>
   </tbody>
  </table>
 </div>

 <script>
  var vm = new Vue({
   el: '.box',
   methods: {

    // 商品小计
    goodsPrice(item) {
     var sum = 0;
     // 选中就计算价格
     if (item.isCheck) {
      sum = item.price * item.num;
     }
     return sum;
    }

   },
   data: {
    goods: [
     {
      id: 20200925,
      name: '苹果',
      price: 3,
      num: 12,
      isCheck: false,
     },
     {
      id: 20200945,
      name: '香蕉',
      price: 2,
      num: 33,
      isCheck: false,
     },
     {
      id: 20200935,
      name: '橘子',
      price: 4,
      num: 44,
      isCheck: false,
     },
    ]
   },
   computed: {

    isAllChecked: {
     /* 
      this.goods.every(el=>el.isCheck)返回结果为true 或者false

     遍历下方每一个isCheck的状态、
      1、 都选中返回true---------即全选为true,
      2、 有一个没选中返回false---即全选为false
     */
     get() {
      return this.goods.every(el => el.isCheck)
     },
     set(val) {
      // 全选的状态true、false两种状态
      console.log(val);

      // val为true即全选的时候、下方每一个isCheck也是true
      // val为false即全选的时候、下方每一个isCheck也是false
      return this.goods.forEach(el => el.isCheck = val);
     }
    },


    // 根据选中状态计算商品的价格
    total() {
     var sum = 0;
     this.goods.forEach(el => {
      if (el.isCheck) {
       sum += el.price * el.num;
      }
     })
     return sum;

    },

   }
  })
 </script>

</body>

</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS随机漂浮广告代码具体实例
Nov 19 Javascript
JavaScript学习笔记之内置对象
Jan 22 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
Aug 24 Javascript
浅谈Angular路由复用策略
Oct 04 Javascript
详解JavaScript中的数组合并方法和对象合并方法
May 11 Javascript
JavaScript事件委托原理与用法实例分析
Jun 07 Javascript
微信小程序仿朋友圈发布动态功能
Jul 15 Javascript
详解es6超好用的语法糖Decorator
Aug 01 Javascript
使用layui定义一个模块并使用的例子
Sep 14 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
Nov 15 Javascript
微信浏览器左上角返回按钮监听的实现
Mar 04 Javascript
vue项目配置同一局域网可使用ip访问的操作
Oct 23 Javascript
Vue中添加滚动事件设置的方法详解
Sep 14 #Javascript
JavaScript位置参数实现原理及过程解析
Sep 14 #Javascript
swiper自定义分页器的样式
Sep 14 #Javascript
js+canvas实现转盘效果(两个版本)
Sep 13 #Javascript
js实现3D粒子酷炫动态旋转特效
Sep 13 #Javascript
原生JS实现九宫格抽奖
Sep 13 #Javascript
jQuery实现带进度条的轮播图
Sep 13 #jQuery
You might like
Php做的端口嗅探器--可以指定网站和端口
2006/10/09 PHP
PHP微信公众号自动发送红包API
2016/06/01 PHP
微信支付开发订单查询实例
2016/07/12 PHP
PHP简单实现二维数组的矩阵转置操作示例
2017/11/24 PHP
Nigma vs Liquid BO3 第一场2.14
2021/03/10 DOTA
dess中一个简单的多路委托的实现
2010/07/20 Javascript
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
2017/01/04 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
Echarts动态加载多条折线图的实现代码
2019/05/24 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
python 图片验证码代码分享
2012/07/04 Python
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
Python脚本实现12306火车票查询系统
2016/09/30 Python
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
2019/10/12 Python
pytorch 获取tensor维度信息示例
2020/01/03 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
通过Canvas及File API缩放并上传图片完整示例
2013/08/08 HTML / CSS
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
2019年Java面试必问之经典试题
2012/09/12 面试题
保险公司演讲稿
2014/09/02 职场文书
优秀班组事迹材料
2014/12/24 职场文书
小学运动会通讯稿
2015/07/18 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
为什么代码规范要求SQL语句不要过多的join
2021/06/23 MySQL