feat(admin-web): preserve template wizard entry source and refresh AI banner

- Carry `from=workspace` query from the workbench into the wizard so cancel
  and post-generate redirects return to the workbench instead of always
  landing on /articles/templates.
- AppShell now resolves an effective navKey from `route.query.from`, so the
  sidebar highlight and breadcrumb track the entry source while inside the
  wizard.
- Redesign the brand-info AI analyze CTA into a standalone banner with
  template-aware copy (default / product_review / research_report) and add
  the matching i18n keys.
- Drop the unused 批量生成文章 button and its styling from the templates
  page.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-12 01:12:01 +08:00
parent f06c8dfc01
commit 635782041a
6 changed files with 137 additions and 22 deletions
+13
View File
@@ -897,22 +897,35 @@ const enUS = {
},
promptVisible: 'Prompt visible',
promptSealed: 'Prompt sealed',
aiBanner: {
title: 'One-click AI analysis',
defaultDescription:
'AI will complete the brand summary, find core keywords, and extract competitor context.',
productReviewDescription:
'AI will organize the product context, extract review keywords, and suggest comparable alternatives.',
researchReportDescription:
'AI will organize the topic context, extract research keywords, and suggest reference targets.',
},
assist: {
analyzeTitle: 'AI is analyzing keywords and competitors. Please wait…',
analyzeTitleNoCompetitors: 'AI is analyzing keywords and context. Please wait…',
titleTitle: 'AI is generating titles. Please wait…',
outlineTitle: 'AI is generating the article outline. Please wait…',
analyzeStages: {
brand: 'Analyzing the brand context…',
keywords: 'Extracting keyword opportunities…',
competitors: 'Mapping competitors and websites…',
context: 'Organizing the content context…',
},
titleStages: {
context: 'Preparing the current brief…',
strategy: 'Generating title directions from keywords and competitors…',
strategyNoCompetitors: 'Generating title directions from the keywords and brief…',
finalize: 'Returning 5 title options…',
},
outlineStages: {
context: 'Preparing the title, keywords, and competitor context…',
contextNoCompetitors: 'Preparing the title, keywords, and content context…',
structure: 'Generating the article outline from the selected structure…',
finalize: 'Returning the editable outline result…',
},