import { HtmlString, ButtonProps as IProps } from '../types';
export interface ButtonProps extends IProps {
tooltip?: HtmlString;
/**
* 按钮类型
*/
type?: 'primary' | 'danger' | 'info';
/**
* 展示模式
*/
mode?: 'button' | 'text' | 'link' | 'plain' | 'background';
/**
* 按钮显示数量,多出部分以dropdown形式展示
*/
max?: number;
trigger?: 'click' | 'hover';
/**
* 单按钮模式
*/
single?: boolean;
/**
* 按钮组配置, 优先于默认插槽
*/
actions?: ButtonActionsType[];
/**
* 是否显示分割线
*/
/**
* 是否需要交互式确认
*/
isConfirm?: boolean;
/**
* 交互式确认弹框显示内容
*/
confirmContent?: string;
/**
* 交互式确认弹框宽度
*/
confirmWidth?: number;
/**
* 混合模式
*/
mixin?: boolean;
/**
* 是否显示loading
*/
loading?: boolean;
}
export type ButtonActionsType = Pick & {
/**
* 按钮显示名称
*/
name: string;
/**
* 按钮标识,用于判断按钮点击事件
*/
prop: string;
/**
* dropdown中是否显示分割线
*/
divided?: boolean;
index?: number;
isClick?: boolean;
tooltip?: string;
};
export type ButtonValue = {
prop?: string;
index?: number;
detail?: Partial;
};
export type ButtonSlots = {
default: () => any;
after: () => any;
};
export interface ButtonEmits {
(e: 'click', value?: ButtonValue): void;
}