基于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 相关文章推荐
背景音乐每次刷新都可以自动更换
Feb 01 Javascript
理解Javascript_02_理解undefined和null
Oct 11 Javascript
jquery+css+ul模拟列表菜单具体实现思路
Apr 15 Javascript
JavaScript操作Cookie详解
Feb 28 Javascript
如何使用jquery修改css中带有!important的样式属性
Apr 28 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
May 10 Javascript
各式各样的导航条效果css3结合jquery代码实现
Sep 17 Javascript
Bootstrap基本组件学习笔记之进度条(15)
Dec 08 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
Mar 03 Javascript
React中使用collections时key的重要性详解
Aug 07 Javascript
ztree加载完成后显示勾选节点的实现代码
Oct 22 Javascript
vue中tab选项卡的实现思路
Nov 25 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生成HTML静态页面实例代码
2008/08/31 PHP
php 处理上百万条的数据库如何提高处理查询速度
2010/02/08 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
php实现的用户查询类实例
2015/06/18 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
基于jquery的页面划词搜索JS
2010/09/14 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
jQuery()方法的第二个参数详解
2015/04/29 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
2017/09/05 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
关于JavaScript数组去重的一些理解汇总
2020/09/10 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
[00:32]2016完美“圣”典风云人物:Maybe宣传片
2016/12/05 DOTA
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
神经网络理论基础及Python实现详解
2017/12/15 Python
基于并发服务器几种实现方法(总结)
2017/12/29 Python
快速了解Python开发中的cookie及简单代码示例
2018/01/17 Python
使用python进行广告点击率的预测的实现
2019/07/04 Python
pytorch 图像中的数据预处理和批标准化实例
2020/01/15 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
scrapy处理python爬虫调度详解
2020/11/23 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
阿迪达斯西班牙官方网站:adidas西班牙
2016/07/21 全球购物
英国领先的在线高尔夫设备零售商:Golfgeardirect
2020/12/11 全球购物
将一个文本文件的内容按倒序打印出来
2015/01/05 面试题
眼镜促销方案
2014/03/15 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
班级联欢会主持词
2015/07/03 职场文书
小程序实现侧滑删除功能
2022/06/25 Javascript