diff --git a/server/utils/migrate.py b/server/utils/migrate.py index 4202e1d9..305ea120 100644 --- a/server/utils/migrate.py +++ b/server/utils/migrate.py @@ -350,9 +350,7 @@ def check_and_migrate(db_path: str): logger.warning(f" - {issue}") if os.path.exists(db_path): - logger.info( - "建议运行迁移脚本: docker exec api-dev python /app/scripts/migrate_user_soft_delete.py" - ) + logger.info("建议运行迁移脚本: docker exec api-dev python /app/scripts/migrate_user_soft_delete.py") migrator = DatabaseMigrator(db_path) diff --git a/web/src/components/AgentConfigSidebar.vue b/web/src/components/AgentConfigSidebar.vue index bae8e6c8..91d8831c 100644 --- a/web/src/components/AgentConfigSidebar.vue +++ b/web/src/components/AgentConfigSidebar.vue @@ -234,7 +234,7 @@ props.isOpen, (newVal) => { \ No newline at end of file + diff --git a/web/src/components/TaskCenterDrawer.vue b/web/src/components/TaskCenterDrawer.vue index 4a410b68..f4ecb22f 100644 --- a/web/src/components/TaskCenterDrawer.vue +++ b/web/src/components/TaskCenterDrawer.vue @@ -9,36 +9,10 @@
- - - 全部 - {{ totalCount }} - - - 进行中 - {{ inProgressCount }} - - - 已完成 - {{ completedCount }} - - - 失败 - {{ failedCount }} - - +
sortedTasks.value) const loadingState = computed(() => Boolean(loading.value)) const lastErrorState = computed(() => lastError.value) const statusFilter = ref('all') +const inProgressCount = computed( + () => tasks.value.filter((task) => ACTIVE_CLASS_STATUSES.has(task.status)).length +) +const completedCount = computed(() => tasks.value.filter((task) => task.status === 'success').length) +const failedCount = computed( + () => tasks.value.filter((task) => FAILED_STATUSES.has(task.status)).length +) +const totalCount = computed(() => tasks.value.length) +const taskFilterOptions = computed(() => [ + { + label: () => + h('span', { class: 'task-filter-option' }, [ + '全部', + h('span', { class: 'filter-count' }, totalCount.value) + ]), + value: 'all' + }, + { + label: () => + h('span', { class: 'task-filter-option' }, [ + '进行中', + h('span', { class: 'filter-count' }, inProgressCount.value) + ]), + value: 'active' + }, + { + label: () => + h('span', { class: 'task-filter-option' }, [ + '已完成', + h('span', { class: 'filter-count' }, completedCount.value) + ]), + value: 'success' + }, + { + label: () => + h('span', { class: 'task-filter-option' }, [ + '失败', + h('span', { class: 'filter-count' }, failedCount.value) + ]), + value: 'failed' + } +]) const filteredTasks = computed(() => { const list = tasks.value @@ -321,22 +336,6 @@ function canCancel(task) { return ['pending', 'running', 'queued'].includes(task.status) && !task.cancel_requested } -const inProgressCount = computed( - () => tasks.value.filter((task) => ACTIVE_CLASS_STATUSES.has(task.status)).length -) -const completedCount = computed(() => tasks.value.filter((task) => task.status === 'success').length) -const failedCount = computed( - () => tasks.value.filter((task) => FAILED_STATUSES.has(task.status)).length -) -const totalCount = computed(() => tasks.value.length) - -function setFilter(value) { - statusFilter.value = value -} - -function isActiveFilter(value) { - return statusFilter.value === value -}