返回顶部
首页 > 资讯 > 前端开发 > html >Vue中Element分组+多选+可搜索Select选择器怎么实现
  • 664
分享到

Vue中Element分组+多选+可搜索Select选择器怎么实现

2024-04-02 19:04:59 664人浏览 泡泡鱼
摘要

这篇文章主要为大家展示了“Vue中Element分组+多选+可搜索Select选择器怎么实现”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue中El

这篇文章主要为大家展示了“Vue中Element分组+多选+可搜索Select选择器怎么实现”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue中Element分组+多选+可搜索Select选择器怎么实现”这篇文章吧。

Vue中Element分组+多选+可搜索Select选择器怎么实现

准备工作:

除了vue脚手架、element等必要包之外。该项目还用到了linq.js(https://GitHub.com/mihaifm/linq),该工具可以快速从数组中查找所需内容。

npm install --save linq

编辑build/webpack.base.conf.js

module:{
  ......
  //添加
  new WEBpack.ProvidePlugin({
   Enumerable: "linq"
  })
}

数据源格式:

var selectList = [
 {
  name:"",//一级名称
  CName:"", //二级名称
  value:"" //值
 },
 {name:"",CName:"",value:""},
 ......
]

实现:

script

data (){
 return{  
  selectModel: [],
  multipleSelectOption:[],
 }
},
methods:{
  //将源数据转成element所需格式
  transMultipleSelectOption(){
    var level1List = Enumerable.from(this.allSelectList).distinct("o=>o.name").toArray();
       
     var newArr = level1List.map(item=>{
       let children = Enumerable.from(this.allSelectList).where((o)=>{return o.name==item.name;}).toArray();

       var options = children.map(itemc=>{
         return {"name": itemc.CName, "value":itemc.value};
       });    
       return {"name": item.name, "options":options}
     });
     this.multipleSelectOption = newArr;
  },    
  //重置options(select自动补全相关)
  remoteMethod(queryString, lists) { //lists:原始数据
     var mappedList = Enumerable.from(lists).where((o)=>{return o.CName.indexOf(queryString)!=-1 
       || o.name.indexOf(queryString)!=-1;}).toArray(); //找出匹配搜索关键字的数据集
     var level1List = Enumerable.from(mappedList).distinct("o=>o.name").toArray(); //从所匹配的数据集中找出所有一级菜单集合(含去重)
    //重新拼成element所需的数据格式
     var newArr = level1List.map(item=>{
       let children = Enumerable.from(mappedList).where((o)=>{return o.name==item.name;}).toArray();

       var options = children.map(itemc=>{
         return {"name": itemc.CName, "value":itemc.value};
       });    
       return {"name": item.name, "options":options}
     });
     this.multipleSelectOption = newArr;
  },
  //点击一级菜单全选/全不选实现
  checkAll(value){ //value: 点击的一级name
     var list = Enumerable.from(this.multipleSelectOption).where((o)=>{return o.name==value;}).toArray();
     var level2ValueList = Enumerable.from(list[0].options).select("o=>o.value").toArray(); //所有该一级下二级的value集合

     var num=0;
     level2ValueList.forEach((value)=>{
       this.selectModel2.forEach((model, index)=>{
        if(model==value){
         this.selectModel2.splice(index, 1); //如有匹配,先删除
         num++;
         return true;
        }
       })
      })

      if(num < level2ValueList.length){ //需要全选
       this.selectModel2 = this.selectModel2.concat(level2ValueList); //合并数组
      }
  
   }
},
mounted: function(){
   this.transMultipleSelectOption();
},

template

<el-select v-model="selectModel" multiple filterable remote reserve-keyWord 
  placeholder="请输入关键词" :remote-method="(queryString)=>{
    remoteMethod(queryString, allSelectList);
  }">
  <el-option-group v-for="group in multipleSelectOption"
   :key="group.name"
   :label="group.name" 
   @click.native="checkAll(group.name)">
   <el-option v-for="item in group.options"
     :key="item.value"
     :label="item.name"
     :value="item.value">
   </el-option>
  </el-option-group>
</el-select>

以上是“Vue中Element分组+多选+可搜索Select选择器怎么实现”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网html频道!

--结束END--

本文标题: Vue中Element分组+多选+可搜索Select选择器怎么实现

本文链接: https://lsjlt.com/news/76264.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vue中Element分组+多选+可搜索Select选择器怎么实现
    这篇文章主要为大家展示了“Vue中Element分组+多选+可搜索Select选择器怎么实现”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue中El...
    99+
    2024-04-02
  • Element中Select选择器的实现
    本篇是关于下拉框相关知识点总结 今天来整理一下目前最喜欢的el组件 el-select:Element官网 最近真的做梦都是这个组件的相关属性clearable和filterable...
    99+
    2024-04-02
  • 前端elementUI select选择器怎么实现远程搜索
    这篇文章主要介绍“前端elementUI select选择器怎么实现远程搜索”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“前端elementUI select选择器怎么实现远程搜...
    99+
    2023-06-30
  • 前端elementUI select选择器实现远程搜索
    目录elementUI select选择器远程搜索测试背景菜鸟用法官方参考elementUI select选择器远程搜索 测试背景 先提下背景:就是在测试的过程中,经常需要用到收货这...
    99+
    2024-04-02
  • vue下拉选择器怎么搜索
    在Vue项目中,下拉选择器是一个常见的元素。有时候,用户需要通过搜索来快速找到所需的选项,这时候就需要一个支持搜索功能的下拉选择器。一个典型的下拉选择器由一个输入框和一个下拉列表组成。用户可以在输入框中输入内容,下拉列表中会展示匹配的选项,...
    99+
    2023-05-25
  • element UI怎么实现级联选择器
    本篇内容介绍了“element UI怎么实现级联选择器”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!从后端调用接口,传递数据到前端使用VUE...
    99+
    2023-06-25
  • vue+element多个相同的select不允许重复选择问题怎么解决
    这篇文章主要讲解了“vue+element多个相同的select不允许重复选择问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue+element多个相同的select不允许重复...
    99+
    2023-07-02
  • 怎么实现vue图标选择器
    这篇文章主要讲解了“怎么实现vue图标选择器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现vue图标选择器”吧!import Vue from '...
    99+
    2023-06-25
  • vue怎么实现级联选择器
    本篇内容主要讲解“vue怎么实现级联选择器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue怎么实现级联选择器”吧!基于Vue的级联选择器,可以单项,二级, 三级级联,多级级联web开发中我...
    99+
    2023-07-04
  • vue怎么实现搜索筛选、降序排序数据
    这篇文章主要介绍“vue怎么实现搜索筛选、降序排序数据”,在日常操作中,相信很多人在vue怎么实现搜索筛选、降序排序数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue怎么实现搜索筛选、降序排序数据”的疑...
    99+
    2023-07-04
  • vue怎么实现日期选择组件功能
    这篇文章主要讲解了“vue怎么实现日期选择组件功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue怎么实现日期选择组件功能”吧!目录结构demo 用vue-cli 的webpack-si...
    99+
    2023-07-04
  • elementUI select组件默认选中效果怎么实现
    这篇文章主要介绍了elementUI select组件默认选中效果怎么实现,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。首先,v-model...
    99+
    2024-04-02
  • vue怎么实现下拉选择器遍历不同数组
    随着Web应用程序的发展,越来越多的人选择使用Vue.js来构建他们的应用程序,而Vue.js内置的v-for指令使得遍历数据变得非常容易。在本文中,我们将研究如何使用Vue.js的v-for指令遍历不同数组以实现一个下拉选择器。首先,我们...
    99+
    2023-05-14
  • 怎么在CSS中利用选择器分组
    怎么在CSS中利用选择器分组?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。选择器分组假设希望 h3 元素和段落都有灰色。为达到这个目的,最容易的做法是使用以下声明:h3, p ...
    99+
    2023-06-08
  • vue怎么实现左右滑动选择日期组件
    今天小编给大家分享一下vue怎么实现左右滑动选择日期组件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。效果图:1、安装day...
    99+
    2023-06-29
  • vue中怎么实现省市区三联动下拉选择组件
    这篇文章给大家分享的是有关vue中怎么实现省市区三联动下拉选择组件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先来看一下最终的效果(没有写太多的样式...)组件所需要的省市区...
    99+
    2024-04-02
  • PHP数组中怎么实现多条件筛选
    这篇文章主要介绍“PHP数组中怎么实现多条件筛选”,在日常操作中,相信很多人在PHP数组中怎么实现多条件筛选问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP数组中怎么实现多条件筛选”的疑惑有所帮助!接下来...
    99+
    2023-07-06
  • Vue无限滑动周选择日期的组件怎么实现
    今天小编给大家分享一下Vue无限滑动周选择日期的组件怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。思路根据用户传入日...
    99+
    2023-07-04
  • jQuery中怎么实现一个子选择器
    本篇文章给大家分享的是有关jQuery中怎么实现一个子选择器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。子元素选择器与可见性选择器子元素选择...
    99+
    2024-04-02
  • 使用vue与bootstrap怎么实现一个时间选择器
    使用vue与bootstrap怎么实现一个时间选择器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在vue项目文件中引入import ...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作