long
2021-04-08 c2b28e50d4abc170a55090850f4a6cdd4b06d9e7
提交 | 用户 | age
2a61f6 1 // 这是一个对http请求出现不同的code的处理
L 2 //  import router from '../router/index';
3 import { Loading } from 'element-ui'
4 //  import { Promise } from 'core-js';
5
6 let loading
7 var currentStates = {
8   // 当前的状态集合 可以设置那些是在请求完成之后关闭的loading
9   200: true, // 可以在请求之后结束loading
10   404: false, // 出现404的时候不取消loading
11   502: false // 出现502的时候不取消loading
12 }
13 var currentStateCode // 当前的状态
14 //  todo 补全状态码报错
15 var httpEventCode = {
16   code200(data) {
17     // 200拦截
18     currentStateCode = 200
19     if (data.data.status === 1) {
20       // router.replace({path:'/login'})
21       // console.log(data.data.errMsg,'errMsg')
22
23     }
24     // console.log(data,200)
25   },
26   code502() {
27     currentStateCode = 502
28     loading.close()
29     loading = Loading.service({
30       lock: true,
31       text: '服务器异常502',
32       background: 'rgba(0, 0, 0, 0.7)'
33     })
34     // 404 拦截
35     // console.log(data,404)
36   },
37   code404() {
38     // 404 拦截
39     currentStateCode = 404
40     loading.close()
41     loading = Loading.service({
42       lock: true,
43       text: '请求服务器404',
44       background: 'rgba(0, 0, 0, 0.7)'
45     })
46   },
47   code400() {
48     // 400拦截
49     // console.log(data,400)
50   }
51
52 }
53
54 function startRequest(httpObj, requestObj) {
55   console.log(requestObj)
56   if (requestObj && requestObj.udData && requestObj.udData.noLoading) {
57     return
58   }
59   // console.log('请求前')
60   loading = Loading.service({
61     lock: true,
62     text: '加载中……',
63     // background: 'rgba(0, 0, 0, 0.7)'
64     background: 'rgba(255,255,255,0.6)'
65   })
66 }
67
68 function endRequest() {
69   // console.log('请求后')
70 }
71
72 function concurrentRequests() {
73   // 检测一次多个请求全部完成之后触发
74   if (currentStates[currentStateCode]) {
75     // 只有正确的code才可以被取消loading
76     loading && loading.close()
77   }
78 }
79
80 //  function defindFlow(o) {
81 //      // 自定义流程与返回数据
82 //      // o.requestConfig 请求参数
83 //      // o.res 上一次的返回结果
84 //      // o.Request 总请求方法
85 //      return new Promise((resolve, reject) => {
86 //          //  console.log(o)
87 //      })
88 //  }
89 // defindFlow
90 export { httpEventCode, startRequest, endRequest, concurrentRequests }