| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- /**
- * H5版本的用户API
- * 基于request,兼容小程序的userApi接口
- * 依赖:common.js (提供公共工具函数)
- */
- // 注意:getUrlParams, getDeviceInfo, getMockWechatCode, userManager
- // 这些函数已在 common.js 中定义,这里直接使用全局函数
- const h5UserApi = {
- // 账号密码登录 - H5版本
- async accountLogin(data, onComplete) {
- try {
- console.log('🔐 H5账号登录开始:', data)
- // 获取设备信息并更新
- const deviceInfo = getDeviceInfo()
- const newDeviceInfo = {
- ...deviceInfo,
- deviceId: `(${data.yhm})${deviceInfo.model}`,
- }
-
- // H5环境下保存到localStorage
- localStorage.setItem('deviceInfo', JSON.stringify(newDeviceInfo))
- // 获取微信授权码 (H5环境下的处理)
- const wechatCode = data.wechatCode || getMockWechatCode()
- // 构建请求参数
- const requestData = {
- ...data,
- wechatCode: wechatCode
- }
- console.log('📤 发送登录请求:', requestData)
- // 发送登录请求
- const promise = request.post(
- `/service?ssServ=ss.login&yhm=${data.yhm}&mm=${data.mm}&wdConfirmationCaptchaService=0&wechatCode=${wechatCode}`,
- requestData,
- {
- loading: false, // 禁用全局 loading,由登录页面自己控制
- request: {
- timeout: 15000 // 登录请求 15 秒超时
- }
- }
- )
- // 处理请求结果
- const result = await promise
- console.log('✅ H5登录请求成功:', result)
- // 无论成功还是失败,都调用完成回调
- if (onComplete) {
- onComplete()
- }
- return result
- } catch (error) {
- console.error('❌ H5登录请求失败:', error)
- // 确保调用完成回调
- if (onComplete) {
- onComplete()
- }
- throw error
- }
- },
- // 自动登录 - H5版本
- async autoLogin(data) {
- console.log('🔄 H5自动登录:', data)
- return request.post(
- `/service?ssServ=ss.login&wdConfirmationCaptchaService=0&mdToken=${data.mdToken}`,
- data,
- {
- loading: false // 自动登录不显示 loading,避免打扰用户
- }
- )
- },
- // 微信登录 - H5版本
- async wechatLogin(data, onComplete) {
- try {
- console.log('🔐 H5微信登录开始:', data)
- // 在H5环境下,微信登录需要特殊处理
- // 这里先使用模拟的code
- const wechatCode = data.code || getMockWechatCode()
- const requestData = {
- ...data,
- code: wechatCode
- }
- const promise = request.post(
- `/service?ssServ=ss.login&wdConfirmationCaptchaService=0`,
- requestData,
- {
- loading: false, // 禁用全局 loading,由登录页面自己控制
- request: {
- timeout: 15000 // 微信登录请求 15 秒超时
- }
- }
- )
- const result = await promise
- console.log('✅ H5微信登录成功:', result)
- // 无论成功还是失败,都调用完成回调
- if (onComplete) {
- onComplete()
- }
- return result
- } catch (error) {
- console.error('❌ H5微信登录失败:', error)
- // 确保调用完成回调
- if (onComplete) {
- onComplete()
- }
- throw error
- }
- },
- // 获取用户信息
- async getUserInfo(userId) {
- console.log('👤 H5获取用户信息:', userId)
- return request.get(`/service?ssServ=user.getUserInfo&userId=${userId}`, {}, {
- loading: false
- })
- },
- // 登出 (使用 common.js 中的 userManager)
- async logout() {
- console.log('🚪 H5用户登出')
- try {
- // 使用公共的用户管理器清除登录信息
- userManager.clearLoginInfo()
- // 可以调用服务端登出接口
- // await request.post('/service?ssServ=ss.logout', {}, { loading: false })
- console.log('✅ H5登出成功')
- return { success: true }
- } catch (error) {
- console.error('❌ H5登出失败:', error)
- throw error
- }
- },
- // 检查登录状态 (使用 common.js 中的 userManager)
- checkLoginStatus() {
- return userManager.checkLoginStatus()
- },
- // 保存用户信息 (使用 common.js 中的 userManager)
- saveUserInfo(userInfo) {
- return userManager.saveUserInfo(userInfo)
- },
- // 获取保存的用户信息 (使用 common.js 中的 userManager)
- getSavedUserInfo() {
- return userManager.getSavedUserInfo()
- }
- }
- // 导出到全局
- window.h5UserApi = h5UserApi
- console.log('✅ H5 UserApi已加载')
|