| | |
| | | }, |
| | | |
| | | // 加载用户信息 |
| | | loadUserInfo() { |
| | | const userInfo = app.globalData.userInfo |
| | | console.log('🔍 加载用户信息用于显示:', userInfo) |
| | | async loadUserInfo() { |
| | | console.log('🔄 开始加载用户信息') |
| | | const app = getApp() |
| | | let userInfo = app.globalData.userInfo |
| | | console.log('🔍 本地用户数据:', JSON.stringify(userInfo, null, 2)) |
| | | |
| | | // 尝试从后端获取完整的用户信息 |
| | | try { |
| | | const query = ` |
| | | query GetUserProfile { |
| | | userProfile { |
| | | id |
| | | name |
| | | avatar |
| | | phone |
| | | gender |
| | | birthday |
| | | } |
| | | } |
| | | ` |
| | | |
| | | const result = await graphqlRequest(query) |
| | | if (result && result.userProfile) { |
| | | console.log('🔍 从后端获取的完整用户数据:', JSON.stringify(result.userProfile, null, 2)) |
| | | userInfo = result.userProfile |
| | | // 更新全局数据 |
| | | app.globalData.userInfo = { ...app.globalData.userInfo, ...userInfo } |
| | | } |
| | | } catch (error) { |
| | | console.log('⚠️ 从后端获取用户信息失败,使用本地数据:', error) |
| | | } |
| | | |
| | | if (userInfo) { |
| | | let displayUserInfo = { |
| | | name: userInfo.name || '', |
| | | phone: userInfo.phone || '', |
| | | avatarUrl: userInfo.avatarUrl || '', |
| | | avatarUrl: userInfo.avatar || userInfo.avatarUrl || '', |
| | | gender: null, |
| | | education: '' |
| | | education: '', |
| | | birthDate: '' |
| | | } |
| | | |
| | | // 如果用户有Player信息,优先使用Player的详细信息 |
| | | if (userInfo.player) { |
| | | console.log('📋 使用Player信息显示:', userInfo.player) |
| | | displayUserInfo.name = userInfo.player.name || userInfo.name || '' |
| | | displayUserInfo.phone = userInfo.player.phone || userInfo.phone || '' |
| | | displayUserInfo.avatarUrl = userInfo.avatarUrl || '' |
| | | |
| | | // 处理性别信息:0=男,1=女 |
| | | if (userInfo.player.gender !== undefined && userInfo.player.gender !== null) { |
| | | displayUserInfo.gender = parseInt(userInfo.player.gender) |
| | | } |
| | | |
| | | // 处理学历信息 |
| | | if (userInfo.player.education) { |
| | | displayUserInfo.education = userInfo.player.education |
| | | // 处理性别信息 |
| | | if (userInfo.gender !== undefined && userInfo.gender !== null) { |
| | | console.log('👤 发现性别字段:', userInfo.gender, '类型:', typeof userInfo.gender) |
| | | // 如果是字符串格式,转换为数字 |
| | | if (typeof userInfo.gender === 'string') { |
| | | displayUserInfo.gender = userInfo.gender === 'MALE' ? 1 : 0 // 修复:MALE=1(男), FEMALE=0(女) |
| | | console.log('👤 处理后的性别:', displayUserInfo.gender) |
| | | } else { |
| | | displayUserInfo.gender = parseInt(userInfo.gender) |
| | | } |
| | | } |
| | | |
| | | console.log('✅ 设置显示用户信息:', displayUserInfo) |
| | | // 处理生日信息 |
| | | if (userInfo.birthday || userInfo.birthDate) { |
| | | displayUserInfo.birthDate = userInfo.birthday || userInfo.birthDate |
| | | console.log('🎂 发现生日字段:', displayUserInfo.birthDate) |
| | | } |
| | | |
| | | this.setData({ |
| | | userInfo: displayUserInfo |
| | | displayUserInfo: displayUserInfo |
| | | }) |
| | | |
| | | console.log('✅ 最终 displayUserInfo:', JSON.stringify(displayUserInfo, null, 2)) |
| | | } else { |
| | | console.log('⚠️ 未找到用户信息') |
| | | } |
| | |
| | | |
| | | // 预填充用户信息 |
| | | prefillUserInfo() { |
| | | const app = getApp() |
| | | const userInfo = app.globalData.userInfo |
| | | console.log('🔍 预填充用户信息:', userInfo) |
| | | |
| | |
| | | 'formData.name': userInfo.name || '', |
| | | 'formData.phone': userInfo.phone || '', |
| | | 'formData.email': userInfo.email || '', |
| | | 'formData.avatarUrl': userInfo.avatarUrl || '' |
| | | 'formData.avatarUrl': userInfo.avatar || userInfo.avatarUrl || '' |
| | | } |
| | | |
| | | // 如果用户有Player信息,优先使用Player的详细信息 |
| | | if (userInfo.player) { |
| | | console.log('📋 使用Player信息预填充:', userInfo.player) |
| | | updateData['formData.name'] = userInfo.player.name || userInfo.name || '' |
| | | updateData['formData.phone'] = userInfo.player.phone || userInfo.phone || '' |
| | | updateData['formData.avatarUrl'] = userInfo.avatarUrl || '' |
| | | |
| | | // 处理性别信息:0=男,1=女 |
| | | if (userInfo.player.gender !== undefined && userInfo.player.gender !== null) { |
| | | const genderIndex = parseInt(userInfo.player.gender) |
| | | if (genderIndex === 0 || genderIndex === 1) { |
| | | updateData['formData.gender'] = genderIndex |
| | | // 处理性别信息 - 直接从userInfo获取 |
| | | if (userInfo.gender !== undefined && userInfo.gender !== null) { |
| | | let genderValue, genderIndex |
| | | // 如果是字符串格式,转换为数字 |
| | | if (typeof userInfo.gender === 'string') { |
| | | genderValue = userInfo.gender === 'MALE' ? 1 : 0 // 修复:MALE=1(男), FEMALE=0(女) |
| | | genderIndex = userInfo.gender === 'MALE' ? 0 : 1 // 界面索引:0=男,1=女 |
| | | } else { |
| | | genderValue = parseInt(userInfo.gender) |
| | | genderIndex = genderValue === 1 ? 0 : 1 // 数据库值1(男)->界面索引0,数据库值0(女)->界面索引1 |
| | | } |
| | | updateData['formData.gender'] = genderValue |
| | | updateData['genderIndex'] = genderIndex |
| | | console.log('👤 设置性别:', genderIndex === 0 ? '男' : '女') |
| | | console.log('👤 设置性别:', genderValue === 1 ? '男' : '女', '界面索引:', genderIndex) |
| | | } |
| | | } |
| | | |
| | | // 处理生日信息 - 直接从userInfo获取 |
| | | if (userInfo.birthday || userInfo.birthDate) { |
| | | const birthDate = userInfo.birthday || userInfo.birthDate |
| | | updateData['formData.birthDate'] = birthDate |
| | | console.log('🎂 设置生日:', birthDate) |
| | | } |
| | | |
| | | console.log('✅ 预填充数据:', updateData) |
| | | console.log('🖼️ 设置头像URL:', updateData['formData.avatarUrl']) |
| | | |
| | | this.setData(updateData) |
| | | console.log('✅ 用户信息预填充完成') |
| | | } else { |
| | | console.log('⚠️ 未找到用户信息,无法预填充') |
| | | console.log('⚠️ 未找到用户信息,跳过预填充') |
| | | } |
| | | }, |
| | | |
| | |
| | | // 性别选择 |
| | | onGenderChange(e) { |
| | | const index = e.detail.value |
| | | // 修复性别映射:genderOptions[0]='男' 应该对应数据库值1,genderOptions[1]='女' 应该对应数据库值0 |
| | | const genderValue = index === 0 ? 1 : 0 // 0(男) -> 1, 1(女) -> 0 |
| | | this.setData({ |
| | | genderIndex: index, |
| | | 'formData.gender': index |
| | | 'formData.gender': genderValue |
| | | }) |
| | | }, |
| | | |