fix: 处理任务运行时隐藏上传区域

This commit is contained in:
2026-05-18 16:17:10 +08:00
parent 9dd4a75393
commit 1b489a01cd
2 changed files with 14 additions and 1 deletions
+6
View File
@@ -1,5 +1,11 @@
# 项目上下文记录 # 项目上下文记录
## 2026-05-18:处理任务运行时隐藏上传区域
- `frontend/src/components/FileWorkflow.vue` 新增 `taskInProgress` 计算状态;当存在活动任务或任务状态未完成/失败时,上传区和已选文件列表不再渲染。
- 上传文件阶段仍保留已选文件和上传进度;后端处理任务开始后页面只显示处理进度卡片和日志,避免已完成上传列表继续占据首屏。
- 已执行 `npm run build`,构建通过;未启动浏览器或 headless Chrome。
## 2026-05-18:修复主题按钮图标和折叠侧栏版本显示 ## 2026-05-18:修复主题按钮图标和折叠侧栏版本显示
- `frontend/src/AppShell.vue` 的主题切换按钮现在根据 `themeName` 动态显示 `MoonOutline` 或 `SunnyOutline`,切换主题后图标和标题同步变化。 - `frontend/src/AppShell.vue` 的主题切换按钮现在根据 `themeName` 动态显示 `MoonOutline` 或 `SunnyOutline`,切换主题后图标和标题同步变化。
+8 -1
View File
@@ -1,6 +1,7 @@
<template> <template>
<div class="upload-page-body"> <div class="upload-page-body">
<section <section
v-if="!taskInProgress"
class="upload-zone" class="upload-zone"
:class="{ dragover: isDragging, disabled: working }" :class="{ dragover: isDragging, disabled: working }"
role="button" role="button"
@@ -39,7 +40,7 @@
/> />
</section> </section>
<div v-if="files.length > 0" class="file-list"> <div v-if="!taskInProgress && files.length > 0" class="file-list">
<div class="file-list-header"> <div class="file-list-header">
<h4>已选择文件</h4> <h4>已选择文件</h4>
<n-button size="small" text :disabled="working" @click="clearFiles"> <n-button size="small" text :disabled="working" @click="clearFiles">
@@ -176,6 +177,12 @@ let timer: number | undefined;
const logText = computed(() => taskStatus.value?.logs?.join('\n') || '等待任务开始'); const logText = computed(() => taskStatus.value?.logs?.join('\n') || '等待任务开始');
const processVisible = computed(() => Boolean(taskStatus.value || activeTask.value?.has_active)); const processVisible = computed(() => Boolean(taskStatus.value || activeTask.value?.has_active));
const taskInProgress = computed(() => {
if (activeTask.value?.has_active) {
return true;
}
return taskStatus.value ? !['completed', 'failed'].includes(taskStatus.value.status) : false;
});
const showUploadProgress = computed(() => working.value || uploadProgress.value > 0); const showUploadProgress = computed(() => working.value || uploadProgress.value > 0);
const uploadedCount = computed(() => files.value.filter(item => item.status === 'uploaded').length); const uploadedCount = computed(() => files.value.filter(item => item.status === 'uploaded').length);
const errorCount = computed(() => files.value.filter(item => item.status === 'error').length); const errorCount = computed(() => files.value.filter(item => item.status === 'error').length);