changename.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. // subpackages/changename/changename.js
  2. // import { models, db, _ } from '../../utils/cloudbase.js'
  3. import { getDB, getModels, getCommand, getTempFileURLs } from '../../utils/cloudbase.js'
  4. Page({
  5. /**
  6. * 页面的初始数据
  7. */
  8. data: {
  9. userInfo: {},
  10. newUserName: '', // 新用户名
  11. },
  12. /**
  13. * 生命周期函数--监听页面加载
  14. */
  15. onLoad(options) {
  16. const itemData = decodeURIComponent(options.data);
  17. const item = JSON.parse(itemData);
  18. this.setData({
  19. userInfo: item
  20. });
  21. console.log(this.data.userInfo, 'userInfo');
  22. },
  23. // 获取新用户名输入
  24. onInputNewName(e) {
  25. this.setData({
  26. newUserName: e.detail.value
  27. });
  28. },
  29. // 点击修改按钮
  30. async onConfirmChange() {
  31. const models = await getModels()
  32. const { userInfo, newUserName } = this.data;
  33. if (!newUserName.trim()) {
  34. wx.showToast({
  35. title: '请输入新用户名',
  36. icon: 'none'
  37. });
  38. return;
  39. }
  40. try {
  41. const { data } = await models.wx_user.update({
  42. data: {
  43. user_name: newUserName
  44. },
  45. filter: {
  46. where: {
  47. $and: [
  48. {
  49. _id: {
  50. $eq: userInfo._id
  51. }
  52. }
  53. ]
  54. }
  55. },
  56. envType: "prod"
  57. });
  58. console.log(data, 'data');
  59. // 判断是否更新成功(你可以根据实际返回结构调整判断逻辑)
  60. if (data && (data.count > 0 || data.Count > 0)) {
  61. // ✅ 更新本地缓存的 userInfo
  62. const localUserInfo = wx.getStorageSync('userInfo') || {};
  63. localUserInfo.user_name = newUserName;
  64. wx.setStorageSync('userInfo', localUserInfo);
  65. wx.showToast({
  66. title: '修改成功',
  67. icon: 'success',
  68. duration: 1500
  69. });
  70. // 1.5 秒后返回上一页
  71. setTimeout(() => {
  72. wx.navigateBack();
  73. }, 1500);
  74. } else {
  75. wx.showToast({
  76. title: '修改失败',
  77. icon: 'none'
  78. });
  79. }
  80. } catch (err) {
  81. console.error('修改用户名失败', err);
  82. wx.showToast({
  83. title: '接口异常',
  84. icon: 'none'
  85. });
  86. }
  87. }
  88. })