基于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.ajax)
Nov 19 Javascript
$.get获取一个文件的内容示例代码
Sep 11 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
Jan 13 Javascript
javascript匀速运动实现方法分析
Jan 08 Javascript
jQuery EasyUI中的日期控件DateBox修改方法
Nov 09 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
Feb 09 Javascript
浅谈es6 javascript的map数据结构
Dec 14 Javascript
浅谈webpack devtool里的7种SourceMap模式
Jan 14 Javascript
用JS实现一个简单的打砖块游戏
Dec 11 Javascript
vue 使用v-for进行循环的实例代码详解
Feb 19 Javascript
JavaScript鼠标悬停事件用法解析
May 15 Javascript
原生JS实现pc端轮播图效果
Dec 21 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
咖啡豆的最常见发酵处理方法,详细了解一下
2021/03/03 冲泡冲煮
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
PHP制作万年历
2015/01/07 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
php屏蔽错误及提示的方法
2020/05/10 PHP
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
基于jQuery的时间戳与日期间的转化
2019/06/21 jQuery
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
Python linecache.getline()读取文件中特定一行的脚本
2008/09/06 Python
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
详解Python with/as使用说明
2018/12/13 Python
python多线程调用exit无法退出的解决方法
2019/02/18 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
详解Python的爬虫框架 Scrapy
2020/08/03 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
团组织关系介绍信
2014/01/12 职场文书
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
面试后的感谢信范文
2014/02/01 职场文书
中青班党性分析材料
2014/02/16 职场文书
少儿节目主持串词
2014/04/02 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
奔腾年代观后感
2015/06/09 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript