UNPKG

vxe-table-select-area

Version:

一个基于 vxe-table 的可区域选中复制、粘贴的组件

325 lines (312 loc) 7.12 kB
import { CreateElement, VNode } from 'vue' import { VXETableComponent } from './component' /** * 弹窗 */ export declare class Modal extends VXETableComponent { /** * 绑定值 */ value?: boolean; /** * 设置窗口唯一标识 */ id?: string; /** * 窗口类型 */ type?: 'alert' | 'confirm' | 'message'; /** * 是否加载中 */ loading?: boolean; /** * 只对 type=alert | confirm | message 有效,消息状态 */ status?: string; /** * 自定义状态图标 */ iconStatus?: string; /** * 只对 type=message 有效,消息距离顶部的位置 */ top?: number | string; /** * 只对 type=modal 有效,窗口的默认位置 */ position?: 'center' | { top?: number; left?: number; }; /** * 窗口的标题 */ title?: string; /** * 只对 type=message 有效,自动关闭的延时 */ duration?: number | string; message?: string | number; /** * 窗口的内容 */ content?: string | number; /** * 是否锁住页面,不允许窗口之外的任何操作 */ lockView?: boolean; /** * 是否锁住滚动条,不允许页面滚动 */ lockScroll?: boolean; /** * 是否显示遮罩层 */ mask?: boolean; /** * 是否允许点击遮罩层关闭窗口 */ maskClosable?: boolean; /** * 是否允许按 Esc 键关闭窗口 */ escClosable?: boolean; /** * 是否允许拖动调整窗口大小 */ resize?: boolean; /** * 是否显示头部 */ showHeader?: boolean; /** * 是否显示底部 */ showFooter?: boolean; /** * 只对 type=modal 有效,是否允许通过双击头部放大或还原窗口 */ dblclickZoom?: boolean; /** * 窗口的宽度 */ width?: number | string; /** * 窗口的高度 */ height?: number | string; /** * 窗口的最小宽度 */ minWidth?: number | string; /** * 窗口的最小高度 */ minHeight?: number | string; /** * 自定义堆叠顺序 */ zIndex?: number; marginSize?: number | string; /** * 默认最大化显示 */ fullscreen?: boolean; /** * 记忆功能,会记住最后操作状态,再次打开窗口时还原窗口状态 */ remember?: boolean; /** * 在窗口关闭时销毁内容 */ destroyOnClose?: boolean; /** * 设置标题内容过长时显示为省略号 */ showTitleOverflow?: boolean; /** * 是否将弹框容器插入于 body 内 */ transfer?: boolean; /** * 是否启用 localStorage 本地保存,会将窗口拖动的状态保存到本地 */ storage?: boolean; storageKey?: string; animat?: boolean; beforeHideMethod?(params: { type: string }): Promise<any>; /** * 手动打开窗口 */ open(): any; /** * 手动关闭窗口 */ close(): any; /** * 获取当前窗口元素 */ getBox(): HTMLElement; /** * 获取窗口位置 */ getPosition(): { top?: number; left?: number; } | null; /** * 设置窗口位置 */ setPosition(top?: number, left?: number): Promise<any>; /** * 判断是否最大化显示 */ isMaximized(): boolean; /** * 切换窗口最大化/还原 */ zoom(): Promise<boolean>; /** * 如果窗口处于常规状态,则最大化窗口 */ maximize(): Promise<any>; /** * 如果窗口处于最大化状态,则还原窗口 */ revert(): Promise<any>; } /** * 窗口类型 */ export declare type ModalOptionTypes = 'alert' | 'confirm' | 'message' /** * 窗口状态 */ export declare type ModalOptionStatus = 'info' | 'success' | 'warning' | 'question' | 'error' | 'loading' /** * 窗口事件类型 */ /** * 窗口事件类型 */ export declare type ModalEventTypes = 'default' | 'mask' | 'close' | 'confirm' | 'cancel' | 'keydown' | 'exist' export interface ModalOptions { id?: string; type?: string; loading?: boolean; status?: ModalOptionStatus; iconStatus?: string; top?: number | string; position?: 'center' | { top?: number; left?: number; }; title?: string; duration?: number | string; message?: string | number; content?: string | number; lockView?: boolean; lockScroll?: boolean; mask?: boolean; maskClosable?: boolean; escClosable?: boolean; resize?: boolean; showHeader?: boolean; showFooter?: boolean; dblclickZoom?: boolean; width?: number | string; height?: number | string; minWidth?: number | string; minHeight?: number | string; zIndex?: number; marginSize?: number | string; fullscreen?: boolean; remember?: boolean; destroyOnClose?: boolean; showTitleOverflow?: boolean; transfer?: boolean; storage?: boolean; storageKey?: string; animat?: boolean; size?: 'medium' | 'small' | 'mini'; beforeHideMethod?(params: { type: string }): Promise<any>; slots?: { default?(params: ModalDefaultSlotParams, h: CreateElement): VNode[] | string[]; header?(params: ModalHeaderSlotParams, h: CreateElement): VNode[] | string[]; title?(params: ModalTitleSlotParams, h: CreateElement): VNode[] | string[]; footer?(params: ModalFooterSlotParams, h: CreateElement): VNode[] | string[]; }; events?: { inserted?(params: ModalEventParams): any; show?(params: ModalEventParams): any; hide?(params: ModalEventParams): any; zoom?(params: ModalEventParams): any; }; } export interface ModalDefaultSlotParams { $modal: Modal; } export interface ModalHeaderSlotParams extends ModalDefaultSlotParams {} export interface ModalTitleSlotParams extends ModalDefaultSlotParams {} export interface ModalFooterSlotParams extends ModalDefaultSlotParams {} export interface ModalEventParams { $modal: Modal; type: string; } /** * 全局窗口控制器 */ export interface ModalController { /** * 创建窗口 * @param options 参数 */ open (options: ModalOptions): Promise<string>; /** * 创建提示框 * @param content 消息内容 * @param title 标题 * @param options 参数 */ alert (content: string, title?: string, options?: ModalOptions): Promise<string>; /** * 创建提示框 * @param options 参数 */ alert (options: ModalOptions): Promise<string>; /** * 创建确认框 * @param content 消息内容 * @param title 标题 * @param options 参数 */ confirm (content: string, title?: string, options?: ModalOptions): Promise<string>; /** * 创建确认框 * @param options 参数 */ confirm (options: ModalOptions): Promise<string>; /** * 创建消息提示 * @param content 消息内容 * @param title 标题 * @param options 参数 */ message (content: string, options?: ModalOptions): Promise<string>; /** * 创建消息提示 * @param options 参数 */ message (options: ModalOptions): Promise<string>; /** * 获取动态的活动窗口 * @param id 窗口唯一标识 */ get (id: string): Modal; /** * 关闭动态的活动窗口,如果为空则关闭所有 * @param id 窗口唯一标识 */ close (id?: string): Promise<any>; }