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>
44 lines
1.9 KiB
Plaintext
44 lines
1.9 KiB
Plaintext
.overlay{
|
|
position:fixed;inset:0;z-index:200;
|
|
background:rgba(26,18,12,.30);
|
|
opacity:0;pointer-events:none;transition:.2s ease;
|
|
backdrop-filter:blur(6rpx);-webkit-backdrop-filter:blur(6rpx);
|
|
}
|
|
.overlay.show{opacity:1;pointer-events:auto}
|
|
.sheet{
|
|
position:absolute;left:0;right:0;bottom:0;
|
|
background:#fff;border-radius:60rpx 60rpx 0 0;
|
|
padding:32rpx 0 0;
|
|
transform:translateY(106%);transition:.24s ease;
|
|
box-shadow:0 -40rpx 100rpx rgba(0,0,0,.16);
|
|
}
|
|
.overlay.show .sheet{transform:translateY(0)}
|
|
.sheet-scroll{
|
|
box-sizing:border-box;
|
|
max-height:78vh;
|
|
padding:0 36rpx calc(120rpx + env(safe-area-inset-bottom));
|
|
}
|
|
.sheet-scroll::-webkit-scrollbar,.plan-chat::-webkit-scrollbar{width:0;height:0;display:none}
|
|
.sheetbar{width:88rpx;height:10rpx;border-radius:999rpx;background:#E1D8CF;margin:0 auto 24rpx}
|
|
|
|
.sheet-h3{font-size:40rpx;font-weight:800;margin-bottom:20rpx}
|
|
.sheet-p{font-size:28rpx;color:#62584F;line-height:1.65;margin-bottom:24rpx}
|
|
.sheet-p.pre,.poster-list.pre{white-space:pre-line}
|
|
.poster-h3{font-size:40rpx;font-weight:800;margin-bottom:20rpx}
|
|
.bold{font-weight:900}
|
|
|
|
.ai-input-row{display:flex;gap:16rpx;align-items:center}
|
|
.ai-input-row .input{flex:1}
|
|
.ai-send{height:88rpx;line-height:88rpx;padding:0 28rpx}
|
|
|
|
/* 弹层内的日期选择器展示 */
|
|
.picker-box{color:var(--text)}
|
|
.del-btn{background:var(--red-soft);color:var(--red)}
|
|
|
|
/* 图片选择器 */
|
|
.img-picker{display:flex;flex-wrap:wrap;gap:16rpx}
|
|
.img-thumb{position:relative;width:160rpx;height:160rpx;border-radius:20rpx;overflow:hidden}
|
|
.img-thumb image{width:100%;height:100%}
|
|
.img-del{position:absolute;top:0;right:0;width:40rpx;height:40rpx;line-height:38rpx;text-align:center;background:rgba(0,0,0,.55);color:#fff;font-size:30rpx;border-radius:0 20rpx 0 20rpx}
|
|
.img-add{width:160rpx;height:160rpx;border-radius:20rpx;border:2rpx dashed #D8CFC4;display:flex;align-items:center;justify-content:center;font-size:56rpx;color:#B9AE9F;background:#FBFAF8}
|