Files
2026-09-21 16:01:26 +08:00

13 lines
1.3 KiB
TypeScript

import { request, upload } from '../../utils/api'
const app = getApp<IAppOption>()
Page({
data: { user: null as CoffeeChatUser | null, editing: false, nickname: '' },
onShow() { app.ensureLogin().then((user) => this.setData({ user, nickname: user.nickname })).catch(() => undefined) },
edit() { this.setData({ editing: true }) },
input(event: WechatMiniprogram.CustomEvent<{ value: string }>) { this.setData({ nickname: event.detail.value }) },
cancel() { this.setData({ editing: false }) },
async save() { if (!this.data.user) return; try { const user = await request<CoffeeChatUser>('/api/auth/me', { method: 'PATCH', data: { nickname: this.data.nickname, avatarUrl: this.data.user.avatarUrl || '' } }); wx.setStorageSync('user', user); app.globalData.user = user; this.setData({ user, editing: false }); wx.showToast({ title: '已保存' }) } catch (error) { wx.showToast({ title: error instanceof Error ? error.message : '保存失败', icon: 'none' }) } },
chooseAvatar(event: WechatMiniprogram.CustomEvent<{ avatarUrl: string }>) { const avatarUrl = event.detail.avatarUrl; this.setData({ 'user.avatarUrl': avatarUrl }); upload(avatarUrl).then((file) => this.setData({ 'user.avatarUrl': file.url })).catch(() => wx.showToast({ title: '头像上传失败', icon: 'none' })) }
})