最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

el-select 下拉框多選實(shí)現(xiàn)全選的實(shí)現(xiàn)

 更新時(shí)間:2019年08月02日 10:30:39   作者:十一  
這篇文章主要介紹了el-select 下拉框多選實(shí)現(xiàn)全選的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

在寫一個(gè)功能時(shí)發(fā)現(xiàn)el-select支持多選,但是竟然不支持全選,好無(wú)語(yǔ)哦,那就自己實(shí)現(xiàn)一下吧~有兩種方法,第二種感覺(jué)簡(jiǎn)單些

方法一:下拉項(xiàng)增加一個(gè)【全選】,然后應(yīng)該有以下幾種情況:

  1. 下拉選項(xiàng)全都勾選時(shí),【全選】自動(dòng)勾選;
  2. 下拉選項(xiàng)部分勾選時(shí),點(diǎn)擊【全選】后,所有下拉項(xiàng)全部勾選;
  3. 下拉選項(xiàng)全都未勾選時(shí),點(diǎn)擊【全選】后,所有下拉選項(xiàng)不勾選;
  4. 下拉選項(xiàng)和【全選】都選上的時(shí)候,不勾選任意下拉選項(xiàng),【全選】按鈕就不勾選了;

上面就是我要實(shí)現(xiàn)的功能,我好啰嗦。。。還是看代碼吧。。。

html部分:

<template>
 <el-select multiple collapse-tags v-model='selectedArray' @change='changeSelect' @remove-tag='removeTag' placeholder='請(qǐng)選擇'>
  <el-option label='全選' value='全選' @click.native='selectAll'></el-option>
  <el-option v-for='(item, index) in options' :key='index' :label='item.name' :value='item.name'></el-option>
  </el-select>
</template>

js部分:

export default {
 data() {
 return {
  selectedArray: [],
  options: [
  { name: '一一', label: 'one' },
  { name: '二二', label: 'tow' },
  { name: '三三', label: 'three' },
  { name: '四四', label: 'four' },
  { name: '五五', label: 'five' }
  ]
 }
 },
 methods: {
 selectAll() {
  if (this.selectedArray.length < this.options.length) {
  this.selectedArray = []
  this.options.map((item) => {
   this.selectedArray.push(item.name)
  })
  this.selectedArray.unshift('全選')
  } else {
  this.selectedArray = []
  }
 },
 changeSelect(val) {
  if (!val.includes('全選') && val.length === this.options.length) {
  this.selectedArray.unshift('全選')
  } else if (val.includes('全選') && (val.length - 1) < this.options.length) {
  this.selectedArray = this.selectedArray.filter((item) => {
   return item !== '全選'
  })
  }
 },
 removeTag(val) {
  if (val === '全選') {
  this.selectedArray = []
  }
 }
 }
}

看看效果圖:

方法二:直接添加一個(gè)【全選】復(fù)選框,實(shí)現(xiàn)的功能跟方法一是一樣的

html部分:

<template>
 <el-select multiple collapse-tags v-model='selectedArray' @change='changeSelect' placeholder='請(qǐng)選擇'>
 <el-checkbox v-model="checked" @change='selectAll'>全選</el-checkbox>
 <el-option v-for='(item, index) in options' :key='index' :label='item.name' :value='item.name'></el-option>
 </el-select>
</template>

js部分:

export default {
 data() {
 return {
  checked: false,
  selectedArray: [],
  options: [
  { name: '一一', label: 'one' },
  { name: '二二', label: 'tow' },
  { name: '三三', label: 'three' },
  { name: '四四', label: 'four' },
  { name: '五五', label: 'five' }
  ]
 }
 },
 methods: {
 selectAll() {
  this.selectedArray = []
  if (this.checked) {
  this.options.map((item) => {
   this.selectedArray.push(item.name)
  })
  } else {
  this.selectedArray = []
  }
 },
 changeSelect(val) {
  if (val.length === this.options.length) {
  this.checked = true
  } else {
  this.checked = false
  }
 }
 }
}

css:

.el-checkbox {
 text-align: right;
 width: 100%;
 padding-right: 10px;
 }

效果圖:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

尤溪县| 从化市| 高青县| 新田县| 鄂伦春自治旗| 九龙县| 阿巴嘎旗| 铁力市| 夏津县| 饶平县| 刚察县| 天峻县| 灵台县| 南澳县| 如东县| 潞城市| 剑阁县| 高密市| 莲花县| 宜宾市| 乌海市| 鄂州市| 青川县| 天祝| 萝北县| 稻城县| 鄄城县| 儋州市| 普洱| 滁州市| 舟山市| 广南县| 昆明市| 张家港市| 阿勒泰市| 启东市| 宜都市| 云梦县| 镇平县| 陆丰市| 临桂县|