import { App } from 'utils/types'; import { SizeType } from 'components/ui'; export namespace PagesAPI { export namespace List { export interface ListColumn { id?: number; name?: number; } export interface Response { pageSize: number; pageNo: number; total: number; totalPages: number; list: ListColumn[]; } } export namespace Detail { export interface ListColumn { id?: string | number; createTime?: string; } export interface Response { pageSize: number; pageNo: number; total: number; list: ListColumn[]; } } } export namespace Component { export interface ModuleProps { handle: any, } export namespace Basic { export namespace Layout { export enum Type { tabs = 'tabs', exchange = 'exchange', } } export namespace Loader { export enum Type { modal = 'modal', drawer = 'drawer', cover = 'cover', } } } export namespace Business { // 模块 export enum ModuleType { table = 'table', form = 'form', chart = 'chart', search = 'search', } export enum DescType { normal = 'normal', tooltip = 'tooltip', } export interface Desc { type: DescType, text: string, } export interface ModuleConfig { uuid: string; type: ModuleType; name?: string; desc?: string | Desc; children: Element } // 行为 export enum TriggerType { // 按钮行为 fetch = 'fetch', click = 'click', search = 'search', submit = 'submit', confirm = 'confirm', export = 'export', reset = 'reset', cancel = 'cancel', link = 'link', route = 'route', // 表单值变化行为 change = 'change', blur = 'blur', contain = 'contain', notContain = 'notContain', } export enum ResultType { show = 'show', fetch = 'fetch', disabled = 'disabled', } export enum ExportType { front = 'front', back = 'back', } export enum ConfirmMode { batch = 'batch', default = 'default', } export enum FormDataSrcType { ajax = 'ajax', cache = 'cache', } export enum FormAtomicDataSrcType { ajax = 'ajax', cache = 'default', } export interface Status { type: ResultType; trigger: TriggerType; triggerKey: string; triggerValue: (string | number)[]; } export interface Result { type: ResultType; moduleIds?: string[]; atomicKeys?: string[] | string; goto?: string; } export enum FormMode { create = 'create', edit = 'edit', } export interface Action { key: string; label: string; type: TriggerType; desc?: Desc; btnType: 'link' | 'primary' | 'text' | 'ghost' | 'default' | 'dashed' | undefined, btnSize: SizeType, auth: string; status: Status; result: Result[]; ajax: App.Ajax; ajaxKey?: string | string[]; ajaxAliasKey?: string; // link | route goto?: string, // Confirm mode?: ConfirmMode | FormMode; logText: string; logKey: string; // Fetch dataSrc: FormDataSrcType; // Export exportType: ExportType; fileName?: string; } export interface ActionContainer { label: string, action: Action[] } export interface Interact { type: ResultType; trigger: TriggerType; triggerKey: string | string[]; triggerValue: (string | number)[]; result: Result; } } }