@shencom/api
Version:
shencom api group
94 lines (87 loc) • 2.36 kB
text/typescript
/**
* 查询操作类型枚举
*
* @export
* @enum {string}
*/
export enum OperateEnum {
/** 等于 */
EQ = 'EQ',
/** 小于 */
LT = 'LT',
/** 大于 */
GT = 'GT',
/** 小于等于 */
LTE = 'LTE',
/** 大于等于 */
GTE = 'GTE',
/** 不等于 */
NEQ = 'NEQ',
/** 包含 */
IN = 'IN',
/** 非空 */
NN = 'NN',
/** 为空 */
NULL = 'NULL',
/** 区间 */
BTW = 'BTW',
/** 模糊匹配 */
LIKE = 'LIKE',
/** 左模糊匹配 */
LL = 'LL',
/** 右模糊匹配 */
RL = 'RL',
}
/**
* 查询逻辑关系枚举
*
* @export
* @enum {string}
*/
export enum LrEnum {
/** 并且 */
AND = 'and',
/** 或者 */
OR = 'or',
}
export const LR = [
{ label: '并且', value: LrEnum.AND },
{ label: '或者', value: LrEnum.OR },
] as const;
export const operateType = {
number: [
{ label: '=', value: OperateEnum.EQ },
{ label: '<', value: OperateEnum.LT },
{ label: '>', value: OperateEnum.GT },
{ label: '≤', value: OperateEnum.LTE },
{ label: '≥', value: OperateEnum.GTE },
{ label: '≠', value: OperateEnum.NEQ },
{ label: '包括', value: OperateEnum.IN },
{ label: '非空', value: OperateEnum.NN },
{ label: '为空', value: OperateEnum.NULL },
{ label: '区间', value: OperateEnum.BTW },
],
date: [
{ label: '匹配', value: OperateEnum.LIKE },
{ label: '早于', value: OperateEnum.LT },
{ label: '晚于', value: OperateEnum.GT },
{ label: '非空', value: OperateEnum.NN },
{ label: '为空', value: OperateEnum.NULL },
],
string: [
{ label: '模糊匹配', value: OperateEnum.LIKE },
{ label: '=', value: OperateEnum.EQ },
{ label: '≠', value: OperateEnum.NEQ },
{ label: '包括', value: OperateEnum.IN },
{ label: '左模糊匹配', value: OperateEnum.LL },
{ label: '右模糊匹配', value: OperateEnum.RL },
{ label: '非空', value: OperateEnum.NN },
{ label: '为空', value: OperateEnum.NULL },
],
rangeDateTime: [{ label: '介于', value: OperateEnum.BTW }],
select: [{ label: '包括', value: OperateEnum.IN }],
} as const;
export type QueryLr = (typeof LR)[number]['value'];
export type OperateType = keyof typeof operateType;
export type Operate = OperateEnum;
export const OPERATE = (type?: OperateType) => (type && operateType[type]) || operateType.string;