|  | @@ -1,8 +1,45 @@
 | 
											
												
													
														|  | 
 |  | +import ElementUI from 'element-ui'
 | 
											
												
													
														|  |  import axios from 'axios'
 |  |  import axios from 'axios'
 | 
											
												
													
														|  |  import { Message } from 'element-ui'
 |  |  import { Message } from 'element-ui'
 | 
											
												
													
														|  |  import store from '@/store'
 |  |  import store from '@/store'
 | 
											
												
													
														|  |  import { getToken } from '@/utils/auth'
 |  |  import { getToken } from '@/utils/auth'
 | 
											
												
													
														|  |  import { Loading } from 'element-ui'
 |  |  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变量
 |  |  let loading        //定义loading变量
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  function startLoading () {    //使用Element loading-start 方法
 |  |  function startLoading () {    //使用Element loading-start 方法
 | 
											
										
											
												
													
														|  | @@ -80,11 +117,12 @@ service.interceptors.response.use(
 | 
											
												
													
														|  |        let data = JSON.parse(JSON.stringify(res.data))
 |  |        let data = JSON.parse(JSON.stringify(res.data))
 | 
											
												
													
														|  |        // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
 |  |        // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
 | 
											
												
													
														|  |        if (data.code == 401 || data.code == 403) {
 |  |        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(() => {
 |  |          setTimeout(() => {
 | 
											
												
													
														|  |            tryHideFullScreenLoading()
 |  |            tryHideFullScreenLoading()
 | 
											
												
													
														|  |            store.dispatch('user/resetToken').then(() => {
 |  |            store.dispatch('user/resetToken').then(() => {
 | 
											
										
											
												
													
														|  | @@ -95,11 +133,14 @@ service.interceptors.response.use(
 | 
											
												
													
														|  |          return;
 |  |          return;
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  |        if (data.code != 200) {
 |  |        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()
 |  |          tryHideFullScreenLoading()
 | 
											
												
													
														|  |          return Promise.reject(new Error(data.msg || 'Error'))
 |  |          return Promise.reject(new Error(data.msg || 'Error'))
 | 
											
												
													
														|  |        } else {
 |  |        } else {
 | 
											
										
											
												
													
														|  | @@ -117,11 +158,12 @@ service.interceptors.response.use(
 | 
											
												
													
														|  |    },
 |  |    },
 | 
											
												
													
														|  |    error => {
 |  |    error => {
 | 
											
												
													
														|  |      // console.log('err' + error) // for debug
 |  |      // 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()
 |  |      tryHideFullScreenLoading()
 | 
											
												
													
														|  |      return Promise.reject(error)
 |  |      return Promise.reject(error)
 | 
											
												
													
														|  |    }
 |  |    }
 |