user.js
2.2 KB
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
const state = () => ({
openid: '',
isReg: '',
id: '',
name: '',
number: '',
password: '',
phone: '',
status: '',
type: '',
username: '',
userBasicInfo: {},
})
// getters
const getters = {
// doneOpenid: (state, getters, rootState) => {
// return state.openid
// },
}
// actions
const actions = {
async login({
commit,
dispatch,
state
}, params) {
const login_result = await uni.$u.api.getLoginApi({
...params
});
if (login_result) {
let vuex_token = `Bearer ${login_result.access_token}`
await uni.$u.vuex('vuex_token', vuex_token);
await uni.$u.vuex('vuex_phone', login_result.phone);
switch (login_result.status) {
case 'not_reg': //未注册
// uni.$u.route({
// url: '/pages/student/my/login/login',
// type: 'reLaunch',
// });
break;
case 'annulled': //已注销
// uni.$u.route({
// url: '/pages/student/my/written-off/written-off',
// type: 'navigateTo',
// });
break;
case 'annulling': //注销中
uni.$u.route({
url: '/pages/common/login/login',
// type: 'navigateTo',
});
break;
case 'active': //已注册
const userInfo = await dispatch(`getUserInfo`);
if (userInfo) {
uni.navigateBack({
delta: 1
});
}
break;
}
return login_result;
}
},
async loginOut({
commit,
dispatch,
state
}, params) {
console.log('loginOut')
await uni.$u.vuex('vuex_user', '');
await uni.$u.vuex('vuex_token', '');
await uni.setStorageSync('lifeData', {});
uni.$u.route('/pages/common/login/login');
},
async getUserInfo({
commit,
dispatch,
state
}, params) {
const userInfo = await uni.$u.api.getUserApi();
await uni.$u.vuex('vuex_user', userInfo);
return userInfo;
},
}
// mutations
const mutations = {
setUserInfo(state, userInfo) {
state.id = userInfo.id;
state.name = userInfo.name;
state.phone = userInfo.phone;
state.username = userInfo.username;
state.userBasicInfo = userInfo.userBasicInfo;
},
}
export default {
namespaced: true,
state,
getters,
actions,
mutations
}