代码拉取完成,页面将自动刷新
基于element-ui的自定义多条件查询组件。对于大多数业务,查询数据时都需要提前构建许多字段输入框用于查询,这是一件非常繁琐且麻烦的时候,所以开发此组件,方便用户自定义查询的字段。
由于该组件基于element-ui开发,请先加入element-ui插件。 [具体请看Element官网文档](组件 | Element)
npm install el-query-filter
在main.js中写入以下内容:
import Vue from 'vue';
// 载入Element-ui插件
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
// 载入el-query-filter组件
import ElQueryFilter from 'el-query-filter';
import App from './App.vue';
Vue.use(ElementUI);
// 使用el-query-filter组件
Vue.component(ElQueryFilter.name, ElQueryFilter);
new Vue({
el: '#app',
render: h => h(App)
});
以上代码便完成了 Element 以及el-query-filter的引入。
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
modal | 是否需要遮罩层 | boolean | — | false |
direction | Drawer 打开的方向 | string | rtl / ltr / ttb / btt | ttb |
maxQueryCount | 最大查询条数量 | number | — | 5 |
isShow | 是否显示 ,支持 .sync 修饰符 | boolean | — | false |
options | 请参考 el-query-filter Options | object |
参数 | 说明 | 类型 | 例子 |
---|---|---|---|
fields | 字段对象数组 | object[] | [{ label: "姓名", value: "name" },{ label: "年龄", value: "age" }] |
operators | 操作符对象数组 | object[] | [{ label: "=", value: "eq" },{ label: ">", value: "gt" }] |
logics | 逻辑符号对象数组 | object[] | [{ label: "且", value: "and" },{ label: "或", value: "or" }] |
事件名称 | 说明 | 回调参数 |
---|---|---|
confirm | 查询确认按钮回调事件 | 返回用户输入查询条件,json格式 |
<template>
<div id="app">
<el-button @click="showQueryFilter = true">Show</el-button>
<el-query-filter
:isShow.sync="showQueryFilter"
:options="queryFilterOptions"
@confirm="confirmHandler"
></el-query-filter>
<span>{{data}}</span>
</div>
</template>
<script>
export default {
name: "app",
data() {
return {
data: "",
showQueryFilter: true,
// 查询条件
queryFilterOptions: {
fields: [
{ label: "姓名", value: "name" },
{ label: "年龄", value: "age" },
{ label: "手机号", value: "phone" },
],
operators: [
{ label: "=", value: "eq" },
{ label: ">", value: "gt" },
{ label: "≥", value: "ge" },
{ label: "<", value: "lt" },
{ label: "≤", value: "le" },
],
logics: [
{ label: "且", value: "and" },
{ label: "或", value: "or" },
],
},
};
},
methods: {
confirmHandler(data) {
this.data = data;
}
}
};
</script>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。