12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- import { wxLogin, getUserInfo, updateUserInfo, uploadAvatar, logout } from '../api/user.js';
- import { ref } from 'vue';
- export function useUserApi() {
- const loading = ref(false);
- const error = ref(null);
-
- // 微信登录
- const login = async (code, userInfo = {}) => {
- loading.value = true;
- error.value = null;
-
- try {
- const result = await wxLogin(code, userInfo);
- loading.value = false;
- return result;
- } catch (err) {
- loading.value = false;
- error.value = err;
- throw err;
- }
- };
-
- // 获取用户信息
- const fetchUserInfo = async () => {
- loading.value = true;
- error.value = null;
-
- try {
- const result = await getUserInfo();
- loading.value = false;
- return result;
- } catch (err) {
- loading.value = false;
- error.value = err;
- throw err;
- }
- };
-
- // 更新用户信息
- const updateUser = async (userData) => {
- loading.value = true;
- error.value = null;
-
- try {
- const result = await updateUserInfo(userData);
- loading.value = false;
- return result;
- } catch (err) {
- loading.value = false;
- error.value = err;
- throw err;
- }
- };
-
- // 上传头像
- const uploadUserAvatar = async (filePath) => {
- loading.value = true;
- error.value = null;
-
- try {
- const result = await uploadAvatar(filePath);
- loading.value = false;
- return result;
- } catch (err) {
- loading.value = false;
- error.value = err;
- throw err;
- }
- };
-
- // 退出登录
- const logoutUser = async () => {
- loading.value = true;
- error.value = null;
-
- try {
- const result = await logout();
- loading.value = false;
- return result;
- } catch (err) {
- loading.value = false;
- error.value = err;
- throw err;
- }
- };
-
- return {
- loading,
- error,
- login,
- fetchUserInfo,
- updateUser,
- uploadUserAvatar,
- logoutUser
- };
- }
|