优化: 项目文件树/依赖图组件 + 灵感对抗校验 + 小程序脚本 + 模块管理

This commit is contained in:
lxy
2026-08-10 00:00:31 +08:00
parent 6bafdcd5a5
commit cf00345c35
19 changed files with 521 additions and 185 deletions
+31 -2
View File
@@ -13,8 +13,11 @@
<!-- 错误 -->
<div v-else-if="error" class="tree-error"> {{ error }}</div>
<!-- 空目录 -->
<div v-else-if="entries.length === 0" class="tree-empty">{{ $t('fileExplorer.emptyDir') }}</div>
<!-- 空目录(展开后子条目为空) -->
<div v-else-if="entries.length === 0" class="tree-empty">
<span class="tree-empty-icon">📭</span>
<span>{{ $t('fileExplorer.emptyDir') }}</span>
</div>
<!-- 条目列表 -->
<ul v-else class="tree-list">
@@ -39,6 +42,13 @@
<span class="expand-icon">{{ expandedPaths.has(entry.path) ? '▾' : '▸' }}</span>
<span class="file-icon">📁</span>
<span class="file-name">{{ entry.name }}</span>
<!-- 空目录标:has_children 由后端列目录时即时统计,未展开即可见,
避免用户误以为目录没加载出来(展开后才显空态) -->
<span
v-if="entry.has_children === false"
class="tree-empty-badge"
:title="$t('fileExplorer.emptyDir')"
>{{ $t('fileExplorer.emptyDirMark') }}</span>
<!-- B3[PD-P1-6]:展开失败 行内 (title 显原因),点击重试;不设整树 error,不炸其他已展开节点 -->
<span
v-if="toggleErrors.has(entry.path)"
@@ -356,6 +366,25 @@ watch(
cursor: pointer;
}
/* 空目录小标(目录行右侧,未展开即可见;flex-shrink 防挤压) */
.tree-empty-badge {
flex-shrink: 0;
/* 文件名后稍靠右一点(不贴名、也不推到最右):固定小间隔即可 */
margin-left: 8px;
font-size: 10px;
line-height: 1.4;
padding: 1px 5px;
border-radius: 8px;
background: rgba(150, 150, 150, 0.14);
color: var(--df-text-dim);
}
/* 展开后空态图标(📭,与文字同行) */
.tree-empty-icon {
font-size: 14px;
line-height: 1;
}
/* Git 状态徽章 */
.git-badge {
flex-shrink: 0;