61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
/**
|
|
* @description 用户信息数据持久化
|
|
*/
|
|
import { defineStore } from 'pinia'
|
|
import { getUserInfoRequest, loginRequest, phoneLoginRequest } from '@/api/user'
|
|
import { useLockStore } from '@/stores/lock'
|
|
|
|
export const useUserStore = defineStore('user', {
|
|
state() {
|
|
return {
|
|
// 用户信息
|
|
userInfo: {},
|
|
// 登录状态
|
|
isLogin: false
|
|
}
|
|
},
|
|
actions: {
|
|
updateUserInfo(data) {
|
|
this.userInfo = data
|
|
},
|
|
updateLoginStatus(status) {
|
|
this.isLogin = status
|
|
},
|
|
async getPhone(data) {
|
|
const { iv, encryptedData } = data
|
|
const that = this
|
|
return new Promise((resolve) => {
|
|
uni.checkSession({
|
|
async success(){
|
|
const openid = uni.getStorageSync('openid')
|
|
const { code, data, message } = await phoneLoginRequest({ iv, encryptedData, openid })
|
|
if(code === 0) {
|
|
uni.setStorageSync('token', data.accessToken)
|
|
resolve(true)
|
|
} else {
|
|
resolve(false)
|
|
}
|
|
},
|
|
fail() {
|
|
uni.login({
|
|
provider: 'weixin',
|
|
success: async function (loginRes) {
|
|
const { code, data } = await loginRequest({
|
|
js_code: loginRes.code
|
|
})
|
|
if (code === 0) {
|
|
uni.setStorageSync('openid', data.openid)
|
|
}
|
|
resolve(false)
|
|
},
|
|
fail() {
|
|
resolve(false)
|
|
}
|
|
})
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
})
|