1.18.11 • Published 7 months ago

@sinoform/helper-condition-api v1.18.11

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

@sinoform/helper-condition-api

构建 API 查询条件的辅助模块。

支持两种风格构建 API 查询条件,即:

  • 流式方法
  • sql 模板

根据个人喜好,两种风格二选一即可。

简单示例

查询姓名包含 的查询条件。

流式方法:

import { build$ } from '@sinoform/helper-condition-api';

const currentUser = getCurrentUser();
const context = { formDesignId: '表单id', currentUser };
const $ = build$(context);

// 创建查询条件
const condition = $('userName').contain('张');
// 或者
condition = $('userName').like('%张%');

sql 模板风格:

import { sql } from '@sinoform/helper-condition-api';
const condition = sql`userName like '%张%'`;

组合多个查询条件

可以使用 andornot 逻辑运算符组合多个查询条件。

示例 1

import { build$ } from '@sinoform/helper-condition-api';

const currentUser = getCurrentUser();
const context = { formDesignId: '表单id', currentUser };
const $ = build$(context);

const useNameCondition = $('userName').contain('张');
const ageCondition = $('age').gt(18);
const condition = $.and(userNameCondition, ageCondition);
import { sql } from '@sinoform/helper-condition-api';

const condition = sql`
  USER_NAME like '%张%'
  AND age > 18
`;

示例 2

import { $ } from '@sinoform/helper-condition-api';

const condition = $.or(
  $('userName').contain('张'),
  $('userName').contain('李'),
);
import { sql } from '@sinoform/helper-condition-api';

const condition = sql`
  USER_NAME like '%张%'
  OR USER_NAME like '%李%'
`;

示例 3

import { $ } from '@sinoform/helper-condition-api';

const condition = $.and(
  $.or($('userName').contain('张'), $('userName').contain('李')),
  $('age').gt(18),
);
import { sql } from '@sinoform/helper-condition-api';

const condition = sql`
  (
    USER_NAME like '%张%'
    OR USER_NAME like '%李%'
  ) AND (
    age > 18
  )
`;

支持的操作符

操作符说明
equal相等比较操作符
notEqual不相等比较操作符
contain文本包含操作符,相当于 like '%文本%'
notContain文本不包含操作符
isNull空判定操作符
notNull非空判定操作符
lt小于操作符
gt大于操作符
lte小于等于操作符
gte大于等于操作符
in包含操作符
isis null场景中使用的操作符
isNotis not null 场景使用的操作符
like文本包含操作符
notLike文本不包含操作符
range区间操作符,相当于 between x and y
and并且逻辑操作符,使用 and 组合的多个查询条件是必须都要满足的
or或者逻辑操作符,使用 or 组合的多个查询条件只需要满足一个即可
not非逻辑操作符,使用 not 包裹的查询条件表示查询不满足此查询条件的数据
querySelfAll仅查询出自己可见的所有数据
queryDeptAll查询出自己和部门可见的所有数据

equal

相等性比较

$('field_1').equal('10');
sql`field_1 = '10'`;

notEqual

不相等比较

$('field_1').notEqual('10');
sql`field_1 <> '10'`;

contain

文本包含关系

$('field_1').contain('张');
sql`field_1 like '%张%'`;

notContain

字符串不包含的关系

$('field_1').notContain('张');
sql`field_1 not like '%张%'`;

isNull

判断是否为空

$('field_1').isNull();
sql`field_1 is null`;

notNull

判断是否非空

$('field_1').notNull();
field_1 is not null

isEmpty

判断是否为空

$('field_1').isEmpty();
sql`field_1 is null or field_1 = ''`;

notEmpty/isNotEmpty

判断是否非空

$('field_1').isNotEmpty();
sql`field_1 is not null and field_1 <> ''`;

lt

小于

$('field_1').lt(10);
sql`field_1 < 10`;

gt

大于

$('field_1').gt(10);
sql`field_1 > 10`;

lte

小于等于

$('field_1').lte(10);
sql`field_1 <= 10`;

gte

大于等于

$('field_1').gte(10);
sql`field_1 >= 10`;

in

数组包含关系

$('field_1').in('类型1', '类型2', '类型3');
sql`field_1 in ('类型1', '类型2', '类型3')`;

is

$('field_1').is(null);
sql`field_1 is null`;

isNot

$('field_1').isNot(null);
sql`field_1 is not null`;

like

文本包含关系。

$('field_1').like('张%');
sql`field_1 like '张%'`;

notLike

文本不包含关系

$('field_1').notLike('张%');
sql`
  field_1 not like '张%'
`;

range

between ... and ...

$('field_1').range(1, 3);
sql`
  field_1 between 1 and 3
`;

and

逻辑与的关系

$.and($('field_1').gt(10), $('field_1').lt(100), $('user_name').equal('张三'));
sql`
  field_1 > 10 and field_1 < 100 and user_name = '张三'
`;

or

逻辑或的关系

$.or($('field_1').gt(10), $('field_1').lt(100), $('user_name').equal('张三'));
sql`
  field_1 > 10 or field_1 < 100 or user_name = '张三'
`;

not

逻辑非的关系

$.not($('field_1').equal(10));
// 或者

$('field_1').not.equal(10);
sql`
  !(field_1 = 10)
`;

likeLeft

文本左包含关系

$('field_1').likeLeft('张');
sql`field_1 like '张%'`;

querySelfAll

查询仅自己可见的数据

import { build$ } from '@sinoform/helper-condition-api';

const currentUser = getCurrentUser();
const context = { formDesignId: '表单id', currentUser };
const $ = build$(context);

const condition = $.querySelfAll();

相当于:

import { $ } from '@sinoform/helper-condition-api';

const condition = $.and(
  $('PERM.FORMDESIGN_ID').equal(formDesignId),
  $('PERM.SUBJECT_ID').equal(currentUserId),
);

queryDeptAll

查询出自己和部门可见的数据

import { build$ } from '@sinoform/helper-condition-api';

const currentUser = getCurrentUser();
const context = { formDesignId: '表单id', currentUser };
const $ = build$(context);

const condition = $.queryDeptAll();

相当于:

import { $ } from '@sinoform/helper-condition-api';

$.or(
  $.and(
    $('PERM.FORMDESIGN_ID').equal(formDesignId),
    $('PERM.SUBJECT_ID').equal(currentUserId),
  ),
  $.and(
    $('PERM.FORMDESIGN_ID').equal(formDesignId),
    $('PERM.SUBJECT_ID').equal(deptId),
    $('PERM.SUBJECT_TYPE').equal('superDept'),
  ),
);
1.18.9

7 months ago

1.18.11

7 months ago

1.17.0

1 year ago

1.14.17

2 years ago

1.14.18

2 years ago

1.14.19

2 years ago

1.14.16

2 years ago

1.15.0

2 years ago

1.15.0-alpha.51

2 years ago

1.15.0-alpha.47

2 years ago

1.15.0-alpha.49

2 years ago

1.15.0-alpha.48

2 years ago

1.15.0-alpha.29

2 years ago

1.15.0-alpha.28

2 years ago

1.15.0-alpha.36

2 years ago

1.15.0-alpha.35

2 years ago

1.15.0-alpha.38

2 years ago

1.15.0-alpha.37

2 years ago

1.15.0-alpha.32

2 years ago

1.15.0-alpha.31

2 years ago

1.15.0-alpha.34

2 years ago

1.15.0-alpha.33

2 years ago

1.15.0-alpha.30

2 years ago

1.15.0-alpha.25

2 years ago

1.15.0-alpha.24

2 years ago

1.15.0-alpha.27

2 years ago

1.15.0-alpha.26

2 years ago

1.15.0-alpha.23

2 years ago

1.14.12

2 years ago

1.15.0-alpha.39

2 years ago

1.15.0-alpha.46

2 years ago

1.15.0-alpha.43

2 years ago

1.14.13

2 years ago

1.15.0-alpha.42

2 years ago

1.14.14

2 years ago

1.15.0-alpha.45

2 years ago

1.14.15

2 years ago

1.15.0-alpha.44

2 years ago

1.15.0-alpha.41

2 years ago

1.15.0-alpha.40

2 years ago

1.14.5

2 years ago

1.14.4

2 years ago

1.14.9

2 years ago

1.14.6

2 years ago

1.15.0-alpha.14

2 years ago

1.15.0-alpha.13

2 years ago

1.15.0-alpha.16

2 years ago

1.15.0-alpha.15

2 years ago

1.15.0-alpha.10

2 years ago

1.15.0-alpha.12

2 years ago

1.14.11

2 years ago

1.15.0-alpha.18

2 years ago

1.15.0-alpha.17

2 years ago

1.15.0-alpha.19

2 years ago

1.15.0-alpha.2

2 years ago

1.15.0-alpha.4

2 years ago

1.15.0-alpha.5

2 years ago

1.15.0-alpha.21

2 years ago

1.15.0-alpha.6

2 years ago

1.15.0-alpha.20

2 years ago

1.15.0-alpha.7

2 years ago

1.15.0-alpha.22

2 years ago

1.15.0-alpha.0

2 years ago

1.15.0-alpha.1

2 years ago

1.14.1

2 years ago