amis
Version:
一种MIS页面生成工具
250 lines (249 loc) • 9.6 kB
TypeScript
import { PageSchema } from './renderers/Page';
import { TplSchema } from './renderers/Tpl';
import { RemarkSchema } from './renderers/Remark';
import { ActionSchema } from './renderers/Action';
import { AlertSchema } from './renderers/Alert';
import { AudioSchema } from './renderers/Audio';
import { ButtonGroupSchema } from './renderers/ButtonGroup';
import { ButtonToolbarSchema } from './renderers/ButtonToolbar';
import { CardSchema } from './renderers/Card';
import { CardsSchema } from './renderers/Cards';
import { FormSchema } from './renderers/Form';
import { CarouselSchema } from './renderers/Carousel';
import { ChartSchema } from './renderers/Chart';
import { CollapseSchema } from './renderers/Collapse';
import { ColorSchema } from './renderers/Color';
import { ContainerSchema } from './renderers/Container';
import { CRUDSchema } from './renderers/CRUD';
import { DateSchema } from './renderers/Date';
import { DividerSchema } from './renderers/Divider';
import { DropdownButtonSchema } from './renderers/DropDownButton';
import { EachSchema } from './renderers/Each';
import { GridSchema } from './renderers/Grid';
import { Grid2DSchema } from './renderers/Grid2D';
import { HBoxSchema } from './renderers/HBox';
import { IconSchema } from './renderers/Icon';
import { IFrameSchema } from './renderers/IFrame';
import { ImageSchema } from './renderers/Image';
import { ImagesSchema } from './renderers/Images';
import { JsonSchema } from './renderers/Json';
import { LinkSchema } from './renderers/Link';
import { ListSchema } from './renderers/List';
import { MappingSchema } from './renderers/Mapping';
import { NavSchema } from './renderers/Nav';
import { OperationSchema } from './renderers/Operation';
import { PanelSchema } from './renderers/Panel';
import { PlainSchema } from './renderers/Plain';
import { ProgressSchema } from './renderers/Progress';
import { QRCodeSchema } from './renderers/QRCode';
import { ServiceSchema } from './renderers/Service';
import { StatusSchema } from './renderers/Status';
import { SwitchSchema } from './renderers/Switch';
import { TabsSchema } from './renderers/Tabs';
import { TasksSchema } from './renderers/Tasks';
import { VBoxSchema } from './renderers/VBox';
import { VideoSchema } from './renderers/Video';
import { WizardSchema } from './renderers/Wizard';
import { WrapperSchema } from './renderers/Wrapper';
import { TableSchema } from './renderers/Table';
import { DialogSchema } from './renderers/Dialog';
import { DrawerSchema } from './renderers/Drawer';
import { SearchBoxSchema } from './renderers/SearchBox';
import { SparkLineSchema } from './renderers/SparkLine';
import { PaginationWrapperSchema } from './renderers/PaginationWrapper';
import { PaginationSchema } from './renderers/Pagination';
export declare type SchemaType = 'form' | 'button' | 'submit' | 'reset' | 'alert' | 'app' | 'audio' | 'button-group' | 'button-toolbar' | 'card' | 'cards' | 'carousel' | 'chart' | 'collapse' | 'color' | 'container' | 'crud' | 'custom' | 'date' | 'static-date' | 'datetime' | 'static-datetime' | 'time' | 'static-time' | 'month' | 'static-month' | 'dialog' | 'divider' | 'dropdown-button' | 'drawer' | 'each' | 'grid' | 'grid-2d' | 'hbox' | 'icon' | 'iframe' | 'image' | 'static-image' | 'images' | 'static-images' | 'json' | 'static-json' | 'link' | 'list' | 'static-list' | 'map' | 'mapping' | 'nav' | 'page' | 'pagination' | 'pagination-wrapper' | 'operation' | 'panel' | 'plain' | 'text' | 'progress' | 'qrcode' | 'qr-code' | 'remark' | 'search-box' | 'service' | 'sparkline' | 'status' | 'switch' | 'table' | 'static-table' | 'tabs' | 'html' | 'tpl' | 'tasks' | 'vbox' | 'video' | 'wizard' | 'wrapper';
export declare type SchemaObject = PageSchema | TplSchema | RemarkSchema | ActionSchema | AlertSchema | AudioSchema | ButtonGroupSchema | ButtonToolbarSchema | CardSchema | CardsSchema | CarouselSchema | ChartSchema | CollapseSchema | ColorSchema | ContainerSchema | CRUDSchema | DateSchema | DialogSchema | DividerSchema | DrawerSchema | DropdownButtonSchema | EachSchema | GridSchema | Grid2DSchema | HBoxSchema | IconSchema | IFrameSchema | ImageSchema | ImagesSchema | JsonSchema | LinkSchema | ListSchema | MappingSchema | NavSchema | OperationSchema | PaginationSchema | PaginationWrapperSchema | PanelSchema | PlainSchema | ProgressSchema | QRCodeSchema | SearchBoxSchema | ServiceSchema | SparkLineSchema | StatusSchema | SwitchSchema | TableSchema | TabsSchema | TasksSchema | VBoxSchema | VideoSchema | WizardSchema | WrapperSchema | FormSchema;
export declare type SchemaCollection = SchemaObject | SchemaTpl | Array<SchemaObject | SchemaTpl>;
/**
* 表达式,语法 `data.xxx > 5`。
*/
export declare type SchemaExpression = string;
/**
* css类名,字符串格式
*/
export declare type SchemaClassName = string;
export interface SchemaApiObject {
/**
* API 发送类型
*/
method?: 'get' | 'post' | 'put' | 'delete' | 'patch';
/**
* API 发送目标地址
*/
url: SchemaUrlPath;
/**
* 用来控制携带数据. 当key 为 `&` 值为 `$$` 时, 将所有原始数据打平设置到 data 中. 当值为 $$ 将所有原始数据赋值到对应的 key 中. 当值为 $ 打头时, 将变量值设置到 key 中.
*/
data?: {
[propName: string]: any;
};
/**
* 用来做接口返回的数据映射。
*/
responseData?: {
[propName: string]: any;
};
/**
* 如果 method 为 get 的接口,设置了 data 信息。
* 默认 data 会自动附带在 query 里面发送给后端。
*
* 如果想通过 body 发送给后端,那么请把这个配置成 false。
*
* 但是,浏览器还不支持啊,设置了只是摆设。
*/
attachDataToQuery?: boolean;
/**
* 发送体的格式
*/
dataType?: 'json' | 'form-data' | 'form';
/**
* 如果是文件下载接口,请配置这个。
*/
responseType?: 'blob';
/**
* 携带 headers,用法和 data 一样,可以用变量。
*/
headers?: {
[propName: string]: string;
};
/**
* 设置发送条件
*/
sendOn?: SchemaExpression;
/**
* 默认都是追加模式,如果想完全替换把这个配置成 true
*/
replaceData?: boolean;
/**
* 是否自动刷新,当 url 中的取值结果变化时,自动刷新数据。
*/
autoRefresh?: boolean;
/**
* 如果设置了值,同一个接口,相同参数,指定的时间(单位:ms)内请求将直接走缓存。
*/
cache?: number;
/**
* qs 配置项
*/
qsOptions?: {
arrayFormat?: 'indices' | 'brackets' | 'repeat' | 'comma';
indices?: boolean;
allowDots?: boolean;
};
}
export declare type SchemaApi = string | SchemaApiObject;
/**
* 组件名字,这个名字可以用来定位,用于组件通信
*/
export declare type SchemaName = string;
/**
* 配置刷新动作,这个动作通常在完成渲染器本省的固定动作后出发。
*
* 一般用来配置目标组件的 name 属性。多个目标可以用逗号隔开。
*
* 当目标是 windows 时表示刷新整个页面。
*
* 刷新目标的同时还支持传递参数如: `foo?a=${a}&b=${b},boo?c=${c}`
*/
export declare type SchemaReload = string;
/**
* 页面跳转地址,支持相对地址。
*/
export declare type SchemaRedirect = string;
/**
* 支持两种语法,但是不能混着用。分别是:
*
* 1. `${xxx}` 或者 `${xxx|upperCase}`
* 2. `<%= data.xxx %>`
*
*
* 更多文档:https://baidu.gitee.io/amis/docs/concepts/template
*/
export declare type SchemaTpl = string;
/**
* 初始数据,设置得值可用于组件内部模板使用。
*/
export declare type SchemaDefaultData = {
[propName: string]: any;
};
/**
* 用来关联 json schema 的,不用管。
*/
export declare type SchemaSchema = string;
/**
* iconfont 里面的类名。
*/
export declare type SchemaIcon = string;
export declare type SchemaTokenizeableString = string;
export declare type SchemaUrlPath = SchemaTokenizeableString;
export declare type SchemaTooltip = string | {
/**
* 标题
*/
title?: string;
/**
* 内容
*/
content: string;
};
/**
* 消息文案配置,记住这个优先级是最低的,如果你的接口返回了 msg,接口返回的优先。
*/
export declare type SchemaMessage = {
/**
* 获取失败时的提示
*/
fetchFailed?: string;
/**
* 获取成功的提示,默认为空。
*/
fetchSuccess?: string;
/**
* 保存失败时的提示。
*/
saveFailed?: string;
/**
* 保存成功时的提示。
*/
saveSuccess?: string;
};
export declare type SchemaFunction = string | Function;
export interface BaseSchema {
type: SchemaType;
/**
* 容器 css 类名
*/
className?: SchemaClassName;
/**
* 配合 definitions 一起使用,可以实现无限循环的渲染器。
*/
$ref?: string;
/**
* 是否禁用
*/
disabled?: boolean;
/**
* 是否禁用表达式
*/
disabledOn?: SchemaExpression;
/**
* 是否隐藏
* @deprecated 推荐用 visible
*/
hidden?: boolean;
/**
* 是否隐藏表达式
* @deprecated 推荐用 visibleOn
*/
hiddenOn?: SchemaExpression;
/**
* 是否显示
*/
visible?: boolean;
/**
* 是否显示表达式
*/
visibleOn?: SchemaExpression;
}
export { PageSchema };