Files
uni-fans-score/config/api/user.js
T
2026-03-09 09:07:58 +08:00

173 lines
3.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import request from '../http'
import { URL, appid } from '../url'
// 旧登录接口(兼容保留,后端将逐步废弃)
export const login = (data) => {
return request({
url: '/app/user/login',
method: 'get',
data
})
}
// 统一快捷登录接口 /app/user/quickLogin
// 对应文档《快捷登录最终方案》中的 QuickLoginDto
// loginType: WECHAT / ALIPAY / SMS
// appid: 平台应用ID
// openId: 第三方 openId(微信必传)
// code: 授权码(微信手机号授权码 / 支付宝 authCode
// phonenumber: 短信登录手机号
// smsCode: 短信验证码
export const quickLogin = (data) => {
return request({
url: '/app/user/quickLogin',
method: 'post',
data
})
}
// 发送验证码
export const sendVerifyCode = (phonenumber) => {
return request({
url: '/app/user/sms/code',
method: 'get',
data: { phonenumber }
})
}
// 手机号+验证码登录
export const loginWithCode = (phonenumber, smsCode) => {
return request({
url: '/app/user/sms/login',
method: 'post',
data: { phonenumber, smsCode }
})
}
// 用户退出登录
export const userLogout = (data) => {
return request({
url: '/auth/logout',
method: 'post',
data
})
}
// 获取用户信息
export const getMyIndexInfo = (data) => {
return request({
url: '/app/user/userInfo',
method: 'get',
data,
})
}
// 更新用户信息
export const updateUserInfo = (data) => {
return request({
url: '/app/user/updateUser',
method: 'post',
data
})
}
// 更新用户余额
export const updateUserBalance = (orderId) => {
return request({
url: `/app/user/updateBalance/${orderId}`,
method: 'post',
hideLoading: true
})
}
// 上传并更新用户头像(后端接口)
export const uploadUserAvatar = (filePath) => {
return new Promise((resolve, reject) => {
uni.uploadFile({
url: URL + '/app/user/uploadAvatar',
filePath,
name: 'file',
header: {
'appid': appid,
'Authorization': 'Bearer ' + uni.getStorageSync('token'),
'Clientid': uni.getStorageSync('client_id'),
'Content-Language': (uni.getStorageSync('language') || 'zh-CN').replace(/-/g, '_')
},
success: (res) => {
try {
const parsed = typeof res.data === 'string' ? JSON.parse(res.data) : res.data
resolve(parsed)
} catch (e) {
reject(e)
}
},
fail: (err) => {
reject(err)
}
})
})
}
// 文件上传到 OSS(若依后端)
export const uploadOssResource = (filePath) => {
return new Promise((resolve, reject) => {
uni.uploadFile({
url: URL + '/manager/upload',
filePath,
name: 'file',
header: {
'appid': appid,
'Authorization': 'Bearer ' + uni.getStorageSync('token'),
'Clientid': uni.getStorageSync('client_id'),
'Content-Language': (uni.getStorageSync('language') || 'zh-CN').replace(/-/g, '_')
},
success: (res) => {
try {
const parsed = typeof res.data === 'string' ? JSON.parse(res.data) : res.data
const codeOk = (res.statusCode === 200 || res.statusCode === 201 || parsed?.code === 200)
const url = parsed?.url || parsed?.data?.url || parsed?.data?.fileUrl || parsed?.fileUrl || parsed?.path || parsed?.data
if (codeOk && url) {
resolve(url)
return
}
reject(parsed || res)
} catch (e) {
reject(e)
}
},
fail: (err) => {
reject(err)
}
})
})
}
// 添加押金提现API
export const withdrawDeposit = (orderNo) => {
return request({
url: `/app/withdraw/add/${orderNo}`,
method: 'get',
hideLoading: true
})
}
// 获取微信用户手机号
export const getWxUserPhoneNumber = (data) => {
return request({
url: '/app/user/getPhoneNumber',
method: 'post',
data
})
}
// 获取支付宝用户手机号(复用同一后端接口,由后端按 appid / 参数结构区分平台)
// 期望后端返回:{ code:200, data:{ phoneNumber: 'xxx' } }
export const getAliUserPhoneNumber = (data) => {
return request({
url: '/app/user/alipay/getPhone',
method: 'post',
data
})
}