UNPKG

@aplus-frontend/ui

Version:

50 lines (49 loc) 1.75 kB
import { ButtonProps, MenuItemProps } from '@aplus-frontend/antdv'; import { ApButtonProps } from '../../ap-button/interface'; import { DropdownButtonProps } from '@aplus-frontend/antdv/es/dropdown'; import { VNodeChild } from 'vue'; import { ColumnType } from '@aplus-frontend/antdv/es/table'; type ApBatchActionGroupButtonType = ButtonProps['type'] | 'borderLink'; type MixinButton<T> = Omit<T, 'type'> & { type?: ApBatchActionGroupButtonType; content?: VNodeChild; }; interface ApBatchActionGroupTypeProps { default: ApButtonProps & { content?: VNodeChild; }; dropdown: MixinButton<DropdownButtonProps>; } export type ApBatchActionGroupPropsKeys = keyof ApBatchActionGroupTypeProps; export type ApBatchActionGroupButtonProps<T extends ApBatchActionGroupPropsKeys = ApBatchActionGroupPropsKeys> = T extends ApBatchActionGroupPropsKeys ? { dropdownType?: T; } & ApBatchActionGroupTypeProps[T] : never; export type ApBatchActionGroupMenuProps<RecordType = any> = Omit<MenuItemProps, 'title' | 'icon' | 'role' | 'originItemValue' | 'onClick'> & { content?: VNodeChild; onClick?: (item?: { selectedRows?: RecordType[]; }) => Promise<any> | any; auth?: string; ifShow?: (item?: { selectedRows?: RecordType[]; }) => boolean; }; export type ApBatchActionGroupProps<RecordType = any> = { /** * 选中行的列表 */ selectedRows?: RecordType[]; /** * 按钮配置 */ buttonProps?: ApBatchActionGroupButtonProps; /** * 下拉列表配置 */ menuList?: ApBatchActionGroupMenuProps<RecordType>[]; }; export type ApBatchActionGroupExpose<RecordType = any> = { columns?: ColumnType<any>[]; dataSource?: RecordType[]; }; export {};