const { request } = require('../../utils/request') Page({ data: { loading: false, form: { nickname: '', company: '', title: '', phone: '', password: '' } }, onShow() { this.loadProfile() }, async loadProfile() { const profile = await request({ url: '/user/profile' }) this.setData({ form: { nickname: profile.nickname || '', company: profile.company || '', title: profile.title || '', phone: profile.phone || '', password: '' } }) }, onInput(e) { const field = e.currentTarget.dataset.field this.setData({ [`form.${field}`]: (e.detail.value || '').trim() }) }, async save() { if (this.data.loading) return this.setData({ loading: true }) const payload = { ...this.data.form } if (!payload.password) { delete payload.password } try { const user = await request({ url: '/user/profile', method: 'PUT', data: payload }) const app = getApp() app.globalData.user = user wx.setStorageSync('user', user) wx.showToast({ title: '保存成功', icon: 'success' }) this.setData({ 'form.password': '' }) } finally { this.setData({ loading: false }) } } })