Blizzard
|
cecc7f4cbb
|
feat(fe): Phase B —— 计划并进首页,日期条能展开成整月
## 日期条 → 可展开日历
首页那条七天日期带下面加了「展开整月」。展开后是整月网格(有安排的
日子带绿点),点任意一天,任务卡跟着切到那天。收起来还是七天,默认
不拉日历接口。
这块原来是计划页的「日历」tab,现在从计划页整个摘掉了——「哪天要做
什么」和「今天要做什么」本来就是一件事,分在两个 tab 里只是让人多点
两下。日历样式(.cal-* / .day-detail / .dd-*)跟着从 plan.wxss 搬到
home.wxss,plan.wxss 里没留死规则。
## 任务卡下面挂当天的计划节点和提醒
day-plan 接口本来就返回 plan_nodes / reminders / tasks 三份。这里只取
前两份,任务列表仍然走 /tasks——因为 /tasks 会补生成当天任务而
day-plan 不会,拿它的 tasks 覆盖列表会让今天的任务凭空少掉。
## 「接下来」卡
30 天计划里最近 3 个还没做的节点,日期显示成「今天/明天/3 天后」而不是
7月31日。带完成度进度条,右上角「完整计划」进计划页。
计划页降级成二级页之后,这张卡是它在首页的唯一露出;没有它,计划这个
功能对用户来说就等于消失了。
## AI 计划入口
AI 页快捷区加了「生成养护计划」,直达 /pages/plan/plan?tab=aiPlan。
没有把这个表单搬进 AI 聊天页:它要渲染 extracted 四宫格和可勾选的任务
节点,塞进聊天流意味着同一个页面维护两套完全不同的渲染,收益只是少跳
一次。原本要解决的是「计划页降级后 AI 计划找不到了」,一个入口就够了。
顺带:iconfont 补了 up / down 两个 chevron(展开收起用)。
联调验证(本地 9090,新建幼犬档案):
day-plan 今天 → plan_nodes=['确认免疫与驱虫计划']
plan → completion_pct=0,4 个节点,date 字段齐全
接下来筛出 → 07-29 确认免疫与驱虫计划 / 08-01 观察饮水与排便 / 08-05 体重趋势检查
calendar → 2026-7,today=29,tasked_days=[29]
day-plan 未来日 → 08-01、08-05 各自返回对应节点
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-29 17:48:12 +08:00 |
|
Blizzard
|
5b2f8e50bc
|
fix: 带 date 查任务时区错位导致重复生成 + 评论弹窗重做 + AI 每日次数上限
## 首页添加的任务不显示(根因比表象严重)
time.Parse("2006-01-02", q) 返回的是 UTC 时间,dayStart 又保留了
t.Location(),于是带 ?date= 查询时:
查询区间 = 07-29 00:00 UTC ~ 次日 = CST 的 08:00 ~ 次日 08:00
已有任务的 task_date 是 07-29 00:00 CST,落在区间外
后果不只是「新任务不显示」——ensureDayTasks 因此认为今天没有任务,
每刷一次首页就重新生成一批。用户手动加的那条(00:00 CST)永远不在
那个错位窗口里,所以管理页看得到、首页看不到。
全项目 7 处 time.Parse 日期解析统一换成 ParseInLocation + time.Local
(任务、日计划、生日、到家日期、提醒到期日都受影响)。
实测:加一条后带 date 查得到 4 条,连查 4 次仍是 4 条不再增长。
## 评论弹窗
- 改成居中弹出。评论以输入为主,贴底弹层会被键盘顶掉大半屏
- 单行 input 换成自动撑高的 textarea,最多 500 字,带字数
- 支持配图,最多 3 张(评论表加 images 字段)
- 空评论原来会直接把弹层关掉,看起来像发成功了,改成明确提示
- 发完就地刷新列表,不再关闭弹层——连着回复更顺
## AI 每日次数上限
AI 调用是真金白银,不设上限等于把钱包交给用户。新增按「用户 + 自然日
+ 功能」计的额度,后台「社区运营」页可配问问 AI / 异常评估 / AI 计划
三档,改完立即生效。
两个刻意的设计:
- 扣额度在请求大模型之前,失败也算用掉一次。否则刷接口空转照样烧钱
- 配置读不到时回落到保守默认值,绝不「读不到就不限制」——那正是配置
出问题时最不该发生的事
超限返回业务码 42900,小程序端明确说明「明天 0 点恢复」,不当成网络
错误让用户反复重试。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-29 15:50:38 +08:00 |
|
Blizzard
|
35fc57e8de
|
feat(fe): AI 独立成页(打字机)+ 修快速记录 6 处问题 + 导航栏去接缝
AI 从底部弹层改成独立页面 pages/ai/ai:
- 整屏聊天,输入框固定在底部,不再是「问题都打不完」的小格子
- 回复逐字吐出(30ms/2 字),点一下可跳过
- 会话 session 从 sheet 改为 chat,历史拉 50 条
- 组件里对应的 ai 分支和 aiMessages/aiInput/sendAI 一并删掉,
避免两套实现并存
快速记录九个入口逐个排查,修掉 6 处:
1. 疫苗/驱虫的默认日期写死成 2026-07-21 / 2026-07-15,早已是过去的
日期 —— 改成打开时按今天 +30 / +90 天算
2. 异常观察没选症状时,optIdx 返回 0 会被当成选了「呕吐」,等于替
用户瞎填 —— 加 optPicked 判断,没选就提示
3. 体重为空时会静默存成「上次的体重」,凭空造一条假数据 —— 改为必填校验
4. 消费金额为空会存成 ¥0 —— 必填校验
5. 用药药品名为空 —— 必填校验
6. 照片弹层里「模拟上传预览」是没删掉的假文案
顺带清理:保存按钮上的 data-text / data-icon 从来没被读过(onSave 只用
buildRecord 的返回值),是纯误导的死属性,删掉。我上一条 commit 把它们
说成「写库值」是说错了 —— 真正写库的是 buildRecord 里的 icon 字段,那部分
仍然没动。
导航栏原来是一整条半透明色块,底边和页面渐变硬碰硬,屏幕上横着一道接缝。
改成上实下虚的渐变,并用同一条 mask 把毛玻璃一起淡出(只淡背景不淡 blur
的话,接缝会从色差变成糊边)。返回键做成圆形,和右上角胶囊视觉对称。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-07-29 11:10:41 +08:00 |
|