mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-10 16:53:35 +08:00
## 关联 Issue Closes #781 ## 问题根因 表格拖选会在 `currentSelectionRef` 中保存完整目标选区,但剪贴板粘贴逻辑仅使用 `selectionStartRef` 作为锚点,并按剪贴板二维矩阵生成目标坐标。单个复制值解析为 `1 x 1` 矩阵,因此只更新了锚点单元格,没有使用其余已选单元格。 ## 修复方案 - 当剪贴板内容为 `1 x 1` 且当前选区超过一个单元格时,将单值映射到选区中的每个目标坐标。 - 粘贴时根据当前显示行和列重新解析选区坐标,避免排序后使用过期位置。 - 继续复用现有只读列过滤、草稿合并、新增行、删除行和原值比较逻辑。 - 多行或多列剪贴板仍保持原有的锚点二维矩阵粘贴行为,不引入重复铺贴或跨页填充语义。 ## 验证结果 | 验证项 | 命令或步骤 | 结果 | | --- | --- | --- | | 修复前回归 | `npm --prefix frontend test -- src/components/useDataGridBatchActions.test.tsx` | 新增用例按预期失败:实际仅更新 `row-1.id`,期望两行四格 | | 回归测试 | `npm --prefix frontend test -- src/components/useDataGridBatchActions.test.tsx` | 通过,5/5 | | 剪贴板相关测试 | `npm --prefix frontend test -- src/components/dataGridClipboardPaste.test.ts src/components/dataGridSelectionCopy.test.ts src/components/useDataGridBatchActions.test.tsx` | 通过,3 个文件、13/13 | | 类型与生产构建 | `npm --prefix frontend run build` | 通过,`tsc && vite build` 成功 | | 差异检查 | `git diff --cached --check` | 通过 | 前端全量测试 `npm --prefix frontend test` 执行结果为 420 个文件通过、1 个文件失败,3481 项测试通过、1 项失败。唯一失败是 `src/testPolicy.test.ts` 检测到 `upstream/dev` 已存在的 `AIMessageCodeBlock.dependencyBoundary.test.ts` 读取源码文本;本 PR 未修改相关文件。该上游既有错误将通过独立 PR 修复,避免混入本 Issue。 GUI 验证未完成:本地 Vite 服务已正常启动,但浏览器自动化宿主连续返回 `browser guest not attached (webview not ready)`,没有创建可操作页面或截图证据。未将该项记为通过。 ## 风险与兼容性 - 不涉及数据或配置格式变化、数据库迁移或公共 API 变化。 - 仅改变 `1 x 1` 剪贴板内容在多格选区中的行为;现有二维矩阵粘贴由相关回归测试覆盖并保持不变。 - 操作仍只影响当前已加载并选中的可写单元格;只读列、已删除行和未变化值会沿用现有规则跳过。 - 更新规模随当前选区大小线性增长;没有新增网络请求、并发路径或跨页扫描。 - 验证边界:自动化测试覆盖了前端草稿状态与消息计数,未在真实 Wails/MySQL 环境提交数据库变更。 ## 回滚方式 回滚提交 `ec6b4e9e0182a85b862627177c8d373137d1a90b` 即可恢复原有单锚点粘贴逻辑。该提交不改变数据或配置格式,回滚本身不需要数据迁移。
Lite DB Client
一个基于 Electron、React 和 Ant Design 构建的轻量级 MySQL 数据库客户端。
✨ 功能特性
- 连接管理: 轻松创建和保存 MySQL 数据库连接。
- 结构浏览: 通过树形视图快速查看数据库和表结构。
- 数据查看: 双击表名即可查看数据(支持分页/滚动加载)。
- SQL 编辑器: 集成 Monaco Editor,提供强大的 SQL 编写和执行体验(支持语法高亮)。
- 多标签页: 支持多窗口并行操作,类似 Navicat 的使用体验。
🛠️ 技术栈
- Electron: 桌面端运行环境。
- React + Vite: 前端框架与极速构建工具。
- Ant Design: 企业级 UI 组件库。
- Zustand: 轻量级状态管理。
- MySQL2: 高性能 Node.js MySQL 驱动。
- Monaco Editor: VS Code 同款代码编辑器。
🚀 快速开始
-
安装依赖
npm install -
启动开发模式
npm run electron:dev这将启动 Vite 开发服务器并打开 Electron 窗口。
-
构建生产版本
npm run build构建完成的安装包(dmg/exe/deb)将位于
dist/或release/目录下。
⚠️ 说明
- 本项目目前处于 MVP (最小可行性产品) 阶段。
- 当前版本主要支持 MySQL 数据库。
- 密码目前保存在内存/本地存储中,请注意在生产环境中的安全性。
希望这款轻量级工具能成为你开发路上的好帮手!