UNPKG

wot-design-uni

Version:

一个基于Vue3+TS开发的uni-app组件库,提供70+高质量组件,支持暗黑模式、国际化和自定义主题。

191 lines (182 loc) 3.98 kB
/* * @Author: weisheng * @Date: 2023-06-19 12:47:57 * @LastEditTime: 2025-02-16 15:52:17 * @LastEditors: weisheng * @Description: * @FilePath: /wot-design-uni/src/uni_modules/wot-design-uni/components/wd-toast/types.ts * 记得注释 */ import type { ExtractPropTypes, PropType } from 'vue' import { baseProps, makeStringProp } from '../common/props' import type { LoadingType } from '../wd-loading/types' export type ToastIconType = 'success' | 'error' | 'warning' | 'loading' | 'info' // 图标类型 export type ToastPositionType = 'top' | 'middle-top' | 'middle' | 'bottom' // 提示信息框的位置类型 export type ToastDirection = 'vertical' | 'horizontal' // 提示信息框的排列方向 export type ToastLoadingType = LoadingType // 提示信息加载状态类型 export type ToastOptions = { msg?: string duration?: number direction?: ToastDirection iconName?: ToastIconType iconSize?: number loadingType?: ToastLoadingType loadingColor?: string loadingSize?: number iconColor?: string position?: ToastPositionType show?: boolean zIndex?: number /** * 是否存在遮罩层 */ cover?: boolean /** * 图标类名 */ iconClass?: string /** * 类名前缀,用于使用自定义图标 */ classPrefix?: string /** * 完全展示后的回调函数 */ opened?: () => void /** * 完全关闭时的回调函数 */ closed?: () => void } export interface Toast { // 打开Toast show(toastOptions: ToastOptions | string): void // 成功提示 success(toastOptions: ToastOptions | string): void // 关闭提示 error(toastOptions: ToastOptions | string): void // 常规提示 info(toastOptions: ToastOptions | string): void // 警告提示 warning(toastOptions: ToastOptions | string): void // 加载提示 loading(toastOptions: ToastOptions | string): void // 关闭Toast close(): void } export const toastProps = { ...baseProps, /** * 选择器 * @type {string} * @default '' */ selector: makeStringProp(''), /** * 提示信息 * @type {string} * @default '' */ msg: { type: String, default: '' }, /** * 排列方向 * @type {'vertical' | 'horizontal'} * @default 'horizontal' */ direction: makeStringProp<ToastDirection>('horizontal'), /** * 图标名称 * @type {'success' | 'error' | 'warning' | 'loading' | 'info'} * @default '' */ iconName: { type: String as PropType<ToastIconType>, default: '' }, /** * 图标大小 * @type {number} */ iconSize: Number, /** * 加载类型 * @type {'outline' | 'ring'} * @default 'outline' */ loadingType: makeStringProp<ToastLoadingType>('outline'), /** * 加载颜色 * @type {string} * @default '#4D80F0' */ loadingColor: { type: String, default: '#4D80F0' }, /** * 加载大小 * @type {number} */ loadingSize: Number, /** * 图标颜色 * @type {string} */ iconColor: String, /** * 位置 * @type {'top' | 'middle-top' | 'middle' | 'bottom'} * @default 'middle-top' */ position: makeStringProp<ToastPositionType>('middle-top'), /** * 层级 * @type {number} * @default 100 */ zIndex: { type: Number, default: 100 }, /** * 是否存在遮罩层 * @type {boolean} * @default false */ cover: { type: Boolean, default: false }, /** * 图标类名 * @type {string} * @default '' */ iconClass: { type: String, default: '' }, /** * 类名前缀 * @type {string} * @default 'wd-icon' */ classPrefix: { type: String, default: 'wd-icon' }, /** * 完全展示后的回调函数 * @type {Function} */ opened: Function as PropType<() => void>, /** * 完全关闭时的回调函数 * @type {Function} */ closed: Function as PropType<() => void> } export type ToastProps = ExtractPropTypes<typeof toastProps>