- 新增 addComment/getComments/getFollowList/followUser/getUser/updateProfile/updatePet/deletePet 云函数并完成部署 - 统一通过 app.globalData.navBarInfo 避让系统胶囊按钮(编辑资料/编辑宠物等页面保存按钮被遮挡问题) - 编辑资料页所在城市改为省份 picker 选择 - 修复"我的"页动态为空(getUserPosts 应传 openid 而非数据库 _id) - 重构编辑宠物页:品种改用 picker 滚轮(替代有数量上限的 actionSheet),标签改用 selectedTagSet 映射 + 自定义标签输入(5字以内、仅中英文/数字、最多8个) - 接通宠物保存/删除真实云函数调用并同步本地缓存 - 移除 feed 页对不存在的 getStories 云函数调用,修复模拟器卡死 - 移除 post 页对不存在的 wx.reverseGeocoder API 的调用 - 统一扩展 AppGlobalData 类型并修正所有 getApp 调用的泛型,解决 TS 报错
70 lines
2.1 KiB
TypeScript
70 lines
2.1 KiB
TypeScript
import { AppGlobalData } from '../../types/index'
|
|
|
|
const PROVINCES = [
|
|
'北京', '天津', '上海', '重庆',
|
|
'河北', '山西', '辽宁', '吉林', '黑龙江',
|
|
'江苏', '浙江', '安徽', '福建', '江西', '山东',
|
|
'河南', '湖北', '湖南', '广东', '海南',
|
|
'四川', '贵州', '云南', '陕西', '甘肃', '青海',
|
|
'内蒙古', '广西', '西藏', '宁夏', '新疆',
|
|
'香港', '澳门', '台湾',
|
|
]
|
|
|
|
const app = getApp<{ globalData: AppGlobalData }>()
|
|
|
|
Page({
|
|
data: {
|
|
statusBarHeight: 0,
|
|
navbarHeight: 44,
|
|
navbarPaddingRight: 0,
|
|
form: { nickName: '', bio: '', location: '' },
|
|
provinces: PROVINCES,
|
|
locationIndex: -1,
|
|
},
|
|
|
|
onLoad() {
|
|
const { statusBarHeight, navbarHeight, navbarPaddingRight } = app.globalData.navBarInfo
|
|
this.setData({ statusBarHeight, navbarHeight, navbarPaddingRight })
|
|
const user = app.globalData?.userInfo
|
|
if (user) {
|
|
const locationIndex = PROVINCES.indexOf(user.location || '')
|
|
this.setData({
|
|
form: { nickName: user.nickName || '', bio: user.bio || '', location: user.location || '' },
|
|
locationIndex,
|
|
})
|
|
}
|
|
},
|
|
|
|
onLocationChange(e: WechatMiniprogram.CustomEvent) {
|
|
const idx = Number(e.detail.value)
|
|
this.setData({ locationIndex: idx, 'form.location': PROVINCES[idx] })
|
|
},
|
|
|
|
onField(e: WechatMiniprogram.CustomEvent) {
|
|
this.setData({ [`form.${e.currentTarget.dataset.key}`]: e.detail.value })
|
|
},
|
|
|
|
async onSave() {
|
|
const { form } = this.data
|
|
if (!form.nickName.trim()) {
|
|
wx.showToast({ title: '昵称不能为空', icon: 'none' })
|
|
return
|
|
}
|
|
wx.showLoading({ title: '保存中...' })
|
|
try {
|
|
await wx.cloud.callFunction({ name: 'updateProfile', data: form })
|
|
if (app.globalData.userInfo) {
|
|
Object.assign(app.globalData.userInfo, form)
|
|
}
|
|
wx.hideLoading()
|
|
wx.showToast({ title: '保存成功', icon: 'success' })
|
|
setTimeout(() => wx.navigateBack(), 800)
|
|
} catch {
|
|
wx.hideLoading()
|
|
wx.showToast({ title: '保存失败', icon: 'none' })
|
|
}
|
|
},
|
|
|
|
onBack() { wx.navigateBack() },
|
|
})
|