import { Component } from 'vue'; /** * 操作项配置 */ export interface MoreActionItem { /** 操作项的唯一标识 */ key: string; /** 操作项显示的文本 */ label: string; /** 是否禁用 */ disabled?: boolean; /** 是否显示分割线 */ divided?: boolean; /** 自定义类名 */ class?: string; /** 自定义样式 */ style?: Record; /** 是否显示(支持函数动态控制) */ visible?: boolean | ((context?: Record | object | null) => boolean); /** 图标(支持字符串或组件) */ icon?: string | Component; /** 危险操作(显示红色) */ danger?: boolean; } /** * 触发按钮配置 */ export interface TriggerButtonProps { /** 按钮类型 */ type?: 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'text'; /** 按钮尺寸 */ size?: 'large' | 'default' | 'small'; /** 是否为链接按钮 */ link?: boolean; /** 按钮文本 */ text?: string; /** 自定义类名 */ class?: string; /** 自定义样式 */ style?: Record; /** 图标 */ icon?: string | Component; } /** * YcMoreActions 组件 Props */ export interface YcMoreActionsProps { /** 操作项列表 */ actions: MoreActionItem[]; /** 触发方式 */ trigger?: 'hover' | 'click' | 'contextmenu'; /** 下拉菜单位置 */ placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end'; /** 是否显示箭头 */ showArrow?: boolean; /** 触发按钮配置 */ triggerButton?: TriggerButtonProps; /** 是否禁用整个组件 */ disabled?: boolean; /** 下拉菜单的类名 */ dropdownClass?: string; /** 下拉菜单的样式 */ dropdownStyle?: Record; /** 上下文数据(用于 visible 函数判断),支持任意对象类型 */ context?: Record | object | null; /** 是否阻止事件冒泡 */ stopPropagation?: boolean; }