| 
					
				 | 
			
			
				@@ -1,8 +1,45 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import ElementUI from 'element-ui' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import axios from 'axios' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { Message } from 'element-ui' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import store from '@/store' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { getToken } from '@/utils/auth' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { Loading } from 'element-ui' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// import '@/main' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import Vue from 'vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const showMessage = Symbol('showMessage') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class DonMessage { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 判断是否已存在Message 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (document.getElementsByClassName('el-message').length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Message[type](options) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      Message[type](options) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// ...  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Vue.use(ElementUI) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 命名根据需要,DonMessage只是在文章中使用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Vue.prototype.$message = new DonMessage() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let vue = new Vue() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let loading        //定义loading变量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function startLoading () {    //使用Element loading-start 方法 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -80,11 +117,12 @@ service.interceptors.response.use( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       let data = JSON.parse(JSON.stringify(res.data)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (data.code == 401 || data.code == 403) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Message({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          message: `登陆过期,请重新登录!`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          type: 'error', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          duration: 5 * 1000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Message({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   message: `登陆过期,请重新登录!`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   type: 'error', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   duration: 5 * 1000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vue.$message.error(`登陆过期,请重新登录!`) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         setTimeout(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           tryHideFullScreenLoading() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           store.dispatch('user/resetToken').then(() => { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -95,11 +133,14 @@ service.interceptors.response.use( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (data.code != 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Message({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          message: data.msg || `请求失败code码为${data.code}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          type: 'error', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          duration: 5 * 1000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Message({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   message: data.msg || `请求失败code码为${ data.code }`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   type: 'error', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   duration: 5 * 1000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let str = data.msg || `请求失败code码为${data.code}` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // console.log(Vue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vue.$message.error(str) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         tryHideFullScreenLoading() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return Promise.reject(new Error(data.msg || 'Error')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -117,11 +158,12 @@ service.interceptors.response.use( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   error => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // console.log('err' + error) // for debug 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Message({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      message: error.message, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      type: 'error', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      duration: 5 * 1000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // Message({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   message: error.message, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   type: 'error', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //   duration: 5 * 1000 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    vue.$message.error(error.message) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     tryHideFullScreenLoading() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return Promise.reject(error) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 |