基于Vue实现的多条件筛选功能(类似京东和淘宝功能),可以支持多选、清空、全选功能,数据源是通过JSon格式的数据封装而成。

实现的效果图:

代码实现如下:

html:

<div id='app'>
<template v-if='condition.length'>
<div>
<span>已选中:<span>
<span v-for='(item,index) in condition' class='active'>{{item.name}}&nbsp;|&nbsp;</span>
</div>
</template>
<template v-if='category.length'>
<div class='nav' v-for='(items,index) in category'>
<div class='mutil-query-title' v-if='items.name' :key="items.id">{{items.name}}<span style='margin-left: 20px;' @click='allIn(index)'>全选</span>|<span @click='remove(index)'>清空</span></div>
<ol v-if='items.items.length'>
<li v-for='(item,key) in items.items'>
<span :class="{'active':item.active}" @click='handle(index,key)' :key='item.id'>{{item.name}}</span>
</li>
</ol>
</div>
</template>
</div>

js代码如下:

var list={
category:[
{
name:'品牌',
items:[
{
name:'联想',
active: false
},
{
name:'小米',
active: false
},
{
name:'苹果',
active: false
},
{
name:'东芝',
active: false
}
]
},
{
name:'CPU',
items:[
{
name:'intel i7 8700K',
active: false
},
{
name:'intel i7 7700K',
active: false
},
{
name:'intel i9 9270K',
active: false
},
{
name:'intel i7 8700',
active: false
},
{
name:'AMD 1600X',
active: false

}
]
},
{
name:'内存',
items:[
{
name:'七彩虹8G',
active: false
},
{
name:'七彩虹16G',
active: false
},
{
name:'金士顿8G',
active: false
},
{
name:'金士顿16G',
active: false
}
]
},
{
name:'显卡',
items:[
{
name:'NVIDIA 1060 8G',
active: false
},
{
name:'NVIDIA 1080Ti 16G',
active: false
},
{
name:'NVIDIA 1080 8G',
active: false
},
{
name:'NVIDIA 1060Ti 16G',
active: false
}
]
}
],
condition:[
]
};
var count=0;
var app =new Vue({
el:'#app',
data:list,
methods:{
handle:function(index,key){
var item=this.category[index].items;
item.filter(function(v,i){
if(i==key){
v.active=true;
this.list.condition.filter(function(v2,i){
if(v.name==v2.name){
this.list.condition.splice(i,1);
count--;
}
});
Vue.set(this.list.condition,count++,v);
}
});

},
remove:function(index){
var item=this.category[index].items;
item.filter(function (v1,key) {
v1.active=false;
this.list.condition.filter(function(v2,i){
if(v1.name==v2.name){
this.list.condition.splice(i,1);
count--;
}
});
});
},
allIn:function(index){
var item=this.category[index].items;
item.filter(function (v,key) {
v.active=true;
this.list.condition.filter(function(v2,i){
if(v.name==v2.name){
this.list.condition.splice(i,1);
count--;
}
});
Vue.set(this.list.condition,count++,v);
});
}
}

});

代码demo请至:https://download.csdn.net/download/zdxiaxiaxia/10444854

个人原创,转载请注明出处!!!

基于Vue实现的多条件筛选功能(类似京东和淘宝功能)相关推荐

  1. 基于JSON+JQuery实现的多条件筛选功能(类似京东和淘宝功能)

    首先看一下实现效果: 现在JSON用于数据的封装和管理越来越流行,一直想着通过JSON实现很多的小工具,比如多条件筛选.表格定制化.数据验证.tree树等等,最近没事就用JSON和JQuery实现了类 ...

  2. 基于vue开发的多条件联动筛选特效(类似京东/淘宝/中国移动)

    基于vue实现的多条件联动筛选功能(类似中国移动商城),选中,反选,删除功能. UI库用的ivew 先来张实现的效果图 展开时候的效果 收起时候的效果 代码如下: 1. html(用了iview的UI ...

  3. 基于android的防抖音直播,基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能...

    一.项目简介 uni-liveShow是一个基于vue+uni-app技术开发的集小视频/IM聊天/直播等功能于一体的微直播项目.界面仿制抖音|火山小视频/陌陌直播,支持编译到多端(H5.小程序.Ap ...

  4. vue 实现仿京东、淘宝省市区三级联动

    vue 实现仿京东.淘宝省市区三级联动 在做电商或其他项目的时候,物流我们肯定会集成进去,那么我们肯定需要集成地址管理,地址管理除了最基本的省.市.区外,我们还要单独添加一个详细地址字段,不然我们无法 ...

  5. vue 项目根据多条件筛选数组

    1.需求:多条件筛选数组----废话不哆嗦,直接上图 data(){return{form:{name:'',age:'',adder:'日本'},arr:[{name:'名字1',age:'1',a ...

  6. 做产品经理 而不是功能经理(转淘宝鬼脚七)

    产品经理是个很奇怪的岗位,好像大多数人都能做,因为每个人对某个产品都有自己的看法,都能提出一些意见和想法,甚至能设计实现原理:也好像大多数人都做不好产品经理,因为互联网上成千上万个产品,大部分是垃圾, ...

  7. Elasticsearch仿京东、淘宝APP客户端的商品侧边栏筛选条件过滤和分页列表查询的实现案例

    目录 需求分析 项目环境 API接口实现 需求分析 通过Elasticsearch完成商品列表查询和分类.品牌.规格参数的分组聚合统计查询 当用户输入关键字搜索后,查询出商品列表后点击右上角筛选按钮, ...

  8. 基于python的购物比价毕设_【Python爬虫】淘宝商品比价定向爬虫

    #CrowTaobaoPrice.py importrequestsimportredef getHTMLText(url):#获得网页信息 headers = {'User-Agent': 'Moz ...

  9. 基于vue的适老化住宅设计系统的设计与实现

    word完整版可点击如下下载>>>>>>>> 基于vue的适老化住宅设计系统的设计与实现.rar-互联网文档类资源-CSDN下载内容包括详细设计文档wo ...

最新文章

  1. 数据挖掘的一些经典算法
  2. 第三届全国县域经济基本竞争力百强县(市)
  3. maven中pom文件解析
  4. 《从零开始学Swift》学习笔记(Day 66)——Cocoa Touch设计模式及应用之通知机制...
  5. Windows7 登陆失败:未知的用户名或密码错误 网络共享文件夹
  6. 【java学习之路】(javaWeb篇)007.正则表达式专题
  7. python编程入门-Python编程:从入门到实践 PDF 中文扫描版
  8. 数据库大作业——基于C#和SQL Server的简单日常记账系统
  9. PHP爱好者:十天学会php之第一天
  10. java排查full gc_一次full gc的排查经历
  11. 什么是L2行情接口?
  12. C# Message类的属性Msg所关联的消息ID
  13. Windows域/域树/域林的简单区别
  14. 单目标跟踪——常用数据集和指标
  15. linux gnuplot 教程,图形绘制利器:Gnuplot
  16. Android 手势识别向左,右,上,下,滑动的方向
  17. 一起来看看苹果新款MacBook:CPU质变
  18. 完全卸载oracle|oracle卸载|彻底卸载oracle
  19. APP Manifest -Android
  20. 中班音乐活动 机器人_音乐机器人活动教案

热门文章

  1. 高速接口中的PRBS的设计
  2. 管培生走下神坛,“高管捷径”破灭
  3. Mybatis Plus 实现批量插入
  4. FLASH,宣传画册,翻书效果
  5. RS232、RS485及RS422有什么区别
  6. Allegro设置区域规则的方法
  7. uniswap合约解读和部署
  8. CreateJS 学习4 动画、TweenJS
  9. 数学建模学习17(最短距离、BP神经网络)
  10. pr_debug打印输出