vue使用vant中的checkbox实现全选功能


Posted in Vue.js onNovember 17, 2020

本文实例为大家分享了vue使用vant中的checkbox实现全选功能的具体代码,供大家参考,具体内容如下

<template>
 <div class="visiblePeople">
 <topbar />
 <ul class="list clear_float">
 <li v-for="(item, index) in people" :key="index">
 <van-checkbox
  v-model="item.flag"
  class="listli"
 ></van-checkbox>
 <div class="right">
  <p>{{ item.name }}</p>
  <p>{{ item.id }}</p>
 </div>
 </li>
 </ul>
 <div class="bottom">
 <div class="left">
 <van-checkbox v-model="allcheck" class="all">全选</van-checkbox>
 </div>
 <button @click="jump">确定</button>
 </div>
 </div>
</template>
 
<script>
export default {
 data() {
 return {
 people: [
 { id: "002", name: "陈阳", flag: true },
 {
  id: "003",
  name: "王苗苗",
  flag: true,
 },
 {
  id: "004",
  name: "张梁俊",
  flag: true,
 },
 {
  id: "005",
  name: "刘路",
  flag: true,
 },
 ],
 };
 },
 methods: {
 //点击确定后跳转回新增合同页面
 jump() {
 this.$router.push("/addContract");
 },
 //单选按钮切换
 // change(index) {
 // this.people[index].flag = !this.people[index].flag;
 // console.log(this.people[index].flag);
 // },
 },
 computed:{
 allcheck:{
 get(){
 //取值
 //every方法,数组中每一项都满足一个条件返回true
 return this.people.every(item=>item.flag)
 },
 set(newValue){
 //设置值
 console.log('触发set方法')
 this.people.map(item=>item.flag=newValue)
 }
 },
 filterAll(){
 return this.people.filter(item=>item.flag).length
 },
 count(){
 let checkedList=this.people.filter(item=>item.flag)
 return checkedList.length.reduce((total,item)=>{
 return total+item.num
 },0)
 }
 }
};
</script>
<style lang="less" scoped>
.list {
 background: #f8f9fb;
 height: 574px;
 li {
 height: 56px;
 margin: 10px 0 10px 0;
 float: left;
 img {
 width: 19px;
 height: 19px;
 float: left;
 margin: 13px;
 &.on {
 display: block;
 }
 &.off {
 display: none;
 }
 }
 .listli {
 float: left;
 margin: 19px 13px 0 13px;
 }
 .right {
 float: left;
 background: #ffffff;
 width: 328px;
 height: 56px;
 padding: 0px 0 0 13px;
 box-sizing: border-box;
 p:nth-of-type(1) {
 font-size: 15px;
 font-family: PingFang SC;
 font-weight: 400;
 color: #000000;
 line-height: 29px;
 }
 p:nth-of-type(2) {
 font-size: 13px;
 font-family: PingFang SC;
 font-weight: 400;
 color: #666666;
 line-height: 14px;
 }
 }
 }
}
.bottom {
 height: 50px;
 position: fixed;
 bottom: 0;
 .left {
 width: 237px;
 background: #ffffff;
 height: 100%;
 float: left;
 img {
 width: 18px;
 float: left;
 margin: 18px 13px 0 18px;
 &.on {
 display: block;
 }
 &.off {
 display: none;
 }
 }
 .all {
 margin: 17px 0 0 14px;
 }
 p {
 float: left;
 font-size: 13px;
 font-family: PingFang SC;
 font-weight: 400;
 color: #333333;
 margin-top: 18px;
 }
 }
 button {
 float: left;
 width: 138px;
 height: 50px;
 line-height: 50px;
 background: #336afa;
 color: #ffffff;
 }
}
</style>

本次遇到的问题是自己一开始没发现在people数组里面,定义的每一项flag的值设置的类型为字符串型即flag="true",导致一开始进入页面全部无论值为true还是false,复选框都是选中效果,修改之后便没有了此问题。

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

更多vue学习教程请阅读专题《vue实战教程》

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

Vue.js 相关文章推荐
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
如何实现vue的tree组件
Dec 03 Vue.js
vuex Module将 store 分割成模块的操作
Dec 07 Vue.js
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 Vue.js
vue 在服务器端直接修改请求的接口地址
Dec 19 Vue.js
vue+elementui通用弹窗的实现(新增+编辑)
Jan 07 Vue.js
Vuex实现简单购物车
Jan 10 Vue.js
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 Vue.js
Vue SPA 首屏优化方案
Feb 26 Vue.js
vue响应式原理与双向数据的深入解析
Jun 04 Vue.js
vue实现移动端div拖动效果
Mar 03 Vue.js
vue项目打包后路由错误的解决方法
Apr 13 Vue.js
vue中音频wavesurfer.js的使用方法
Feb 20 #Vue.js
vue+vant实现购物车全选和反选功能
Nov 17 #Vue.js
在vue中通过render函数给子组件设置ref操作
Nov 17 #Vue.js
vue+iview分页组件的封装
Nov 17 #Vue.js
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 #Vue.js
vue+iview实现分页及查询功能
Nov 17 #Vue.js
vue中echarts的用法及与elementui-select的协同绑定操作
Nov 17 #Vue.js
You might like
php include的妙用,实现路径加密
2008/07/29 PHP
PHP小技巧之函数重载
2014/06/02 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
解决yii2左侧菜单子级无法高亮问题的方法
2016/05/08 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
PHP获取当前日期及本周一是几月几号的方法
2017/03/28 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
浅析js封装和作用域
2013/07/09 Javascript
js实现瀑布流的一种简单方法实例分享
2013/11/04 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
2014/12/08 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
koa-passport实现本地验证的方法示例
2020/02/20 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
跟老齐学Python之编写类之三子类
2014/10/11 Python
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
Python在groupby分组后提取指定位置记录方法
2018/04/20 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
关于tf.matmul() 和tf.multiply() 的区别说明
2020/06/18 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
德国电子商城:ComputerUniverse
2017/04/21 全球购物
政法大学毕业生自荐信范文
2014/01/01 职场文书
警察思想汇报
2014/01/04 职场文书
建筑安全责任书范本
2014/07/24 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
学校群众路线专项整治方案
2014/10/31 职场文书
员工评语范文
2014/12/31 职场文书
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android