iview Select自定义设置全选

select设置全选

<Select v-model="specialModel" multiple @on-change='specialChange'>
    <Option v-for="item in List" :value="item.id" :key="item.id" >{{ item.specialName }}</Option>
</Select>

 

specialChange(val){
	let columnSpecialList=this.columnSpecialList				
	if(val[val.length-1]==0){//点击全选或只剩全选
		if(val.length==1){//只剩全选
			this.specialModel=[]
		}else{//点击全选
			this.specialModel=columnSpecialList.map(i=>{
				return i.id
			})
		}
		this.specialModelTmp=this.specialModel
		this.specialNum=1
	}else if(this.specialNum==0){//specialNum 点击时进入
		let tmp=true
		val.map((item,j)=>{
			if(item==0){//含有全选
				tmp=false
				this.specialModel.splice(j,1)
				this.specialNum=1
			} 
		})
		//选择数==总长度-1  且没有全选
		if(val.length==columnSpecialList.length-1&&tmp&&this.specialModelTmp.indexOf(0)==-1){
			this.specialModel=columnSpecialList.map(i=>{
				return i.id
			})
			this.specialNum=1
			//选择数==总长度-1  且有全选
		}else if(val.length==columnSpecialList.length-1&&tmp&&this.specialModelTmp.indexOf(0)>=0){
			let list=[]
			// specialModelTmp 临存列表像
			this.specialModelTmp.map(i=>{
				let tmp=true
				val.map(j=>{//过滤相同项
					if(i==j){
						tmp=false
					}
				})
				if(tmp){
					list.push(i)
				}
			})
			//仅一个且全选
			if(list.length==1&&list[0]==0){
				this.specialModel=[]
				this.specialNum=1
			}else{
				this.specialNum=0
			}
		}else{
			this.specialNum=0
		}
		this.specialModelTmp=this.specialModel
	}else{
		this.specialNum=0
	}
	this.saveConfigIndex()//选择后请求方法
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值