vue.js 实现全选,单选,计算商品总价格,商品件数

1.标签

<div id="main-body" class="box">

<div class="main">

<input type="checkbox" v-model="ischecked" @click="allchecked" />全选

<div class="sum">¥{{sum}}.00</div>

<div class="settlement">

<span @click="settlement">结算({{count}})</span>

</div>

</div>

<ul>

<li v-for="(item,index) in goodslist" :key="item.name">

<div class="radio">

<input

type="checkbox"

:checked="item.checked"

@click="changechecked($event,item.name)"

/>

</div>

<div class="title"> {{item.name}} </div>

<div class="price">¥{{item.price}}</div>

<div class="num-count">

<button ref="sub" @click="subcount(item.name)">-</button>

<span>{{item.count}}</span>

<button ref="add" @click="addcount(item.name)">+</button>

</div>

</li>

</ul>

</div>

2. js部分

2.1       data部分

data: {

sum: 0,

ischecked: false,

count: 0,

goodslist: [

{

name: "亚托克斯",

price: 100,

checked: false,

count: 1,

},

{

name: "安妮",

price: 150,

checked: false,

count: 1,

},

{

name: "阿卡丽",

price: 200,

checked: false,

count: 1,

},

{

name: "阿利斯塔",

price: 150,

checked: false,

count: 1,

},

{

name: "阿木木",

price: 300,

checked: false,

count: 1,

},

],

},

2.2        methods部分

methods: {

//单选按钮

changechecked(e, name) {

let result = this.goodslist.map((item) => {

if (name == item.name) {

item.checked = e.target.checked;

}

return item.checked;

});

let res = result.every((item) => {

return item;

});

if (res) {

this.ischecked = true;

} else {

this.ischecked = false;

}

this.getnewsum();

this.getnumcount();

},

//自减模块

subcount(name) {

//count自减

this.goodslist.filter((item) => {

if (item.name == name) {

if (item.count <= 0) return (item.count = 0);

item.count--;

}

});

this.getnewsum();

this.getnumcount();

},

//自增模块

addcount(name) {

//count自增

this.goodslist.filter((item) => {

if (item.name == name) {

item.count++;

}

});

this.getnewsum();

this.getnumcount();

},

//全选按钮

allchecked(e) {

if (e.target.checked) {

this.goodslist.forEach((item) => {

item.checked = true;

});

} else {

this.goodslist.forEach((item) => {

item.checked = false;

});

}

this.getnewsum(); // 调用计算总价函数

this.getnumcount(); // 调用计算总数函数

},

//结算结果

settlement() {

console.log("你本次消费" + this.sum + ".00");

},

//计算总价格

getnewsum() {

let num = 0;

this.goodslist.find((item) => {

if (item.checked) {

num += item.price * item.count;

}

});

this.sum = num;

},

//计算总数量

getnumcount() {

let count = 0;

this.goodslist.find((item) => {

if (item.checked) {

count += item.count;

}

});

this.count = count;

},

},

vue.js 实现全选,单选,计算商品总价格,商品件数相关推荐

  1. vue实现购物车简单的功能-单选全选总价计算、批量删除

    vue实现购物车简单的功能-----单选全选总价计算.批量删除等 观看了后盾人视频教学,视频里面对于全选和单选的功能没有讲全,于是自己研究了一下,前端小白,也是第一次写博客,有什么不足和可以优化的地方 ...

  2. 购物车单选全选,计算总价,出现个小问题,没找到.....

    按照正常逻辑走这个代码没问题,但有一次我瞎点的时候,总价没有清空,而是继续向上加,然后继续瞎点就找不到这个问题. 列出来仔细琢磨 <ul class="shopcar_ul" ...

  3. vue实现全选 单选功能

    实现效果 待选 全选 单选 多选 代码 1.页面结构 2.逻辑代码 3.binggo 就这么愉快的完成了

  4. vue实现购物车全选,总计等功能

    一.单价商品的小计 整个操作过程是,商品的数量是可以控制的,可增可减,最少为1.并且在数量的变化中,商品的小计也在变化. 二.单选选中商品 在购物车中,需要选择当前想买的商品,这一功能成为商品的单选, ...

  5. Jquery全选单选功能

    Jquery全选单选功能 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="W ...

  6. 如何用Vue实现一个全选指令

    最近用vue做了两个项目,都需要实现全选反选的功能,两个项目用了两种实现方法,第一个项目用vue的computed,第二个项目用指令来实现,用起来,发觉指令更加方便. 第一次做全选的时候是刚开始接触v ...

  7. 全选 单选和反选的实现

    大家早上好,新的一天又开始咯,继续学习啊,其实最近我发现了一张图特别好玩,如下: 哈哈,就是这张,但是我想说的是,革命尚未成功啊,还得继续修炼啊,好了,闲篇扯到这里,我们今天先来看一下,风靡各大电商网 ...

  8. JS实现全选、反选、不选

    JS实现全选.反选.不选 效果图: 代码如下,复制即可使用: <!DOCTYPE html> <html> <head><meta charset=" ...

  9. js购物车选中商品实现计算商品总价格

    为了在激烈的互联网竞争中获得一席之地,都努力使自己的网站更为人性化.比如在购物网站一般都有这样的功能,那就是在结算商品的时候,网站可以自动计算要购买商品所需要花费的金钱数量. 代码实例如下: 01 0 ...

最新文章

  1. Nature子刊:利用转细菌基因植物修复土壤有毒污染物!
  2. 磁盘操作系统是计算机语言吗,实时磁盘操作系统
  3. 修改webpack的publicPath为动态设置以适配公司活动平台
  4. 整理javascript操作文件说明.
  5. Java中isAssignableFrom()方法与instanceof()方法用法
  6. Docker监控:基于阿里云容器服务构建自己的Docker监控框架
  7. html5 单页视差模板,HTML5+CSS3的单页视差模板
  8. UINavigationController 多次连续 Push Pop 问题
  9. 怎么让HTML的属性横着排,css标签怎么设置横向排列
  10. iPhone 各屏幕尺寸及解析
  11. 领域驱动设计营销系统建模
  12. python最近广告_腾讯2018广告算法大赛思路解析(python)
  13. 科技爱好者周刊(第 167 期):广告拦截器太过分了
  14. PD-L1免疫组化检测难点与要点
  15. 时区的转换nbsp;格林尼治标准时间(GMT…
  16. 【计算机网络】计算机网络的组成
  17. Unity学习笔记--实现一个简单的2D地图编辑器
  18. vs上C/C++并行计算#pragma omp
  19. 游戏蓝牙耳机哪款好?2021商城最佳人气五款蓝牙耳机推荐
  20. 解决html页面图片大小不能自适应的问题

热门文章

  1. php sftp 删除,sftp常用命令是什么
  2. 揭开脉冲信号频谱的面纱
  3. 状态论的研究对象、任务和方法
  4. QT打开文件并显示文件内容
  5. python摸鱼之掩藏在泥土中的鱼,领导都在夸你勤奋
  6. python安装pandas失败问题
  7. 计算机英语专业论感知,英语职前教师技术接受程度调查分析
  8. 手写数字识别之资源配置
  9. vim 从嫌弃到依赖(19)——替换
  10. 微信公众号之IOS12以上版本自动填充验证码的输入框无法获取填充值