From 27e144410ddf20b5d5e7ce3c87add84ed1b734f4 Mon Sep 17 00:00:00 2001 From: engigu Date: Mon, 30 Mar 2026 17:19:25 +0800 Subject: [PATCH] chore: add loading animation --- web/src/views/editor/Editor.vue | 5 +++++ web/src/views/editor/components/FileSidebar.vue | 5 +++-- web/src/views/tasks/Tasks.vue | 12 ++++++++++-- web/src/views/terminal/Terminal.vue | 11 +++++++++-- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/web/src/views/editor/Editor.vue b/web/src/views/editor/Editor.vue index 137dda1..ea96cb0 100644 --- a/web/src/views/editor/Editor.vue +++ b/web/src/views/editor/Editor.vue @@ -27,6 +27,7 @@ const selectedFile = ref(null) const fileContent = ref('') const originalContent = ref('') const isLoading = ref(false) +const isRefreshing = ref(false) const isEditMode = ref(false) const hasChanges = computed(() => fileContent.value !== originalContent.value) @@ -142,10 +143,13 @@ function handleResize() { } async function loadTree() { + isRefreshing.value = true try { fileTree.value = await api.files.tree() } catch { toast.error('加载文件树失败') + } finally { + isRefreshing.value = false } } @@ -438,6 +442,7 @@ onUnmounted(() => { :file-tree="fileTree" :expanded-dirs="expandedDirs" :selected-path="selectedPath" + :is-refreshing="isRefreshing" @refresh="loadTree" @select="handleSelect" @delete="confirm => dialogsRef?.openDelete(confirm)" diff --git a/web/src/views/editor/components/FileSidebar.vue b/web/src/views/editor/components/FileSidebar.vue index c6ee979..487b3e2 100644 --- a/web/src/views/editor/components/FileSidebar.vue +++ b/web/src/views/editor/components/FileSidebar.vue @@ -9,6 +9,7 @@ defineProps<{ fileTree: FileNode[] expandedDirs: Set selectedPath: string | null + isRefreshing?: boolean }>() const emit = defineEmits<{ @@ -67,8 +68,8 @@ function handleFilesUpload(e: Event) {
脚本文件
-
+ +