143 lines
3.2 KiB
JavaScript
143 lines
3.2 KiB
JavaScript
|
|
/**
|
|||
|
|
* 弹窗工具类 - 基于 Uniapp 原生 API 的简洁实现
|
|||
|
|
*
|
|||
|
|
* 使用系统原生弹窗 API,无需自定义组件
|
|||
|
|
* 提供统一的接口用于显示成功、警告、错误消息和 Toast
|
|||
|
|
*
|
|||
|
|
* @example
|
|||
|
|
* // 显示成功消息
|
|||
|
|
* DialogUtils.showSuccessMessage('成功', '数据已保存');
|
|||
|
|
*
|
|||
|
|
* // 显示确认对话框
|
|||
|
|
* uni.showModal({
|
|||
|
|
* title: '确认',
|
|||
|
|
* content: '确定删除吗?',
|
|||
|
|
* success: (res) => {
|
|||
|
|
* if (res.confirm) {
|
|||
|
|
* // 执行删除
|
|||
|
|
* }
|
|||
|
|
* }
|
|||
|
|
* });
|
|||
|
|
*
|
|||
|
|
* // 显示 Toast 提示
|
|||
|
|
* DialogUtils.toast('保存中...', 'loading');
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
export const DialogUtils = {
|
|||
|
|
/**
|
|||
|
|
* 显示成功消息弹窗
|
|||
|
|
* @param {string} title - 弹窗标题
|
|||
|
|
* @param {string} message - 消息内容
|
|||
|
|
* @param {string} confirmText - 确认按钮文本
|
|||
|
|
*/
|
|||
|
|
showSuccessMessage(title = '成功', message = '', confirmText = '我知道了') {
|
|||
|
|
uni.showModal({
|
|||
|
|
title,
|
|||
|
|
content: message,
|
|||
|
|
showCancel: false,
|
|||
|
|
confirmText
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 显示警告消息弹窗
|
|||
|
|
* @param {string} title - 弹窗标题
|
|||
|
|
* @param {string} message - 消息内容
|
|||
|
|
* @param {string} confirmText - 确认按钮文本
|
|||
|
|
*/
|
|||
|
|
showWarningMessage(title = '提示', message = '', confirmText = '我知道了') {
|
|||
|
|
uni.showModal({
|
|||
|
|
title,
|
|||
|
|
content: message,
|
|||
|
|
showCancel: false,
|
|||
|
|
confirmText
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 显示错误消息弹窗
|
|||
|
|
* @param {string} title - 弹窗标题
|
|||
|
|
* @param {string} message - 消息内容
|
|||
|
|
* @param {string} confirmText - 确认按钮文本
|
|||
|
|
*/
|
|||
|
|
showErrorMessage(title = '错误', message = '', confirmText = '我知道了') {
|
|||
|
|
uni.showModal({
|
|||
|
|
title,
|
|||
|
|
content: message,
|
|||
|
|
showCancel: false,
|
|||
|
|
confirmText
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 显示确认对话框(带取消按钮)
|
|||
|
|
* @param {string} title - 弹窗标题
|
|||
|
|
* @param {string} message - 消息内容
|
|||
|
|
* @param {string} confirmText - 确认按钮文本
|
|||
|
|
* @param {string} cancelText - 取消按钮文本
|
|||
|
|
* @returns {Promise<boolean>} 用户是否点击了确认
|
|||
|
|
*
|
|||
|
|
* @example
|
|||
|
|
* const confirmed = await DialogUtils.showConfirm('确认删除', '确定要删除这条记录吗?');
|
|||
|
|
* if (confirmed) {
|
|||
|
|
* // 执行删除操作
|
|||
|
|
* }
|
|||
|
|
*/
|
|||
|
|
async showConfirm(
|
|||
|
|
title = '确认',
|
|||
|
|
message = '',
|
|||
|
|
confirmText = '确定',
|
|||
|
|
cancelText = '取消'
|
|||
|
|
) {
|
|||
|
|
return new Promise((resolve) => {
|
|||
|
|
uni.showModal({
|
|||
|
|
title,
|
|||
|
|
content: message,
|
|||
|
|
showCancel: true,
|
|||
|
|
confirmText,
|
|||
|
|
cancelText,
|
|||
|
|
success: (res) => {
|
|||
|
|
resolve(res.confirm);
|
|||
|
|
},
|
|||
|
|
fail: () => {
|
|||
|
|
resolve(false);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 显示 Toast 提示
|
|||
|
|
* @param {string} message - 提示消息
|
|||
|
|
* @param {string} icon - 图标类型 (success/error/loading/none)
|
|||
|
|
* @param {number} duration - 显示时长(毫秒),默认 2000
|
|||
|
|
*
|
|||
|
|
* @example
|
|||
|
|
* // 显示加载中提示
|
|||
|
|
* DialogUtils.toast('加载中...', 'loading');
|
|||
|
|
*
|
|||
|
|
* // 显示成功提示(2秒后自动隐藏)
|
|||
|
|
* DialogUtils.toast('保存成功', 'success');
|
|||
|
|
*/
|
|||
|
|
toast(message, icon = 'none', duration = 2000) {
|
|||
|
|
uni.showToast({
|
|||
|
|
title: message,
|
|||
|
|
icon,
|
|||
|
|
duration,
|
|||
|
|
mask: false
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 隐藏 Toast 提示
|
|||
|
|
*
|
|||
|
|
* @example
|
|||
|
|
* DialogUtils.toast('加载中...', 'loading', 0);
|
|||
|
|
* // ... 执行某些操作
|
|||
|
|
* DialogUtils.hideToast();
|
|||
|
|
*/
|
|||
|
|
hideToast() {
|
|||
|
|
uni.hideToast();
|
|||
|
|
}
|
|||
|
|
};
|