fix(fe): 修社区图片撑破网格;发帖限 3 张;上传偶发失败自动重试 #5

Merged
Blizzard merged 33 commits from feat/dev into main 2026-07-31 10:43:15 +00:00

33 Commits

Author SHA1 Message Date
Blizzard 51ead8f411 style(fe): 身份卡只留截图字段 — 去掉性格标签,高度压到 cardH=510
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 18:41:38 +08:00
Blizzard 1544151e5c style(fe): 身份卡降到 cardH=540,反面去掉备注行并压紧版式
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 18:39:09 +08:00
Blizzard c07ed03539 style(fe): 身份卡正反两张等高(都用 cardH=630),正面中间内容垂直居中
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 18:37:17 +08:00
Blizzard 473c9f9200 style(fe): 照护卡改证件版式 — 大字「X星人地球移民/居民身份卡」左对齐
- 去掉蓝色标题条,照护卡整体换淡紫底
- 标题两行左对齐:小字带字距「汪星人/喵星人/宠星人地球移民」+ 大字「居民身份卡」
- 按物种动态取字:狗→汪星人、猫→喵星人、其它→宠星人
- 发证机构→签发机构、有效期→有效期限;小程序码落到右下角淡紫底上
- 新增 spacedText 逐字字距工具

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 18:35:11 +08:00
Blizzard 59412010dc feat(fe+be): 身份卡加公章、修性别符号、电话显示全、照护卡标题两行
- 修正性别 ♂/♀:用名字字号量宽度再定位,不再怼到名字上(之前用小字号量偏了)
- 正反两张卡右上角各盖一枚「肉垫计划 · 官方认证」红色公章(双圈+五角星,微旋转半透明)
- 照护卡标题改成两行「X星地球移民 / 居民身份卡」(按猫狗取 喵/汪/宠)
- 正面「物ID」改为「ID」
- 后端 IDCard.Phone 返回完整手机号,不再脱敏

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 18:32:09 +08:00
Blizzard 4e3859227e style(fe): 身份卡再精简 — 去掉 logo/徽章/图标 emoji 和多余招呼语
- 正面去掉「宠星人」logo、「宠物身份卡」盾牌徽章、爪印水印,头像上移
- 照护卡标题去掉 🌿,各行去掉 👤📞📝🏛📅 图标只留文字
- 走失框去掉「🔔 走失时请联系主人」标题和「或联系主人」,只留扫码说明
- 去掉页面底部「小程序码发布后出现」占位提示

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 18:23:42 +08:00
Blizzard d9a80d7f8a style(fe): 身份卡按参考图收拾 — 去标题/正反面标签/疫苗,卡高按内容自适应
- 去掉顶部「宠物身份卡」大标题和「· 正面 ·/· 背面 ·」灰字,只留两张卡
- 正面卡高度按性格/介绍有无动态算,消掉中间大块空白
- 性格标签为空时整段不画
- 照护卡去掉「疫苗情况」行
- 导出只裁到实际内容底部,卡片下面不再拖空白

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 18:15:45 +08:00
Blizzard 747e7c9d3a feat(fe): 身份卡手机号门槛加「手动填写」兜底
getPhoneNumber 需企业认证 + 手机号验证权限,个人/未认证小程序唤不起。
门槛卡加「手动填写手机号」入口:填 11 位号 → updateProfile 存库 → 重取卡生成。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 17:52:31 +08:00
Blizzard 586875f8c5 feat: 身份卡改上下两张卡(正面/背面) + 手机号硬门槛
- canvas 重画成上下两张:正面(暖黄,头像/名字性别/性别品种毛色年龄/性格
  彩色标签/介绍/物ID+一起生活天数)、背面(蓝色照护信息条 + 主人/电话/疫苗/
  备注/发证机构/有效期 + 走失联系框&小程序码)
- 生成前查手机号:没有则唤起 getPhoneNumber 组件,验证成功才生成;
  拒绝则提示「无法生成」不出卡
- IDCard 增 age/days;ic-canvas 高度改 1480 否则导出被裁

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 17:48:39 +08:00
Blizzard 15adfb76ac feat(fe): 身份卡重绘成正面+照护信息+证件三段式 + 手机号验证
- 正面:头像/名字/物种性别 + 品种·毛色 / 出生·星座 / 体重 + 性格标签chips
- 照护信息:主人 / 联系电话 / 疫苗情况 / 备注(去掉驱虫、过敏)
- 证件区:居民身份卡 + 身份ID / 发证机构 / 有效期 + 小程序码
- 未验证手机号时页面出现「用微信验证手机号」(getPhoneNumber),
  拿到 code 换手机号后重取卡重画;表单去掉过敏输入

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 17:28:26 +08:00
Blizzard ef172f4e4a feat: 宠物加性格/过敏/备注字段 + 身份卡照护信息 + 微信取手机号
- Pet 增 personality/allergy/notes;建档表单加「性格标签(多选)/过敏/备注」
- IDCard 增 color/personality/owner/phone(脱敏)/allergy/notes/疫苗驱虫状态/发证机构
- 微信取手机号:POST /api/user/phone 用 getPhoneNumber 的 code 换手机号存库
  (BindPhoneByCode 走 getuserphonenumber,复用 access_token)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 17:12:56 +08:00
Blizzard 93fc9bc5da style(fe): 成长报告海报预览卡排版打磨
- 头像改圆形 + 白边(和保存的图一致)
- 周期做成小胶囊;数据清单每行「绿勾 + 项目 + 数值右对齐」,更整齐
- 健康状态做成绿色徽章;生成自弱化

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 16:16:38 +08:00
Blizzard 931fb69ef2 fix(fe): 海报预览卡(wxml)也显示真实头像 + 统计周期
之前只改了导出用的 canvas,但弹层里看到的预览卡是 wxml 渲染的,
头像写死 emoji、也没周期。现在预览卡:有照片用照片(poster.pet_avatar_url
兜底 pet.avatar_url)、加「近 7 天 · 日期」周期行,和导出图一致。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 16:10:42 +08:00
Blizzard 72c5308214 fix(be): 海报 pet_avatar_url 一直为空——ownedPet 不解析头像
GetPoster 用 ownedPet 只填了 Age,头像 URL 没解析,导致 pet_avatar_url
恒为空、海报总是退回 emoji。改成显式 s.fileURL(pet.AvatarFileID)。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 16:08:23 +08:00
Blizzard c890732410 feat: 成长报告海报改周报口径 + 显示统计周期
- 海报四项统计原来是全部累计,和「周报告」不符;改成近 7 天口径
  (和报告页本周概览一致),高风险异常也按本周真实统计(原来写死 0)
- Poster 加 period 字段,海报上画出「近 7 天 · 07.25 - 07.31」

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 15:33:12 +08:00
Blizzard 95471d0549 style(fe): 我的顶部卡片重排——左对齐紧凑布局
- 没设头图时不再留一块空橙色 banner(和整页暖橘背景撞色的怪感消除)
- 身份行改左对齐:头像 + 昵称/签名并排;社交数(帖子/关注/粉丝)缩成
  一小行内联;养宠数据保留高亮带。头图设了才显示
- 主题色/头图/签名/展示开关都照常生效

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 15:28:23 +08:00
Blizzard 1610fd6814 style(fe): 装扮/预览两个按钮改一行两列、缩小文字
装扮按钮从 profile-head 挪到「我的」页,和「看看别人眼里的我」并成
一行两列(装扮主页 / 别人眼里的我),字号缩小、图标小一号;
profile-head 只保留别人主页的关注键。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 15:22:22 +08:00
Blizzard 4c9fbc4a88 fix(fe+be): 我的页去重宠物墙 + 养宠天数按到家日算
- 养宠天数原来按建档日算,重新建档会被重置成 1(和首页「第869天」矛盾);
  改成按最早那只的到家日算(无到家日退建档日),和首页口径一致
- 「我的」页 profile-head 传 hideWall,藏掉社交宠物墙(下面「我的毛孩子」
  卡更详细,重复了);宠物墙只在别人访问/预览时出现,受「展示我的毛孩子」
  开关控制,语义更对(那开关本来就是给别人看的)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 15:11:59 +08:00
Blizzard 4a1b5e66d3 fix: 成长报告海报用宠物真实头像(没传才用 emoji)
- 后端 Poster 增 pet_avatar_url(取 pet.AvatarURL,和身份卡同一可靠路径)
- 海报 canvas 优先用它、store 兜底;有照片画圆形头像、没有才 emoji
- 头像九参数居中裁剪,竖图/横图都不压扁

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 15:00:47 +08:00
Blizzard d45696140b style(fe): 首页管理计划/记花销 banner 压低
上下 padding sp-5→sp-4、图标块 96→76rpx、间距收紧,整卡矮一截。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 14:53:43 +08:00
Blizzard d5dfde14f4 fix(fe): textarea 占位/文字从第一行开始(改回块级顶部对齐)
共用输入样式 .input,input,textarea,.picker-box 里的 display:flex+
align-items:center 是给单行 input 竖向居中的,但选择器带了 textarea,
导致所有多行输入的占位/光标被竖向居中、不从第一行开始。加一条
textarea{display:block} 恢复顶部对齐,一处修计划备注/记录描述/体重描述/评论。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 14:50:49 +08:00
Blizzard 282306b919 feat(fe): 首页最近记录只留最新6条 + 查看全部入口,去掉无限滚动
首页是速览,记录多了不该无限加载。固定拉最新 6 条,有更多就露出
「查看全部记录 ›」跳到能分页筛选的全部记录页;移除滚动分页/加载更多。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 14:45:29 +08:00
Blizzard 2f2757267e fix(be): 任务完成统计与留痕改用 PlanTask(DailyTask 已空)
- TogglePlanTask:完成无 sheet_type 的任务时补一条 note 记录,
  首页/计划页两条路径都统一留痕(ToggleTask 委托它);去掉前端重复建记录
- 报告页「完成任务」原来统计空的 DailyTask 恒为 0,改成经 plan 关联
  统计 PlanTask 本周完成数;用户汇总的 tasksDone 同改
- 首页今日完成度 todayCompletionPct 同样从 DailyTask 改成今日 PlanTask

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 14:29:04 +08:00
Blizzard 0f3efbc895 chore(be): 上传对象按月份分文件夹 uploads/YYYY-MM/
MD5 去重本来就有(相同内容直接返回已有记录不重传);对象名从
files/<md5> 改成 uploads/2026-07/<md5>,跨月的同内容仍走去重不重复占用。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 14:16:53 +08:00
Blizzard a91f5e39ca feat: 发帖去身份用昵称、标签对齐筛选、图片限2、无类型任务也留痕
- 发帖去掉「发布身份」选择,统一用发布者昵称(后端按 user 取昵称)
- 发帖标签改成 晒宠/新手求助/经验,和社区顶部筛选完全一致;
  tabTag 新手求助→新手求助(原来映射成「求助」对不上)
- 内容输入框:点整块 field 都聚焦(原生 textarea 在 scroll-view 里
  命中区域会偏,只有 placeholder 处能点)
- 发帖图片上限 3→2,文案标注「最多 2 张」
- 无记录类型的自定义任务完成后,补一条 note 记录,最近记录里留痕

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 14:12:52 +08:00
Blizzard b52729dec8 feat(fe): 整站改品牌暖橘竖向淡出渐变,取代独立色块
- page 背景换成顶部品牌橘 → 约半屏褪到米白的竖向淡出,铺全部页面,
  没有色块接缝问题,整屏更一体
- nav-bar 默认改透明 + 深棕字(顶部本身就暖,不再铺奶白毛玻璃);
  去掉 Step4 的 tone 属性和独立 .brand-band
- 带切换条的页面(首页/报告/历史/计划)统一 on-band:chip 半透明白、
  选中实白,在暖底上更清晰

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 13:59:05 +08:00
Blizzard bbc34c5bd6 feat(fe): Step4 门面品牌色带(方案A)+ nav-bar tone
- nav-bar 加 tone="brand":透明底 + 深棕字,压在色带上;默认分支不动
- 首页/记录页顶部加 252rpx 品牌橘色带(下沿大圆角,z-index:-1 垫背后),
  盖住 nav + 切换条,门面卡在色带下方
- 切换条压在色带上:chip 半透明白 + 深棕字,选中实白
- page 加 position:relative 供色带绝对定位锚定
- 新增 --band-a/--band-b/--band-ink token(取自 preview-v3 定稿)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 13:42:11 +08:00
Blizzard bb7db78763 feat(fe+be): 身份卡头像不再压扁 + 内容丰富
- 头像用九参数 drawImage 居中裁剪(cover),竖图/横图都不变形,加白边圈
- 后端 IDCard 增 zodiac(按生日算星座) + weight,卡面加「星座/体重」行
- 加淡淡的肉垫水印 + 旋转的「肉垫计划·官方认证」印章
- 画布加高容纳新增内容

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 11:50:04 +08:00
Blizzard 96c92f2cfb feat(fe): 今日任务完成走记录表单,去掉「全部完成」
- 去掉首页「全部完成」按钮,避免一键刷完不留记录
- 勾选带记录类型的任务 → 跳记录表单,保存成功后才回填任务完成,
  返回首页 onShow 自动刷新任务勾选 + 最近记录(带 taskId 传参)
- 只对未完成任务传 taskId,避免重复完成把已完成任务 toggle 回去
- 无记录类型的任务(如遛狗)仍直接勾选完成

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 09:03:27 +08:00
Blizzard 603bd5773e feat: 用户可见自己帖子的审核状态
- 发帖后若未直接过审,弹窗明确「审核中,通过后才出现在社区」,
  不再让用户以为发失败/是 bug
- 后端 ListUserPosts:看自己主页时返回待审核/未通过的帖子(带状态),
  看别人仍只返回已发布
- 个人主页帖子加「审核中/未通过」状态标 + 说明
- 我的页加「我的帖子」入口,进自己主页看审核状态

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 08:49:20 +08:00
Blizzard b01effaf5e style(fe): 社区帖子图片改固定小缩略图(210rpx 正方形)
aspect-ratio 在微信渲染不生效导致竖图被撑长。改成 flex-wrap +
显式 210rpx 见方的缩略图,小而统一,点击 previewImage 放大。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 08:40:06 +08:00
Blizzard f0ea05696c feat(fe): 社区帖子图片点击放大预览
缩略图保持网格展示,点击走 wx.previewImage 全屏预览,
可左右切换同帖多图(emoji 占位不参与)。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 08:33:55 +08:00
Blizzard c852817363 fix(fe): 修社区图片撑破网格;发帖限 3 张;上传偶发失败自动重试
- .photo-tile 补 width:100%+min-width:0:微信 image 默认 320x240,
  不给宽高会冲破 photo-grid(社区帖子图片"爆炸")
- 发帖图片上限从 9 张改成 3 张
- uploadFile 三重兜底:冷启动没 token 先续期、40100 续期重试、
  网络/网关瞬时错误自动重试一次(后端 MD5 去重,重传安全)

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 08:32:22 +08:00