基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)


Posted in Javascript onMay 07, 2019

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

实现的效果图:

基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)

代码实现如下:

html:

<div id='app'>
<template v-if='condition.length'>
	<div>
<span>已选中:<span>
	<span v-for='(item,index) in condition' class='active'>{{item.name}} | </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);
			});			
		}
	}

});

源码地址:http://xz.3water.com:81/201905/yuanma/mutilQuery(3water.com).rar

以上所述是小编给大家介绍的Vue多条件筛选功能详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery最佳实践完整篇
Aug 20 Javascript
jQuery数据缓存功能的实现思路及简单模拟
May 27 Javascript
javascript在myeclipse中报错的解决方法
Oct 29 Javascript
JS保留两位小数 四舍五入函数的小例子
Nov 20 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
Apr 14 Javascript
jquery搜索框效果实现方法
Jan 16 Javascript
Perl Substr()函数及函数的应用
Dec 16 Javascript
js获取元素的标签名实现方法
Oct 08 Javascript
Vuex提升学习篇
Jan 11 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
Apr 21 Javascript
vue文件运行的方法教学
Feb 12 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
Jun 02 Javascript
详解vue中使用protobuf踩坑记
May 07 #Javascript
Node.js一行代码实现静态文件服务器的方法步骤
May 07 #Javascript
微信小程序扫描二维码获取信息实例详解
May 07 #Javascript
Vue数据绑定简析小结
May 07 #Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
May 07 #Javascript
详解Vue、element-ui、axios实现省市区三级联动
May 07 #Javascript
webpack结合express实现自动刷新的方法
May 07 #Javascript
You might like
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
JavaScript 常见对象类创建代码与优缺点分析
2009/12/07 Javascript
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
ASP中Sub和Function的区别说明
2020/08/30 Javascript
Jquery事件的连接使用示例
2013/06/18 Javascript
js操作checkbox遇到的问题解决
2013/06/29 Javascript
jquery $(document).ready()和window.onload的区别浅析
2015/02/04 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
老生常谈原生JS执行环境与作用域
2016/11/22 Javascript
[40:13]Ti4 冒泡赛第二天 iG vs NEWBEE 2
2014/07/15 DOTA
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS OG
2018/03/30 DOTA
[52:27]2018DOTA2亚洲邀请赛 3.31 小组赛B组 paiN vs Secret
2018/04/01 DOTA
[01:02:07]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python网络编程之TCP通信实例和socketserver框架使用例子
2014/04/25 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
2016/08/15 Python
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
python3 爬取图片的实例代码
2018/11/06 Python
Python 文件数据读写的具体实现
2020/01/24 Python
python多维数组分位数的求取方式
2020/03/03 Python
Python 定义只读属性的实现方式
2020/03/05 Python
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
乌克兰在线电子产品商店:MTA
2019/11/14 全球购物
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
行政部总经理岗位职责
2014/01/04 职场文书
大学生旷课检讨书
2014/01/22 职场文书
标准自荐信范文
2014/01/29 职场文书
庆元旦广播稿
2014/02/10 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
2014年幼儿园园务工作总结
2014/12/05 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书