11c4d490e6
- 首页/我的/切换条:上传过照片就用照片,没有才退回 emoji - 报告页分享海报:先异步加载头像再开画,画成圆形头像 - 一起生活的天数改成从到家日期算,没填就显示「-」并可点去补 - 身份卡入口从「我的」页移到首页门面卡右上角 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
82 lines
2.6 KiB
JavaScript
82 lines
2.6 KiB
JavaScript
const store = require('../../utils/store.js');
|
|
const api = require('../../utils/api.js');
|
|
const { toastErr } = require('../../utils/ui.js');
|
|
const { syncTabBar } = require('../../utils/tabbar.js');
|
|
|
|
Page({
|
|
data: { user: {}, pets: [], card: null, sheetShow: false, sheetType: '' },
|
|
onLoad() {
|
|
this._unsub = store.subscribe(() => this.applyUser());
|
|
},
|
|
onUnload() {
|
|
if (this._unsub) this._unsub();
|
|
},
|
|
onShow() {
|
|
syncTabBar(this);
|
|
store
|
|
.ready()
|
|
.then(() => {
|
|
this.applyUser();
|
|
this.loadCard();
|
|
})
|
|
.catch((e) => toastErr(e));
|
|
},
|
|
applyUser() {
|
|
this.setData({ pets: store.getPets(), user: store.getUser() || {} });
|
|
},
|
|
// 头部数据走 /users/:id/profile,和别人看我时是同一个接口——
|
|
// 换成 /user/summary 的话两边字段会对不上,装扮效果也预览不到
|
|
loadCard() {
|
|
const uid = (this.data.user && this.data.user.id) || '';
|
|
if (!uid) return;
|
|
api
|
|
.userCard(uid)
|
|
.then((card) => this.setData({ card }))
|
|
.catch(() => {});
|
|
},
|
|
// 看自己的公开主页,和别人看到的是同一个页面、同一套渲染
|
|
previewPublic() {
|
|
const uid = this.data.user && this.data.user.id;
|
|
if (uid) wx.navigateTo({ url: `/pages/user/user?id=${uid}` });
|
|
},
|
|
goSettings() {
|
|
wx.navigateTo({ url: '/pages/settings/settings' });
|
|
},
|
|
goRelations(e) {
|
|
const uid = (this.data.user && this.data.user.id) || '';
|
|
if (!uid) return wx.showToast({ title: '登录信息还没就绪', icon: 'none' });
|
|
wx.navigateTo({ url: `/pages/relations/relations?id=${uid}&kind=${e.detail.kind}` });
|
|
},
|
|
// 宠物档案:当前这只的编辑页
|
|
goPetForm() {
|
|
const id = store.currentPetId();
|
|
if (!id) return wx.navigateTo({ url: '/pages/petform/petform' });
|
|
wx.navigateTo({ url: '/pages/petform/petform?id=' + id });
|
|
},
|
|
goDecorate() {
|
|
wx.navigateTo({ url: '/pages/decorate/decorate' });
|
|
},
|
|
goPlan() {
|
|
wx.navigateTo({ url: '/pages/plan/plan' });
|
|
},
|
|
// 列表行传 dataset,宠物名片墙传 detail,两边都进这里
|
|
onPickPet(e) {
|
|
const id = (e.detail && e.detail.id) || e.currentTarget.dataset.id;
|
|
if (!id) return;
|
|
store.switchPet(id);
|
|
wx.switchTab({ url: '/pages/home/home' });
|
|
},
|
|
openSheet(e) {
|
|
this.setData({ sheetType: e.currentTarget.dataset.type, sheetShow: true });
|
|
},
|
|
closeSheet() {
|
|
this.setData({ sheetShow: false });
|
|
},
|
|
onAddPet() {
|
|
wx.navigateTo({ url: '/pages/petform/petform' });
|
|
},
|
|
onShareAppMessage() {
|
|
return { title: '肉垫计划 · 每天照顾好毛孩子', path: '/pages/home/home' };
|
|
},
|
|
});
|