123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- import {
- ElMessage,
- ElMessageBox,
- ElNotification,
- ElLoading,
- type ElMessageBoxOptions
- } from 'element-plus'
- import type { LoadingInstance } from 'element-plus/es/components/loading/src/loading'
- export class Feedback {
- private loadingInstance : LoadingInstance | null = null
- static instance : Feedback | null = null
- static getInstance() {
- return this.instance ?? (this.instance = new Feedback())
- }
- // 消息提示
- msg(msg : string) {
- ElMessage.info(msg)
- }
- // 错误消息
- msgError(msg : string) {
- ElMessage.error(msg)
- }
- // 成功消息
- msgSuccess(msg : string) {
- ElMessage.success(msg)
- }
- // 警告消息
- msgWarning(msg : string) {
- ElMessage.warning(msg)
- }
- // 弹出提示
- alert(msg : string) {
- ElMessageBox.alert(msg, '系统提示')
- }
- // 错误提示
- alertError(msg : string) {
- ElMessageBox.alert(msg, '系统提示', { type: 'error' })
- }
- // 成功提示
- alertSuccess(msg : string) {
- ElMessageBox.alert(msg, '系统提示', { type: 'success' })
- }
- // 警告提示
- alertWarning(msg : string) {
- ElMessageBox.alert(msg, '系统提示', { type: 'warning' })
- }
- // 通知提示
- notify(msg : string) {
- ElNotification.info(msg)
- }
- // 错误通知
- notifyError(msg : string) {
- ElNotification.error(msg)
- }
- // 成功通知
- notifySuccess(msg : string) {
- ElNotification.success(msg)
- }
- // 警告通知
- notifyWarning(msg : string) {
- ElNotification.warning(msg)
- }
- // 确认窗体
- confirm(msg : string) {
- return ElMessageBox.confirm(msg, '温馨提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- })
- }
- // 提交内容
- prompt(content : string, title : string, options ?: ElMessageBoxOptions) {
- return ElMessageBox.prompt(content, title, {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- ...options
- })
- }
- // 提交内容
- messageBox(content : string, imageUrl: string, fileName: string) {
- ElMessageBox.confirm(
- content,
- {
- title: '温馨提示',
- dangerouslyUseHTMLString: true, // 允许使用 HTML 字符串
- confirmButtonText: '下载',
- cancelButtonText: '取消',
- }
- )
- .then(async () => {
- const response = await fetch(imageUrl);
- if (!response.ok) {
- throw new Error('图片下载失败');
- }
- // 将图片数据转换为 Blob
- const blob = await response.blob();
- const url = window.URL.createObjectURL(blob);
-
- const link = document.createElement('a')
- link.style.display = 'none'
- link.href = url
- link.setAttribute('download', fileName || "img.png")
- document.body.appendChild(link)
- link.click()
- document.body.removeChild(link) // 下载完成移除元素
- window.URL.revokeObjectURL(url)
- ElMessage.success('图片下载成功');
- console.log('用户点击了下载');
- })
- .catch(() => {
- console.log('用户点击了取消');
- });
- }
- // 打开全局loading
- loading(msg : string) {
- this.loadingInstance = ElLoading.service({
- lock: true,
- text: msg
- })
- }
- // 关闭全局loading
- closeLoading() {
- this.loadingInstance?.close()
- }
- }
- const feedback = Feedback.getInstance()
- export default feedback
|