diff --git a/deploy/local/demo.template.html b/deploy/local/demo.template.html index 7b6b66f..d89c33f 100644 --- a/deploy/local/demo.template.html +++ b/deploy/local/demo.template.html @@ -3,6 +3,7 @@ + ChatterMate 网站客服测试 \ No newline at end of file + diff --git a/frontend/src/components/agent/AgentCustomizationView.vue b/frontend/src/components/agent/AgentCustomizationView.vue index e51e8ff..bb89be3 100644 --- a/frontend/src/components/agent/AgentCustomizationView.vue +++ b/frontend/src/components/agent/AgentCustomizationView.vue @@ -149,7 +149,7 @@ const chatStyleOptions = [ { value: 'AURORA' as ChatStyle, label: '极光', - description: '全新的随便问——深色主题,配发光极光球头像。', + description: '深色随便问主题,可搭配纸艺头像。', group: 'new' as const, }, { diff --git a/frontend/src/components/agent/AgentDetail.vue b/frontend/src/components/agent/AgentDetail.vue index 647515d..be5f1ba 100644 --- a/frontend/src/components/agent/AgentDetail.vue +++ b/frontend/src/components/agent/AgentDetail.vue @@ -19,7 +19,7 @@ import { useRouter } from 'vue-router' import { ref, computed, onMounted, onUnmounted, nextTick } from 'vue' import type { AgentWithCustomization, AgentCustomization } from '@/types/agent' import { getApiUrl, getWidgetUrl, resolveUploadUrl } from '@/config/api' -import { ORB_PALETTE_COUNT, getOrbStyleAt, resolveOrbStyle, orbSvgDataUri, terminalMarkSvgDataUri } from '@/utils/orb' +import { ORB_PALETTE_COUNT, PAPER_AVATAR_NAMES, getOrbStyleAt, resolveOrbStyle, orbSvgDataUri, terminalMarkSvgDataUri } from '@/utils/orb' import KnowledgeExplorer from '@/components/knowledge/KnowledgeExplorer.vue' import AgentCustomizationView from './AgentCustomizationView.vue' @@ -64,7 +64,7 @@ const toggleAvatarPicker = () => { if (isUploading.value) return showAvatarPicker.value = !showAvatarPicker.value } -// Aurora orb avatar (generated, no photo). Stored in customization_metadata so no +// Paper-craft avatar (legacy orb storage key). Stored in customization_metadata so no // schema change is needed. Selecting a real picture resets this back to 'photo'. const orbCount = ORB_PALETTE_COUNT const orbMeta = computed( @@ -104,7 +104,7 @@ const selectOrbAvatar = async (variant: number) => { if (isUploading.value) return closeAvatarPicker() try { - // Store the orb as an SVG data URI in photo_url so it propagates everywhere + // Store the paper-craft avatar as an SVG data URI in photo_url so it propagates everywhere // (agent list, widget header, previews) via the normal avatar path. const orbUrl = orbSvgDataUri(agentData.value.name || '', variant) await persistAvatarMeta({ avatar_style: 'orb', orb_variant: variant }, orbUrl) @@ -118,7 +118,7 @@ const selectTerminalMark = async () => { if (isUploading.value) return closeAvatarPicker() try { - // Tint the ">" mark with the agent's accent (falls back to the Terminal lime). + // Tint the ">" mark with the agent's accent (falls back to the muted celadon). const accent = (agentData.value.customization?.accent_color as string | undefined) || undefined const markUrl = terminalMarkSvgDataUri(accent) await persistAvatarMeta({ avatar_style: 'terminal' }, markUrl) @@ -134,7 +134,7 @@ const selectPresetAvatar = async (url: string) => { optimisticPhoto.value = url try { await applyPresetAvatar(url) - // A real picture was chosen — turn off the orb if it was on. + // A real picture was chosen — turn off the paper-craft avatar if it was on. if (useOrbAvatar.value) await persistAvatarMeta({ avatar_style: 'photo' }) } finally { optimisticPhoto.value = null @@ -873,8 +873,8 @@ onMounted(async () => { :class="{ active: useOrbAvatar && (currentOrbVariant ?? -1) === n - 1 }" :disabled="isUploading" @click="selectOrbAvatar(n - 1)" - :aria-label="`光球 ${n}`" - :title="`光球 ${n}`" + :aria-label="PAPER_AVATAR_NAMES[n - 1]" + :title="PAPER_AVATAR_NAMES[n - 1]" > @@ -887,7 +887,7 @@ onMounted(async () => { aria-label="终端标记" title="Terminal >" > - > +