el-select全选反选功能

<template>
  <el-select v-model="selectedOptions" multiple @change="changeAll" style="width:100%">
    <el-checkbox v-model="checkedAll" @change="selectAll" style="margin-left:10px">全选</el-checkbox>
    <el-checkbox v-model="checkedReverse" @change="reverseSelect">反选</el-checkbox>
    <el-option v-for="option in options" :key="option.id" :label="option.name" :value="option.name"></el-option>
  </el-select>
</template>

<script>
export default {
    data(){
        return{
            options: [{
          id: '选项1',
          name: '黄金糕'
        }, {
          id: '选项2',
          name: '双皮奶'
        }, {
          id: '选项3',
          name: '蚵仔煎'
        }, {
          id: '选项4',
          name: '龙须面'
        }, {
          id: '选项5',
          name: '北京烤鸭'
        }],
        checkedAll:false,
        checkedReverse:false,
        selectedOptions:[]
        }
    },
    methods:{
        selectAll(){
            if (this.checkedAll) {
                this.checkedReverse=false;
                this.selectedOptions=this.options.map(option=>option.name)
            }else{
              this.selectedOptions=[]  
            }
        },
        changeAll(){
            if (this.selectedOptions.length==this.options.length) {
                this.checkedAll=true
            }else{
                this.checkedAll=false
            };
            if (this.checkedReverse) {
                this.checkedReverse=false
            }
        },
        reverseSelect(){
            this.selectedOptions=this.options.filter((option)=>!this.selectedOptions.includes(option.name))
            .map((option)=>option.name);
            if (this.selectedOptions.length==this.options.length) {
                this.checkedAll=true
            }else{
                this.checkedAll=false
            }
        }
    }
}
</script>

<style>

</style>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值