import Keys from '@/api/Keys' import type { Result } from '@/api/basic/httpTypes' import { ElMessage, ElMessageBox, ElNotification } from 'element-plus' export const useMessage = () => { return { // 消息提示 info(content: string) { ElMessage.info(content) }, // 错误消息 error(content: string) { ElMessage.error(content) }, // 成功消息 success(content: string) { ElMessage.success(content) }, // 警告消息 warning(content: string) { ElMessage.warning(content) }, // 弹出提示 alert(content: string) { ElMessageBox.alert(content, '系统提示') }, // 错误提示 alertError(content: string) { ElMessageBox.alert(content, '系统提示', { type: 'error' }) }, // 成功提示 alertSuccess(content: string) { ElMessageBox.alert(content, '系统提示', { type: 'success' }) }, // 警告提示 alertWarning(content: string) { ElMessageBox.alert(content, '系统提示', { type: 'warning' }) }, // 通知提示 notify(content: string) { ElNotification.info(content) }, // 错误通知 notifyError(content: string, tip?: string) { ElNotification.error({ title: tip ? tip : '系统提示', message: content, }) }, // 成功通知 notifySuccess(content: string) { ElNotification.success(content) }, // 警告通知 notifyWarning(content: string) { ElNotification.warning(content) }, // 确认窗体 confirm(content: string, tip?: string) { return ElMessageBox.confirm(content, tip ? tip : '系统提示', { confirmButtonText: '确定', cancelButtonText: '取消', confirmButtonClass: 'el-button--success', cancelButtonClass: 'el-button--default', type: 'warning', }) }, forceConfirm(content: string, tip?: string, buttonText?: string) { return ElMessageBox.confirm(content, tip ? tip : '系统提示', { confirmButtonText: buttonText ?? '确定', showCancelButton: false, closeOnClickModal: false, closeOnPressEscape: false, confirmButtonClass: 'el-button--success', cancelButtonClass: 'el-button--default', showClose: false, type: 'warning', }) }, // 删除窗体 delConfirm(content?: string, tip?: string) { return new Promise((resolve, reject) => { ElMessageBox.confirm( content ? content : '是否确认删除数据项?', tip ? tip : '系统提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning', confirmButtonClass: 'el-button--success', cancelButtonClass: 'el-button--default', } ) .then(() => { resolve('') }) .catch(() => { reject('') }) }) }, // 导出窗体 exportConfirm(content?: string, tip?: string) { return ElMessageBox.confirm( content ? content : '是否确认导出数据项?', tip ? tip : '系统提示', { confirmButtonText: '确定', cancelButtonText: '取消', confirmButtonClass: 'el-button--success', cancelButtonClass: 'el-button--default', type: 'warning', } ) }, // 提交内容 prompt(content: string, tip: string) { return ElMessageBox.prompt(content, tip, { confirmButtonText: '确定', cancelButtonText: '取消', confirmButtonClass: 'el-button--success', cancelButtonClass: 'el-button--default', type: 'warning', }) }, promptVerify(content: string, tip: string, pattern: string, inputErrorMessage = '') { const PatternRegExp = new RegExp( `^${pattern.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')}$` ) return ElMessageBox.prompt(content, tip, { confirmButtonText: '确定', cancelButtonText: '取消', confirmButtonClass: 'el-button--success', cancelButtonClass: 'el-button--default', inputPattern: PatternRegExp, inputErrorMessage: inputErrorMessage, type: 'warning', }) }, } } export function isResError(res: Result, msg?: string) { if (res.code === Keys.CODE_SUCCEED || res.status === 200 || res.code === 200) return false ElMessage.error(res?.msg ?? msg) return true }