const isDel = (op, o) => {
let fal = false;
if (op.is_show_lock && op.is_show_sf && op.is_show_bz) {
if (o.is_lock && o.is_sf && o.is_bz) {
fal = false;
} else {
fal = true;
}
} else if (op.is_show_lock && op.is_show_sf) {
if (o.is_lock && o.is_sf) {
fal = false;
} else {
fal = true;
}
} else if (op.is_show_lock && op.is_show_bz) {
if (o.is_lock && o.is_bz) {
fal = false;
} else {
fal = true;
}
} else if (op.is_show_sf && op.is_show_bz) {
if (o.is_sf && o.is_bz) {
fal = false;
} else {
fal = true;
}
} else if (op.is_show_lock) {
if (o.is_lock) {
fal = false;
} else {
fal = true;
}
} else if (op.is_show_sf) {
if (o.is_sf) {
fal = false;
} else {
fal = true;
}
} else if (op.is_show_bz) {
if (o.is_bz) {
fal = false;
} else {
fal = true;
}
}
return fal;
};
----------------------完整-----------------------------
<template>
<div style="margin-bottom: 20px; margin-top: 20px;">
<label><input type="checkbox" v-model="show_gl.is_show_gl1" /> 过滤一</label>
<label><input type="checkbox" v-model="show_gl.is_show_gl2" /> 过滤二</label>
<label><input type="checkbox" v-model="show_gl.is_show_gl3" /> 过滤三</label>
</div>
<div>
<table>
<template v-for="(item, index) in list" :key="index">
<tr v-if="item.is_show">
<td>{{item.id}}</td>
<td>{{item.is_gl1}}</td>
<td>{{item.is_gl2}}</td>
<td>{{item.is_gl3}}</td>
</tr>
</template>
</table>
</div>
</template>
<script>
import {reactive, ref, watch} from "vue";
export default {
name: "Test",
setup() {
const show_gl = reactive({
is_show_gl1: false,
is_show_gl2: false,
is_show_gl3: false,
});
const list = ref([
{
id: 1,
is_gl1: false,
is_gl2: true,
is_gl3: false,
is_show: true,
},
{
id: 2,
is_gl1: false,
is_gl2: false,
is_gl3: true,
is_show: true,
},
{
id: 3,
is_gl1: false,
is_gl2: true,
is_gl3: false,
is_show: true,
},
{
id: 4,
is_gl1: true,
is_gl2: true,
is_gl3: true,
is_show: true,
},
{
id: 5,
is_gl1: false,
is_gl2: true,
is_gl3: false,
is_show: true,
},
{
id: 6,
is_gl1: true,
is_gl2: false,
is_gl3: false,
is_show: true,
},
]);
watch(show_gl, () => {
for (let i = 0; i < list.value.length; i++) {
if (show_gl.is_show_gl1 || show_gl.is_show_gl2 || show_gl.is_show_gl3) {
if (show_gl.is_show_gl1 && show_gl.is_show_gl2 && show_gl.is_show_gl3) {
if (list.value[i].is_gl1 && list.value[i].is_gl2 && list.value[i].is_gl3) {
list.value[i].is_show = true;
} else {
list.value[i].is_show = false;
}
} else if (show_gl.is_show_gl1 && show_gl.is_show_gl2) {
if (list.value[i].is_gl1 && list.value[i].is_gl2) {
list.value[i].is_show = true;
} else {
list.value[i].is_show = false;
}
} else if (show_gl.is_show_gl1 && show_gl.is_show_gl3) {
if (list.value[i].is_gl1 && list.value[i].is_gl3) {
list.value[i].is_show = true;
} else {
list.value[i].is_show = false;
}
} else if (show_gl.is_show_gl2 && show_gl.is_show_gl3) {
if (list.value[i].is_gl2 && list.value[i].is_gl3) {
list.value[i].is_show = true;
} else {
list.value[i].is_show = false;
}
} else if (show_gl.is_show_gl1) {
if (list.value[i].is_gl1) {
list.value[i].is_show = true;
} else {
list.value[i].is_show = false;
}
} else if (show_gl.is_show_gl2) {
if (list.value[i].is_gl2) {
list.value[i].is_show = true;
} else {
list.value[i].is_show = false;
}
} else if (show_gl.is_show_gl3) {
if (list.value[i].is_gl3) {
list.value[i].is_show = true;
} else {
list.value[i].is_show = false;
}
}
} else {
list.value[i].is_show = true;
}
}
});
return {show_gl, list}
},
}
</script>
<style scoped>
table, td {
border: solid 1px #666;
}
td {
padding: 5px 10px;
}
label {
margin-right: 20px;
}
</style>
其实就是一个过滤功能
https://codepen.io/1567887123...