Commit Graph

41 Commits

Author SHA1 Message Date
lixinran 0809c0e7df fix(editor): preserve table structure when editing by converting HTML tables to GFM markdown and render HTML via Vditor preview on save 2025-10-15 21:32:31 +08:00
lixinran 327c58151b feat(frontend): use custom rich-text editor for node editing and hide blue selection outline when editing; intercept MindElixir dblclick to fire showRichTextEditor; refine styles to suppress outline in editing mode; build dist for Django serving 2025-10-15 21:07:59 +08:00
lixinran 318974511c feat: 优化思维导图编辑和显示功能
- 修复编辑模式下表格渲染问题,使用新的节点结构逻辑
- 实现Markdown到HTML转换,支持表格和图片正确显示
- 添加generateTopicFromMarkdown函数,自动生成节点简短标题
- 优化保存逻辑,同时更新HTML、Markdown和topic字段
- 修复思维导图生成过程中的页面空白问题,优先使用增量更新
- 应用自定义紫色主题,统一线条和节点配色方案
- 简化控制台输出,只保留关键调试信息
2025-10-15 17:07:31 +08:00
lixinran 68b0ba1ccf 修复节点编辑和显示问题
- 添加convertHTMLToMarkdown函数,修复双击编辑节点时表格无法正常显示的问题
- 优化HTML到Markdown转换逻辑,支持表格、图片、文本格式的正确转换
- 修复图片显示问题:禁用代理URL转换,直接使用原始CDN URL
- 解决思维导图视图中图片显示为markdown文本的问题

修复内容:
1. 双击编辑节点时:图片正常显示,表格现在也能正常显示
2. 思维导图视图时:图片现在能正常显示,表格继续正常显示
2025-10-15 15:29:49 +08:00
lixinran 8b8ce52e3a 优化SVG导出功能
- 改进位置计算:处理滚动偏移、transform/scale、SVG坐标归一化
- 优化HTML内容渲染:样式内联化、限制宽高、文字换行处理
- 增强图片处理:统一Base64转换、异步加载管理、大小控制
- 统一背景管理:消除重复创建、统一参数管理
- 完善异步渲染同步:Promise+图片加载检测、整体渲染等待

解决了SVG导出中的位置偏移、内容缺失、图片显示等问题
2025-10-15 15:24:08 +08:00
lixinran e07da11606 feat: 实现Vditor异步渲染表格节点和修复背景颜色
- 使用dangerouslySetInnerHTML存储Markdown内容
- 通过shapeTpc函数实现Vditor异步渲染
- 修复思维导图背景颜色从黑色改为白色
- 添加表格加载状态样式和动画效果
- 确保所有表格节点统一使用Vditor渲染
- 支持渐进式加载,提升用户体验
2025-10-15 10:08:04 +08:00
lixinran c636bb629e feat: 修复Vditor编辑器配置,支持HTML到Markdown转换
- 修复customWysiwygToolbar错误
- 添加HTML到Markdown转换逻辑
- 支持图片、表格等富文本内容正确显示
- 优化Vditor初始化配置,使用内置API
- 改进所见即所得模式的预览效果
2025-10-13 17:04:31 +08:00
lixinran abc4bd703a 保存当前状态:实现无需确认直接删除功能 2025-10-11 18:18:07 +08:00
lixinran 3693899a2b 修复图片渲染器href属性检查逻辑,支持href.href属性
- 修复markdownRenderer.js中图片渲染器的href属性检查
- 添加对href.href属性的支持,解决src='[object Object]'错误
- 修复saveRichTextChanges函数中的async/await语法错误
- 优化模态框标题显示逻辑,确保标题和内容区域文字一致
- 修复节点标题同步问题,直接更新MindElixir的topic字段
- 智能更新topic字段,保留图片Markdown语法的同时更新标题文本
2025-10-11 17:41:12 +08:00
lixinran 4f072de2ee 🐛 修复图片节点双击预览功能
关键修复:
- 恢复双击图片节点的预览功能
- 双击图片元素触发showImagePreview事件
- 双击包含原生图片的节点触发showImagePreview事件
- 保持富文本节点的编辑功能

交互逻辑:
- 双击图片 → 预览图片
- 双击包含原生图片的节点 → 预览图片
- 双击富文本节点 → 编辑内容
- 双击表格节点 → 编辑表格
- 右键节点 → 显示菜单(包含预览和编辑选项)

技术实现:
- 在mouse.ts中区分不同类型的双击事件
- 优先处理图片预览,再处理富文本编辑
- 保持原有的表格编辑功能

现在图片预览功能已经恢复正常。
2025-10-11 15:09:29 +08:00
lixinran 642b12c217 🐛 修复编辑操作重复调用导致的双重通知问题
关键修复:
- 添加防重复处理机制,避免同一个编辑操作被多次处理
- 合并finishEdit和finishEditTable事件监听器
- 使用Set记录正在处理的操作,防止重复调用
- 添加详细的调试日志帮助追踪问题

问题根因:
- finishEdit和finishEditTable事件都被监听,导致重复调用
- 缺乏防重复处理机制
- 用户看到成功和失败两个通知

技术实现:
- 使用operationKey = `${operation.name}-${operation.obj?.id}` 唯一标识操作
- 在processingEditOperations Set中记录正在处理的操作
- 处理完成后自动清理标记
- 合并重复的事件监听器逻辑

现在用户只会看到一个正确的保存成功通知。
2025-10-11 15:06:38 +08:00
lixinran e3fedcbf0f 实现图片编辑功能,优化图片交互体验
核心功能:
- 双击图片 → 进入编辑模式(替换图片)
- 右键图片 → 显示菜单(预览/编辑选项)
- 图片编辑器支持文件选择和替换
- 支持HTML图片和MindElixir原生图片两种类型

技术实现:
- 修改mouse.ts,双击图片触发showImageEditor事件
- 扩展contextMenu.ts,添加图片编辑菜单项
- 更新pubsub.ts,添加showImageEditor事件类型
- 在MindMap.vue中实现图片编辑器UI和逻辑
- 添加文件选择、格式验证、大小限制(5MB)
- 支持JPG/PNG/GIF格式

UI设计:
- 紫色主题编辑器(与品牌色一致)
- 当前图片预览 + 文件选择界面
- 响应式设计,支持大图片显示
- 优雅的模态框和交互体验
2025-10-11 14:19:41 +08:00
lixinran 1719ad4c8a 🎨 将表格编辑器改为紫色主题
- 编辑器边框:蓝色(#007bff) → 紫色(#660874)
- 保存按钮:蓝色(#007bff) → 紫色(#660874)
- 光标颜色:蓝色(#007bff) → 紫色(#660874)
- hover效果:深蓝色 → 深紫色(#4d0655)
- 与AI助手背景色保持一致的品牌配色
2025-10-11 14:10:30 +08:00
lixinran 1f67b9ae58 优化表格编辑器UI和用户体验
改进内容:
- 使用fixed定位的模态框,居中显示
- 添加半透明遮罩层,突出编辑器
- 增大编辑器尺寸(600x400px),更舒适的编辑空间
- 设置明显的光标颜色(caret-color: #007bff)
- 添加编辑器标题和快捷键提示
- 优化按钮样式,添加hover效果
- 设置textarea背景色(#fafafa),增强可见性
- 禁用拼写检查和自动完成
- 延迟聚焦确保光标可见
- 点击遮罩层可关闭编辑器
2025-10-11 14:07:16 +08:00
lixinran 1c838a9aeb 更新README文档
- 更新可视化编辑功能描述,突出Markdown编辑器特性
- 详细说明Markdown渲染引擎技术栈(Marked.js + Prism.js + KaTeX)
- 添加富媒体内容支持说明(图片、表格、数学公式等)
- 更新操作流程,包含图片预览和SVG导出功能
- 增加Markdown渲染引擎专门章节
- 完善快捷键操作说明,包含图片预览功能
- 更新项目优化部分,强调技术栈统一性
2025-10-11 13:49:03 +08:00
lixinran df89a448a4 修复表格节点空白问题和列表文本对齐问题
- 修复表格节点出现大量空白的问题
- 添加表格检测逻辑,避免对表格内容进行列表处理
- 保持列表节点的多行文本左对齐修复
- 确保表格和列表都能正常显示
2025-10-11 13:10:53 +08:00
lixinran 4bb72ba6a4 统一连线样式并优化连接点位置
- 修改sub函数采用与main函数相同的二次贝塞尔曲线样式
- 统一所有连线的视觉风格,消除曲线和横线的混合
- 优化连接点位置,向内偏移31像素确保连线连接到节点边框内部
- 消除连线与节点之间的视觉间隔,达到完美贴合效果
2025-10-11 12:51:05 +08:00
lixinran d69def44ca fix: 修正TypeScript编译错误
- 添加缺失的getActualNodeDimensions函数到utils/index.ts
- 添加缺失的getOffsetLTImproved函数到utils/index.ts
- 修复exportImage.ts中createElBox返回null的类型错误
- 移除对createElBox返回值的错误处理逻辑
- 确保所有TypeScript编译错误已修复
- 重新构建MindElixir库和前端项目
2025-10-11 02:43:55 +08:00
lixinran 6a7809a550 feat: 实现图片预览功能
- 添加双击图片节点预览功能
- 添加右键菜单图片预览选项
- 实现图片预览模态框组件
- 添加图片URL智能处理(相对路径转绝对路径)
- 实现图片预加载机制和超时保护
- 增强错误处理和调试信息
- 修复图片一直加载不出来的问题
- 添加美观的加载动画和错误提示
2025-10-11 02:39:23 +08:00
lixinran 329d36bdd8 修复思维导图初次渲染错位问题:实现多层DOM稳定保障
- 采用nextTick + 字体加载 + requestAnimationFrame三层保障机制
- 解决DOM尺寸计算早于渲染完成导致的布局错位问题
- 等待Vue DOM更新、字体加载、渲染管线完成后再执行布局刷新
- 添加错误处理和降级方案,确保在任何情况下都能正常渲染
- 修复新生成思维导图和历史记录加载时的初次渲染错位问题
- 确保foreignObject内容完全渲染后再计算节点位置
2025-10-11 01:47:27 +08:00
lixinran 2a09a6b05c 修复SVG导出表格节点问题:使用foreignObject替代原生SVG文本,解决XML语法错误
- 将表格渲染从TableToSVGConverter改为foreignObject方式
- 修复XML语法错误:字体名加引号、添加命名空间、字符转义
- 解决表格内容压缩、对齐混乱、文本溢出问题
- 实现表格自动换行和列宽自适应
- 确保SVG导出的表格布局与HTML显示一致
2025-10-11 01:31:06 +08:00
lixinran 35766881dd 统一思维导图颜色为主题紫色#660874
- 将所有连线颜色统一为#660874深紫色
- 将根节点背景色从#9C88FF改为#660874统一主题色
- 统一选中状态和强调色为#660874
- 与页面AI助手图标颜色保持一致
2025-10-10 18:16:25 +08:00
lixinran 4af977e33a 修复SVG导出重复rect标签问题并恢复表格项内部高度设置 2025-10-10 17:41:41 +08:00
lixinran cd9b1f5a38 修复思维导图文本对齐和格式清理问题
- 实现智能文本对齐:纯文本节点左对齐,带图片节点居中
- 自动清理重复格式标记:移除• 【等重复格式
- 修复双击编辑后样式恢复问题:编辑完成后重新应用样式逻辑
- 优化CSS类名控制:使用.no-image和.has-image类动态控制对齐方式
- 确保SVG导出和显示效果一致性
2025-10-10 16:51:27 +08:00
lixinran a8051a50e8 修复SVG导出文本居中问题
- 修改generateSvgText函数,使用text-anchor: middle强制文本居中
- 计算节点中心坐标,确保文本在节点中水平居中
- 解决图片说明文本左对齐的问题
- 使用原生SVG文本渲染确保居中效果
2025-10-10 16:29:32 +08:00
lixinran beee48eb0c 🎉 优化SVG导出功能
 新功能:
- 实现表格转SVG原生元素转换器
- 支持rowspan和colspan的复杂表格布局
- 智能列宽计算,针对中文内容优化
- 动态行高计算,支持多行文本

🔧 修复:
- 解决SVG导出时图片压线问题
- 优化图片尺寸,增大显示但不压线
- 减少图片和文字距离,布局更紧凑
- 解决表格内容拥挤问题

📊 技术改进:
- 中文字符宽度:字体大小 × 1.0
- 英文字符宽度:字体大小 × 0.6
- 最小列宽:80px,最小行高:35px
- 支持多行文本的精确布局计算
2025-10-10 15:48:51 +08:00
lixinran cef6b60db7 fix: 修复节点和连线错位问题
- 修复MindMap.vue中.topic-content样式的align-items冲突
- 将align-items从flex-start改为center,确保节点内容居中对齐
- 解决节点和连线错位问题,恢复正常的思维导图显示
2025-10-10 14:40:19 +08:00
lixinran f1ef56c3c4 feat: 深度修复节点对齐和SVG导出问题
- 使用Flexbox和CSS containment确保节点内容完全居中对齐
- 修复图片加载失败时的布局问题,自动隐藏无效图片
- 优化长文本节点处理,强制换行避免节点宽度异常
- 增强SVG导出功能,支持表格和图片的正确渲染
- 添加节点稳定性样式,防止内容变化导致布局偏移
- 统一所有节点元素的对齐方式,确保连线精确连接
2025-10-10 13:53:42 +08:00
lixinran ef1b94d959 feat: 修复表格节点显示和SVG导出问题
- 添加html_content字段到Django Node模型,支持dangerouslySetInnerHTML内容持久化
- 修复表格节点无法正常显示的问题,确保HTML内容正确保存到数据库
- 优化SVG导出功能,支持表格和图片的正确渲染
- 改进AI提示词,支持复杂表格结构(rowspan/colspan)
- 增强表格检测逻辑,支持HTML表格和Markdown表格格式
- 修复节点文本居中对齐问题,避免与连线错位
- 更新前端节点创建逻辑,确保HTML内容正确传递到后端
2025-10-10 13:36:34 +08:00
lixinran bbddf200cf feat: 修复思维导图显示和导出问题
- 修复思维导图节点和连线错位问题
- 使用dangerouslySetInnerHTML正确处理表格内容
- 修复图片尺寸不匹配导致的布局错位
- 优化图片URL验证和错误处理
- 修复SVG导出文字堆叠问题
- 调整节点文本居中对齐,避免与连线错位
- 优化工具栏图标大小和位置
- 完善图片导出功能
2025-10-10 13:04:03 +08:00
lixinran c95bbd649b feat: 完善图片显示和性能优化
- 添加图片数据库字段支持
2025-10-09 16:02:23 +08:00
lixinran 3b39f86f83 feat: 优化思维导图功能
- 修复新增节点居中逻辑,从当前位置平滑移动到新节点
- 实现节点拖拽保存到数据库功能
- 移除所有'正在加载'弹窗提示
- 优化删除节点时的位置保持
- 添加节点拖拽成功/失败通知
2025-10-09 14:20:51 +08:00
lixinran 25abc09cb4 feat: 表格渲染样式重新(完整版)、项目代码清理和优化 2025-09-10 18:35:29 +08:00
lixinran 53a24bfd09 feat: 表格渲染样式重写 2025-09-10 18:26:48 +08:00
lixinran 682744e4b8 feat: 集成KaTeX库支持LaTeX数学公式渲染 2025-09-10 15:53:16 +08:00
lixinran b5c56d4946 feat: 修复markdown表格渲染问题
- 正确配置Mind Elixir的markdown渲染器,支持表格渲染为HTML格式
2025-09-10 15:27:37 +08:00
lixinran caa763d808 feat: 优化实时渲染思维导图的保存流程
- 实现实时渲染思维导图保存时保持视图状态
- 避免重新渲染,只更新临时ID为正式ID
2025-09-10 13:02:45 +08:00
lixinran fd1b71dd75 修复思维导图实时渲染问题 2025-09-08 18:20:48 +08:00
lixinran 7b6601e010 feat: 实现对叶子节点的细分、优化ai追问 2025-09-08 16:51:12 +08:00
lixinran 0a64d46ea3 feat: 完善AI询问功能 - 优化UI样式和交互体验
- 修复AI节点内容显示问题,确保完整回答内容正确显示
- 优化Markdown转JSON逻辑,改进列表项处理
- 增加AI API调用重试机制,解决内容截断问题
- 实现Ask AI功能:为每个节点添加AI询问能力
- 优化AI输入框样式:扩展宽度、居中按钮、支持回车键提交
- 为Ask AI菜单项添加特殊渐变样式,提升视觉识别度
- 简化菜单项文本和悬停提示
- 修复思维导图显示和菜单同步问题
2025-09-08 15:06:08 +08:00
lixinran 5b73857835 Initial commit: AI思维导图生成器项目
- 基于Django + Vue.js的智能思维导图生成和管理系统
- 支持AI驱动的文档分析和可视化思维导图创建
- 包含完整的前后端代码和文档
2025-09-04 13:47:42 +08:00