vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > vue el-checkbox实现全选单选

vue el-checkbox实现全选单选方式

作者:泡芙is

这篇文章主要介绍了vue el-checkbox实现全选单选方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

vue el-checkbox全选单选

要求的页面结构

是这样的

遇到了许多问题

如:点击tab切换后 全选按钮要点击2次可以生效。。。

我这里就不一 一多说了。直接上代码。

<el-row class="list-header">
	<el-col :span="6"><el-checkbox class="checkbox" :checked="isCheckedAll" v-model="checkAllFlag" @change="checkAll"> 全选</el-checkbox></el-col>
</el-row>
 
<el-row class="list-header">
	<el-checkbox-group v-model="checkArr"  @change="handleChecked">
		<el-checkbox class="checkbox" :label="data.productId">&nbsp;</el-checkbox> {{data.productNum}}<span class="col-b"> {{data.specification}}</span>
	</el-checkbox-group>
</el-row>
 
export default {
		data() {
			return {
				dataList: [],
				checkArr: [],//选中数组
				isCheckedAll: false,//全选判断标识
				checkAllFlag: false,
				CheckedAllArr: [],//全选数组
			}
		},
		methods: {
			//全选
			checkAll(event){
				this.checkArr = event.target.checked ? this.CheckedAllArr : [];
			},
			//单选
			handleChecked(){
				this.isCheckedAll = this.checkArr.length == this.dataList.length;
				this.checkAllFlag = this.checkArr.length == this.dataList.length;
			},
			switchStatus(type){
				this.isCheckedAll = this.checkArr.length == this.dataList.length;
				this.checkAllFlag = this.checkArr.length == this.dataList.length;
				this.checkArr = [];
				this.queryStatus = type;
				this.getList();
			},
			//获取商品列表 type==query 模糊搜索  为空:所有商品
			getList() {
				this.$http.post("/######",{
					queryCategory: this.queryCategory,
					queryKey:this.queryKey,
					queryStatus:this.queryStatus
				},{}).then(function(res){
					this.dataList=res.body.dataList;
 
                    //全选后的数组
					this.setCheckedAllArr()
				}).catch(); 
			},
			setCheckedAllArr(){
				let arr = [];
				this.dataList.forEach((item,index)=>{
					this.CheckedAllArr.push(item.productId);
				})
			}
	}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文