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 相关文章推荐
IE 缓存策略的BUG的解决方法
Jul 21 Javascript
js操作二级联动实现代码
Jul 27 Javascript
Jquery中LigerUi的弹出编辑框(实现方法)
Jul 09 Javascript
时间戳转换为时间 年月日时间的JS函数
Aug 19 Javascript
JavaScript中的Math.atan2()方法使用详解
Jun 15 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
Oct 23 Javascript
jQuery实现返回顶部功能
Feb 23 Javascript
基于jQuery实现简单人工智能聊天室
Feb 10 Javascript
微信小程序表单验证功能完整实例
Dec 01 Javascript
js笔试题-接收get请求参数
Jun 15 Javascript
js实现淘宝浏览商品放大镜功能
Oct 28 Javascript
HTML+JS实现在线朗读器
Feb 15 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防注
2007/01/15 PHP
PHP 类商品秒杀计时实现代码
2010/05/05 PHP
PHP.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
前端开发必知的15个jQuery小技巧
2017/01/22 Javascript
js移动端事件基础及常用事件库详解
2017/08/15 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
Angularjs实现页面模板清除的方法
2018/07/20 Javascript
详解JavaScript中操作符和表达式
2018/09/12 Javascript
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
关于JSON解析的实现过程解析
2019/10/08 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
python处理PHP数组文本文件实例
2014/09/18 Python
python执行等待程序直到第二天零点的方法
2015/04/23 Python
Python进程间通信用法实例
2015/06/04 Python
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
python实现自动登录后台管理系统
2018/10/18 Python
在Django下测试与调试REST API的方法详解
2019/08/29 Python
python 递归调用返回None的问题及解决方法
2020/03/16 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
Canvas波浪花环的示例代码
2020/08/21 HTML / CSS
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
餐厅总经理岗位职责
2013/12/31 职场文书
大学生村官承诺书
2014/03/28 职场文书
体现团队精神的口号
2014/06/06 职场文书
会计系毕业求职信
2014/08/07 职场文书
2014乡镇党委副书记对照检查材料思想汇报
2014/10/09 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书
python识别围棋定位棋盘位置
2021/07/26 Python
Python实现自动玩连连看的脚本分享
2022/04/04 Python
python绘制简单直方图(质量分布图)的方法
2022/04/21 Python
图神经网络GNN算法
2022/05/11 Python