123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- Page({
- data: {
- userInfo: {
- name: '', // 用户名
- },
- oldPassword: '', // 输入的旧密码
- newPassword: '', // 输入的新密码
- errorMessage: '', // 错误提示信息
- isSaveDisabled: true, // 控制保存按钮是否禁用
- },
- // 页面加载时从缓存获取用户信息
- onLoad() {
- this.loadUserInfo(); // 加载缓存中的用户信息
- },
- // 页面显示时确保更新按钮状态
- onShow() {
- this.updateSaveButtonState(); // 更新保存按钮的状态
- },
- // 加载缓存的用户信息
- loadUserInfo() {
- // 从缓存中获取 currentUser(用户名)和 userId(用户ID)
- const currentUser = wx.getStorageSync('currentUser') || ''; // 获取缓存的用户名,若无则为空
- const userId = wx.getStorageSync('userId') || ''; // 获取缓存的用户ID,若无则为空
- // 设置用户名和用户ID
- this.setData({
- userInfo: {
- name: currentUser, // 设置用户名
- }
- });
- this.updateSaveButtonState(); // 更新保存按钮状态
- },
- // 获取用户名输入
- inputName(e) {
- this.setData({
- 'userInfo.name': e.detail.value, // 更新用户名
- });
- this.updateSaveButtonState(); // 更新保存按钮状态
- },
- // 获取旧密码输入
- inputOldPassword(e) {
- this.setData({
- oldPassword: e.detail.value, // 更新旧密码
- });
- this.updateSaveButtonState(); // 更新保存按钮状态
- },
- // 获取新密码输入
- inputNewPassword(e) {
- this.setData({
- newPassword: e.detail.value, // 更新新密码
- });
- this.updateSaveButtonState(); // 更新保存按钮状态
- },
- // 更新保存按钮的状态
- updateSaveButtonState() {
- const { oldPassword, newPassword } = this.data;
- // 判断如果旧密码和新密码都有值,则启用保存按钮,否则禁用
- if (oldPassword.trim() && newPassword.trim()) {
- this.setData({
- isSaveDisabled: false, // 启用保存按钮
- });
- } else {
- this.setData({
- isSaveDisabled: true, // 禁用保存按钮
- });
- }
- },
- // 保存修改后的用户名和密码
- saveChanges() {
- const { userInfo, oldPassword, newPassword } = this.data;
- // 校验用户名
- if (!userInfo.name.trim()) {
- this.setData({ errorMessage: '用户名不能为空' });
- return;
- }
- // 校验新密码是否为空
- if (newPassword && !newPassword.trim()) {
- this.setData({ errorMessage: '新密码不能为空' });
- return;
- }
- // 从缓存中获取 userId
- const userId = wx.getStorageSync('userId');
- if (!userId) {
- this.setData({ errorMessage: '用户ID不可用' });
- return;
- }
- // 调用后端API来保存用户名和密码
- this.updateUserInfo(userId, userInfo.name, oldPassword, newPassword);
- },
- // 调用后端API更新用户信息
- updateUserInfo(userId, name, oldPassword, newPassword) {
- wx.request({
- url: 'https://soilgd.com:5000/update_user', // 替换为实际的API地址
- method: 'POST',
- data: {
- userId: userId, // 传递 userId
- name: name,
- oldPassword: oldPassword,
- newPassword: newPassword,
- },
- header: {
- 'Content-Type': 'application/json' // 确保 Content-Type 设置为 application/json
- },
- success: (res) => {
- if (res.data.success) {
- wx.setStorageSync('currentUser', name); // 更新缓存中的用户名
- this.setData({ errorMessage: '' });
- // 显示成功提示
- wx.showToast({
- title: '保存成功',
- icon: 'success',
- });
- // 修改成功后跳转到 Staff 页面
- wx.switchTab({
- url: '/pages/Staff/Staff', // 跳转到 Staff 页面
- });
- } else {
- this.setData({ errorMessage: res.data.message || '保存失败' });
- }
- },
- fail: (err) => {
- console.error('数据库更新失败', err);
- this.setData({ errorMessage: '更新失败,请稍后重试' });
- }
- });
- }
- });
|