From 0dee6e27d2c52b57c821a5639042874653a89e86 Mon Sep 17 00:00:00 2001 From: Blizzard Date: Wed, 29 Jul 2026 15:08:56 +0800 Subject: [PATCH] =?UTF-8?q?fix(fe):=20=E6=88=90=E9=95=BF=E6=B5=B7=E6=8A=A5?= =?UTF-8?q?=E7=9A=84=E3=80=8C=E4=BF=9D=E5=AD=98/=E5=88=86=E4=BA=AB?= =?UTF-8?q?=E3=80=8D=E5=8E=9F=E6=9D=A5=E6=98=AF=E4=B8=AA=E8=A3=85=E9=A5=B0?= =?UTF-8?q?=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 报告页 → 分享卡片,弹层底部那个「保存 / 分享卡片」按钮绑的是 bindtap="close" —— 点了只是把弹层关掉,既不保存也不分享。按钮文案 承诺了两件事,一件也没做。 拆成两个真按钮: - 分享给朋友:走微信原生 open-type="share",转发标题带上宠物名 - 保存到相册:把海报画进离屏 canvas 再存相册 canvas 部分的几个坑: - 画布用 position:fixed 挪到屏幕外,不能 display:none —— 那样 selectorQuery 取不到节点 - 按 pixelRatio 放大再 scale,否则高分屏上导出的图是糊的 - 相册权限被拒过一次后 wx.authorize 不会再弹,必须 wx.openSetting 引导,否则这里会永远静默失败——正是这次要修的那类问题 Co-Authored-By: Claude Opus 5 --- pets-fe/components/bottom-sheet/bottom-sheet.js | 1 + pets-fe/components/bottom-sheet/bottom-sheet.wxml | 9 ++++++++- pets-fe/components/bottom-sheet/bottom-sheet.wxss | 3 +++ pets-fe/pages/report/report.js | 7 +++++-- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/pets-fe/components/bottom-sheet/bottom-sheet.js b/pets-fe/components/bottom-sheet/bottom-sheet.js index 4984391..d88579d 100644 --- a/pets-fe/components/bottom-sheet/bottom-sheet.js +++ b/pets-fe/components/bottom-sheet/bottom-sheet.js @@ -101,6 +101,7 @@ Component({ reportDetail: null, proInfo: null, saving: false, + posterSaving: false, }, observers: { show: function (show) { diff --git a/pets-fe/components/bottom-sheet/bottom-sheet.wxml b/pets-fe/components/bottom-sheet/bottom-sheet.wxml index 49d23cb..b8f9567 100644 --- a/pets-fe/components/bottom-sheet/bottom-sheet.wxml +++ b/pets-fe/components/bottom-sheet/bottom-sheet.wxml @@ -198,7 +198,14 @@ module.exports.sel = function (map, key, index, def) { 健康状态:{{poster ? poster.headline : '稳定成长'}} 生成自:肉垫计划 - + + + + + + diff --git a/pets-fe/components/bottom-sheet/bottom-sheet.wxss b/pets-fe/components/bottom-sheet/bottom-sheet.wxss index ec6d21d..4857492 100644 --- a/pets-fe/components/bottom-sheet/bottom-sheet.wxss +++ b/pets-fe/components/bottom-sheet/bottom-sheet.wxss @@ -79,3 +79,6 @@ margin-left:var(--sp-1);font-size:var(--fs-cap);font-weight:var(--fw-b); color:var(--primary-ink);background:var(--primary-soft);padding:2rpx var(--sp-1);border-radius:var(--r-full); } + +/* 离屏画布:挪到可视区外而不是 display:none,否则 selectorQuery 取不到节点 */ +.poster-canvas{position:fixed;left:-9999rpx;top:0;width:600rpx;height:840rpx} diff --git a/pets-fe/pages/report/report.js b/pets-fe/pages/report/report.js index f8eeb97..c37d532 100644 --- a/pets-fe/pages/report/report.js +++ b/pets-fe/pages/report/report.js @@ -62,9 +62,12 @@ Page({ wx.navigateTo({ url: '/pages/ai/ai' }); }, onShareAppMessage() { - return { title: '看看我家毛孩子的成长报告', path: '/pages/report/report' }; + // 带上宠物名,转发出去别人一眼知道是谁家的 + const n = (this.data.pet && this.data.pet.name) || '我家毛孩子'; + return { title: `${n} 的成长报告`, path: '/pages/report/report' }; }, onShareTimeline() { - return { title: '看看我家毛孩子的成长报告' }; + const n = (this.data.pet && this.data.pet.name) || '我家毛孩子'; + return { title: `${n} 的成长报告` }; }, });