前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >低代码系列之代码生成器模型配置--filter

低代码系列之代码生成器模型配置--filter

作者头像
切图仔
发布2022-09-08 18:42:18
3960
发布2022-09-08 18:42:18
举报
文章被收录于专栏:生如夏花绚烂生如夏花绚烂

filters是用来配置表格上方的多条件查询,通过它配置数据检索的方式,目前支持模糊查询,分类查询,时间查询等

模糊查询配置

代码语言:javascript
复制
 filters: {
        couponName: {
            label: '优惠券名称',
            type: 'text',
        }
    }

filters里面的属性必须在fields里面存在,换句话是filters的键必须从fields里面。键名就是字段名 label:为提示文字 type:为表单类型

分类查询

本地分类查询

本地分类的意思是分类是写死的并没有纳入系统管理

代码语言:javascript
复制
  filters: {
        person: {
            label: '适用人群',
            type: 'select',
   }

上述配置配置了person.type=select,那么要确保你的fileds里面的person是这样配置的

代码语言:javascript
复制
fileds:{
    person:{
            type:'string',
            comment: '适用人群',
            meta:{
                formType: 'select',
                chineseMap: {
                    1:"男",
                    0:"女"
                 
                }
            }
           
        },
}

也就是person必须配置chineseMap属性 此时会在视图生成如下表单

外键分类查询

外键分类查询的意思是,分类项并不是写死,分类项是一张单独的表,或者有单独管理作用 这个时候要想正常使用外键分类查询你需要进行如下配置

以goods模型的person字段为例 首先创建一个分类表,category 模型配置如下

代码语言:javascript
复制
module.exports = {
    modelCn: '人群', 
    modelIcon: 'el-icon-eleme',
    fields: {
        name: {
            type: 'string', 
            comment: '人群名称',
            meta: {
                formType: 'input', 
                isInline: false, 
                inputType: 'text', 
                placeholder: '请输入人群名称' 
            }
        },
        }

然后在goods模型的person字段作如下配置

代码语言:javascript
复制
module.exports = {
    modelCn: '商品', 
    modelIcon: 'el-icon-eleme',
    fields: {
        name: {
            type: 'string', 
            comment: '商品名称',
            meta: {
                formType: 'input', 
                isInline: false, 
                inputType: 'text', 
                placeholder: '请输入商品名称' 
            }
        },
        person:{
            type:'string',
                comment:'适用人群',
                meta:{
                   formType:'select',
                     // 注意这里的chineseMap接受一个对象(外键查询)
                     chineseMap:{
                        useForeign: 'goods_person' // 这里的值去的foreign的属性即外键名称
                      }
                }
        },
        filter:{
             person: {
                label: '适用的人群',
                type: 'select'
             },
        },
        foreign: {
           // key 表示外键名称
            article_category: {
                key: 'person', // 当前模型的外键字段
                refer: 'id', // 关联表的字段 // 用作表单,表格的取值
                referLabel: 'name', // 关联表用于展示的字段,主要用于 table,form的展示
                onTable: 'category', // 关联的模型
                foreignDesc: '外键描述'
        },
}
}

日期时间查询

单日期查询

指定日期字段查询[小于 | 小于等于 | 大于 | 大于等于]的该字段记录

代码语言:javascript
复制
  fields: {
        ...
        goods_date:{
            comment:'创建日期',
            type:'date',
            meta: {
                formType: 'date',
            }
        }
    },
  filters: {
        goods_date: {
            label: '开始月份',
            type: 'date',
            sign:'gte' // 大于等于
        },
    }

这里我们设置了sign,生成器会将生成“查询大于等于goods_date的记录” 生成条件筛选代码与视图

根据条件查询结果

sign的取值如下

  • gt 大于
  • gte大于等于
  • lt 小于
  • lte 小于等于
  • ne 不等于
  • eq 等于

默认情况下sign取值为gte

双日期查询 查询两个日期之间的记录

代码语言:javascript
复制
  fields: {
        ...
        goods_date:{
            comment:'创建日期',
            type:'date',
            meta: {
                formType: 'date',
            }
        }
    },
  filters: {
        goods_date: {
            label: '日期范围',
            type: 'doubleDate',
        },
    }

查询 goods_date 在 20226月1日到20226月30日之间的记录

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-03-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 模糊查询配置
  • 分类查询
  • 日期时间查询
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档