|
|
0b53c5a26d
|
优化海报前端逻辑页0731
|
2026-07-31 09:00:39 +08:00 |
|
|
|
a4f1cab7ac
|
优化海报前端逻辑页面
|
2026-07-30 16:07:57 +08:00 |
|
|
|
d9e7217d9f
|
分析海报优化方案
|
2026-07-30 14:21:06 +08:00 |
|
|
|
5f78598b3a
|
input_revision 正确记录 ✅
task_service.py — create_task() 新增 input_revision 参数,存入 GenerationTask.input_revision
generation_task.py — 模型的静态 create_task 方法同步新增参数
ppt/routes.py — 三处调用(parse/generate/regenerate)均传入 session.draft_revision
poster/service.py — 海报生成传入 record.draft_revision
现在每个任务快照都记录了创建时的草稿版本号,不再一直是默认值 1
2. 海报任务进度实时同步 ✅
celery_tasks.py — 在海报生成的每个阶段(preparing_data→20%、building_prompt→40%、requesting_image→60%、saving→85%)调用 sync_poster_progress() 同步到 PosterRecord.task_status/task_progress
任务领取时立即将 PosterRecord.task_status 设为 running
解决了"页面轮询海报记录时一直显示排队中"的问题
3. 后端测试覆盖 ✅
test_task_state_sync.py — 新增 13 个测试用例:
sync_workspace_status 同步 cancelled/failed 到 PPT session(4 个)
sync_workspace_status 同步 cancelled/failed 到 PosterRecord(2 个)
旧任务跳过同步的安全检查(1 个)
cancel_task 状态更新和非 queued 拒绝(2 个)
mark_task_viewed 正确标记和权限校验(2 个)
input_revision 正确记录和默认值(2 个)
list_active_tasks 排除终态任务(1 个)
所有 13 个新测试 + 原有 10 个测试全部通过
4. useAutoSave TypeScript 类型修复 ✅
useAutoSave.ts — getEndpoint 变量显式标注 () => string 类型,消除 TS2345 编译错误
|
2026-07-30 13:54:44 +08:00 |
|
|
|
68122c5bb4
|
优化海报程程页面和PPT生成页面
|
2026-07-30 10:08:26 +08:00 |
|
|
|
29657d31e4
|
所有阶段 3-5 的任务全部完成。最终盘点:
全部改动文件总览
后端(8 个文件)
文件 操作
api/insurance/models/ppt_session.py 修改 — 新增 5 个字段
api/insurance/db/migrate_025.py 新建 — 数据库迁移
api/insurance/ppt/renderer.py 修改 — 新增 parse_slides(),deck 返回
api/insurance/ppt/quality_checker.py 新建 — 质量检查
api/insurance/ppt/routes.py 修改 — 新增 5 个接口
api/insurance/generation/celery_tasks.py 修改 — 集成预览+质检+版本化,新增 regenerate 任务
api/insurance/generation/task_service.py 修改 — 注册 regenerate 任务
前端(8 个文件)
文件 操作
frontend/src/utils/ppt-api.ts 修改 — 新增类型和 API 方法
frontend/src/pages/components/ppt/PptSlideCanvas.vue 新建 — Canvas 渲染器
frontend/src/pages/components/ppt/PptResult.vue 重写 — 三栏工作台 + 版本历史
frontend/src/pages/components/ppt/PptUpload.vue 重写 — 双栏 Hero 布局
frontend/src/pages/components/ppt/PptParsing.vue 重写 — 五阶段进度
frontend/src/pages/components/ppt/PptDataReview.vue 修改 — 主题色更新
frontend/src/pages/PptPage.vue 修改 — 步骤描述 + 主题色
frontend/src/pages/PptHistoryPage.vue 重写 — 卡片式布局
新增后端接口
方法 路径 功能
GET /ppt/preview/:id 获取幻灯片 JSON + 质量报告 + 版本历史
PUT /ppt/preview/:id/slide/:index 更新编辑内容 + 显隐
PUT /ppt/preview/:id/quality-confirm 人工质量确认
POST /ppt/preview/:id/regenerate 基于编辑生成新版本
|
2026-07-29 22:14:02 +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 |
|
|
|
c7df34d0cd
|
07-27 阶段 状态 进度
阶段 1:数据库与工作区 ✅ 完成 100%
阶段 2:Celery 后台任务 ✅ 完成 100%
阶段 3:前端刷新恢复与多工作区 ✅ 完成 100%
阶段 4:任务坞与任务中心 ✅ 完成 100%
阶段 5:版本化编辑 ✅ 完成 100%
阶段 6:测试与灰度 ❌ 未开始 0%
|
2026-07-28 17:53:14 +08:00 |
|
|
|
8192f6a783
|
07-27 PDF提取优化
|
2026-07-28 16:45:14 +08:00 |
|
|
|
e3479f0546
|
上线阻断问题全部修复
# 问题 修复 文件
1 前端构建失败(引号错误) size="small type=" → size="small" type=" PosterHistoryPage.vue
2 migrate_014 ORM vs 缺失列 全部改为原始 SQL,不再引用 ORM 模型 migrate_014.py
3 cleanup 字段名错误 output_path → ppt_path cleanup.py
4 文案生成 case 越权 添加 case.user_id != user_id 校验 poster/service.py
5 存储路径未接通持久化卷 全部改用 get_storage_root()(默认 /app/api/storage/insurance) config.py, ppt/routes.py, poster/service.py, poster/tasks.py
高风险问题修复
# 问题 修复 文件
6 migrate_019 rollback 撤销成功字段 每个 ALTER 后立即 commit,失败只回滚当前语句 migrate_019.py
7 迁移锁 Windows 不兼容 + 句柄未持久化 全局变量保存锁句柄,支持 Windows msvcrt api/insurance/db/__init__.py
8 PDF 校验异常时放行 异常返回 False(文件损坏) security.py
9 健康检查始终返回成功 缺少关键资源时返回 503 + missing 列表 poster/routes.py
10 短密钥掩码泄露原值 ≤4 字符返回 **** ppt_admin_service.py
11 设置无键名白名单 添加 _ALLOWED_SETTING_KEYS 白名单 ppt_admin_service.py
12 容器重启任务永久 stuck 添加 recover_stale_tasks() 启动恢复函数 poster/tasks.py, ppt/parse_worker.py
|
2026-07-27 13:52:09 +08:00 |
|
|
|
67b2dac23f
|
slidesConfig 结构错误 — migrate_017 输出改为数组格式,migrate_019 修复历史数据
迁移系统加固 — 加 advisory lock 防并发,失败回滚并中止启动(原来是 catch-and-continue)
安全漏洞 — Settings/History API 权限收紧,API key 返回掩码值,海报 case 所有权校验
依赖缺失 — requirements.txt 补齐 python-pptx/openai/Pillow,Dockerfile 改为统一安装
海报鉴权下载 — 前端全部改用 authenticated blob,不再 window.open 无 token URL
LLM 配置分离 — 海报文案读取 poster_llm_*(不再复用 ppt_llm_*),支持 config namespace
图片生成器 — 兼容 b64_json 和 URL 两种响应格式,追踪 generation_mode/provider/model
种子数据 — 新环境自动获得 2 个海报模板 + 2 个文案模板
|
2026-07-27 13:21:34 +08:00 |
|
|
|
5d28e4518e
|
0723 PPT加海报功能初步完成
|
2026-07-23 15:04:16 +08:00 |
|
|
|
4a556a1cc7
|
0723 PPT功能初步融合
|
2026-07-23 13:10:50 +08:00 |
|
|
|
01ebaeb57c
|
0723 整理文件
|
2026-07-23 08:38:11 +08:00 |
|
|
|
8253867913
|
0712 提交一个版本
|
2026-07-22 18:09:03 +08:00 |
|
|
|
bc4c339e0c
|
第一次提交。可以使用企微群消息
|
2026-07-02 23:13:23 +08:00 |
|