前端|Vue实现复选框,批量操作
声明 selectIds 数组:
data: {
whiteCardList: [],
selectIds: []
},
获取列表的方法: 这里要给得到的数据列表添加一个checked(任意命名)为false的属性,在循环展示数据表格中给选择框绑定 v-model=“whiteCard .checked”,这样是为了每次页面数据重新加载时使选择框为未选中状态:
// 获取列表的方法
getWhiteCardList: function () {
var _this = this;
axios.post("http://127.0.0.1:8080/yunjie/MakeCard/SelectWhiteListCard", {
Token: _this.token,
Data: {
CardSerialNo: _this.cardSerialNo,
CardStatus: _this.cardStatus
}
}).then(function (response) {
if (response.data.Result == 0) {
// alert("1");
_this.whiteCardList = response.data.Data;
if (_this.whiteCardList.length > 0){
for (var i = 0;
i < _this.whiteCardList.length;
i++){
_this.whiteCardList[i].Checked=false;
}
}
} else {
alert(response.data.Msg);
}
// 数据重新加载后清空选择列表
_this.selectIds=[];
})
},
数据表格:
{{whiteCard.CardSerialNo}}
{{whiteCard.CardNo}}
{{whiteCard.CardTypeName}}
{{whiteCard.CardStatusName}}
更新选择集合的方法:
// 更新复选
updateIds: function ($event, CardNo) {
// alert($event.target.checked);
if ($event.target.checked) {
// 如果为选中,加入selectIds
this.selectIds.push(CardNo);
} else {
// 否则移除
var idx1 = this.selectIds.indexOf(CardNo);
this.selectIds.splice(idx1, 1);
}
}
【前端|Vue实现复选框,批量操作】补充: 实现全选的方法:
注意:这里需要给全选框绑定的事件应是改变事件,不能是点击事件,因为点击事件会在选择框改变前执行,即本来全选框为 false 未选中状态,我们点击全选框是需要把数据全选,即选装状态应当是 true,因此要用改变事件,即 @change=“selectAll” 才符合我们的需求。
selectAll: function ($event) {
// 如果全选框为选中状态
if ($event.target.checked){
if (this.whiteCardList.length > 0){
for (var i = 0;
i < this.whiteCardList.length;
i++){
this.whiteCardList[i].Checked=true;
this.selectIds.push(this.whiteCardList[i].CardNo)
}
}
}else {
// 点击全选框为未选中状态,清空selectIds
this.selectIds = [];
}}
推荐阅读
- vue-cli|vue-cli 3.x vue.config.js 配置
- 2020-04-07vue中Axios的封装和API接口的管理
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- MybatisPlus使用queryWrapper如何实现复杂查询
- python学习之|python学习之 实现QQ自动发送消息
- 孩子不是实现父母欲望的工具——林哈夫
- opencv|opencv C++模板匹配的简单实现
- Node.js中readline模块实现终端输入
- java中如何实现重建二叉树
- 人脸识别|【人脸识别系列】| 实现自动化妆