| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- // pages/settings/settings.js
- const userUtil = require('../../utils/user');
- const userApi = require('../../api/user');
- Page({
- data: {
- userInfo: null,
- saving: false
- },
- onLoad() {
- this.loadUserInfo();
- },
- // 加载用户信息
- loadUserInfo() {
- const userInfo = userUtil.getUserInfo();
- this.setData({ userInfo });
- },
- // 昵称输入
- onNicknameInput(e) {
- this.setData({
- 'userInfo.nickname': e.detail.value
- });
- },
- // 头像URL输入
- onAvatarUrlInput(e) {
- this.setData({
- 'userInfo.avatarUrl': e.detail.value
- });
- },
- // 保存用户信息
- async saveUserInfo() {
- if (this.data.saving) return;
- const { userInfo } = this.data;
- if (!userInfo || !userInfo.userId) {
- wx.showToast({
- title: '用户信息不存在',
- icon: 'none'
- });
- return;
- }
- this.setData({ saving: true });
- try {
- const updateData = {
- nickname: userInfo.nickname || '',
- avatarUrl: userInfo.avatarUrl || ''
- };
- await userApi.updateCurrentUserInfo(updateData);
-
- // 更新本地存储的用户信息
- const token = wx.getStorageSync('token');
- const updatedUserInfo = {
- ...userInfo,
- ...updateData
- };
- userUtil.saveUserInfo(updatedUserInfo, token);
- wx.showToast({
- title: '保存成功',
- icon: 'success'
- });
- // 延迟返回上一页
- setTimeout(() => {
- wx.navigateBack();
- }, 1500);
- } catch (error) {
- wx.showToast({
- title: error || '保存失败',
- icon: 'none'
- });
- } finally {
- this.setData({ saving: false });
- }
- }
- });
|