You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
928 B
JavaScript

import {
UserInfoAction,
$response
} from '@/api/index.js'
import {
getToken
} from './token.js'
const default_user_info = {
id: 0,
nickname: '未登录',
avatar: '/storage/assets/mp/user/用户头像@2x.png',
person: {
id: 0,
name: '',
phone: ''
},
dev: 2,
}
const UserInfo = async (cb, err = () => {}) => {
let token = getToken() ? getToken() : '';
if (token === '') return cb(JSON.parse(JSON.stringify(default_user_info)))
const user_person = uni.getStorageSync('USER_PERSON')
const response = await UserInfoAction({
id: user_person
})
$response(response, () => {
let info = response.data.info
uni.setStorageSync('USER_PERSON', response.data.info.person.id)
if (!!info) {
info.avatar = !!info.avatar ? info.avatar : '/storage/assets/mp/user/用户头像@2x.png'
} else {
info = JSON.parse(JSON.stringify(default_user_info))
}
cb(info)
}, () => {
err()
})
}
export default UserInfo