diff --git a/pages/profile/index.js b/pages/profile/index.js index 5f76728..43fe239 100644 --- a/pages/profile/index.js +++ b/pages/profile/index.js @@ -55,6 +55,37 @@ Page({ return phoneStr.substring(0, 3) + '****' + phoneStr.substring(7) }, + // 处理头像URL,确保正确解析数组形式的OSS URL + processAvatarUrl(avatarUrl) { + if (!avatarUrl) { + return 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'; + } + + // 如果是字符串,尝试解析为JSON数组 + if (typeof avatarUrl === 'string') { + try { + const parsedUrl = JSON.parse(avatarUrl); + // 如果解析成功且是数组且不为空,使用第一个元素 + if (Array.isArray(parsedUrl) && parsedUrl.length > 0) { + return parsedUrl[0]; + } + // 如果解析成功但不是数组,直接返回 + return avatarUrl; + } catch (e) { + // 解析失败,直接返回 + return avatarUrl; + } + } + + // 如果是数组且不为空,使用第一个元素 + if (Array.isArray(avatarUrl) && avatarUrl.length > 0) { + return avatarUrl[0]; + } + + // 其他情况返回默认头像 + return 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'; + }, + // 加载用户信息 loadUserInfo() { console.log('开始加载用户信息') @@ -64,10 +95,14 @@ Page({ const localUserInfo = wx.getStorageSync('userInfo') || {} if (app.globalData.userInfo) { const userInfo = { ...app.globalData.userInfo } + // 处理头像URL + userInfo.avatarUrl = this.processAvatarUrl(userInfo.avatarUrl); userInfo.hiddenPhoneNumber = this.hidePhoneNumber(userInfo.phoneNumber) this.setData({ userInfo }) } else { const userInfo = { ...localUserInfo } + // 处理头像URL + userInfo.avatarUrl = this.processAvatarUrl(userInfo.avatarUrl); userInfo.hiddenPhoneNumber = this.hidePhoneNumber(userInfo.phoneNumber) app.globalData.userInfo = userInfo this.setData({ @@ -199,6 +234,9 @@ Page({ ...serverUserInfo } + // 处理头像URL + updatedUserInfo.avatarUrl = this.processAvatarUrl(updatedUserInfo.avatarUrl); + // 添加隐藏的电话号码 updatedUserInfo.hiddenPhoneNumber = this.hidePhoneNumber(updatedUserInfo.phoneNumber) @@ -232,6 +270,9 @@ Page({ ...serverUserInfo } + // 处理头像URL + updatedUserInfo.avatarUrl = this.processAvatarUrl(updatedUserInfo.avatarUrl); + // 添加隐藏的电话号码 updatedUserInfo.hiddenPhoneNumber = this.hidePhoneNumber(updatedUserInfo.phoneNumber)