feat: 补齐五块缺失功能(记录丢数据/文章正文/提醒管理/我的页入口/分享/关注)
P0 修数据问题 - 记录弹层有 5 个输入框从未绑定,用户填的便便备注、饮食内容、药品名称、 剂量、消费备注全部丢弃;用药记录因此只存下「用药记录」四个字。已全部绑定并入库 - 异常观察保存时写死「风险中」,AI 实际判定的等级被丢掉。改为使用 riskData 的真实 risk_level,并把成因与建议存进备注 文章正文 - 早期 seed 的 4 篇文章 Content 全空,点开只是打开关联记录弹层,内容运营等于白做 - 补写 4 篇真实正文(疫苗驱虫/软便判断/换粮方案/养宠花销),遵循不诊断、 异常必提就医的护栏;对已存在的空正文做幂等回填 - 新增文章详情页,学习页与首页卡片改为打开正文 提醒管理 - 后端 CRUD 早已具备但小程序只读,用户改不了疫苗驱虫日期。提醒弹层支持增删改 - 修复后端 UpdateReminder 漏掉 type 字段导致改类型不生效 「我的」页 7 个死入口接活 - 提醒设置、健康记录、多宠物管理、会员权益分别落到对应功能 - 数据导出:汇总档案与记录为文本,可复制发给医生 - 意见反馈:新增 feedback 表与提交接口,后台加「意见反馈」管理页 - 关于我们:应用说明与免责声明 分享 - 各页面补 onShareAppMessage/onShareTimeline - 帖子分享按钮改用微信原生 open-type="share",删除原来点了没反应的空壳弹层 社区关注 - 新增 follows 表与关注/取关接口,「关注」tab 此前等同「推荐」, 现只显示已关注用户的帖子;帖子头部可直接关注,标记 followed / is_self Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,9 @@ function mapPost(p) {
|
||||
tag,
|
||||
tagClass: TAG_CLASS[tag] || '',
|
||||
is_ai: !!p.is_ai,
|
||||
user_id: p.user_id,
|
||||
followed: !!p.followed,
|
||||
is_self: !!p.is_self,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -92,4 +95,33 @@ Page({
|
||||
onFab() {
|
||||
this.setData({ sheetType: 'ai', sheetPostId: 0, sheetShow: true });
|
||||
},
|
||||
// 关注 / 取关帖子作者
|
||||
toggleFollow(e) {
|
||||
const i = e.currentTarget.dataset.index;
|
||||
const p = this.data.posts[i];
|
||||
if (!p || !p.user_id || p.is_self) return;
|
||||
const fn = p.followed ? api.unfollowUser : api.followUser;
|
||||
fn(p.user_id)
|
||||
.then(() => {
|
||||
// 同一作者的所有帖子一起更新状态
|
||||
const posts = this.data.posts.map((x) =>
|
||||
x.user_id === p.user_id ? { ...x, followed: !p.followed } : x,
|
||||
);
|
||||
this.setData({ posts });
|
||||
wx.showToast({ title: p.followed ? '已取消关注' : '已关注', icon: 'none' });
|
||||
if (this.data.feedTabs[this.data.feedIdx] === '关注') this.loadPosts();
|
||||
})
|
||||
.catch((err) => wx.showToast({ title: err.message || '操作失败', icon: 'none' }));
|
||||
},
|
||||
onShareAppMessage(e) {
|
||||
// 从帖子上的分享按钮转发:带上该帖内容做标题
|
||||
if (e && e.from === 'button') {
|
||||
const c = (e.target.dataset.content || '').slice(0, 40);
|
||||
return { title: c ? '宠友圈:' + c : '来宠友圈看看大家的毛孩子', path: '/pages/community/community' };
|
||||
}
|
||||
return { title: '宠友圈 · 和铲屎官们交流养宠经验', path: '/pages/community/community' };
|
||||
},
|
||||
onShareTimeline() {
|
||||
return { title: '宠友圈 · 和铲屎官们交流养宠经验' };
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user