diff --git a/api/user/user.js b/api/user/user.js index 25fe2a0..021abe3 100644 --- a/api/user/user.js +++ b/api/user/user.js @@ -112,6 +112,23 @@ export function updateUserInfo(data) { }) } +/** + * 更新用户昵称 + * @param {string} nickName - 新的昵称 + * @returns {Promise} 返回更新结果 + */ +export function updateNickName(nickName) { + return request({ + url: '/app/user/updateNickName', + method: 'PUT', + params: { nickName }, + showLoading: true, + }).catch(error => { + console.warn('更新昵称API调用失败:', error) + throw error + }) +} + /** * 获取用户头像 * @param {string} userId - 用户ID diff --git a/pages/profile/profile.vue b/pages/profile/profile.vue index 38d20e7..75621d8 100644 --- a/pages/profile/profile.vue +++ b/pages/profile/profile.vue @@ -32,7 +32,7 @@ {{ userInfo.nickName || '昵称' }} {{ formatPhone(userInfo.phonenumber) || '123****8912' }} - + @@ -162,6 +162,14 @@ export default { // 页面显示时刷新数据 this.fetchUserData() }, + mounted() { + // 监听用户信息更新事件 + uni.$on('userInfoUpdated', this.handleUserInfoUpdate) + }, + beforeDestroy() { + // 移除事件监听 + uni.$off('userInfoUpdated', this.handleUserInfoUpdate) + }, methods: { // 获取用户数据 async fetchUserData() { @@ -181,6 +189,11 @@ export default { ...userInfoRes.value.data, } console.log('用户信息获取成功:', this.userInfo) + console.log('用户昵称:', this.userInfo.nickName || this.userInfo.nickname) + console.log('用户头像:', this.userInfo.avatar) + } else { + console.log('用户信息获取失败,使用默认值') + console.log('当前用户信息:', this.userInfo) } // 处理财务数据 @@ -282,6 +295,31 @@ export default { gotoPage(url) { uni.navigateTo({ url }) }, + + // 跳转到设置页面,传递用户信息 + goToSettings() { + console.log('准备跳转到设置页面,当前用户信息:', this.userInfo) + + // 将当前用户信息存储到本地,供设置页面使用 + try { + const userInfoToStore = { + nickName: this.userInfo.nickName || this.userInfo.nickname || '昵称', + avatar: this.userInfo.avatar || '', + userId: this.userInfo.userId || '', + phonenumber: this.userInfo.phonenumber || '' + } + + uni.setStorageSync('userInfo', userInfoToStore) + console.log('用户信息已存储到本地:', userInfoToStore) + } catch (error) { + console.error('存储用户信息失败:', error) + } + + // 跳转到设置页面 + uni.navigateTo({ + url: '/pages/set/set' + }) + }, goToAgentApply() { uni.navigateTo({ url: '/pages/agents/agents', @@ -319,6 +357,24 @@ export default { url: '/pages/agents/requestAgent', }) }, + + // 处理用户信息更新事件 + handleUserInfoUpdate(updatedUserInfo) { + // 更新本地用户信息 + this.userInfo = { + ...this.userInfo, + ...updatedUserInfo + } + + // 更新本地存储 + try { + uni.setStorageSync('userInfo', this.userInfo) + } catch (error) { + console.error('更新本地用户信息失败:', error) + } + + console.log('用户信息已更新:', this.userInfo) + }, }, } diff --git a/pages/set/set.vue b/pages/set/set.vue index 1171772..20ea008 100644 --- a/pages/set/set.vue +++ b/pages/set/set.vue @@ -1,9 +1,19 @@