diff --git a/admin-frontend/src/components/CreateStoryModal.vue b/admin-frontend/src/components/CreateStoryModal.vue
index 5110a81..5c37d51 100644
--- a/admin-frontend/src/components/CreateStoryModal.vue
+++ b/admin-frontend/src/components/CreateStoryModal.vue
@@ -102,7 +102,7 @@ const generationSteps = computed(() => {
'Worker 会生成故事正文并保存主记录...',
'主内容一可读就会自动跳转详情页...',
'封面会继续在后台补全,失败也能重试...',
- '马上进入故事详情页。',
+ '稍后会自动进入故事详情页。',
]
})
diff --git a/admin-frontend/src/locales/en.json b/admin-frontend/src/locales/en.json
index d7f61e6..24aea96 100644
--- a/admin-frontend/src/locales/en.json
+++ b/admin-frontend/src/locales/en.json
@@ -3,14 +3,14 @@
"title": "DreamWeaver",
"navHome": "Home",
"navMyStories": "My Stories",
- "navProfiles": "Profiles",
- "navUniverses": "Universes",
- "navAdmin": "Providers Admin"
+ "navProfiles": "Child Profiles",
+ "navUniverses": "Story Universe",
+ "navAdmin": "Provider Management"
},
"home": {
"heroTitle": "Weave magical",
"heroTitleHighlight": "bedtime stories for your child",
- "heroSubtitle": "AI-powered personalized stories for children aged 3-8, making every bedtime magical",
+ "heroSubtitle": "AI-powered personalized stories for children ages 3-8, making every bedtime feel magical",
"heroCta": "Start Creating",
"heroCtaSecondary": "Learn More",
"heroPreviewTitle": "Bunny's Brave Adventure",
@@ -25,15 +25,15 @@
"feature1Title": "AI-Powered Creation",
"feature1Desc": "Enter a few keywords, and AI instantly creates an imaginative original story for your child",
"feature2Title": "Personalized Memory",
- "feature2Desc": "The system remembers your child's preferences and growth, making stories more tailored over time",
+ "feature2Desc": "The system remembers your child's preferences and growth, so stories feel more personal over time",
"feature3Title": "Beautiful AI Illustrations",
"feature3Desc": "Automatically generate unique cover illustrations for each story, bringing them to life",
"feature4Title": "Warm Voice Narration",
"feature4Desc": "Professional AI narration with a warm voice to accompany your child into sweet dreams",
"feature5Title": "Educational Themes",
- "feature5Desc": "Courage, friendship, sharing, honesty... naturally weaving positive values into stories",
+ "feature5Desc": "Themes like courage, friendship, sharing, and honesty are woven naturally into every story",
"feature6Title": "Story Universe",
- "feature6Desc": "Create your own world where beloved characters continue their adventures across stories",
+ "feature6Desc": "Create a shared story world where beloved characters can keep adventuring across stories",
"howItWorksTitle": "How It Works",
"howItWorksSubtitle": "Four steps to start your magical story journey",
@@ -67,30 +67,30 @@
"faqTitle": "Frequently Asked Questions",
"faq1Question": "What age is DreamWeaver suitable for?",
- "faq1Answer": "We're designed for children aged 3-8. Story content, language difficulty, and educational themes are all optimized for this age group.",
+ "faq1Answer": "DreamWeaver is designed for children ages 3-8. Story content, language level, and educational themes are all tuned for this age group.",
"faq2Question": "Are the generated stories safe?",
- "faq2Answer": "Absolutely safe. All stories go through content filtering to ensure they're appropriate for children and convey positive values.",
+ "faq2Answer": "All generated stories go through safety filters to help keep them appropriate for children and aligned with positive values.",
"faq3Question": "Can I customize story characters?",
"faq3Answer": "Yes! You can set preferences in your child's profile, or specify character names and traits when creating. AI will incorporate them into the story.",
"faq4Question": "Will stories repeat?",
"faq4Answer": "No. Every story is originally generated by AI in real-time. Even with the same keywords, you'll get different stories each time.",
"faq5Question": "What languages are supported?",
- "faq5Answer": "Currently we support Chinese and English. You can switch interface language anytime, and stories will adjust accordingly.",
+ "faq5Answer": "We currently support Chinese and English. You can switch the interface language at any time, and stories will adjust accordingly.",
- "ctaTitle": "Ready to Create Magic for Your Child?",
- "ctaSubtitle": "Start now and let AI weave unique stories for your child's growth",
- "ctaButton": "Start Creating Free",
+ "ctaTitle": "Ready to Create Something Magical for Your Child?",
+ "ctaSubtitle": "Start now and let AI weave a one-of-a-kind story for your child's growth",
+ "ctaButton": "Start Creating for Free",
"ctaNote": "No credit card required",
"createModalTitle": "Create New Story",
- "inputTypeKeywords": "Keywords",
- "inputTypeStory": "Polish Story",
+ "inputTypeKeywords": "Create from Keywords",
+ "inputTypeStory": "Refine a Story",
"selectProfile": "Select Child Profile",
"selectProfileOptional": "(Optional)",
"selectUniverse": "Select Story Universe",
"noProfile": "No profile",
"noUniverse": "No universe",
- "noUniverseHint": "No universe for this profile yet. Create one in Story Universe.",
+ "noUniverseHint": "This profile doesn't have a story universe yet. Create one in Story Universe.",
"inputLabel": "Enter Keywords",
"inputLabelStory": "Enter Your Story",
"inputPlaceholder": "e.g., bunny, forest, courage, friendship...",
@@ -105,16 +105,16 @@
"themeTolerance": "Tolerance",
"themeCustom": "Or custom...",
"errorEmpty": "Please enter content",
- "errorLogin": "Please login first",
+ "errorLogin": "Please log in first",
"generating": "Weaving your story...",
- "loginFirst": "Please Login",
- "startCreate": "Create Magic Story"
+ "loginFirst": "Please log in",
+ "startCreate": "Create Story"
},
"stories": {
"myStories": "My Stories",
"view": "View",
"delete": "Delete",
- "confirmDelete": "Are you sure to delete this story?",
+ "confirmDelete": "Are you sure you want to delete this story?",
"noStories": "No stories yet."
},
"storyDetail": {
@@ -122,7 +122,7 @@
"generateImage": "Generate Cover",
"playAudio": "Play Audio",
"modeGenerated": "Generated",
- "modeEnhanced": "Enhanced"
+ "modeEnhanced": "Refined"
},
"admin": {
"title": "Provider Management",
diff --git a/admin-frontend/src/locales/zh.json b/admin-frontend/src/locales/zh.json
index b807a7f..987866b 100644
--- a/admin-frontend/src/locales/zh.json
+++ b/admin-frontend/src/locales/zh.json
@@ -33,7 +33,7 @@
"feature5Title": "教育主题融入",
"feature5Desc": "勇气、友谊、分享、诚实...在故事中自然传递正向价值观",
"feature6Title": "故事宇宙",
- "feature6Desc": "创建专属世界观,让喜爱的角色在不同故事中持续冒险",
+ "feature6Desc": "创建专属故事宇宙,让喜爱的角色在不同故事中持续冒险",
"howItWorksTitle": "如何使用",
"howItWorksSubtitle": "四步开启奇妙故事之旅",
@@ -69,7 +69,7 @@
"faq1Question": "梦语织机适合多大的孩子?",
"faq1Answer": "我们专为 3-8 岁儿童设计,故事内容、语言难度和教育主题都针对这个年龄段优化。",
"faq2Question": "生成的故事安全吗?",
- "faq2Answer": "绝对安全。所有故事都经过内容过滤,确保适合儿童阅读,传递积极正向的价值观。",
+ "faq2Answer": "所有生成内容都会经过安全过滤,以更好地确保适合儿童阅读,并传递积极正向的价值观。",
"faq3Question": "可以自定义故事角色吗?",
"faq3Answer": "可以!您可以在孩子档案中设置喜好,或在创作时指定角色名称、特点,AI 会将其融入故事。",
"faq4Question": "故事会重复吗?",
@@ -77,7 +77,7 @@
"faq5Question": "支持哪些语言?",
"faq5Answer": "目前支持中文和英文,您可以随时切换界面语言,故事也会相应调整。",
- "ctaTitle": "准备好为孩子创造魔法了吗?",
+ "ctaTitle": "准备好为孩子创作奇妙故事了吗?",
"ctaSubtitle": "立即开始,让 AI 为您的孩子编织独一无二的成长故事",
"ctaButton": "免费开始创作",
"ctaNote": "无需信用卡,立即体验",
@@ -93,7 +93,7 @@
"noUniverseHint": "当前档案暂无宇宙,可在「故事宇宙」中创建",
"inputLabel": "输入关键词",
"inputLabelStory": "输入您的故事",
- "inputPlaceholder": "例如:小兔子, 森林, 勇气, 友谊...",
+ "inputPlaceholder": "例如:小兔子、森林、勇气、友谊……",
"inputPlaceholderStory": "在这里输入您想要润色的故事...",
"themeLabel": "选择教育主题",
"themeOptional": "(可选)",
@@ -108,14 +108,14 @@
"errorLogin": "请先登录",
"generating": "正在编织故事...",
"loginFirst": "请先登录",
- "startCreate": "开始创作魔法故事"
+ "startCreate": "开始创作"
},
"stories": {
"myStories": "我的故事",
"view": "查看",
"delete": "删除",
"confirmDelete": "确定删除这个故事吗?",
- "noStories": "暂无故事。"
+ "noStories": "还没有故事。"
},
"storyDetail": {
"back": "返回",
@@ -136,12 +136,12 @@
"type": "类型",
"adapter": "适配器",
"model": "模型",
- "apiBase": "API Base",
- "timeout": "超时 (ms)",
+ "apiBase": "API 地址",
+ "timeout": "超时(ms)",
"retries": "最大重试",
"weight": "权重",
"priority": "优先级",
- "configRef": "Config Ref",
+ "configRef": "配置引用",
"enabled": "启用",
"actions": "操作"
},
diff --git a/admin-frontend/src/views/AdminProviders.vue b/admin-frontend/src/views/AdminProviders.vue
index 6127f63..a2db1e1 100644
--- a/admin-frontend/src/views/AdminProviders.vue
+++ b/admin-frontend/src/views/AdminProviders.vue
@@ -288,7 +288,7 @@
:key="p"
@click="cloneDefault(type, p)"
class="px-2 py-1 text-xs bg-white border border-gray-200 rounded text-gray-600 font-mono hover:border-indigo-300 hover:text-indigo-600 hover:shadow-sm transition-all cursor-pointer"
- title="点击基于此默认配置创建"
+ title="基于此默认配置创建"
>
{{ p }}
diff --git a/admin-frontend/src/views/ChildProfileTimeline.vue b/admin-frontend/src/views/ChildProfileTimeline.vue
index d7b3882..3cdc304 100644
--- a/admin-frontend/src/views/ChildProfileTimeline.vue
+++ b/admin-frontend/src/views/ChildProfileTimeline.vue
@@ -135,7 +135,7 @@ onMounted(fetchTimeline)
-
还没有开始冒险呢,快去创作第一个故事吧!
+
还没有开始冒险呢,先来创作第一个故事吧!
diff --git a/frontend/src/components/CreateStoryModal.vue b/frontend/src/components/CreateStoryModal.vue
index 0dc94fc..74bf873 100644
--- a/frontend/src/components/CreateStoryModal.vue
+++ b/frontend/src/components/CreateStoryModal.vue
@@ -102,7 +102,7 @@ const generationSteps = computed(() => {
'Worker 会生成故事正文并保存主记录...',
'主内容一可读就会自动跳转详情页...',
'封面会继续在后台补全,失败也能重试...',
- '马上进入故事详情页。',
+ '稍后会自动进入故事详情页。',
]
})
diff --git a/frontend/src/locales/en.json b/frontend/src/locales/en.json
index d7f61e6..24aea96 100644
--- a/frontend/src/locales/en.json
+++ b/frontend/src/locales/en.json
@@ -3,14 +3,14 @@
"title": "DreamWeaver",
"navHome": "Home",
"navMyStories": "My Stories",
- "navProfiles": "Profiles",
- "navUniverses": "Universes",
- "navAdmin": "Providers Admin"
+ "navProfiles": "Child Profiles",
+ "navUniverses": "Story Universe",
+ "navAdmin": "Provider Management"
},
"home": {
"heroTitle": "Weave magical",
"heroTitleHighlight": "bedtime stories for your child",
- "heroSubtitle": "AI-powered personalized stories for children aged 3-8, making every bedtime magical",
+ "heroSubtitle": "AI-powered personalized stories for children ages 3-8, making every bedtime feel magical",
"heroCta": "Start Creating",
"heroCtaSecondary": "Learn More",
"heroPreviewTitle": "Bunny's Brave Adventure",
@@ -25,15 +25,15 @@
"feature1Title": "AI-Powered Creation",
"feature1Desc": "Enter a few keywords, and AI instantly creates an imaginative original story for your child",
"feature2Title": "Personalized Memory",
- "feature2Desc": "The system remembers your child's preferences and growth, making stories more tailored over time",
+ "feature2Desc": "The system remembers your child's preferences and growth, so stories feel more personal over time",
"feature3Title": "Beautiful AI Illustrations",
"feature3Desc": "Automatically generate unique cover illustrations for each story, bringing them to life",
"feature4Title": "Warm Voice Narration",
"feature4Desc": "Professional AI narration with a warm voice to accompany your child into sweet dreams",
"feature5Title": "Educational Themes",
- "feature5Desc": "Courage, friendship, sharing, honesty... naturally weaving positive values into stories",
+ "feature5Desc": "Themes like courage, friendship, sharing, and honesty are woven naturally into every story",
"feature6Title": "Story Universe",
- "feature6Desc": "Create your own world where beloved characters continue their adventures across stories",
+ "feature6Desc": "Create a shared story world where beloved characters can keep adventuring across stories",
"howItWorksTitle": "How It Works",
"howItWorksSubtitle": "Four steps to start your magical story journey",
@@ -67,30 +67,30 @@
"faqTitle": "Frequently Asked Questions",
"faq1Question": "What age is DreamWeaver suitable for?",
- "faq1Answer": "We're designed for children aged 3-8. Story content, language difficulty, and educational themes are all optimized for this age group.",
+ "faq1Answer": "DreamWeaver is designed for children ages 3-8. Story content, language level, and educational themes are all tuned for this age group.",
"faq2Question": "Are the generated stories safe?",
- "faq2Answer": "Absolutely safe. All stories go through content filtering to ensure they're appropriate for children and convey positive values.",
+ "faq2Answer": "All generated stories go through safety filters to help keep them appropriate for children and aligned with positive values.",
"faq3Question": "Can I customize story characters?",
"faq3Answer": "Yes! You can set preferences in your child's profile, or specify character names and traits when creating. AI will incorporate them into the story.",
"faq4Question": "Will stories repeat?",
"faq4Answer": "No. Every story is originally generated by AI in real-time. Even with the same keywords, you'll get different stories each time.",
"faq5Question": "What languages are supported?",
- "faq5Answer": "Currently we support Chinese and English. You can switch interface language anytime, and stories will adjust accordingly.",
+ "faq5Answer": "We currently support Chinese and English. You can switch the interface language at any time, and stories will adjust accordingly.",
- "ctaTitle": "Ready to Create Magic for Your Child?",
- "ctaSubtitle": "Start now and let AI weave unique stories for your child's growth",
- "ctaButton": "Start Creating Free",
+ "ctaTitle": "Ready to Create Something Magical for Your Child?",
+ "ctaSubtitle": "Start now and let AI weave a one-of-a-kind story for your child's growth",
+ "ctaButton": "Start Creating for Free",
"ctaNote": "No credit card required",
"createModalTitle": "Create New Story",
- "inputTypeKeywords": "Keywords",
- "inputTypeStory": "Polish Story",
+ "inputTypeKeywords": "Create from Keywords",
+ "inputTypeStory": "Refine a Story",
"selectProfile": "Select Child Profile",
"selectProfileOptional": "(Optional)",
"selectUniverse": "Select Story Universe",
"noProfile": "No profile",
"noUniverse": "No universe",
- "noUniverseHint": "No universe for this profile yet. Create one in Story Universe.",
+ "noUniverseHint": "This profile doesn't have a story universe yet. Create one in Story Universe.",
"inputLabel": "Enter Keywords",
"inputLabelStory": "Enter Your Story",
"inputPlaceholder": "e.g., bunny, forest, courage, friendship...",
@@ -105,16 +105,16 @@
"themeTolerance": "Tolerance",
"themeCustom": "Or custom...",
"errorEmpty": "Please enter content",
- "errorLogin": "Please login first",
+ "errorLogin": "Please log in first",
"generating": "Weaving your story...",
- "loginFirst": "Please Login",
- "startCreate": "Create Magic Story"
+ "loginFirst": "Please log in",
+ "startCreate": "Create Story"
},
"stories": {
"myStories": "My Stories",
"view": "View",
"delete": "Delete",
- "confirmDelete": "Are you sure to delete this story?",
+ "confirmDelete": "Are you sure you want to delete this story?",
"noStories": "No stories yet."
},
"storyDetail": {
@@ -122,7 +122,7 @@
"generateImage": "Generate Cover",
"playAudio": "Play Audio",
"modeGenerated": "Generated",
- "modeEnhanced": "Enhanced"
+ "modeEnhanced": "Refined"
},
"admin": {
"title": "Provider Management",
diff --git a/frontend/src/locales/zh.json b/frontend/src/locales/zh.json
index b807a7f..987866b 100644
--- a/frontend/src/locales/zh.json
+++ b/frontend/src/locales/zh.json
@@ -33,7 +33,7 @@
"feature5Title": "教育主题融入",
"feature5Desc": "勇气、友谊、分享、诚实...在故事中自然传递正向价值观",
"feature6Title": "故事宇宙",
- "feature6Desc": "创建专属世界观,让喜爱的角色在不同故事中持续冒险",
+ "feature6Desc": "创建专属故事宇宙,让喜爱的角色在不同故事中持续冒险",
"howItWorksTitle": "如何使用",
"howItWorksSubtitle": "四步开启奇妙故事之旅",
@@ -69,7 +69,7 @@
"faq1Question": "梦语织机适合多大的孩子?",
"faq1Answer": "我们专为 3-8 岁儿童设计,故事内容、语言难度和教育主题都针对这个年龄段优化。",
"faq2Question": "生成的故事安全吗?",
- "faq2Answer": "绝对安全。所有故事都经过内容过滤,确保适合儿童阅读,传递积极正向的价值观。",
+ "faq2Answer": "所有生成内容都会经过安全过滤,以更好地确保适合儿童阅读,并传递积极正向的价值观。",
"faq3Question": "可以自定义故事角色吗?",
"faq3Answer": "可以!您可以在孩子档案中设置喜好,或在创作时指定角色名称、特点,AI 会将其融入故事。",
"faq4Question": "故事会重复吗?",
@@ -77,7 +77,7 @@
"faq5Question": "支持哪些语言?",
"faq5Answer": "目前支持中文和英文,您可以随时切换界面语言,故事也会相应调整。",
- "ctaTitle": "准备好为孩子创造魔法了吗?",
+ "ctaTitle": "准备好为孩子创作奇妙故事了吗?",
"ctaSubtitle": "立即开始,让 AI 为您的孩子编织独一无二的成长故事",
"ctaButton": "免费开始创作",
"ctaNote": "无需信用卡,立即体验",
@@ -93,7 +93,7 @@
"noUniverseHint": "当前档案暂无宇宙,可在「故事宇宙」中创建",
"inputLabel": "输入关键词",
"inputLabelStory": "输入您的故事",
- "inputPlaceholder": "例如:小兔子, 森林, 勇气, 友谊...",
+ "inputPlaceholder": "例如:小兔子、森林、勇气、友谊……",
"inputPlaceholderStory": "在这里输入您想要润色的故事...",
"themeLabel": "选择教育主题",
"themeOptional": "(可选)",
@@ -108,14 +108,14 @@
"errorLogin": "请先登录",
"generating": "正在编织故事...",
"loginFirst": "请先登录",
- "startCreate": "开始创作魔法故事"
+ "startCreate": "开始创作"
},
"stories": {
"myStories": "我的故事",
"view": "查看",
"delete": "删除",
"confirmDelete": "确定删除这个故事吗?",
- "noStories": "暂无故事。"
+ "noStories": "还没有故事。"
},
"storyDetail": {
"back": "返回",
@@ -136,12 +136,12 @@
"type": "类型",
"adapter": "适配器",
"model": "模型",
- "apiBase": "API Base",
- "timeout": "超时 (ms)",
+ "apiBase": "API 地址",
+ "timeout": "超时(ms)",
"retries": "最大重试",
"weight": "权重",
"priority": "优先级",
- "configRef": "Config Ref",
+ "configRef": "配置引用",
"enabled": "启用",
"actions": "操作"
},
diff --git a/frontend/src/utils/voiceSession.ts b/frontend/src/utils/voiceSession.ts
new file mode 100644
index 0000000..86f8bff
--- /dev/null
+++ b/frontend/src/utils/voiceSession.ts
@@ -0,0 +1,131 @@
+import type { VoiceSessionSummary } from '../types/voiceSession'
+
+export type VoiceAttentionReason = 'pending_confirmation' | 'safety_intervention' | 'failed_turn'
+export type VoiceStudioFocusTarget = 'confirmation' | 'safety' | 'failed' | 'text'
+
+export interface VoiceSessionNextStep {
+ label: string
+ description: string
+ toneClass: string
+}
+
+export interface VoiceSessionNextAction {
+ label: string
+ reason?: VoiceAttentionReason
+ focus?: VoiceStudioFocusTarget
+ storyId?: number
+}
+
+export function getVoiceSessionNextStep(session: VoiceSessionSummary): VoiceSessionNextStep {
+ if (session.attention_reasons.includes('pending_confirmation')) {
+ return {
+ label: '先确认本轮理解',
+ description:
+ session.latest_confirmation_message
+ || '系统对这一轮的理解不够确定,建议家长先确认后再继续。',
+ toneClass: 'border-amber-200 bg-amber-50 text-amber-700',
+ }
+ }
+
+ if (session.attention_reasons.includes('failed_turn')) {
+ return {
+ label: '优先处理失败回合',
+ description:
+ session.last_error
+ || '最近一轮没有成功完成,建议先重试或改成文本重发。',
+ toneClass: 'border-slate-200 bg-slate-100 text-slate-700',
+ }
+ }
+
+ if (session.attention_reasons.includes('safety_intervention')) {
+ return {
+ label: '换一种更温和的表达继续',
+ description:
+ session.latest_safety_message
+ || '当前内容被安全兜底拦住了,建议改写后再继续共创。',
+ toneClass: 'border-rose-200 bg-rose-50 text-rose-700',
+ }
+ }
+
+ if (session.final_story_id) {
+ return {
+ label: '查看正式故事',
+ description: '这场共创已经保存为正式故事,可以回看结果或继续补资源。',
+ toneClass: 'border-emerald-200 bg-emerald-50 text-emerald-700',
+ }
+ }
+
+ if (session.can_finalize) {
+ return {
+ label: '继续共创或保存当前版本',
+ description: '可以继续讲下一轮,也可以把当前版本保存成正式故事。',
+ toneClass: 'border-violet-200 bg-violet-50 text-violet-700',
+ }
+ }
+
+ if (session.can_continue) {
+ return {
+ label: '发送下一轮语音或文本',
+ description: '本轮已完成,可以继续补充情节或修正走向。',
+ toneClass: 'border-sky-200 bg-sky-50 text-sky-700',
+ }
+ }
+
+ if (session.status === 'draft') {
+ return {
+ label: '开始第一轮共创',
+ description: '先说一句主题或角色,让故事正式开始。',
+ toneClass: 'border-gray-200 bg-gray-50 text-gray-700',
+ }
+ }
+
+ return {
+ label: '先查看当前状态',
+ description: '会话暂时不在可继续状态,建议先查看详情和最近事件。',
+ toneClass: 'border-gray-200 bg-gray-50 text-gray-700',
+ }
+}
+
+export function getVoiceSessionNextAction(session: VoiceSessionSummary): VoiceSessionNextAction {
+ if (session.attention_reasons.includes('pending_confirmation')) {
+ return {
+ label: '确认',
+ reason: 'pending_confirmation',
+ focus: 'confirmation',
+ }
+ }
+
+ if (session.attention_reasons.includes('failed_turn')) {
+ return {
+ label: '重试',
+ reason: 'failed_turn',
+ focus: 'failed',
+ }
+ }
+
+ if (session.attention_reasons.includes('safety_intervention')) {
+ return {
+ label: '改写',
+ reason: 'safety_intervention',
+ focus: 'text',
+ }
+ }
+
+ if (session.final_story_id) {
+ return {
+ label: '查看正式故事',
+ storyId: session.final_story_id,
+ }
+ }
+
+ if (session.can_continue || session.can_finalize || session.status === 'draft') {
+ return {
+ label: '继续',
+ focus: 'text',
+ }
+ }
+
+ return {
+ label: '查看详情',
+ }
+}
diff --git a/frontend/src/views/ChildProfileTimeline.vue b/frontend/src/views/ChildProfileTimeline.vue
index d7b3882..3cdc304 100644
--- a/frontend/src/views/ChildProfileTimeline.vue
+++ b/frontend/src/views/ChildProfileTimeline.vue
@@ -135,7 +135,7 @@ onMounted(fetchTimeline)