使用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 " ...
随机推荐
- js中div显示和隐藏钮为什么页面总是跳一下到最上面
<div class="menu_left"> <ul > <li id="t1" style="background- ...
- MySQL8服务无法正常启动的解决方法(1053错误)
个人博客 地址:https://www.wenhaofan.com/article/20190530120545 错误描述 在MySQL安装的最后一步启动失败,如下图所示 在服务和应用程序->服 ...
- Uva12034 (组合数取模)
题意:两匹马比赛有三种比赛结果,n匹马比赛的所有可能结果总数 解法: 设答案是f[n],则假设第一名有i个人,有C(n,i)种可能,接下来还有f(n-i)种可能性,因此答案为 ΣC(n,i)f(n-i ...
- sublime—text终端无法输入,不支持scanf、input等语法问题的解决
sublimetext是个很好用的轻量编辑器,,支持多语言语法高亮,自动补全,快捷键编译运行,而且ui也不错挺简洁,我一直在用.我之前浏览帖子时候看到有些人也在用这个编辑器. 但是吧,这个编辑器的的编 ...
- js替换时,空格被替换为双引号
替换代码 str.replace(/\"/g, "'") 将双引号替换为单引号,如果字符串中,存在space(空格)时,使用以上语句将会导致空格被替换为双引号,可以使用如 ...
- gulp常用插件之gulp-rev-collector使用
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-collector这是一款根据gulp-rev生成的manifest.json文件中的映射, 去替换文件名称, 也可以替换路径. ...
- CF1237F Balanced Domino Placements
题意 给定一个 \(h\) 行 \(w\) 列的方格图,上面已经放置了一些 \(1\times 2\) 的多米诺骨牌. 我们称一个放置多米诺骨牌的方案是好的,当且仅当任何两个多米诺骨牌不占用相同的行与 ...
- PAT (Advanced Level) Practice 1027 Colors in Mars (20 分)
People in Mars represent the colors in their computers in a similar way as the Earth people. That is ...
- Linux更改时区
在下午查看系统时间,发现时间竟然是凌晨2点过: [root@node01 ~]# date Sat Jul 20 02:34:29 EDT 2019 开始以为是时间不是24小时进制的,百度了一下,参考 ...
- JS将一个数组切分为多个数组
function group(array, subGroupLength) { let index = 0; let newArray = []; while(index < array.len ...