1.0.1 • Published 3 years ago

el-query-filter v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

el-query-filter

介绍

基于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的引入。

el-query-filter Attributes

参数说明类型可选值默认值
modal是否需要遮罩层booleanfalse
directionDrawer 打开的方向stringrtl / ltr / ttb / bttttb
maxQueryCount最大查询条数量number5
isShow是否显示 ,支持 .sync 修饰符booleanfalse
options请参考 el-query-filter Optionsobject

el-query-filter Options

参数说明类型例子
fields字段对象数组object[]{ label: "姓名", value: "name" },{ label: "年龄", value: "age" }
operators操作符对象数组object[]{ label: "=", value: "eq" },{ label: ">", value: "gt" }
logics逻辑符号对象数组object[]{ label: "且", value: "and" },{ label: "或", value: "or" }

Events

事件名称说明回调参数
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>