baotian
2024-06-04 b959135a1139fb66646523d92e5bd20c5910f283
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
export default {
    namespaced: true,
    state: () => ({
        token:'',
        account:'',
        visited:[],
        userInfo:{},
        refreshToken:''
    }),
    mutations: {
        setToken(state,val){
            uni.setStorageSync('user_token',val);
            state.token = val;
        },
        setRefreshToken(state,val){
            uni.setStorageSync('user_refresh_token',val);
            state.refreshToken = val;
        },
        setAccount(state,val){
            uni.setStorageSync('user_account',val);
            state.account = val;
        },
        setUserInfo(state,obj){
            uni.setStorageSync('user_info',JSON.stringify(obj));
            state.userInfo = obj;
        },
        addVisited(state,obj){
            if (obj.account){
                let oldArr = state.visited;
                if (oldArr.length===0) {
                    let _local = uni.getStorageSync('user_visited');
                    if (_local) {
                        try{
                            oldArr=JSON.parse(_local)
                        }catch(e){
                            console.log(e)
                        }
                    }
                }
                let errFlag = false;
                if (!(oldArr instanceof Array)) {
                    oldArr = []
                    errFlag = true;
                }
                let inFlag = false;
                for (let i=0;i<oldArr.length;i++) {
                    if (oldArr[i].account===obj.account) {
                        inFlag = true;
                        break;
                    }
                }
                if (!inFlag) {
                    oldArr.push(obj)
                    state.visited = oldArr;
                    uni.setStorageSync('user_visited',JSON.stringify(oldArr));
                } else if (errFlag) {
                    state.visited = oldArr;
                    uni.setStorageSync('user_visited',JSON.stringify(oldArr));
                }
            }
        },
        clear(state){
            state.token = '';
            state.refreshToken = '';
            state.userInfo = {};
            state.account = '';
            uni.removeStorageSync('user_token');
            uni.removeStorageSync('user_info');
            uni.removeStorageSync('user_account');
            uni.removeStorageSync('user_refresh_token');
        }
    },
    actions: {
        
    },
    getters: {
        getToken(state){
            let res = state.token;
            if (!res) {
                let temp = uni.getStorageSync('user_token');
                if (temp) {
                    res = temp;
                    state.token = res;
                }
            }
            return res;
        },
        getRefreshToken(state){
            let res = state.refreshToken;
            if (!res) {
                let temp = uni.getStorageSync('user_refresh_token');
                if (temp) {
                    res = temp;
                    state.refreshToken = res;
                }
            }
            return res;
        },
        getUserInfo(state){
            let res = state.userInfo;
            if (!res || !res.id) {
                let _str = uni.getStorageSync('user_info');
                if (_str) {
                    try{
                        res = JSON.parse(_str)
                        state.userInfo = res
                    }catch(e){
                        console.log('storage user_info err parse to json')
                    }
                }
            }
            return res
        },
        getAccount(state){
            let res = state.account;
            if (!res) {
                let temp = uni.getStorageSync('user_account');
                if (temp) {
                    res = temp;
                    state.account = res;
                }
            }
            return res;
        },
        getVisited(state){
            let res = state.visited;
            if (!res.length) {
                let _local = uni.getStorageSync('user_visited');
                if (_local) {
                    try{
                        let temp = JSON.parse(_local)
                        if (temp instanceof Array) {
                            res = temp;
                            state.visited = res;
                        }
                    }catch(e){
                        console.log(e)
                    }
                }
            }
            return res;
        }
    }
}