/** * 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已加载')