UNPKG

amis-model-design

Version:

amis模型设计器

63 lines (62 loc) 2.55 kB
/** * @file 零代码list builder * @desc 基于crud2 builder构建结果改造而成,支持无代码的列表构建 */ import { BaseSchemaBuilder } from './SchemaBuilder'; import { Manager } from '../base/Manager'; import { SharedContext } from './SharedContext'; import { ApiStrategyInterface } from './ApiStrategyInterface'; import type { PlainObject } from 'amis'; import type { ModelItem, ModelEntityApiSchema, ExtraField, FeatType } from '../type'; import { CRUDSchemaBuilder } from './CRUDBuilder'; interface IPageMap { pageFormId: string; pageFormDetailId: string; } export interface NoCodeCRUDBuilderOptions { /** 表格的展示模式 */ mode: 'table2' | 'list' | 'cards' | 'table'; /** 支持的功能场景 */ feats: FeatType[]; /** 支持列表查看的字段集合 */ listFields: ExtraField[]; /** 支持新增的字段集合 */ insertFields?: ExtraField[]; /** 支持批量编辑字段集合 */ bulkEditFields?: ExtraField[]; /** 支持查看详情的字段集合 */ viewFields?: ExtraField[]; /** 支持编辑的字段集合 */ editFields?: ExtraField[]; /** 支持模糊查询的字段集合 */ fuzzyQueryFields?: ExtraField[]; /** 支持简单查询的字段集合 */ simpleQueryFields?: ExtraField[]; /** 支持高级查询的字段集合 */ advancedQueryFields?: ExtraField[]; /** 列表接口的预过滤条件 */ filters?: ModelEntityApiSchema['filters']; /** 列表接口的排序规则 */ orders?: ModelEntityApiSchema['orders']; /** 列表table的功能配置 */ table?: string[]; /** 详情表单配置 */ formFields?: PlainObject[]; /** 关联页面配置 */ pageMap: IPageMap; } /** headerToolbar 和 footerToolbar 布局换成 flex 包裹 container */ export declare const addSchema2Toolbar: (schema: any, content: any, position: 'header' | 'footer', align: 'left' | 'right') => void; export declare class NoCodeListSchemaBuilder extends BaseSchemaBuilder<NoCodeCRUDBuilderOptions> { readonly model: ModelItem; readonly apiStrategy: ApiStrategyInterface; readonly manager: Manager; readonly sharedContext: SharedContext; static id: string; options: NoCodeCRUDBuilderOptions; readonly ApiIdentifier: 'model-entity'; readonly crudSchemaBuilder: CRUDSchemaBuilder; constructor(model: ModelItem, apiStrategy: ApiStrategyInterface, manager: Manager, sharedContext: SharedContext); build(options: NoCodeCRUDBuilderOptions): Promise<any>; } export {};