优化功能
This commit is contained in:
@@ -7,14 +7,6 @@ export default { name: "TreeEntry" };
|
||||
import { computed, onBeforeUnmount, ref, watch } from "vue";
|
||||
import ConfirmDialog from "./ConfirmDialog.vue";
|
||||
import PromptDialog from "./PromptDialog.vue";
|
||||
import {
|
||||
DropdownMenu,
|
||||
DropdownMenuContent,
|
||||
DropdownMenuGroup,
|
||||
DropdownMenuItem,
|
||||
DropdownMenuSeparator,
|
||||
DropdownMenuTrigger,
|
||||
} from "@/components/ui/dropdown-menu";
|
||||
|
||||
interface DirEntry {
|
||||
name: string;
|
||||
@@ -305,40 +297,6 @@ function onContextMenu(event: MouseEvent) {
|
||||
></i>
|
||||
<i class="tree-entry-icon ri-folder-2-line text-base shrink-0"></i>
|
||||
<span class="truncate flex-1 min-w-0">{{ entry.name }}</span>
|
||||
|
||||
<!-- More button + DropdownMenu -->
|
||||
<DropdownMenu>
|
||||
<DropdownMenuTrigger
|
||||
class="tree-more-btn shrink-0 ml-auto opacity-0 group-hover:opacity-100 transition-opacity focus-visible:opacity-100"
|
||||
title="更多操作"
|
||||
@click.stop
|
||||
>
|
||||
<i class="ri-more-line"></i>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent @click.stop>
|
||||
<DropdownMenuGroup>
|
||||
<DropdownMenuItem @click="handleCreateFolder">
|
||||
<i class="ri-folder-add-line"></i>
|
||||
<span>新建文件夹</span>
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem @click="handleCreateFile">
|
||||
<i class="ri-file-add-line"></i>
|
||||
<span>新建 MD 文件</span>
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuItem @click="handleRename">
|
||||
<i class="ri-edit-line"></i>
|
||||
<span>重命名</span>
|
||||
</DropdownMenuItem>
|
||||
</DropdownMenuGroup>
|
||||
<DropdownMenuSeparator />
|
||||
<DropdownMenuGroup>
|
||||
<DropdownMenuItem variant="destructive" @click="handleDelete">
|
||||
<i class="ri-delete-bin-line"></i>
|
||||
<span>删除文件夹</span>
|
||||
</DropdownMenuItem>
|
||||
</DropdownMenuGroup>
|
||||
</DropdownMenuContent>
|
||||
</DropdownMenu>
|
||||
</div>
|
||||
|
||||
<!-- Children (recursive) -->
|
||||
@@ -375,32 +333,6 @@ function onContextMenu(event: MouseEvent) {
|
||||
>
|
||||
<i :class="['tree-entry-icon', fileIcon, 'text-sm shrink-0']"></i>
|
||||
<span class="truncate flex-1 min-w-0">{{ entry.name }}</span>
|
||||
|
||||
<!-- More button + DropdownMenu -->
|
||||
<DropdownMenu>
|
||||
<DropdownMenuTrigger
|
||||
class="tree-more-btn shrink-0 ml-auto opacity-0 group-hover:opacity-100 transition-opacity focus-visible:opacity-100"
|
||||
title="更多操作"
|
||||
@click.stop
|
||||
>
|
||||
<i class="ri-more-line"></i>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent @click.stop>
|
||||
<DropdownMenuGroup>
|
||||
<DropdownMenuItem @click="handleRename">
|
||||
<i class="ri-edit-line"></i>
|
||||
<span>重命名</span>
|
||||
</DropdownMenuItem>
|
||||
</DropdownMenuGroup>
|
||||
<DropdownMenuSeparator />
|
||||
<DropdownMenuGroup>
|
||||
<DropdownMenuItem variant="destructive" @click="handleDelete">
|
||||
<i class="ri-delete-bin-line"></i>
|
||||
<span>删除</span>
|
||||
</DropdownMenuItem>
|
||||
</DropdownMenuGroup>
|
||||
</DropdownMenuContent>
|
||||
</DropdownMenu>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -435,30 +367,6 @@ function onContextMenu(event: MouseEvent) {
|
||||
color: var(--app-accent);
|
||||
}
|
||||
|
||||
/* ── More button ────────────────────────────── */
|
||||
.tree-more-btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
background: transparent;
|
||||
color: var(--app-muted);
|
||||
font-size: 14px;
|
||||
cursor: pointer;
|
||||
transition:
|
||||
background-color 0.12s ease,
|
||||
color 0.12s ease;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.tree-more-btn:hover {
|
||||
background: var(--app-border);
|
||||
color: var(--app-text);
|
||||
}
|
||||
|
||||
.tree-context-menu {
|
||||
position: fixed;
|
||||
z-index: 100;
|
||||
|
||||
Reference in New Issue
Block a user