feat(fe): 宠物照片替代默认头像,身份卡移到首页门面卡

- 首页/我的/切换条:上传过照片就用照片,没有才退回 emoji
- 报告页分享海报:先异步加载头像再开画,画成圆形头像
- 一起生活的天数改成从到家日期算,没填就显示「-」并可点去补
- 身份卡入口从「我的」页移到首页门面卡右上角

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Blizzard
2026-07-30 17:08:32 +08:00
parent cbfcaada55
commit 11c4d490e6
10 changed files with 79 additions and 22 deletions
-6
View File
@@ -56,12 +56,6 @@ Page({
goDecorate() {
wx.navigateTo({ url: '/pages/decorate/decorate' });
},
// 身份卡:当前这只的
goIDCard() {
const id = store.currentPetId();
if (!id) return wx.showToast({ title: '先选一只毛孩子', icon: 'none' });
wx.navigateTo({ url: '/pages/idcard/idcard?id=' + id });
},
goPlan() {
wx.navigateTo({ url: '/pages/plan/plan' });
},
+4 -5
View File
@@ -17,7 +17,10 @@
<view class="link" bindtap="onAddPet"> 添加</view>
</view>
<view wx:for="{{pets}}" wx:key="id" class="pet-row" data-id="{{item.id}}" bindtap="onPickPet">
<view class="pet-emoji">{{item.emoji}}</view>
<view class="pet-emoji">
<image wx:if="{{item.avatar_url}}" class="pet-emoji-img" src="{{item.avatar_url}}" mode="aspectFill"></image>
<block wx:else>{{item.emoji}}</block>
</view>
<view class="pet-info">
<view class="tt-b">{{item.name}}</view>
<view class="tt-p">{{item.age}}{{item.weight}}{{item.stage}}</view>
@@ -33,10 +36,6 @@
<view class="pr-ic"><pt-icon name="user" size="{{34}}"></pt-icon></view>
<text class="pr-label">宠物档案</text><view class="pr-arrow"><pt-icon name="next" size="{{28}}"></pt-icon></view>
</view>
<view class="profile-row" bindtap="goIDCard">
<view class="pr-ic"><pt-icon name="user" size="{{34}}"></pt-icon></view>
<text class="pr-label">身份卡</text><text class="pr-val">可保存、分享</text><view class="pr-arrow"><pt-icon name="next" size="{{28}}"></pt-icon></view>
</view>
<view class="profile-row" bindtap="goPlan">
<view class="pr-ic"><pt-icon name="plan" size="{{34}}"></pt-icon></view>
<text class="pr-label">养护计划</text><view class="pr-arrow"><pt-icon name="next" size="{{28}}"></pt-icon></view>
+2 -1
View File
@@ -1,7 +1,7 @@
.pet-row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1rpx solid var(--line)}
.pet-row:last-child{border-bottom:0}
.pet-emoji{
.pet-emoji{overflow:hidden;
width:76rpx;height:76rpx;border-radius:var(--r-sm);flex:none;
display:flex;align-items:center;justify-content:center;
background:var(--primary-soft);font-size:40rpx;
@@ -9,3 +9,4 @@
.pet-info{flex:1;min-width:0}
.me-preview{margin-bottom:var(--sp-5)}
.pet-emoji-img{width:100%;height:100%;display:block}