const toastOptions = { duration: 2000, mask: false }; const confirmOptions = { title: '提示', cancelText: '取消', confirmText: '确定', showCancel: true }; export function toast(message, opts = {}) { const options = { ...toastOptions, ...opts } return new Promise((resolve) => { uni.showToast({ title: message, icon: 'none', // mask: options.mask, duration: options.duration, }) if (options.duration > 0) { setTimeout(resolve, options.duration) } else { resolve() } }) } export function hideToast() { uni.hideToast() } export function loading(title = '加载中...') { uni.showLoading({ title, mask: true }) } export function hideLoading() { uni.hideLoading() } // 使用系统原生确认弹窗 export async function confirm(content, opt = {}) { const options = { ...confirmOptions, ...opt } return new Promise((resolve, reject) => { uni.showModal({ title: options.title, content, showCancel: options.showCancel, cancelText: options.cancelText, confirmText: options.confirmText, success: ({ confirm, cancel }) => { if (confirm) { resolve() } else if (cancel) { reject() } } }) }) } // 保存图片到相册 export async function saveImageToPhotosAlbum(filePath) { try { // 检查授权 const authRes = await uni.getSetting() if (!authRes[1].authSetting['scope.writePhotosAlbum']) { // 请求授权 try { await uni.authorize({ scope: 'scope.writePhotosAlbum' }) } catch (err) { await confirm('需要您授权保存相册', { title: '提示', showCancel: false }) await uni.openSetting() return } } // 保存图片 await uni.saveImageToPhotosAlbum({ filePath }) await toast('保存成功') } catch (err) { console.error('保存图片失败:', err) await toast('保存失败') } } // 分享到微信 export function shareToWeChat(options = {}) { const { title = '', path = '', imageUrl = '' } = options return { title, path, imageUrl, success: () => { toast('分享成功') }, fail: (err) => { console.error('分享失败:', err) toast('分享失败') } } }