changename.js 2.1 KB

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