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}` }); }, 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() { this.setData({ sheetType: 'addPet', sheetShow: true }); }, onFab() { wx.navigateTo({ url: '/pages/ai/ai' }); }, onShareAppMessage() { return { title: '肉垫计划 · 每天照顾好毛孩子', path: '/pages/home/home' }; }, });