vue开发购物车,解决全选单选问题
实现全选单选,在vue中无法通过this获取input中的checkbox的checked属性,但是可以通过vue对input的特殊方式v-model来实现对应数据的绑定,同样也可以通过这种方式实现购物车全选,单选的效果。
大体内容如下:
主要是通过checkbox以及v-if v-else实现内容的隐藏与显示
当全选对应的checkbox为选中状态,在这里指的是:
<th>全选<input type="checkbox" @click="handleChecked()" v-model="allChecked"/></th>
注解:
(1)allChecked:被封装成一个boolean类型的值,当选中时被设置成true,反之为对立面。
(2)handleChecked():是一个函数,用来处理触发事件,同时实现对应的效果,如改变子的checkbox的状态。
(3)一个比较巧妙的转换boolean数据对立面的方法:this.allChecked = !this.allChecked;
(4)购物车总价显示与否的实现方法:通过v-if与v-else来判断,前提也是有一个boolean类型的值作为逻辑控制的标志;
本方法的使用环境如下:
1、data的封装
- data() {
- return {
- //全选
- allChecked:false,
- //总计一栏是否显示的标记
- displayMoney: false,
- // 购物清单
- list: [{
- checked:false,
- id: 1,
- name: '发动机',
- price: 180,
- count: 1,
- Stotal: 180
- },
- {
- checked:false,
- id: 2,
- name: '燃油机',
- price: 200,
- count: 1,
- Stotal: 200
- },
- {
- checked:false,
- id: 3,
- name: '滤清',
- price: 500,
- count: 1,
- Stotal: 500
- }
- ]
- }
- },
2、html部分
- <div id="" v-if="list.length">
- <table class="table_border">
- <thead>
- <tr class="tip">
- <th>全选<input type="checkbox" @click="handleChecked()" v-model="allChecked"/></th>
- <th>商品编号</th>
- <th>商品名称</th>
- <th>商品单价</th>
- <th>购买数量</th>
- <th>小计</th>
- <th>操作</th>
- </tr>
- </thead>
- <tbody>
- <tr v-for="(item,index) in list">
- <td><input type="checkbox" v-model="item.checked" name="all"/></td>
- <td>{{ index + 1}}</td>
- <td>{{ item.name }}</td>
- <td>¥{{ item.price }}</td>
- <td>
- <button @click="handleReduce(index)" :disabled="item.count===1">-</button>
- <input type="text" v-model="item.count" readonly="readonly" />
- <button @click="handleAdd(index)">+</button>
- </td>
- <td>¥{{ item.Stotal }}</td>
- <td>
- <el-button @click="handleRemove(index)" type="danger" icon="el-icon-delete" circle></el-button>
- </td>
- </tr>
- <tr>
- <td colspan="4"></td>
- <td colspan="3">
- 总价 :¥
- <span v-if="displayMoney=true">{{totalPrice}}</span>
- <span v-else="displayMoney=false">0</span>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div id="" v-else>
- 购物车为空
- </div>
3、核心方法部分
- handleChecked: function(item) {
- //全选
- if(this.allChecked==false) {
- for(var i = 0; i < this.list.length; i++) {
- var item = this.list[i];
- item.checked = true;
- }
- } else { //取消全选
- for(var i = 0; i < this.list.length; i++) {
- var item = this.list[i];
- item.checked = false;
- }
- }
- this.allChecked = !this.allChecked;
- }
完整代码见:https://download.csdn.net/download/colourfultiger/10516616
vue开发购物车,解决全选单选问题的更多相关文章
- vue+vant 购物车的全选和反选
https://blog.csdn.net/wjswangjinsheng/article/details/91392694
- Flutter实战视频-移动电商-60.购物车_全选按钮的交互效果制作
60.购物车_全选按钮的交互效果制作 主要做全选和复选框的这两个功能 provide/cart.dart 业务逻辑写到provide里面 先持久化取出来字符串,把字符串编程list.循环list ca ...
- VUE实现简单的全选/全不选
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- vue+vant实现购物车的全选和反选业务,带你研究购物车的那些细节!
前言 喜欢购物的小伙伴看过来,你们期待已久的购物车来啦!相信小伙伴逛淘宝时最擅长的就是加入购物车了,那购物车是如何实现商品全选反选的呢?今天就带你们研究购物车的源码,以vue+vant为例. 正文 首 ...
- jquery-防多店铺购物车结算全选,单选,及删除,价格计算
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Android中购物车的全选、反选、问题和计算价格
此Demo主要解决的是购物车中的全选,反选计算价格和选中的条目个数的问题,当选中几条时,点击反选,会把当先选中的变为不选中,把不选中的变为选中.点击全选会全部选中,再次点击时,变为全部不选中. //- ...
- vue中的checkbox全选和反选
前几天有个博客园的朋友问小颖,小颖之前写的vue2.0在table中实现全选和反选 .Vue.js实现checkbox的全选和反选,为什么他将里面的js复制下来,但是实现不了全选和反选.小颖当时看他 ...
- vue的el-select标签全选以及出现需要有禁用选项
首先说一下遇到这种问题的解决思路吧,很简单先去https://element.eleme.cn/#/zh-CN 这个官网上找到对应的需求,然后就是拼接数据的问题. 以下是全选的例子: <el-s ...
- 邮箱性质--全选单选的操作和传值 用属性的name传值
封装类 using System; using System.Collections.Generic; using System.Web; /// <summary> /// Ha 的摘要 ...
随机推荐
- 洛谷 P 1164 小A点菜
题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家……餐馆,很低端的那种. uim指着墙上的价目表(太低级了没有菜单),说:“随便点”. 题目描述 不过uim由于买了一些辅(e ...
- Linux shell中的竖线(|)——管道符号
管道符号,是unix一个很强大的功能,符号为一条竖线:"|". 用法: command 1 | command 2 他的功能是把第一个命令command 1执行的结果作为comma ...
- Mysql 使用存储过程添加新字段
-- 1, 注意SQL 语句开始处不要空格 -- 2, 在使用 [--] 进行注释时,后面请加空格 USE `test`; -- lastUpdateTime drop procedure if ex ...
- Maven单元测试
// SKU码:系列前3位+6位年月日+3位序号(自动生产,取数据库中当天最大的,没有就赋值位001) // 订单编号:BRD+6位年月日+5位序号 // // 退单号:BRT+6位年月日+3位序号 ...
- omcat 7 的domain域名配置,Tomcat 修改JSESSIONID
https://blog.csdn.net/catoop/article/details/64581325
- Codeforces Round #307 (Div. 2) D. GukiZ and Binary Operations
得到k二进制后,对每一位可取得的方法进行相乘即可,k的二进制形式每一位又分为2种0,1,0时,a数组必定要为一长为n的01串,且串中不出现连续的11,1时与前述情况是相反的. 且0时其方法总数为f(n ...
- 深入探究Java中hashCode()和equals()的关系
目录 一.基础:hashCode() 和 equals() 简介 equals() hashCode() 二. 漫谈:初识 hashCode() 与 equals() 之间的关系 三. 解密:深入理解 ...
- C/C++二进制读写png文件
以下代码只有最简单的读写.地址定位啥的,个别注释中有.如果要改动png的格式甚么的就要再了解一下png的数据结构如果要十进制的话就跟着注释改一下: /*! * \file CC++二进制读写png文件 ...
- 微信小程序 - 提取字体图标与其优化
微信小程序,无论是字体图标还是图标,都差不多,只不过是为了以后字体图标修改方便,或者加效果方便而使用它而已! 1. 下载font-awesome http://fontawesome.dashgame ...
- ubuntu 系统启动时找不到根文件系统
报出的错误大概为: Alert! /dev/disk/by-uuid/ ....... does not exist 最后进入了 initramdiskfs 的命令行终端 . 输入 blkid 命令却 ...