123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import type { DrawerApi } from './drawer-api';
- import type { Component, Ref } from 'vue';
- export interface DrawerProps {
- /**
- * 取消按钮文字
- */
- cancelText?: string;
- /**
- * 是否显示右上角的关闭按钮
- * @default true
- */
- closable?: boolean;
- /**
- * 点击弹窗遮罩是否关闭弹窗
- * @default true
- */
- closeOnClickModal?: boolean;
- /**
- * 按下 ESC 键是否关闭弹窗
- * @default true
- */
- closeOnPressEscape?: boolean;
- /**
- * 确定按钮 loading
- * @default false
- */
- confirmLoading?: boolean;
- /**
- * 确定按钮文字
- */
- confirmText?: string;
- /**
- * 弹窗描述
- */
- description?: string;
- /**
- * 是否显示底部
- * @default true
- */
- footer?: boolean;
- /**
- * 弹窗是否显示
- * @default false
- */
- loading?: boolean;
- /**
- * 是否显示遮罩
- * @default true
- */
- modal?: boolean;
- /**
- * 弹窗标题
- */
- title?: string;
- /**
- * 弹窗标题提示
- */
- titleTooltip?: string;
- }
- export interface DrawerState extends DrawerProps {
- /** 弹窗打开状态 */
- isOpen?: boolean;
- /**
- * 共享数据
- */
- sharedData?: Record<string, any>;
- }
- export type ExtendedDrawerApi = {
- useStore: <T = NoInfer<DrawerState>>(
- selector?: (state: NoInfer<DrawerState>) => T,
- ) => Readonly<Ref<T>>;
- } & DrawerApi;
- export interface DrawerApiOptions extends DrawerState {
- /**
- * 独立的弹窗组件
- */
- connectedComponent?: Component;
- /**
- * 关闭前的回调,返回 false 可以阻止关闭
- * @returns
- */
- onBeforeClose?: () => void;
- /**
- * 点击取消按钮的回调
- */
- onCancel?: () => void;
- /**
- * 点击确定按钮的回调
- */
- onConfirm?: () => void;
- /**
- * 弹窗状态变化回调
- * @param isOpen
- * @returns
- */
- onOpenChange?: (isOpen: boolean) => void;
- }
|