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:
@@ -0,0 +1,31 @@
|
||||
const api = require('../../utils/api.js');
|
||||
|
||||
Page({
|
||||
data: {
|
||||
article: null,
|
||||
loading: true,
|
||||
error: '',
|
||||
},
|
||||
onLoad(options) {
|
||||
const id = options.id;
|
||||
if (!id) {
|
||||
this.setData({ loading: false, error: '文章不存在' });
|
||||
return;
|
||||
}
|
||||
api
|
||||
.getArticle(id)
|
||||
.then((a) => this.setData({ article: a, loading: false }))
|
||||
.catch((e) => this.setData({ loading: false, error: e.message || '加载失败' }));
|
||||
},
|
||||
// 从文章跳到对应的记录入口
|
||||
goRecord() {
|
||||
wx.switchTab({ url: '/pages/record/record' });
|
||||
},
|
||||
onShareAppMessage() {
|
||||
const a = this.data.article;
|
||||
return {
|
||||
title: a ? a.title : '肉垫计划 · 新手养宠知识',
|
||||
path: a ? `/pages/article/article?id=${a.id}` : '/pages/home/home',
|
||||
};
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"nav-bar": "/components/nav-bar/nav-bar"
|
||||
},
|
||||
"navigationStyle": "custom",
|
||||
"navigationBarTitleText": "新手知识"
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
<nav-bar title="新手知识" show-back="{{true}}"></nav-bar>
|
||||
|
||||
<scroll-view class="page-scroll" scroll-y="{{true}}" enhanced="{{true}}" show-scrollbar="{{false}}">
|
||||
<view class="page-body">
|
||||
<view wx:if="{{loading}}" class="hint">加载中…</view>
|
||||
<view wx:elif="{{error}}" class="hint">{{error}}</view>
|
||||
|
||||
<block wx:elif="{{article}}">
|
||||
<view class="art-head">
|
||||
<view class="art-icon">{{article.icon}}</view>
|
||||
<view class="art-title">{{article.title}}</view>
|
||||
<view wx:if="{{article.description}}" class="art-desc">{{article.description}}</view>
|
||||
</view>
|
||||
|
||||
<view class="card">
|
||||
<view wx:if="{{article.content}}" class="art-content">{{article.content}}</view>
|
||||
<view wx:else class="hint">这篇文章还没有正文。</view>
|
||||
</view>
|
||||
|
||||
<button class="btn btn-primary btn-block" bindtap="goRecord">去记一笔</button>
|
||||
<view class="art-foot">内容仅供日常照护参考,不能替代医生诊断。</view>
|
||||
</block>
|
||||
</view>
|
||||
</scroll-view>
|
||||
@@ -0,0 +1,17 @@
|
||||
page{height:100vh;overflow:hidden;display:flex;flex-direction:column}
|
||||
.page-scroll{flex:1;min-height:0}
|
||||
.page-body{padding:8rpx 36rpx calc(60rpx + env(safe-area-inset-bottom))}
|
||||
|
||||
.hint{padding:60rpx 0;text-align:center;color:var(--muted);font-size:28rpx}
|
||||
|
||||
.art-head{padding:12rpx 0 28rpx}
|
||||
.art-icon{font-size:72rpx;line-height:1;margin-bottom:16rpx}
|
||||
.art-title{font-size:44rpx;font-weight:800;line-height:1.35;letter-spacing:-.5rpx}
|
||||
.art-desc{margin-top:14rpx;color:var(--muted);font-size:27rpx;line-height:1.6}
|
||||
|
||||
.art-content{
|
||||
font-size:29rpx;line-height:1.85;color:#3D352E;
|
||||
white-space:pre-line; /* 正文用真实换行排版 */
|
||||
}
|
||||
|
||||
.art-foot{margin-top:28rpx;text-align:center;color:var(--muted);font-size:23rpx}
|
||||
Reference in New Issue
Block a user