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; }