vue实现搜索过滤效果
本文实例为大家分享了vue实现搜索过滤效果的具体代码,供大家参考,具体内容如下
html:
名称 链接状态 IP 特例类型 所属城市 所属机房 {{item.name}} {{item.username}} {{item.email}} {{item.sex}} {{item.province}} {{item.hobb}}
css:
[v-cloak]{
display:none
}
table{
border:1pxsolid#ccc;
padding:0;
border-collapse:collapse;
table-layout:fixed;
/*margin-top:10px;*/
width:100%;
margin-top:45px;
}
tabletd,
tableth{
height:30px;
border:1pxsolid#ccc;
background:#fff;
font-size:2vh;
padding:12px3px6px8px;
color:#666666;
font-weight:300;
}
tableth:first-child{
width:4rem;
}
.container,
.st{
/*width:1000px;*/
margin:10pxauto0;
font-size:13px;
font-family:'微软雅黑'
}
.container.search{
font-size:15px;
padding:4px;
}
.container.add{
padding:5px15px;
}
.overlay{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
z-index:6;
background:rgba(0,0,0,0.7);
}
.overlaytd:first-child{
width:8rem;
}
.overlay.con{
position:absolute;
/*width:420px;*/
min-height:300px;
background:#fff;
left:50%;
top:50%;
-webkit-transform:translate3d(-50%,-50%,0);
transform:translate3d(-50%,-50%,0);
/*margin-top:-150px;*/
padding:20px;
}
.span_1{
font-size:18px;
color:#666666;
}
js:
Vue.component('model',{
template:'',
props:['list','isactive'],
computed:{
modifylist(){
returnthis.list;
}
},
methods:{
changeActive(){
this.$emit('change');
},
modify(){
this.$emit('modify',this.modifylist);
},
add(){
}
}
});
varapp=newVue({
el:'#app',
data:{
isActive:false,
selected:-1,
selectedlist:{},
slist:[],
searchlist:[],
list:[
{
name:'Fe1',
username:'开',
email:'221.122.62.221',
sex:'特例1',
province:'北京',
hobb:'电子机房'
},
{
name:'Fe2',
username:'关',
email:'192.168.12.222',
sex:'特例2',
province:'上海',
hobb:'服务机房'
},
{
name:'Fe3',
username:'开',
email:'127.255.255.255',
sex:'特例3',
province:'重庆',
hobb:'遥控机房'
},
{
name:'Fe4',
username:'关',
email:'223.255.255.255',
sex:'特例4',
province:'北京市',
hobb:'内网机房'
}
]
},
created(){
this.setSlist(this.list);
},
methods:{
//修改数据
showOverlay(index){
this.selected=index;
this.selectedlist=this.list[index];
this.changeOverlay();
},
//点击保存按钮
modify(arr){
if(this.selected>-1){
Vue.set(this.list,this.selected,arr);
this.selected=-1;
}else{
this.list.push(arr);
}
this.setSlist(this.list);
this.changeOverlay();
},
del(index){
this.list.splice(index,1);
this.setSlist(this.list);
},
changeOverlay(){
this.isActive=!this.isActive;
},
//获取需要渲染到页面中的数据
setSlist(arr){
this.slist=JSON.parse(JSON.stringify(arr));
},
//搜索
search(){
varv=$('.search').val(),
self=this;
self.searchlist=[];
if(v){
varss=[];
//过滤需要的数据
this.list.forEach(function(item){
if(item.province.indexOf(v)>-1){
if(self.searchlist.indexOf(item.province)==-1){
self.searchlist.push(item.province);
}
ss.push(item);
}elseif(item.hobb.indexOf(v)>-1){
if(self.searchlist.indexOf(item.hobb)==-1){
self.searchlist.push(item.hobb);
}
ss.push(item);
}
});
this.setSlist(ss);//将过滤后的数据给了slist
}else{
//没有搜索内容,则展示全部数据
this.setSlist(this.list);
}
}
},
watch:{
}
})
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。