gx
queenwuli
2021-01-28 b83ba3cc4687f21d744e9866e10e30e91229e8a4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/**
 * http 请求工具类
 * */
 import StorageUtil from './storageUtils.js'
 import JSEncrypt from '../../static/lib/jsencrypt.min.js';
 
 const httpUtils = {
     // #ifdef H5
     baseUrl: '/api',
     // #endif
     // #ifndef H5
     baseUrl: 'http://myapp.jyymatrix.cc',
     // #endif
    handleToken(url){
        let token = StorageUtil.getStorage('userInfo','token');
        if (!token) {
            return '';
        }
        const publicKey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCWvK6UWCtSp/8qnTqyUfO0wbg4CuxOe7IeiDSAmATfHnWqBPnbZ73qQ4A90vGowB7mp5XnmBvgTwfXtDh08yd4btlHwSD3ShbRyGfGfV8lc47ZTLiJH0xuuN2iHfnfj8zQ5kcqijeotggo2rF8Uu7KSR3HxVyN9mO22C6p1r5wVQIDAQAB';
        let encrypt = new JSEncrypt();
        encrypt.setPublicKey(publicKey);
        let timeStamp = new Date().getTime();
        return encrypt.encrypt(token + '_' + timeStamp + '_' + url);
    },
    request (url, data = {}, method = 'GET', extraObj = {isShowLoad: false}) {
        let header = {
            'Authorization': 'Bearer ' + this.handleToken(url),
            'lang': 'zh_CN',
            'content-type': 'application/json; charset=utf-8'
        }
        return new Promise((resolve, reject) => {
            if(extraObj.isShowLoad){
                uni.showLoading({
                    mask: true,
                    title: '加载中'
                })
            }
            uni.request({
                url: this.baseUrl + url,
                method,
                data,
                header,
                sslVerify: false,
                success: (res) => {
                    let result = res.data;
                    if(!this.isNotLogin(result)){
                        resolve(result);
                    }else {
                        // 用户信息失效
                        uni.removeStorage({
                            key: 'userInfo',
                            success: (res) => {
                                reject(result);
                                uni.navigateTo({
                                    url: '/pages/login/index?isNotLogin=1'
                                })
                            },
                            fail() {
                                reject(result);
                                uni.navigateTo({
                                    url: '/pages/login/index'
                                })
                            }
                        });
                    }
                    extraObj.isShowLoad && uni.hideLoading()
                },
                fail: (error) => {
                    extraObj.isShowLoad && uni.hideLoading()
                    reject(error);
                }
            });
        });
    },
    isNotLogin(err) {
        return err.status && err.status == 700014;
    },
    getRoleInfo(){
        return StorageUtil.getStorage('userInfo','roleInfo')
    },
    getToken(){
        return StorageUtil.getStorage('userInfo','token')
    },
    getUserFunction(){
        return StorageUtil.getStorage('userInfo','userFunction')
    }
 }
 export default httpUtils;