const { request } = require('../../utils/request') Page({ data: { loading: false, user: null, form: { nickname: '', company: '', title: '', phone: '', password: '' } }, onShow() { this.loadProfile() }, async loadProfile() { const app = getApp() const user = app.globalData.user || wx.getStorageSync('user') this.setData({ user }) const profile = await request({ url: '/user/profile' }) this.setData({ form: { nickname: profile.nickname || '', company: profile.company || '', title: profile.title || '', phone: profile.phone || '', password: '' } }) }, goto(e) { const path = e.currentTarget.dataset.path if (!path) return wx.navigateTo({ url: path }) }, 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 }) } }, logout() { wx.showModal({ title: '退出登录', content: '确定要退出登录吗?', success: (res) => { if (res.confirm) { getApp().clearAuth() wx.reLaunch({ url: '/pages/login/index' }) } } }) } })