IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue购物车功能计算总价/全选/删除 -> 正文阅读

[JavaScript知识库]Vue购物车功能计算总价/全选/删除

要求

在这里插入图片描述

功能实现

初始页面
在这里插入图片描述
功能1:删除
点击删除操作后,整行可以被删除。
在这里插入图片描述

功能2:全选
当所有商品都被勾选上是,全选按钮也勾上,当全选按钮勾上时,所有商品都被勾选上。
在这里插入图片描述

功能3:计算总价
当输入商品数量时,商品金额发生改变,当勾选多个商品时,计算出所有商品的总价,当数量发生改变时,总价也发生改变。
在这里插入图片描述

代码实现

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>

</head>
<body>
 
     <div id="app" style="margin-top: 120px;margin-left: 400px;">
         <form action="#" method="post">
             <table border="1" style="width: 600px;text-align: center">
                 <tr>
                     <td style="width: 8%">
                         <input type="checkbox" v-model="isChecked">
                     </td>
                     <td style="width: 10%">商品id</td>
                     <td style="width: 30%">产品名称</td>
                     <td style="width: 20%">产品单价</td>
                     <td style="width: 20%">产品数量</td>
                     <td style="width: 30%">金额</td>
                     <td style="width: 50%">操作</td>
                 </tr>

                 <tr v-for=" (item,index) in lists " :key="index">
                     <td>
                         <input type="checkbox" v-model="item.isCheck">
                     </td>
                     <td>{{item.id}}</td>
                     <td>{{item.name}}</td>
                     <td >{{item.price}}</td>
                     <td>
                         <input type="number" min="0"  v-model="item.num" style="width: 40px">
                     </td>
                    <td style="font-weight: bold">
                        ¥{{(item.price*item.num)}}
                    </td>
                    <td>
                        <input @click="delGood(index)" type="button" value="删除">
                    </td>
                 </tr>
                 <tr>
                     <td colspan="6" style="text-align: left;color: red;font-weight: bold ;text-align: center" >
                         总价:    ¥{{getTotal }}
                     </td>
                 </tr>

                 
             </table>
         </form>
     </div>
 
     <script>
         const  vm=new  Vue({
             el:"#app",
             data(){
                 return{
                     lists:[
                         {
                             isCheck:false,
                             id:1,
                             name:"书包",
                             price:80,
                             num:0
                         },
                         {
                             isCheck:false,
                             id:2,
                             name:"水杯",
                             price:15,
                             num:0
                         },
                         {
                             isCheck:false,
                             id:3,
                             name:"雨伞",
                             price:15,
                             num:0
                         },
                         {
                             isCheck:false,
                             id:4,
                             name:"手电筒",
                             price:10,
                             num:0
                         }
                      ]
                 }
             },
             methods: {
                 //删除
                delGood:function(index) {
                    this.lists.splice(index, 1);
                }
             },
            
             computed:{
                 //计算总价格
                 getTotal:function(){
                    // 获取lists中isCheck为true的数据
                     let _listsCheck=this.lists.filter(function (val){
                         return val.isCheck===true;
                     })
                     //总价
                     let totalPrice=0
 
                     for (let i = 0; i < _listsCheck.length; i++) {  //循环获取lists中isCheck为true的数据
                         totalPrice+=_listsCheck[i].num*_listsCheck[i].price//将对应isCheck为true的数量与价格相乘得出总价
                     }
                     return totalPrice; 
                 },

                 

                 isChecked:{
                     get(){
                         let flag=true;
                         //读取的时候触发
                         this.lists.forEach(el=>{  //迭代lists中为isCheck
                             if(el.isCheck==false){  //当子选项有一个为false时,则全选设置为false
                                 flag=false;
                             }
                         })
                         return flag;
                     },
                    
                
                     set(val) //当isChecked被赋值的时候会触发这个set方法
                     {
                         if(val) //判断如果全选被选中,则其他的子选项全部选中,如果全选被取消,则其他的所有子选项取消选中
                         {
                             this.lists.map(function(el){
                                 return el.isCheck=true;
                             });
                         }else
                         {
                             this.lists.map(el=>el.isCheck=false);
                         }
                     }
                 }
             }
         })
     </script>
</body>
</html>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-06-16 21:35:35  更:2022-06-16 21:36:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:02:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码