Browse Source

提示一次

yuwandanmian 2 years ago
parent
commit
3f8646277d
4 changed files with 45 additions and 9 deletions
  1. 6 3
      src/axios/index.js
  2. 6 3
      src/axios/index2.js
  3. 6 3
      src/axios/index3.js
  4. 27 0
      src/utils/messageOnce.js

+ 6 - 3
src/axios/index.js

@@ -3,6 +3,9 @@ import axios from 'axios';
 import { Message, Loading } from 'element-ui';
 import { getToken, setToken, removeToken } from '@/utils/auth';
 import router from '@/router'
+import domMessage from '@/utils/messageOnce'
+
+const messageOnce = new domMessage()
 // 公共数据
 let loadingInstance = null; // 声明loading
 let loadingCount = 0; // 声明接口并发计数器
@@ -23,7 +26,7 @@ function errorLog(error) {
     console.log(error);
   }
   // 显示提示
-  Message({
+  messageOnce.error({
     message: error.message,
     type: 'error',
     duration: 5 * 1000,
@@ -79,7 +82,7 @@ service.interceptors.response.use(
       return dataAxios;
     } else {
       if (code == 4001) {
-        Message({
+        messageOnce.error({
           message: `${dataAxios.msg}`,
           type: 'error',
           duration: 5 * 1000,
@@ -91,7 +94,7 @@ service.interceptors.response.use(
         router.push({path:`/login?redirect=${router.currentRoute.fullPath}`})
         return
       }
-      Message({
+      messageOnce.error({
         message: `${dataAxios.msg}`,
         type: 'error',
         duration: 5 * 1000,

+ 6 - 3
src/axios/index2.js

@@ -3,6 +3,9 @@ import axios from 'axios';
 import { Message, Loading } from 'element-ui';
 import { getToken, setToken, removeToken } from '@/utils/auth';
 import router from '@/router'
+import domMessage from '@/utils/messageOnce'
+
+const messageOnce = new domMessage()
 // 公共数据
 let loadingInstance = null; // 声明loading
 let loadingCount = 0; // 声明接口并发计数器
@@ -23,7 +26,7 @@ function errorLog(error) {
     console.log(error);
   }
   // 显示提示
-  Message({
+  messageOnce.error({
     message: error.message,
     type: 'error',
     duration: 5 * 1000,
@@ -78,7 +81,7 @@ service2.interceptors.response.use(
       return dataAxios;
     } else {
       if (code == 4001) {
-        Message({
+        messageOnce.error({
           message: `${dataAxios.msg}`,
           type: 'error',
           duration: 5 * 1000,
@@ -90,7 +93,7 @@ service2.interceptors.response.use(
         router.push({path:`/login?redirect=${router.currentRoute.fullPath}`})
         return
       }
-      Message({
+      messageOnce.error({
         message: `${dataAxios.msg}`,
         type: 'error',
         duration: 5 * 1000,

+ 6 - 3
src/axios/index3.js

@@ -3,6 +3,9 @@ import axios from 'axios';
 import { Message, Loading } from 'element-ui';
 import { getToken, setToken, removeToken } from '@/utils/auth';
 import router from '@/router'
+import domMessage from '@/utils/messageOnce'
+
+const messageOnce = new domMessage()
 // 公共数据
 let loadingInstance = null; // 声明loading
 let loadingCount = 0; // 声明接口并发计数器
@@ -23,7 +26,7 @@ function errorLog(error) {
     console.log(error);
   }
   // 显示提示
-  Message({
+  messageOnce.error({
     message: error.message,
     type: 'error',
     duration: 5 * 1000,
@@ -78,7 +81,7 @@ service3.interceptors.response.use(
       return dataAxios;
     } else {
       if (code == 4001) {
-        Message({
+        messageOnce.error({
           message: `${dataAxios.msg}`,
           type: 'error',
           duration: 5 * 1000,
@@ -90,7 +93,7 @@ service3.interceptors.response.use(
         router.push({path:`/login?redirect=${router.currentRoute.fullPath}`})
         return
       }
-      Message({
+      messageOnce.error({
         message: `${dataAxios.msg}`,
         type: 'error',
         duration: 5 * 1000,

+ 27 - 0
src/utils/messageOnce.js

@@ -0,0 +1,27 @@
+import { Message } from 'element-ui'
+// 私有属性,只在当前文件可用
+const showMessage = Symbol('showMessage')
+export default class domMessage {
+    success(options, single = true) {
+        this[showMessage]('success', options, single)
+    }
+    warning(options, single = true) {
+        this[showMessage]('warning', options, single)
+    }
+    info(options, single = true) {
+        this[showMessage]('info', options, single)
+    }
+    error(options, single = true) {
+        this[showMessage]('error', options, single)
+    }
+    [showMessage](type, options, single) {
+        if (single) {
+            // 关键代码,判断当前页是否有el-message标签,如果没有则执行弹窗操作
+            if (document.getElementsByClassName('el-message').length === 0) {
+                Message[type](options)
+            }
+        } else {
+            Message[type](options)
+        }
+    }
+}