/** * MobileProfilePage - 手机端个人中心组件 * * 功能特性: * - 头像展示与上传 * - 个人信息编辑 * - 账号设置 * - 会员信息 * - 使用统计 * - 退出登录 * * @example * const profile = new MobileProfilePage('profile-modal', { * apiBaseUrl: '', * onLogout: () => { location.reload(); } * }); * profile.show(); */ class MobileProfilePage { constructor(containerId, options = {}) { this.containerId = containerId; this.container = document.getElementById(containerId); this.options = { apiBaseUrl: options.apiBaseUrl || '', onLogout: options.onLogout || null, onEdit: options.onEdit || null }; this.userInfo = null; } /** * 显示个人中心弹窗 */ async show() { if (!this.container) { console.error('[个人中心] 容器不存在'); return; } // 加载用户信息 await this.loadUserInfo(); // 渲染界面 this.render(); } /** * 加载用户信息 */ async loadUserInfo() { const token = localStorage.getItem('authToken'); if (!token) { console.log('[个人中心] 未登录'); return; } try { // ✅ 修复:调用后端 API 获取真实用户信息 console.log('[个人中心] 正在调用 get_user_info API...'); // 使用callBackend统一接口 if (typeof window.callBackend === 'function') { const userInfo = await window.callBackend('get_user_info', {}); this.userInfo = { username: userInfo.username || userInfo.email || '未知用户', phone: userInfo.phone || '未绑定', email: userInfo.email || '未设置', avatar: userInfo.avatar || null, vipLevel: userInfo.vip_level || userInfo.level || '普通会员', createTime: userInfo.created_at || userInfo.create_time || '-', balance: userInfo.balance || 0, total_tasks: userInfo.total_tasks || 0 }; // 保存到localStorage供其他组件使用 localStorage.setItem('username', this.userInfo.username); localStorage.setItem('phone', this.userInfo.phone); localStorage.setItem('user_level', this.userInfo.vipLevel); console.log('[个人中心] 用户信息加载成功:', this.userInfo); } else { console.warn('[个人中心] callBackend不可用,使用临时数据'); // Fallback方案 this.userInfo = { username: localStorage.getItem('username') || '用户', phone: localStorage.getItem('phone') || '未绑定', vipLevel: localStorage.getItem('user_level') || 'VIP' }; } } catch (error) { console.error('[个人中心] 加载失败:', error); // 错误处理:使用缓存数据 this.userInfo = { username: localStorage.getItem('username') || '用户', phone: localStorage.getItem('phone') || '未绑定', vipLevel: localStorage.getItem('user_level') || 'VIP' }; } } /** * 渲染个人中心界面 */ render() { const hasLogin = !!localStorage.getItem('authToken'); if (!hasLogin) { this.renderLoginPrompt(); return; } this.renderProfile(); } /** * 渲染登录提示 */ renderLoginPrompt() { this.container.style.display = 'block'; this.container.innerHTML = `
登录后可以享受个性化服务、查看历史记录等