新增: 依赖关系图(AntV X6 v3 + Vue 自定义节点)

- DependencyGraph.vue: X6 画布初始化 + 插件(框选/对齐线/撤销/滚动) + 工程节点渲染
- ModuleNode.vue: Vue 自定义节点组件(工程名/路径/技术栈标签)
- 项目详情新增依赖图Tab,与概览/文件并列
- 网格布局排列工程节点,支持缩放/拖拽/框选
- Phase 0 验证 demo(X6Demo.vue)保留在 /dev/x6 路由
This commit is contained in:
2026-06-30 23:57:43 +08:00
parent 4dac9fe5f1
commit 976ce29ad9
12 changed files with 1030 additions and 2 deletions

View File

@@ -58,6 +58,14 @@
>
{{ $t('fileExplorer.tabTitle') }}
</button>
<button
class="tab-btn"
:class="{ 'tab-active': activeTab === 'graph' }"
type="button"
@click="activeTab = 'graph'"
>
{{ $t('dependencyGraph.tabTitle') }}
</button>
</nav>
<!-- 文件浏览器 Tab -->
@@ -65,6 +73,11 @@
<FileExplorer :project-id="projectId" />
</section>
<!-- 依赖图 Tab -->
<section v-else-if="activeTab === 'graph'" class="file-explorer-wrap">
<DependencyGraph :project-id="projectId" />
</section>
<!-- 概览 Tab:原有主体两栏 -->
<div v-else class="detail-grid">
<!-- 左栏项目信息 -->
@@ -258,6 +271,7 @@ import { projectStatusLabel, taskStatusLabel, taskStatusClass } from '../constan
import ConfirmDialog from '@/components/ConfirmDialog.vue'
import ApprovalDialog from '@/components/project/ApprovalDialog.vue'
import FileExplorer from '@/components/project/FileExplorer.vue'
import DependencyGraph from '@/components/project/DependencyGraph.vue'
import { useConfirm } from '@/composables/useConfirm'
import { useRendered } from '@/composables/useMarkdown'
@@ -270,7 +284,7 @@ const showApprovalDialog = ref(false)
let unlisten: (() => void) | null = null
// Tab 导航:概览(项目信息/任务/工作流日志) vs 文件浏览器(Batch 10)。
const activeTab = ref<'overview' | 'files'>('overview')
const activeTab = ref<'overview' | 'files' | 'graph'>('overview')
// 确认弹层状态机抽至 composables/useConfirm(原 4 视图重复:Projects/ProjectDetail/Ideas/Settings)
const { confirmState, confirmDialog, answerConfirm } = useConfirm()