feat: 小财管家意图规划与报销提交编排增强
- 完善管家意图识别、模型计划构建与规划器调度 - 重构差旅报销提交编排器与管家计划流程前端交互 - 优化报销消息项样式与文档中心视图 - 新增小财管家与附件上传风险前置复核设计文档 - 补充管家规划器与文档中心测试覆盖
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<article
|
||||
class="message-row"
|
||||
:class="message.role"
|
||||
:class="[message.role, { 'has-steward-plan': message.stewardPlan }]"
|
||||
>
|
||||
<span class="message-avatar">
|
||||
<img
|
||||
@@ -31,7 +31,7 @@
|
||||
:key="`${message.id}-${event.eventId}`"
|
||||
>
|
||||
<strong>{{ event.title }}</strong>
|
||||
<span>{{ event.content }}</span>
|
||||
<span :class="{ 'typing': event.status === 'running' }">{{ event.content }}</span>
|
||||
</li>
|
||||
</ol>
|
||||
<p v-else class="steward-intent-empty">正在建立任务上下文...</p>
|
||||
@@ -62,7 +62,14 @@
|
||||
|
||||
<div
|
||||
v-else-if="message.text && message.role === 'assistant'"
|
||||
class="message-answer-content message-answer-markdown"
|
||||
:class="[
|
||||
'message-answer-content',
|
||||
'message-answer-markdown',
|
||||
{
|
||||
'steward-plan-markdown': message.stewardPlan,
|
||||
'steward-plan-typing': message.stewardPlan?.streamStatus === 'typing'
|
||||
}
|
||||
]"
|
||||
v-html="ui.renderMarkdown(message.text)"
|
||||
@click="ui.handleAssistantMarkdownClick($event, message)"
|
||||
></div>
|
||||
@@ -73,7 +80,7 @@
|
||||
/>
|
||||
|
||||
<div
|
||||
v-if="message.role === 'assistant' && message.stewardPlan && message.stewardPlan.streamStatus !== 'streaming'"
|
||||
v-if="message.role === 'assistant' && message.stewardPlan && message.stewardPlan.streamStatus !== 'streaming' && !message.stewardPlan.initialSummaryOnly"
|
||||
class="steward-plan-block"
|
||||
role="group"
|
||||
aria-label="小财管家任务计划"
|
||||
@@ -84,16 +91,32 @@
|
||||
:key="`${message.id}-${task.taskId}`"
|
||||
class="steward-task-card"
|
||||
>
|
||||
<header>
|
||||
<span>{{ task.taskTypeLabel }}</span>
|
||||
<small>{{ task.assignedAgentLabel }}</small>
|
||||
<header class="steward-task-header">
|
||||
<span class="steward-task-type">{{ task.taskTypeLabel }}</span>
|
||||
<span class="steward-task-agent">{{ task.assignedAgentLabel }}</span>
|
||||
</header>
|
||||
<strong>{{ task.title }}</strong>
|
||||
<p>{{ task.summary }}</p>
|
||||
<div class="steward-task-body">
|
||||
<strong class="steward-task-title">{{ task.title }}</strong>
|
||||
<p class="steward-task-summary">{{ task.summary }}</p>
|
||||
</div>
|
||||
<div class="steward-task-meta">
|
||||
<span>置信度 {{ Math.round((task.confidence || 0) * 100) }}%</span>
|
||||
<span v-if="task.missingFields?.length">待补充 {{ task.missingFields.join('、') }}</span>
|
||||
<span v-else>字段已齐备</span>
|
||||
<span v-if="!ui.resolveStewardMissingFieldItems(task).length">信息已基本齐备</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="ui.resolveStewardMissingFieldItems(task).length"
|
||||
class="steward-task-missing"
|
||||
>
|
||||
<span class="steward-task-missing-label">还需要补充</span>
|
||||
<ul class="steward-task-missing-list">
|
||||
<li
|
||||
v-for="field in ui.resolveStewardMissingFieldItems(task)"
|
||||
:key="`${task.taskId}-missing-${field.key}`"
|
||||
>
|
||||
<strong>{{ field.label }}</strong>
|
||||
<small v-if="field.hint">{{ field.hint }}</small>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user