UNPKG

amis-model-design

Version:

amis模型设计器

76 lines (75 loc) 2.64 kB
/** * 用于构建模型数据的接口 */ import { JSONQLWhereCondition, OrderBy } from '../jsonql'; import { type ConditionValue } from 'amis'; import type { Strategy } from './ApiStrategyInterface'; import type { ModelEntityApiSchema, ExtraField, FeatType } from '../type'; type ApiScene = 'list' | 'form' | 'option'; export declare class ApiBuilder { /** 标识符 */ idParam: string; /** 构建方式 */ strategy: Strategy; /** 使用场景 */ scene: ApiScene; /** 字段集合 */ selects: Array<{ column: string; alias?: string; }>; /** JSONQL查询条件 */ wheres: Array<JSONQLWhereCondition>; /** JSONQL排序条件 */ orders: OrderBy[]; /** JSONQL需要后端解析的变量,在构建其他语句的时候需要添加进去 */ vars: string[]; /** 追加的查询条件, */ query: Record<string, string>; constructor(idParam?: string, strategy?: Strategy, scene?: ApiScene); get hasQuery(): boolean; setIdParam(value: string): void; addVar(name: string): string[]; addQuery(key: string, value: string): void; select(column?: string | Array<{ column: string; alias?: string; }>, alias?: string): void; addSelect(column: string | Array<{ column: string; alias?: string; }>, alias?: string): void; /** 解析select子句 */ resolveSelectFields(fields: ExtraField[], options?: { feat?: FeatType; method?: 'GET' | 'POST' | 'PUT' | 'DELETE'; }): { column: string; alias?: string | undefined; }[]; where(condition?: JSONQLWhereCondition): void; addWhere(condition: JSONQLWhereCondition): void; /** 解析ConditionBuilder,构建where子句 和 query */ setWhereAndQueryByConditionBuilder(filters?: ConditionValue): void; orderBy(condition?: OrderBy | OrderBy[]): void; addOrderBy(condition: OrderBy | OrderBy[]): void; /** * 解析ConditionBuilder中的where子句 * @desc 排序只支持主表字段,不支持根据子表字段排序 * * @param orders 排序字段集 * @param many 是否为多数据 * @returns */ resolveOrderByFields(orders?: ModelEntityApiSchema['orders'], many?: boolean): OrderBy[]; /** * 构建JsonQL中可用的变量 * @desc 形如{{xxx}}的值会被认为是后端变量,取不到的时候不会有where子句,除非设置了default默认值 * * @param name 变量名称 * @param defaultValue 默认值 * @returns */ buildVariable(name: string, defaultValue?: any): string; } export {};