import { ReactNode } from 'react' import { FormProps, RowProps, message } from 'antd' import { ArgsProps as NotificationArgsProps } from 'antd/es/notification' import { ArgsProps as MessageArgsProps } from 'antd/es/message' import { Options as UseRequestOptions, Result as UseRequestResult } from 'ahooks/es/useRequest/src/types' import { ProFieldValueFieldType, ProFormRenderParams, ProFormProps, ProFormInstance } from '@fexd/pro-form' import { UseProStateOptions, ButtonActionType } from '@fexd/pro-utils' export interface ProTableResponse { [key: string]: any success: boolean data?: T message?: string | MessageArgsProps notification?: string | NotificationArgsProps } export interface ProTableQueryFieldType extends ProFieldValueFieldType { hook?: (params: { [key: string]: any form: ProFormInstance }) => Omit | void | undefined | null | boolean | ReactNode } export interface ProTableQueryFieldRenderParams extends ProFormRenderParams { rawActions: ReactNode actions: ReactNode rawActionsWithFold: ReactNode actionsWithFold: ReactNode fold: ReactNode query: ReactNode reset: ReactNode showMore: boolean } // 查询插件参数 export interface ProTableQueryFieldPluginConfig { /** 查询动作 */ onQuery?: | ((params: any, extraParams: any) => Promise | R[] | void>) | UseRequestResult /** 是否手动请求,默认为 false */ manualQuery?: boolean /** 查询表单一行 N 个,默认值 4, */ queryFieldColumns?: number queryFieldGutter?: RowProps['gutter'] queryFieldLayout?: FormProps['layout'] queryFieldFormProps?: ProFormProps /** 是否清空查询表单空参数 */ queryFieldFilterEmptyParam?: boolean /** 重置查询表单后是否刷新 */ queryFieldRefreshAfterReset?: boolean /** 查询表单默认展示前 N 行,默认值 1, */ queryFieldDefaultLines?: number /** 查询表单默认展示前 N 个, 无默认值,如果使用此项将覆盖 queryFieldDefaultLines 行为 */ queryFieldDefaultLength?: number /** 单独配置搜索表单,此项存在时,columns 内配置将失效 */ queryFields?: ProTableQueryFieldType[] | ProTableQueryFieldType[][] /** 搜索表单项的排序 */ queryFieldOrder?: string[] /** 是否隐藏查询表单 */ hideQueryFields?: boolean /** 是否回车键触发表单查询 */ queryFieldTriggerOnEnter?: boolean /** 查询表单服务的配置,见 https://ahooks.js.org/zh-CN/hooks/use-request/basic#options */ queryFieldServiceOptions?: UseRequestOptions renderQueryFields?: (params: ProTableQueryFieldRenderParams) => ReactNode /** 参数持久化 key 值 */ queryFieldPersistKey?: string /** 参数持久化类型,默认为 sessionStorage */ queryFieldPersistType?: UseProStateOptions['persist'] /** 参数持久化 Form 部分排除项的 value key 名 */ queryFieldPersistFormKeyExcludes?: string[] /** 参数持久化分页部分排除项的 value key 名 */ queryFieldPersistPaginationParamsKeyExcludes?: ('page' | 'pageSize' | Omit)[] /** 是否持久化分页部分,默认存在 queryFieldPersistKey 则持久化 */ queryFieldPersistPaginationParams?: boolean /** 是否持久化 Form 部分,默认存在 queryFieldPersistKey 则持久化 */ queryFieldPersistForm?: boolean /** 当重置按钮点击时的回调 */ onQueryFieldReset?: (...args: any) => any /** 查询区域按钮排序 */ queryFieldActionSortList?: ('query' | 'reset' | 'fold' | 'text-fold')[] queryFieldFoldActionProps?: ButtonActionType queryFieldTextFoldActionProps?: ButtonActionType queryFieldQueryActionProps?: ButtonActionType queryFieldResetActionProps?: ButtonActionType }