2f5dd6eefc
后端
- 主键改雪花字符串 ID(pkg/idgen + Base.BeforeCreate),全表外键/JWT/中间件随之调整
- 新增 files 表:/api/upload 按 MD5 去重,返回 {id,url,md5},服务端只收图片
- 头像/记录附图/帖子图改 file_id 关联,读取解析为 URL
- 养护模板(物种×阶段)后台可配 + AI 生成草稿;建档按模板生成任务/计划/提醒
- 社区 AI 运营:虚拟账号池 + 每日定时/手动生成,帖子带 AI 标
- 计划路线图节点带真实日期;首页周历与计划日历同源;新增 day-plan 当日安排
- 体重趋势接口带备注;记录列表分页
小程序
- 公共图片上传 utils/upload.js(仅图片);记录拍照/我的头像/社区发图三处接入
- 首页日历点选查当日任务;记录页体重趋势可点看备注 + 时间轴分页折叠
- 计划页日历点选查当日计划;自定义 tabBar 高度调整
后台(React)
- 新增「养护模板」「社区运营」页;用户管理加机器人筛选
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
50 lines
2.4 KiB
Plaintext
50 lines
2.4 KiB
Plaintext
.page-body{padding:8rpx 40rpx calc(210rpx + env(safe-area-inset-bottom))}
|
|
.pt-h2{font-size:46rpx;letter-spacing:-.6rpx;font-weight:800}
|
|
.pt-p{color:var(--muted);font-size:26rpx;margin-top:10rpx}
|
|
|
|
.feed-tabs{white-space:nowrap;padding:0 0 24rpx}
|
|
.feed-tab{
|
|
display:inline-block;border:1rpx solid var(--line);background:#fff;border-radius:999rpx;
|
|
height:68rpx;line-height:68rpx;padding:0 26rpx;color:var(--muted);font-size:26rpx;font-weight:900;
|
|
box-shadow:0 12rpx 32rpx rgba(70,48,25,.05);margin-right:16rpx;
|
|
}
|
|
.feed-tab.active{color:var(--primary-dark);background:#FFF4E4;border-color:#FFD39A}
|
|
|
|
.compose-card{
|
|
display:flex;gap:20rpx;align-items:center;background:#fff;border-radius:44rpx;
|
|
box-shadow:var(--shadow);padding:24rpx;margin-bottom:28rpx;
|
|
}
|
|
.compose-input{
|
|
flex:1;height:76rpx;line-height:76rpx;border-radius:999rpx;background:#FBFAF8;
|
|
border:1rpx solid var(--line);color:var(--muted);padding:0 26rpx;font-size:26rpx;
|
|
overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
|
|
}
|
|
|
|
.post-card{background:#fff;border-radius:48rpx;box-shadow:var(--shadow);padding:30rpx;margin-bottom:28rpx}
|
|
.post-head{display:flex;align-items:center;gap:20rpx;margin-bottom:22rpx}
|
|
.post-avatar{
|
|
width:84rpx;height:84rpx;border-radius:32rpx;background:#FFF0D8;
|
|
display:flex;align-items:center;justify-content:center;font-size:44rpx;flex:none;
|
|
}
|
|
.post-user{flex:1}
|
|
.pu-b{font-size:28rpx;display:block;font-weight:700}
|
|
.ai-tag{display:inline-block;margin-left:10rpx;padding:0 10rpx;border-radius:8rpx;background:#EAF0FF;color:#3B6BE5;font-size:20rpx;font-weight:700;vertical-align:1rpx}
|
|
.pu-s{font-size:24rpx;color:var(--muted)}
|
|
.post-content{font-size:28rpx;line-height:1.62;color:#443D37;margin-bottom:24rpx}
|
|
|
|
.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12rpx;margin-bottom:24rpx}
|
|
.photo-tile{
|
|
aspect-ratio:1;border-radius:32rpx;background:linear-gradient(135deg,#FFE6BA,#FFF8ED);
|
|
display:flex;align-items:center;justify-content:center;font-size:60rpx;
|
|
}
|
|
|
|
.post-actions{display:flex;justify-content:space-around;border-top:1rpx solid var(--line);padding-top:20rpx}
|
|
.pa-btn{color:var(--muted);font-weight:900;font-size:26rpx}
|
|
.pa-btn.liked{color:var(--red)}
|
|
|
|
.empty-hint{text-align:center;color:var(--muted);font-size:26rpx;padding:80rpx 0}
|
|
|
|
/* 页面不自身滚动,改由 page-scroll 承载滚动(隐藏滚动条)*/
|
|
page{height:100vh;overflow:hidden;display:flex;flex-direction:column}
|
|
.page-scroll{flex:1;min-height:0}
|