/** * 弹窗工具类 - 基于 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} 用户是否点击了确认 * * @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(); } };