|
|
573210f9c3
|
修复海报生成过程的BUG
|
2026-07-30 10:30:33 +08:00 |
|
|
|
65d17179b3
|
优化海报程程页面PPT
|
2026-07-30 09:15:07 +08:00 |
|
|
|
751302205a
|
文件 问题 严重度
1 poster/routes.py:156 下载路径硬编码,与实际存储路径不一致 → 下载 404 P0
2 poster/service.py:41 get_reviewed_products() N+1 查询 P1
3 poster/service.py:169,226 json.loads 无异常处理 → 数据损坏时崩溃 P1
4 3 个 model 文件 to_dict() 中 json.loads 无防御 → 序列化崩溃 P1
5 poster/tasks.py ~120 行死代码(线程版海报生成) P2
6 generation/celery_tasks.py parse_poster_task + _execute_poster_parse 死代码(~70 行) P2
7 generation/task_service.py 对应移除 ("poster", "parse") 映射 P2
8 utils/security.py SSRF TOCTOU:DNS 检查与请求之间的时间窗口可被 DNS rebinding 利用 → 新增 _SafeHTTPTransport 在连接时重新验证 IP P1 安全
9 poster/image_generator.py anchor="mm" 在旧 Pillow 默认字体上崩溃;改用 hasattr 检测 P1
前端(3 项)
# 文件 问题 严重度
10 poster-api.ts:54 downloadPoster() 返回 AxiosResponse 而非 Blob → 海报永远无法下载 P0
11 PosterStepUpload.vue 解析轮询无超时 → 无限轮询 P1
12 PosterStepPreview.vue 生成轮询无超时 → 无限轮询 P1
修改的文件总计
后端 7 个:security.py, image_generator.py, service.py, routes.py, tasks.py, celery_tasks.py, task_service.py, poster_case_upload.py, poster_record.py, poster_template_model.py
前端 3 个:poster-api.ts, PosterStepUpload.vue, PosterStepPreview.vue
未修复(确认无需修复)
manual_parser.py — 之前误判为死代码,实际被 Celery 产品小册子解析任务使用,保留不动
llm_client.py 中的 httpx 调用 — URL 来自管理员配置的系统设置,不是用户输入,SSRF 风险极低;加检查反而会阻断合法的私网 LLM 端点
|
2026-07-29 22:41:27 +08:00 |
|
|
|
25c6f2a3b7
|
阶段 3 剩余:编辑与版本化
功能 文件 说明
幻灯片显隐 routes.py, PptResult.vue, ppt-api.ts 每页可点击隐藏/恢复,隐藏页在缩略图中半透明显示,页码标注隐藏数量
DeckContract 快照 renderer.py, celery_tasks.py, ppt_session.py 生成时保存完整 deck JSON 到文件系统,供版本化回溯
版本化生成 celery_tasks.py, task_service.py, routes.py POST /preview/:id/regenerate → 递增版本号 → 用 deck 重新渲染 → 追加到版本历史,不覆盖旧版
版本历史 UI PptResult.vue 右栏显示版本列表(版本号/页数/时间),当前版本高亮标记
数据库迁移 migrate_025.py 新增 deck_contract_path、versions_json 字段
阶段 4:UI 重构
功能 文件 说明
保险绿主题 PptPage.vue, PptGenerate.vue, PptResult.vue, PptSlideCanvas.vue 主色从 #2563eb 蓝改为 #3B7A57 保险绿,背景暖灰 #f0f7f3
生成决策展示 PptGenerate.vue 新增"系统决策"区域,展示检测场景、选用模板、计划书数量、险种类型、保司
骨架屏加载 PptResult.vue preview_status=none/generating 时显示骨架屏 + 加载动画,不再显示静态 fallback
新增后端接口(本轮)
方法 路径 功能
POST /ppt/preview/:id/regenerate 基于编辑内容生成新版本
PUT /ppt/preview/:id/slide/:index 增加 hidden 字段支持
新增 Celery 任务
任务名 说明
insurance.regenerate_ppt 读取 DeckContract → 应用编辑 → 重新渲染 → 保存新版本
|
2026-07-29 21:41:28 +08:00 |
|
|
|
f23b08eec6
|
07-29 PPT生成优化第一阶段完成:
已完成约 40%(阶段 1 + 阶段 2 + 阶段 3 基础编辑),覆盖了计划书中最核心的 P0 需求:
✅ 真实预览(Canvas 方案替代了 LibreOffice 方案)
✅ 质量检查(6 自动 + 4 人工)
✅ 三栏结果工作台
✅ 基础文字编辑
|
2026-07-29 21:26:48 +08:00 |
|
|
|
bf90801f28
|
07-29 修复一版问题PPT 能够上传了
|
2026-07-29 17:24:34 +08:00 |
|
|
|
6dfd652a57
|
07-29 修复一版问题PPT 能够上传了
|
2026-07-29 15:47:50 +08:00 |
|
|
|
74dbb32028
|
07-29 修复一版问题
|
2026-07-29 12:19:26 +08:00 |
|
|
|
fa67b83bbf
|
核心改进:
小册子解析:上传后3秒内返回,解析通过 Celery 异步执行,状态流转 pending → queued → parsing → parsed/failed,失败保留错误原因,启动时自动恢复卡住任务
保司Logo:支持多张图片上传、设主图、删除、排序,主图自动同步到 logo_url 保持向后兼容
文件存储:统一使用 get_storage_root() 持久化目录,Docker 重启不丢文件
|
2026-07-28 20:35:28 +08:00 |
|
|
|
c7df34d0cd
|
07-27 阶段 状态 进度
阶段 1:数据库与工作区 ✅ 完成 100%
阶段 2:Celery 后台任务 ✅ 完成 100%
阶段 3:前端刷新恢复与多工作区 ✅ 完成 100%
阶段 4:任务坞与任务中心 ✅ 完成 100%
阶段 5:版本化编辑 ✅ 完成 100%
阶段 6:测试与灰度 ❌ 未开始 0%
|
2026-07-28 17:53:14 +08:00 |
|