wot-design-uni
Version:
一个基于Vue3+TS开发的uni-app组件库,提供70+高质量组件,支持暗黑模式、国际化和自定义主题。
191 lines (182 loc) • 3.98 kB
text/typescript
/*
* @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>