Commit Graph
22 Commits
Author SHA1 Message Date
lxy b03bc6ad82 新增: 粘贴文件附件坞与抽屉预览,支持全屏查看 2026-08-25 15:57:40 +08:00
lxy 5d3046b653 新增: 批注/备注/对齐分布/形状扩充/video 元素——编辑器能力增强 2026-08-25 12:30:39 +08:00
lxy af5211d46d 新增: 画布批注层 AnnotationLayer,图片连线+可拖动气泡,SVG+DOM 分层 2026-08-25 12:30:24 +08:00
lxy 8eef4606c5 新增: 全局对话框服务 AppDialog,Promise 风格 appAlert/appConfirm/appPrompt 替代原生弹窗 2026-08-25 12:30:12 +08:00
lxy 0907a104cf 新增: 资料导入增强+剪贴板+框选多选+未保存自动暂存+图片占位 2026-08-24 02:13:15 +08:00
lxy cc804f0749 修复: 演示元素消失+画布错位+PDF横版导出+工具栏信息架构重构 2026-08-24 02:13:15 +08:00
lxy db3b2c24b7 新增: AI 助手 Markdown 渲染+打字机流式+桌面 Rust 代理修复 CORS 2026-08-24 02:13:15 +08:00
lxy 7f08f654d9 修复: op 引擎 undo 逆操作 z序/越界缺陷,补 14 项核心测试 2026-08-24 02:13:15 +08:00
lxy 01f0f45007 优化: 移除死代码(backend/useStore)与过期类型依赖,引入 marked/dompurify/vitest 2026-08-24 02:13:14 +08:00
lxy cf2de7d64d 修复: AI 文档分析进度与错误状态混淆,全成功时不再误显红色错误框 2026-08-17 10:15:19 +08:00
lxy 64d9531b02 重构: 打印导出复用 ElementView,图表/表格/公式不再降级为文本 2026-08-17 10:14:19 +08:00
lxy aad7e6f76f 修复: 本地存储写满静默丢数据——失败告警 + 导入图片体积闸门 2026-08-17 10:11:47 +08:00
lxy f58fea1f68 修复: PDF 导入 worker 本地化,离线/桌面不再依赖 CDN 2026-08-17 10:09:44 +08:00
lxy e2b31579ea 修复: 首页文库打开/新建空白后不切入编辑器 2026-08-17 09:36:52 +08:00
lxy 352496c00a 新增: 首页 + 资料导入 + PDF导出 + AI文档生成 2026-08-17 09:34:12 +08:00
lxy a5ebfd8b74 修复: PropsPanel.vue 残缺 defineEmits 导致 Vue SFC 编译失败
- 删除 'const emit = defineEmits' 错误行(无泛型参数且未调用)
- PropsPanel 不 emit 事件,直接调 store.xxx
- 修复变量名 CHART_TYPES 拼写
- 简化 vite.config.ts 用 mode 参数区分 Web/桌面模式
- npm run dev → mode=web,端口8080; tauri:dev → mode=default,端口5173
2026-07-12 22:55:06 +08:00
lxy a1ac91c1ec 新增: Tauri IPC 命令 + useStore 统一接口(B4)
- commands.rs: exec_op/undo/redo/can_undo/can_redo/get_deck/set_navigation/save_file
  Rust AppState 持有 deck + 历史栈,所有写操作通过 Op Log
- bridge.ts: 安全 Tauri IPC 调用层(动态 import,Web 模式 mock)
- useStore.ts: 统一 store 接口,检测 __TAURI__ 环境
  Web 模式直接调 TS store;Tauri 模式走 invoke
- 50 个测试全部通过,前后端编译零错误
2026-07-12 22:41:10 +08:00
lxy 056dc58318 新增: 导出 JSON + 导入 JSON + 打印/PDF 导出(P4)
- 工具栏新增三个按钮: 导出 JSON / 导入 JSON / 打印 PDF
- 导出 JSON: Blob 下载 store.exportJSON()
- 导入 JSON: 文件选择 + FileReader → store.importJSON()
- 打印 PDF: window.print() + @media print CSS,逐页 page-break
- 打印时隐藏编辑器/HUD/工具栏,只保留幻灯片内容
- 零新依赖(PDF 走浏览器原生打印)
2026-07-12 15:02:27 +08:00
lxy 9ec6173b10 新增: Backend 持久化抽象层 + LocalBackend 实现(P3)
- 定义 Backend 接口: deck/文库/会话/模板/主题/配置的读写
- LocalBackend 实现(localStorage,Web版当前模式)
- getBackend()/setBackend() 管理活动后端实例
- store 内部 localStorage 调用暂不变(LocalBackend 是其包装)
- B2 迁移时统一改为 getBackend().xxx(),B4 实现 TauriBackend
- 为桌面版(Rust 文件系统)和云端版(HTTP API)预留接口
2026-07-12 15:00:41 +08:00
lxy 2f9c545503 重构: Op Log 数据模型,为协同预留基础(P2)
- 新增 op.ts: Op 类型定义 + 纯函数 reducer(applyOp) + 逆操作计算(invertOp)
- 支持的 Op 类型: add_slide/del_slide/move_slide/replace_slide/set_slide_bg/
  add_element/update_element/del_element/move_element_z/set_theme/replace_deck
- undo/redo 从快照栈改为 Op 回滚(forward/backward 双向 Op)
- store 所有写操作内部改为 execOp,对外接口完全不变(88 处调用零改动)
- update_element 保留连续操作合并(拖滑块/连续输入不膨胀历史)
- 每个 Op 带 clientId + timestamp,为未来协同预留
- replace_deck 作为特殊 Op 进 undo 历史
2026-07-12 14:59:05 +08:00
lxy 9933a1711a 重构: 清理技术债 + 数据健壮性增强(P0+P1)
- 删除 inline.ts(方案A遗留死代码,已被 richtext.ts 替代)
- 删除 ElementStyle.rich 字段(segments 方案后无用)
- 删除 PropsPanel 未使用的 CHART_TYPE_MAP
- 删除 editor.css 旧 class 兼容样式(.el-card-title 等)
- 生成整套/重置时自动备份当前 deck 到 .bak(防误覆盖)
- 新增 recoverBackup() 方法(可恢复上一次被覆盖的 deck)
- 旧版本数据不再直接丢弃,改为 migrateDeck() 补字段升级
- chart 元素自动补 chartType:'bar' 默认值
2026-07-12 13:28:04 +08:00
lxy cfeabf2d37 新增: u-ppt Vue 3 在线演示工具初始版本
- 核心架构: Vue 3 + Vite + TypeScript,零运行时依赖(仅 Vue)
- 编辑器: 幻灯片增删排序、元素拖拽八向缩放、双击编辑、12 种元素类型
  (标题/正文/列表/数据/金句/图片/形状/图表/卡片/表格/代码/公式)
- 图表: 8 种 SVG 自绘(柱状/条形/折线/面积/饼图/环形/雷达/进度)
- 富文本: 结构化 segments(加粗/斜体/颜色/高亮/上下标/代码/链接)
- AI 能力: 对话编辑、生成整套、润色本页、大纲→逐页生成、一键美化、AI 配图
- 会话绑定: 每份 PPT 独立会话,切换 PPT 自动切换对话历史
- 模板系统: 7 个内置版式 + 用户自存模板
- 演示模式: 全屏播放、键盘/鼠标/滚轮导航、入场动画
- 持久化: localStorage 存 deck/文库/会话/模板/配置
- 支持多服务商: 智谱/DeepSeek/通义/Kimi/豆包/OpenAI/Anthropic/Gemini/Groq/Ollama
2026-07-12 13:12:09 +08:00