1. 效果如下
2. 功能描述
- 点击“添加筛选规则” 就添加了一条
- 鼠标移入会在该条数据 右上角 出现 “移出”,点击移出,移除该条
- 第一条永远不能被移除
- 当全部被选择后 会 隐藏 “添加筛选规则”
3. 主要的功能代码
<template>
<div>
<div class="sidebar-add">
<header>编辑筛选</header>
<div class="content">
<div class="content-item" v-for="(item,index) in rule" :key="index" v-show="item.isShow" @mouseenter="enter(index)" @mouseleave="leave(index)">
<label class="label">{{item.label}}</label>
<span class="clear" @click="clear(item)" v-show="item.lickOne && item.id!=1">- 移除</span>
<div v-if="item.id==1">
<el-input v-model="workOrderContent" placeholder="请输入解决时间"></el-input>
</div>
<div v-if="item.id==2">
<el-input v-model="workOrderContent" placeholder="请输入创建人"></el-input>
</div>
<div v-if="item.id==3">
<el-input v-model="workOrderContent" placeholder="请输入处理人"></el-input>
</div>
<div v-if="item.id==4">
<el-input v-model="workOrderContent" placeholder="请输入工单分类"></el-input>
</div>
<div v-if="item.id==5">
<el-input v-model="workOrderContent" placeholder="请输入工单状态"></el-input>
</div>
<div v-if="item.id==6">
<el-input v-model="workOrderContent" placeholder="请输入工单来源"></el-input>
</div>
<div v-if="item.id==7">
<el-input v-model="workOrderContent" placeholder="请输入截止日前"></el-input>
</div>
<div v-if="item.id==8">
<el-input v-model="workOrderContent" placeholder="请输入工单号"></el-input>
</div>
<div v-if="item.id==9">
<el-input v-model="workOrderContent" placeholder="请输入优先级"></el-input>
</div>
<div v-if="item.id==10">
<el-input v-model="workOrderContent" placeholder="请输入工单内容"></el-input>
</div>
<div v-if="item.id==11">
<el-input v-model="workOrderContent" placeholder="请输入访问标识"></el-input>
</div>
</div>
<div class="content-item add-rule" @click="screenRule = !screenRule">
<a v-show="!tag">+ 添加筛选规则</a>
<div class="screenRule" v-if="screenRule">
<ul>
<li v-for="(item,index) in rule" :key="index" v-show="!item.isShow">
<a @click="changType(item)">{{item.label}}</a>
</li>
</ul>
</div>
</div>
<div class="content-item add-work-order">
<button>保存当前条件并筛选</button>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
screenRule:false,
tag:false,
workOrderContent:'',
rule: [
{ id:"1",lickOne:false, label: "解决时间", isShow: true},
{ id:"2",lickOne:false, label: "创建人", isShow: true},
{ id:"3",lickOne:false, label: "处理人", isShow: true},
{ id:"4",lickOne:false, label: "工单分类", isShow: true},
{ id:"5",lickOne:false, label: "工单状态", isShow: true},
{ id:"6",lickOne:false, label: "工单来源", isShow: true},
{ id:"7",lickOne:false, label: "截止时间", isShow: true},
{ id:"8",lickOne:false, label: "工单号", isShow: false},
{ id:"9",lickOne:false, label: "优先级", isShow: false},
{ id:"10",lickOne:false, label: "工单内容", isShow: false},
{ id:"11",lickOne:false, label: "访问标识", isShow: false},
],
};
},
methods: {
enter(index){
this.rule[index].lickOne = true;
},
leave(index){
this.rule[index].lickOne = false;
},
changType(it){
for (let index in this.rule) {
if(this.rule[index].id == it.id){
this.rule[index].isShow = true;
}
}
this.tag = this.rule.every( item => item.isShow === true)
},
clear(it){
for (let index in this.rule) {
if(this.rule[index].id == it.id){
this.rule[index].isShow = false;
}
}
this.tag = this.rule.every( item => item.isShow === true)
}
},
};
</script>
<style lang="less" scoped>
</style>