// 个人主页头部。「我的」和「宠友主页」共用同一份渲染——自己看和别人看 // 长得不一样的话,两边会慢慢长歪,装扮功能也就失去意义了。 // 差别只有一处:自己看是「装扮主页」,别人看是「关注 TA」。 Component({ options: { addGlobalClass: true }, properties: { card: { type: Object, value: null }, // 装扮页的实时预览:只看效果,不要底部那排按钮 preview: { type: Boolean, value: false }, hideWall: { type: Boolean, value: false }, // 「我的」页藏掉社交宠物墙,避免和「我的毛孩子」卡重复 // 关注/粉丝数字是否可点开列表。别人主页设 false:从关注/粉丝列表点进对方主页后, // 不再允许打开对方的关注/粉丝,否则会无限套娃 relationsClickable: { type: Boolean, value: true }, }, data: { initial: '', theme: 'warm' }, observers: { card(c) { if (!c) return; this.setData({ // WXML 取不了字符串下标,首字得在 JS 里算 initial: (c.nickname || '?').slice(0, 1), theme: c.theme || 'warm', }); }, }, methods: { onFollow() { this.triggerEvent('follow'); }, onDecorate() { this.triggerEvent('decorate'); }, onRelations(e) { if (!this.data.relationsClickable) return; // 别人主页:只看数字,不给点开列表 this.triggerEvent('relations', { kind: e.currentTarget.dataset.kind }); }, onPet(e) { this.triggerEvent('pet', { id: e.currentTarget.dataset.id }); }, }, });