1 回答
通过自定义函数查询表格数据,拿到入参里面系统提供的查询参数queryData,在queryData内部values内部添加需要的查询参数,根据需要在key前面添加'eq:'、'in:'等前缀。(更多前缀配置可以参考 业务模型数据查询算子使用说明 )
算子使用说明
在values中传入查询条件和条件值,完整的查询条件格式为:
{"[查询算子标识]:字段code|[查询算子标识]:字段2code|...":条件值}
注意:
1.查询算子标识支持eq/ne/gt...等,可选,如果忽略则使用默认根据字段类型选择合适的查询方式;
2.|:表示多个条件的或关系,如:{"dev|llike:dev":"test"}表示的是"dev精确匹配 test 或 dev 模糊匹配 test",等效的sql片段为:dev='test' or dev like '%test%' ;
当 values 中的查询条件中忽略了查询算子标识,系统会自动根据字段类型适配默认的查询方式,具体如下:
1)日期(DATE)/时间(TIME)
范围区间匹配,条件值格式为:{"st":1644997122326,"et":1644997242326},其中st和et分别是起始和结束时间;
2)人员(STAFF),部门(DEPARTMENT),关联选择(RELATION_SELECT)
模糊匹配,等效于sql的“similar to”语法;
3)关联引用(RELATION_REFERENCE),如果是业务模型,则使用精确匹配,传值支持整形或字符串;如果是数据字典,则使用模糊匹配,类似于sql的“like”语法;
4)短文本(SHORT_TEXT),长文本(LONG_TEXT),图片(PICTURE),附件(ATTACHMENT),序列号(SEQ)、时间(TIME)、父节点集合(PARENT_IDS)、子节点(CHILDREN);
模糊匹配,等效于sql的“like”匹配;
5)其他
精确匹配,即SQL的“=”;
查询算子标识 | 说明 | 示例 | 前端调用实例 |
eq | 1.作用:等于,精确匹配; 2.支持的字段:所有; | 1.{"eq:name":"设备"} - 查找名字为设备的记录 | table.dispatch('addSearchData',{values:{'in:status':['BUDGET','DELIVERY']}}) |
ne | 1.作用:不等于,精确匹配; 2.支持的字段:所有; | request('budget_review', 'selectList', {values:{'project_id':row.id,'ne:review_status':'FINISH'}} ) | |
gt | 1.作用:大于; 2.支持的字段和使用注意事项
传参为时间戳(精确到毫秒)
| 1.时间搜索条件传参 {"ge:create_date":1644997122326,"le:create_date":1644997242326} 2.["gt:age":20] 表示查询年龄大于20的记录 | |
ge | 1.作用:大于等于; 2.支持的字段和使用注意事项,同 gt 用法; | ||
lt | 1.作用:小于; 2.支持的字段和使用注意事项,同 gt 用法; | ||
le | 1.作用:小于等于; 2.支持的字段和使用注意事项,同 gt 用法; | ||
isNull | 1.作用:为空,等效于sql的 is null,精确匹配; 2.支持的字段:所有; | ["isNull:name":null] 表示查询name为空的记录 | |
isNotNull | 1.作用:不为空,等效于sql的 is not null,精确匹配; 2.支持的字段:所有; | request('budget_review', 'selectList', {values:{"isNotNull:market_manager":"null"}} ) | |
isBlank | 1.作用:为空字符串,等效于sql的“name IS NULL OR name = ''” 2.支持的字段:短文本和长文本 | ["isBlank:name":null] 表示查询name为null或空字符串的记录 | |
isNotBlank | 和isBlank相反,等效于“name IS NOT NULL AND name <> ''” | ||
like | 1.作用:sql的模糊匹配; 2.支持的字段:所有; | ||
notLike | 1.作用:sql的模糊匹配,等效于 not like; 2.支持的字段:所有; | ||
ilike | 1.作用:sql的模糊匹配,不区分大小写; 2.支持的字段:所有; | ||
in | 1.作用:等效于sql的 “in” 查询; 2.支持的字段:所有; 3.注意事项 参数的条件值以为逗号拼接的字符串或数组,如: 1)字符串:{"in:dep":"1,2,3"}; 2)数组:{"in:orderType":["device","spare"]} 4.【2022.08.29】补充:人员、部门、关联选择字段慎用该算子,由于这三个字段支持多选,且存储的是关联数据的ID,因此设计为固定格式(如:[78][25]、[DEVICE][SPARE]),如果需要对这三种字段进行模糊匹配,建议使用similarTo算子 | ||
notIn | 1.作用:等效于sql的 “not in” 查询; 2.支持的字段和使用注意事项,同 in 用法; | ||
similarTo | 1.作用:等效于sql的 “similar to” 查询; 2.支持的字段如下:
包含关联业务模型和关联数据字典两个场景; 3.注意事项 参数的条件值以为逗号拼接的字符串或数组,如: 1)字符串:{"similarTo:dep":"1,2,3"}; 2)数组:{"similarTo:orderType":["device","spare"]} | 1.{"similarTo:renyuan": "20,21,22"} | |
notSimilarTo | 1.作用:等效于sql的 “not similar to” 查询; 2.支持的字段和使用注意事项,同 similarTo用法; |