fastlion-amis
Version:
一种MIS页面生成工具
92 lines (91 loc) • 2.63 kB
TypeScript
import React from 'react';
import { RendererProps } from '../factory';
import { BaseSchema, SchemaClassName, SchemaCollection, SchemaTpl } from '../Schema';
import { ActionSchema } from './Action';
import { FormSchemaHorizontal } from './Form/index';
/**
* Panel渲染器。
* 文档:https://baidu.gitee.io/amis/docs/components/panel
*/
export interface PanelSchema extends BaseSchema {
/**
* 指定为Panel渲染器。
*/
type: 'panel';
/**
* 按钮集合
*/
actions?: Array<ActionSchema>;
/**
* 按钮集合外层类名
*/
actionsClassName?: SchemaClassName;
/**
* 内容区域
*/
body?: SchemaCollection;
/**
* 配置 Body 容器 className
*/
bodyClassName?: SchemaClassName;
/**
* 底部内容区域
*/
footer?: SchemaCollection;
/**
* 配置 footer 容器 className
*/
footerClassName?: SchemaClassName;
/**
* footer 和 actions 外层 div 类名。
*/
footerWrapClassName?: SchemaClassName;
/**
* 头部内容, 和 title 二选一。
*/
header?: SchemaCollection;
/**
* 配置 header 容器 className
*/
headerClassName?: SchemaClassName;
/**
* Panel 标题
*/
title?: SchemaTpl;
/**
* 固定底部, 想要把按钮固定在底部的时候配置。
*/
affixFooter?: boolean | 'always';
/**
* 配置子表单项默认的展示方式。
*/
subFormMode?: 'normal' | 'inline' | 'horizontal';
/**
* 如果是水平排版,这个属性可以细化水平排版的左右宽度占比。
*/
subFormHorizontal?: FormSchemaHorizontal;
}
export interface PanelProps extends RendererProps, Omit<PanelSchema, 'type' | 'className' | 'panelClassName' | 'bodyClassName'> {
}
export interface PanelState {
loading: boolean;
}
export default class Panel extends React.Component<PanelProps, PanelState> {
static propsList: Array<string>;
static defaultProps: {};
parentNode?: any;
unSensor: Function;
affixDom: React.RefObject<HTMLDivElement>;
footerDom: React.RefObject<HTMLDivElement>;
timer: ReturnType<typeof setTimeout>;
constructor(props: PanelProps);
setPanelLoading(loading: boolean): void;
componentDidMount(): void;
componentWillUnmount(): void;
affixDetect(): void;
renderBody(): JSX.Element | null;
renderActions(): JSX.Element[] | null;
render(): JSX.Element;
}
export declare class PanelRenderer extends Panel {
}