使用vue实现复选框单选多选
界面样式:
<div class="right_con" v-if="isClickApply" style="border:none">
<table class="work-table base-table">
<thead>
<tr>
<th>
<Checkbox v-model="hasAllChecked" @on-change="chooseAll"></Checkbox>
</th>
<th style="text-align:left;width:30%">姓名</th>
<th style="width:30%">手机号码</th>
<th style="width:30%">申请时间</th> <th style="width:10%">操作</th>
</tr>
</thead>
<tbody v-if="applyUserList&&applyUserList.length>0">
<tr v-for="(item,index) in applyUserList" :key="index">
<td>
<Checkbox
v-model="item.hasSelected"
@on-change="chooseSingle(item)"
></Checkbox>
</td>
<td>{{item.trueName}}</td>
<td>{{item.phone}}</td>
<td>{{item.addTime}}</td>
<td style="display:flex;aligin-items:center">
<Button class="agree" @click="agreeClick([item.id])">通过</Button>
<!-- <div class="agree" @click="agreeClick([item.id])">通过</div> -->
<!-- <div class="disagree" @click="disagreeClick([item.id])">驳回</div> -->
<Button class="disagree" @click="disagreeClick([item.id])">驳回</Button>
</td>
</tr>
</tbody> <tbody v-else>
<tr style="text-align: center;">
<td colspan="5">暂无数据</td>
</tr>
</tbody>
</table> <Page
show-total
:total="total"
:page-size="size"
:current="current"
@on-change="changePage"
class="page_switch_class"
v-if="applyUserList&&applyUserList.length>0"
/>
</div>
关键参数:
hasAllChecked(是否全选) 全选方法:
// 全选
chooseAll(val) {
var self = this
if (val) {
self.applyUserList.forEach(ele => {
ele.hasSelected = true
})
} else {
self.applyUserList.forEach(ele => {
ele.hasSelected = false
})
}
},
解释:遍历要显示的数组,手动为每一项增加hasSelected参数,点击全选时,将所有参数中hasSelected置为true,反之亦然。
单选方法:
// 单选
chooseSingle(item) {
var self = this
self.hasAllChecked = true
self.applyUserList.forEach(ele => {
if (!ele.hasSelected) self.hasAllChecked = false
})
},
解释:先将代表全选的hasSelected置为true,遍历要显示的数组,若数组中有已被选中的项,则将hasSelected置为false,代表非全选。
批量通过:
// 批量通过
agreeAll() {
var self = this
var isSelected = false
self.applyUserList.forEach(ele => {
if (ele.hasSelected) isSelected = true
}) if (isSelected) {
var members = []
self.applyUserList.forEach(ele => {
if (ele.hasSelected) members.push(ele.id)
})
self.agreeClick(members)
} else {
self.$app.error('您还没有选择需要审批的成员')
}
},
批量驳回:
// 批量驳回
disagreeAll() {
var self = this
var isSelected = false
self.rejectIds = []
self.applyUserList.forEach(ele => {
if (ele.hasSelected) isSelected = true
}) if (isSelected) {
self.applyUserList.forEach(ele => {
if (ele.hasSelected) self.rejectIds.push(ele.id)
})
self.title =
self.rejectIds.length > 1 ? '批量驳回原因' : '驳回原因'
self.rejectReason = ''
self.modal12 = true
} else {
self.$app.error('您还没有选择需要审批的成员')
}
},
使用vue实现复选框单选多选的更多相关文章
- javascript实现复选框单选多选!
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Vue复选框的全选
<!DOCTYPE html><html> <head> <meta charset="utf-8"> ...
- [CSS]复选框单选框与文字对齐问题的研究与解决.
前言:今天碰到的这个问题, 恰好找到一个很好的博文, 在这里转载过来 学习下. 原文地址:复选框单选框与文字对齐问题的研究与解决. 目前中文网站上面的文字,就我的个人感觉而言,绝大多数网站的主流文字大 ...
- ylbtech-数据库设计与优化-对作为复选框/单选列表的集合表的设计
ylbtech-DatabaseDesgin:ylbtech-数据库设计与优化-对作为复选框/单选列表的集合表的设计 -- DatabaseName:通用表结构-- -- 主要是针对将要设计的表对象, ...
- 关于SWT常用组件(按钮,复选框,单选框(Button类))
Button是SWT中最常用的组件.Button类的继承关系图: Button类的构造方法是newe Button(Composite parent,int style)它有两个参数: 第一个参数:是 ...
- MFC控件编程之复选框单选框分组框
MFC控件编程之复选框单选框分组框 一丶分组框 分组框 英文叫做 GroubBox 添加了分组框主要就是分组.好看.不重点介绍 二丶单选框 英文: Raido Button 单选框需要注意的事项 1. ...
- ztree根据参数动态控制是否显示复选框/单选框(静态JSON数据)
本文不再更新,可能存在内容过时的情况,实时更新请访问原地址:ztree根据参数动态控制是否显示复选框/单选框(静态JSON数据): 现有全省各地区静态JSON数据,现在想通过Url参数,动态控制是否显 ...
- sencha gridpanel checkbox 复选框的勾选 以及和单机行冲突
gridpanel显示checkbox: 添加SelectionModel为Checkbox Selection Model { xtype: 'gridpanel', id: 'Grid1', he ...
- js实现复选框的全选、全不选、反选
js中实现复选框的全选,全不选以及反选,分为两种情况: (1)选中“请选择”前面的复选框实现全选,不选中“请选择”前面的复选框实现全不选 <!DOCTYPE html PUBLIC " ...
随机推荐
- win10家庭版更改本地账户名、C盘Users下文件夹名和环境变量等
PS:由于四五年前装系统的时候懵懵懂懂的敲了一个中文用户名(有一个字还打错了,尴尬),导致现在打开cmd默认是C:\Users\中文名,path环境变量中也有中文路径,有时候有些程序的路径也是中文,这 ...
- 剑指offer-基础练习-增删节点-链表
/* 链表基本操作: 插入节点和删除节点 */ /* 思路: 使用指向链表的头指针,这样在新插入节点后,头指针不会改变 */ struct ListNode{ int value; ListNode* ...
- CF1299D Around the World
题意 \(n\)阶无向图,\(m\)条带权边,保证\(1\)不会被"超过\(3\)阶的圈"所包含.求删除与\(1\)相邻的边集,使得不存在从\(1\)出发的权值为\(0\)的非平凡 ...
- SpringBoot整合ActiveMQ开启持久化
1.开启队列持久化 只需要添加三行代码 jmsTemplate.setDeliveryMode(2); jmsTemplate.setExplicitQosEnabled(true); jmsTemp ...
- 微信小程序-展示后台传来的json格式数据
昨天粗粗的写了下后台数据传到微信小程序显示,用来熟悉这个过程,适合刚入门学习案例: 需了解的技术:javaSE,C3p0,jdbcTemplate,fastjson,html,javaScript,c ...
- 1级搭建类112-Oracle 19c SI FS(CentOS 8)
Oracle 19c 单实例文件系统在 CentOS 8 上的静默安装
- Python类的特殊成员方法
__doc__ 类的描述信息. class dog: '''这是狗的类''' def __init__(self,name): self.name = name self.__age = None p ...
- jQuery---基本的选择器
基本选择器 名称 用法 描述 ID选择器 $(“#id”); 获取指定ID的元素 类选择器 $(“.class”); 获取同一类class的元素 标签选择器 $(“div”); 获取同一类标签的所有元 ...
- 获取redis cluster master对应的slot分布情况
需求:原生的redis-trib.rb功能是强大,但输出的内容过于繁杂,比如我需要关注哪些master对应哪些slots,不是很直观,如果集群的规模更大的话,那么输出的结果获取信息更加困难. 说明:这 ...
- 【E20200105-1】Centos 7.x 下vsftpd配置文件常用配置详解
centos 7 下vsftp的安装和配置可以参见<[E20200102-1]centos 7 下vsftp的安装和配置> ########匿名用户(anonymous)设置####### ...