@aplus-frontend/ui
Version:
114 lines (113 loc) • 2.65 kB
TypeScript
import { DropdownProps, ModalFuncProps, PopconfirmProps, TooltipProps } from '@aplus-frontend/antdv';
import { VNode } from 'vue';
export type ActionColor = 'primary' | 'success' | 'error' | 'warn';
export type ApActionItemProps = {
/**
* 文本
*/
text?: string | VNode;
/**
* 预定义文本颜色
*/
color?: ActionColor;
/**
* 是否禁用
*/
disabled?: boolean;
/**
* 是否可见
*/
visible?: boolean;
/**
* 点击时的动作,支持异步
* @param e
* @returns
*/
onAction?: (e: MouseEvent) => Promise<any>;
/**
* 基础点击事件
* @param e
* @returns
*/
onClick?: (e: MouseEvent) => void;
/**
* 是否显示loading效果
*/
loading?: boolean;
/**
* 配置左侧显示的图标
* @since 6.37.0
*/
icon?: any;
/**
* 是否优先显示图标
*/
iconFirst?: boolean;
/**
* 优先显示图标时,对弹出的tooltip进行设置
*/
tooltip?: Partial<Omit<TooltipProps, 'title'>>;
};
export type MixedActionTypes = ApActionItemProps | ApActionItemModalProps | ApActionItemPopconfirmProps;
export type GroupActionTypes = MixedActionTypes | ApActionItemDropdownProps;
export type ApActionItemDropdownProps = {
/**
* 触发下拉的行为
*/
trigger?: DropdownProps['trigger'];
/**
* 菜单弹出的位置
*/
placement?: DropdownProps['placement'];
/**
* 下拉菜单中的行为项配置
*/
actions?: MixedActionTypes[];
/**
* 是否显示向下的箭头
*/
showIcon?: boolean;
} & Omit<ApActionItemProps, 'onAction'>;
export type ApActionGroupProps = {
count?: number;
/**
* 触发下拉的行为
*/
trigger?: DropdownProps['trigger'];
/**
* 菜单弹出的位置
*/
placement?: DropdownProps['placement'];
/**
* 菜单项配置
*/
actions?: GroupActionTypes[];
/**
* 对于平铺Action,优先显示图标
*/
iconFirst?: boolean;
};
export type ApActionItemModalProps = ApActionItemProps & {
/**
* 对话框的具体配置
*/
modalProps?: Omit<ModalFuncProps, 'type'>;
};
export type ApActionItemPopconfirmProps = ApActionItemProps & {
popconfirmProps?: PopconfirmProps;
};
/**
* ApActionItem支持的插槽
*/
export type ApActionItemSlots = {
default?: any;
trigger?: (options: {
loading: boolean;
disabled: boolean;
onClick: (e: MouseEvent) => void;
}) => any;
/**
* 自定义左侧图标
*/
icon?: any;
};