优化: 审批弹窗全局化与体验打磨

This commit is contained in:
lxy
2026-08-10 08:04:30 +08:00
parent dedb9a8862
commit 6141a67b0e
10 changed files with 159 additions and 47 deletions
+10 -1
View File
@@ -133,7 +133,7 @@
<div v-for="(msg, mi) in convMessages" :key="mi" class="conv-msg" :class="'conv-msg--' + msg.role">
<!-- 头部:角色 + model + 时间 + token -->
<div class="conv-msg-head">
<span class="conv-msg-role">{{ msg.role === 'user' ? '🧑 用户' : msg.role === 'assistant' ? '🤖 助手' : msg.role === 'tool' ? '🔧 工具' : '⚙️ 系统' }}</span>
<span class="conv-msg-role">{{ convRoleLabel(msg.role) }}</span>
<span v-if="msg.model" class="conv-msg-model">{{ msg.model }}</span>
<span v-if="msg.tool_call_id" class="conv-msg-toolname">tool_call: {{ msg.tool_call_id }}</span>
<span v-if="msg.timestamp" class="conv-msg-time">{{ formatDate(msg.timestamp) }}</span>
@@ -419,6 +419,15 @@ function decidedClass(d: string): string {
return d === 'human' ? 'decided-human' : 'decided-auto'
}
// SA-2:对话角色 i18n 化(原硬编码 '🧑 用户'/'🤖 助手'/'🔧 工具'/'⚙️ 系统' 不随 locale)
// user/assistant/tool 映射固定 key,其他未知 role 回退到 '⚙️ 系统'(含 emoji,与其他四态视觉一致)
function convRoleLabel(role: string): string {
if (role === 'user') return t('auditLog.convRoleUser')
if (role === 'assistant') return t('auditLog.convRoleAssistant')
if (role === 'tool') return t('auditLog.convRoleTool')
return t('auditLog.convRoleSystem')
}
onMounted(() => {
void load()
if (activeTab.value === 'conversations') void loadConversations()