FilterBox多级查询组件使用文档

filter-fields字段Attributes

参数 说明 类型 可选值 默认值
label 查询字段名 string —— ——
model 查询字段 string/number —— ——
initValue 查询字段初始值 string/number —— ——
type 查询框组件类型 string input/select/selectVdc/ selectUser/datePicker input
show 是否显示 如果是function,参数为model的集合 boolean/function —— true
async 下拉框options 是否从后台获取,如果设置true,则options必须是一个async类型的function boolean true/false ——
linkage 级联的model array —— ——
optionsConfig 下拉框options对应的参数名 object —— {label:'name', value: 'id'}
options 下拉框所需的options 如果是function,参数为model的集合 array/function —— ——
params 选择vdc以及用户弹窗 接口所需的参数 如果是function,参数为model的集合 array/function —— ——
attrs 传给element组件的原生参数 object —— ——

如果参数type为datePicker,则日期框的默认配置如下

{
    type: 'datetime',
    format: 'yyyy-MM-dd HH:mm:ss',
    valueFormat: 'timestamp'
}

以上配置代表了日期弹窗为单个日期,如若选择日期范围,可以在attrs字段中(传给element组件的原生参数)更改日期框type类型。如:

{
    type: 'datetimerange',
    format: 'yyyy-MM-dd HH:mm:ss',
    valueFormat: 'timestamp'
}

Events

事件名称 说明 回调参数
change 查询条件改变时触发 一个对象,model数据集合
filter-change 某一个查询条件改变时触发,比如添加一个vdc,选择一个资源域 key:哪个字段变了
value:当前变化字段的值
model:model数据集

filter-change触发的条件一定是用户操作了某一个条件,级联时只触发当前操作的那一个条件,不能触发联动的条件

具体用法

<template>
    <filter-box :filter-fields="filterFields" @change="handleFilterChange"></filter-box>
</template>

<script>
import FilterBox from './components/FilterBox';
export default {
    components: {
        FilterBox
    },
    data() {
        return {
            filterFields: [
                {
                    label: '名称',
                    model: 'name',
                    type: 'input'
                },
                {
                    label: '资源域',
                    model: 'domainId',
                    type: 'select',
                    show:Vue.isSuperadmin,
                    linkage: ['runtimeId', 'vdcId', 'userId', 'namespaceId'],
                    async: true,
                    optionsConfig: {
                        label: 'domainName',
                        value: 'domainId'
                    },
                    options: async () => {
                        return await this.getDomainList()
                    }
                },
                {
                    label: '集群',
                    model: 'runtimeId',
                    type: 'select',
                    linkage: ['namespaceId'],
                    async: true,
                    optionsConfig: { // 组件默认值就是name和id此处可不配置
                        label: 'name',
                        value: 'id'
                    },
                    options: async (model) => {
                        return await this.getRuntimeList(model)
                    }
                },
                {
                    label: '虚拟数据中心',
                    model: 'vdcId',
                    type: 'selectVdc',
                    linkage: ['userId', 'namespaceId'],
                    params: model => {
                        return {
                            domainId: model.domainId,
                            platform: 'CONTAINER'
                        }
                    }
                },
                {
                    label: '用户',
                    model: 'userId',
                    type: 'selectUser',
                    params: model => {
                        return {
                            domainId: model.domainId,
                            vdcId: model.vdcId
                        }
                    }
                },
                {
                    label: '应用空间',
                    model: 'namespaceId',
                    type: 'select',
                    async: true,
                    optionsConfig: { // 组件默认值就是name和id此处可不配置
                        label: 'namespace',
                        value: 'id'
                    },
                    options: async (model) => {
                        return await this.getNamespaceList(model)
                    }
                }
            ]
        }
    },
    methods: {
        async getDomainList() {
            // ajax请求的数据,需return出请求值
        },
        async getNamespaceList(model) {
            // model为组件内部暴露出的数据集,级联时model会变,这里会自动调接口
            // ajax请求的数据,需return出请求值
            const {resData} = await this.$ajax({
                path: '',
                data: {
                    pageSize: -1,
                    ...model
                }
            })
            return resData
        },
        async getRuntimeList(model) {
            // model为组件内部暴露出的数据集,级联时model会变,这里会自动调接口
            // ajax请求的数据,需return出请求值
        },
        handleFilterChange() {
            //  查条件变了这里直接调用查询列表接口
        }
    }
}
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,192评论 6 511
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,858评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,517评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,148评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,162评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,905评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,537评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,439评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,956评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,083评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,218评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,899评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,565评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,093评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,201评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,539评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,215评论 2 358

推荐阅读更多精彩内容