新增: 文件浏览器增强(窗口分离/Git 变更/行号/Diff/分页提交历史)
- 窗口分离: FileExplorer 可弹出独立 Tauri 窗口 - 行号显示: 文件预览左侧显示行号列 - 按后缀图标: rs/ts/js/vue/css/html 等 20+ 类型彩色图标 - Diff 视图: 有 Git 变更的文件可切换 diff 红绿视图 - Git 变更面板: 变更文件列表(按目录缩进分组)+提交历史(分页加载) - 提交详情: 点击提交查看变更文件列表及文件级 diff - 时间显示: 提交历史显示相对时间/具体日期 - 面包屑导航不丢预览: 导航时不改变当前预览文件 - 刷新保留选中文件: 只清树缓存不清预览 - 中文编码修复: git 命令注入 LANG/LC_ALL 环境变量 - 自适应布局: 弹性 flex 布局,窄窗口适配 - 滚动条优化: 内容区内部滚动,不溢出页面层 - 多工程管理: 工具栏添加工程按钮+弹窗表单 - 审批加载超时缩短: 130s 降至 30s - 文件变更自动刷新: write_file/patch_file 触发 df-data-changed
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# 工程系统设计 — 项目多工程 + Git 状态 + 文件浏览
|
||||
|
||||
> 创建: 2026-06-29 | 状态: ✅ Batch 9-12 已落地(工程表+文件浏览器+Git AI 工具)
|
||||
> 创建: 2026-06-29 | 状态: ✅ Batch 9-13 已落地(工程表+文件浏览器+Git 状态/变更/提交历史)
|
||||
> 关联: [项目知识图谱与任务队列系统-2026-06-26.md](./项目知识图谱与任务队列系统-2026-06-26.md) / ARCHITECTURE.md
|
||||
|
||||
---
|
||||
@@ -118,23 +118,41 @@ get_module_file_tree(module_id, sub_path?, depth?) → FileTreeResponse
|
||||
|
||||
噪音过滤:跳过 node_modules / target / .git / __pycache__ / dist / .vite。
|
||||
|
||||
### 5.2 UI 结构
|
||||
### 5.2 UI 结构(当前)
|
||||
|
||||
```
|
||||
项目详情页 → 文件 Tab
|
||||
┌──────────────┬──────────────────────────────────┐
|
||||
│ 文件树 │ 文件内容预览 │
|
||||
│ │ │
|
||||
│ 📁 src/ │ 1 use std::...; │
|
||||
│ main.rs M │ 2 fn main() { │
|
||||
│ config.rs │ 3 println!("hello"); │
|
||||
│ 📁 tests/ │ 4 } │
|
||||
│ Cargo.toml A │ │
|
||||
│ │ main.rs · 2.1 KB · 已修改 │
|
||||
└──────────────┴──────────────────────────────────┘
|
||||
┌─────────────────────────┬──────────────────────────────────────┐
|
||||
│ [📁] [📝 3] 视图切换 │ 文件内容预览 │
|
||||
│ ─────────────────────── │ │
|
||||
│ 📁 文件树/变更列表 │ 行号 │ 代码(语法高亮 + 行号) │
|
||||
│ src/ │ 1 │ use std::...; │
|
||||
│ main.rs M │ 2 │ fn main() { │
|
||||
│ config.rs │ 3 │ println!("hello"); │
|
||||
│ tests/ │ 4 │ } │
|
||||
│ Cargo.toml A │ │
|
||||
│ │ main.rs · 2.1 KB · 📝 查看变更 │
|
||||
└─────────────────────────┴──────────────────────────────────────┘
|
||||
```
|
||||
|
||||
Git 状态标记:M(橙色=已修改) / A(绿色=已新增) / ??(灰色=未跟踪)。
|
||||
**视图切换**: 左侧栏顶部两个图标按钮:
|
||||
- 📁 文件树视图(默认)
|
||||
- 📝 变更视图(带变更数量角标)
|
||||
|
||||
**变更视图**:
|
||||
- 变更文件列表(按状态分组:已修改/已新增/已删除/未跟踪)
|
||||
- 文件按目录深度缩进(src/components/Foo.vue → 缩进 2 层)
|
||||
- 点击文件 → 右侧预览区显示 git diff(红删绿增)
|
||||
- 顶部 Tab 切换至"历史":展示提交历史(每条显示 hash+主题+时间)
|
||||
- 初始 50 条,支持"加载更多"分页
|
||||
- 点击提交行 → 展开该提交的变更文件列表
|
||||
- 点击变更文件 → 展示该文件的 diff
|
||||
|
||||
**内容预览增强**:
|
||||
- 行号列 + highlight.js 语法高亮(按文件后缀自动选语言)
|
||||
- 按后缀彩色图标(rs/ts/js/vue/css/html/json/md/sh/sql 等)
|
||||
- Diff 切换按钮(Git 状态不为空时在头部右侧显示 📝)
|
||||
- 滚动条在预览区域内部,不溢出页面层
|
||||
|
||||
### 5.3 单工程退化
|
||||
|
||||
@@ -187,3 +205,20 @@ create_project 时自动建一个工程:
|
||||
| Batch 10 | 文件浏览器 UI(工程选择 + 文件树 + Git 状态标记 + 内容预览) |
|
||||
| Batch 11 | Git 只读 AI 工具(status/diff/log) |
|
||||
| Batch 12 | Git 写 AI 工具(commit/branch/merge) |
|
||||
| Batch 13 | 文件浏览器增强(行号/图标/Diff/变更面板/窗口分离) |
|
||||
|
||||
### Batch 13 新增功能
|
||||
|
||||
| 功能 | 说明 |
|
||||
|---|---|
|
||||
| 行号显示 | 文件预览左侧显示行号列 |
|
||||
| 后缀图标 | rs/ts/js/vue/css/html 等 20+ 类型彩色 SVG 图标 |
|
||||
| Diff 视图 | 有 Git 变更的文件可切换内容/Diff 红绿视图 |
|
||||
| Git 变更面板 | 文件树侧栏可切换至变更视图,显示变更文件列表(按目录缩进分组) |
|
||||
| 提交历史分页 | 展示最近 50 条提交,支持加载更多(分页) |
|
||||
| 提交详情 | 点击提交行展开变更文件列表,点文件查看 Diff |
|
||||
| 提交时间显示 | 相对时间(刚刚/N分钟前)+超过30天显示具体日期 |
|
||||
| 窗口分离 | 文件浏览器可弹出独立 Tauri 窗口 |
|
||||
| 中文编码修复 | git 命令注入 LANG/LC_ALL UTF-8 环境变量 |
|
||||
| 多工程管理 UI | 工具栏添加工程按钮 + 弹窗表单(名称/路径/Git地址) |
|
||||
| 文件变更自动刷新 | write_file/patch_file 触发 df-data-changed 事件推送 |
|
||||
|
||||
Reference in New Issue
Block a user