2e3345cdfc
修复雪花 ID 精度丢失(真 bug) - bottom-sheet 的 postId 声明为 Number,而 ID 是 18 位雪花字符串, 超出 JS 安全整数范围:339346584095428608 会被转成 ...600, 评论弹层实际查的是不存在的帖子。改为 String 记录 - 后端 DELETE /records/:id 早已就绪但前端从未调用,记错了删不掉。 时间轴支持长按删除 - 时间轴加类型筛选(体重/便便/饮食/异常/用药/疫苗/消费/照片), 后端 ?type= 本就支持 用户侧内容删除(UGC 合规:用户应能删除自己发布的内容) - 新增 DELETE /posts/:id 与 DELETE /comments/:id,仅限本人, 越权返回 40300;帖子软删除,评论删除同步递减 comment_count - 评论列表返回 is_self;社区长按自己的帖子、长按自己的评论可删 AI 聊天历史 - ai_messages 一直在写但没有查询接口,每次打开弹层都是空白。 新增 GET /api/ai/messages,弹层打开时接在开场白后加载 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
65 lines
3.1 KiB
Plaintext
65 lines
3.1 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)}
|
|
|
|
/* 管理任务 */
|
|
.mtask-row{display:flex;align-items:center;gap:16rpx;padding:20rpx 0;border-bottom:1rpx solid var(--line)}
|
|
.mtask-body{flex:1;min-width:0}
|
|
.mtask-b{font-size:28rpx;font-weight:700}
|
|
.mtask-pri{margin-left:12rpx;font-size:20rpx;font-weight:700;color:var(--primary-dark);background:#FFF2DC;padding:2rpx 12rpx;border-radius:999rpx}
|
|
.mtask-p{margin-top:6rpx;font-size:24rpx;color:var(--muted)}
|
|
.mtask-op{flex:none;font-size:26rpx;font-weight:700;color:var(--primary-dark);padding:8rpx 18rpx;background:#FBFAF8;border-radius:16rpx}
|
|
.mtask-op.del{color:var(--red)}
|
|
.mtask-form-row{display:flex;align-items:center;gap:16rpx}
|
|
.mtask-form-row .seg-btn{flex:none;padding:0 28rpx;height:72rpx;line-height:72rpx}
|
|
.mtask-form-row .picker-box{flex:1}
|
|
|
|
/* 图片选择器 */
|
|
.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}
|
|
|
|
/* 导出健康档案 */
|
|
.export-box{
|
|
max-height:560rpx;overflow-y:auto;background:#FBFAF8;border-radius:28rpx;
|
|
padding:24rpx;font-size:25rpx;line-height:1.7;color:#4A4A46;white-space:pre-line;
|
|
border:1rpx solid var(--line);margin-bottom:24rpx;
|
|
}
|
|
.export-box::-webkit-scrollbar{width:0;height:0;display:none}
|
|
.mine-tag{margin-left:10rpx;font-size:20rpx;font-weight:700;color:var(--primary-dark);background:#FFF2DC;padding:2rpx 10rpx;border-radius:999rpx}
|