feat(article): support regenerating failed articles

This commit is contained in:
2026-05-07 10:55:44 +08:00
parent ff2bb77cdd
commit 7d82c5c193
21 changed files with 659 additions and 23 deletions
+7 -1
View File
@@ -34,6 +34,7 @@ import ArticleSourceMeta from '@/components/ArticleSourceMeta.vue'
import PublishArticleModal from '@/components/PublishArticleModal.vue'
import { articlesApi, templatesApi, workspaceApi } from '@/lib/api'
import { buildArticleClipboardContent, resolveArticleActionState } from '@/lib/article-list-actions'
import { useArticleRegenerateAction } from '@/lib/article-regenerate-action'
import {
formatDateTime,
getGenerateStatusMeta,
@@ -216,6 +217,8 @@ const deleteMutation = useMutation({
},
})
const { regeneratingArticleId, handleRegenerate } = useArticleRegenerateAction()
const templateFilterOptions = computed(() => {
return [
{ label: t('templates.sections.generalTemplates'), value: 'source:template' },
@@ -599,13 +602,16 @@ function refreshRecords(): void {
<template v-else-if="column.key === 'actions'">
<ArticleActionGroup
v-bind="resolveArticleActionState(record.generate_status)"
v-bind="resolveArticleActionState(record)"
:delete-confirm-title="t('templates.list.deleteConfirm')"
:delete-loading="deleteMutation.isPending.value"
:regenerate-confirm-title="t('common.regenerateConfirm')"
:regenerate-loading="regeneratingArticleId === record.id"
@publish="openPublish(record)"
@edit="openEditor(record)"
@preview="openPreview(record)"
@copy="copyArticle(record.id)"
@regenerate="handleRegenerate(record)"
@delete="handleDelete(record.id)"
/>
</template>