import React from 'react'; import type { TabsProps } from 'antd'; import { Service, Options, Result } from 'ahooks/lib/useRequest/src/types'; export interface CardType { /** * @description 卡片标题 * @default - */ title: string | React.ReactNode; /** * @description 卡片数量 * @default - */ total: number; /** * @description 卡片标签 * @default - */ label: string | React.ReactNode; /** * @description 卡片图标 * @default - */ icon: React.ReactNode; /** * @description 卡片模式 * @default card */ mode?: TabModeEnum; /** * @description 卡片是否加载中 * @default false */ loading?: boolean; [key: string]: any; } export interface ProTabsItemType extends CardType { /** * @description 卡片唯一key * @default - */ key: string; /** * @description 卡片内容 * @default - */ children?: React.ReactNode; /** * @description 卡片是否禁用 * @default false */ disabled?: boolean; [key: string]: any; } export interface ProTabsActionType { /** * @description 获取发生请求的 useRequest 的 ref * @default - */ useRequestRef: Result; } export type TabModeEnum = 'card' | 'line'; export interface ProTabsType extends Omit { /** * @description 卡片数据源 * @default - */ dataSource: ProTabsItemType[]; /** * @description 是否开启tab切换查询 * @default false */ tabSearch?: boolean; onChange?: (activeKey: string, useRequest: Result) => void; /** * @description card:卡片模式 tab tab模式 * @default card */ mode?: TabModeEnum; /** * @description 远程请求接口 * @default - */ useRequest?: { service: Service; options?: Options; }; /** * @description 卡片大小 * @default default */ size?: 'small' | 'middle' | 'large'; [key: string]: any; }