基于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 相关文章推荐
防止xss和sql注入:JS特殊字符过滤正则
Apr 18 Javascript
jquery.validate.js插件使用经验记录
Jul 02 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
Mar 23 jQuery
关于javascript获取内联样式与嵌入式样式的实例
Jun 01 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
Dec 28 Javascript
Vue中的字符串模板的使用
May 17 Javascript
小程序实现选择题选择效果
Nov 04 Javascript
JavaScript模板引擎实现原理实例详解
Dec 14 Javascript
json 带斜杠时如何解析的实现
Aug 12 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
Sep 09 Javascript
layui的数据表格+springmvc实现搜索功能的例子
Sep 28 Javascript
使用vue实现一个电子签名组件的示例代码
Jan 06 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 静态化实现代码
2009/03/20 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
thinkphp备份数据库的方法分享
2015/01/04 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
PHP通过文件保存和更新信息的方法分析
2019/09/12 PHP
一些有关检查数据的JS代码
2006/09/07 Javascript
jQuery Tips 为AJAX回调函数传递额外参数的方法
2010/12/28 Javascript
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
JavaScript文档加载模式以及元素获取
2020/07/28 Javascript
python3.0 字典key排序
2008/12/24 Python
Python使用urllib2模块实现断点续传下载的方法
2015/06/17 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
详解python中的 is 操作符
2017/12/26 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
Django操作session 的方法
2020/03/09 Python
python如何实现DES加密
2020/09/21 Python
详解Scrapy Redis入门实战
2020/11/18 Python
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
linux面试相关问题
2013/04/28 面试题
电大物流学生的自我评价
2013/10/25 职场文书
前台文员职责范本
2014/03/07 职场文书
竞选劳动委员演讲稿
2014/04/28 职场文书
2014年团支部工作总结
2014/11/17 职场文书
员工福利申请报告
2015/05/15 职场文书
爱的教育读书笔记
2015/06/26 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android