@@ -846,7 +840,7 @@ function onInviteSuccess(): void {
align-items: center;
justify-content: center;
width: 32px;
- height: 28px;
+ height: 32px;
border: none;
background: transparent;
border-radius: var(--radius);
@@ -862,25 +856,6 @@ function onInviteSuccess(): void {
color: var(--accent);
}
-.tb-tip {
- display: none;
- position: absolute;
- bottom: 100%;
- left: 50%;
- transform: translateX(-50%);
- margin-bottom: 6px;
- background: var(--text-primary);
- color: var(--bg-secondary);
- font-size: 10px;
- padding: 3px 8px;
- border-radius: 4px;
- white-space: nowrap;
- pointer-events: none;
-}
-
-.tb-btn:hover .tb-tip {
- display: block;
-}
.tb-sep {
width: 1px;
diff --git a/src/frontend-agent/src/components/chat/ReplyBox.vue b/src/frontend-agent/src/components/chat/ReplyBox.vue
index 72708af..cfa03a9 100644
--- a/src/frontend-agent/src/components/chat/ReplyBox.vue
+++ b/src/frontend-agent/src/components/chat/ReplyBox.vue
@@ -43,12 +43,10 @@
@@ -1420,7 +1415,7 @@ defineExpose({
align-items: center;
justify-content: center;
width: 32px;
- height: 28px;
+ height: 32px;
border: none;
background: transparent;
border-radius: var(--radius);
@@ -1438,35 +1433,6 @@ defineExpose({
transform: scale(0.92);
}
-/* 工具提示气泡 */
-.tb-tip {
- display: none;
- position: absolute;
- bottom: 100%;
- left: 50%;
- transform: translateX(-50%);
- margin-bottom: 6px;
- background: var(--text-primary);
- color: var(--bg-secondary);
- font-size: 10px;
- padding: 3px 8px;
- border-radius: 4px;
- white-space: nowrap;
- pointer-events: none;
- box-shadow: var(--shadow);
-}
-.tb-tip::after {
- content: '';
- position: absolute;
- top: 100%;
- left: 50%;
- transform: translateX(-50%);
- border: 4px solid transparent;
- border-top-color: var(--text-primary);
-}
-.tb-btn:hover .tb-tip {
- display: block;
-}
/* 工具栏分隔线 */
.tb-sep {
diff --git a/src/frontend-agent/src/components/chat/ai-assist/AiReplyModeSwitch.vue b/src/frontend-agent/src/components/chat/ai-assist/AiReplyModeSwitch.vue
index 2120e7d..3c9821d 100644
--- a/src/frontend-agent/src/components/chat/ai-assist/AiReplyModeSwitch.vue
+++ b/src/frontend-agent/src/components/chat/ai-assist/AiReplyModeSwitch.vue
@@ -40,7 +40,6 @@
@click.stop
>
🤖
-
{{ buttonTitle }}
@@ -64,11 +63,14 @@
class="ai-reply-mode-radio"
>
-
- {{ opt.label }}
- 默认
-
-
{{ opt.desc }}
+
{{ opt.icon }}
+
+
+ {{ opt.label }}
+ 默认
+
+ {{ opt.desc }}
+
@@ -328,9 +330,23 @@ defineExpose({ DEFAULT: DEFAULT_AI_REPLY_MODE })
}
.ai-reply-mode-radio-row {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ gap: 8px;
+}
+
+.ai-reply-mode-radio-icon {
+ font-size: 18px;
+ line-height: 1;
+ flex-shrink: 0;
+}
+
+.ai-reply-mode-radio-text {
display: flex;
flex-direction: column;
gap: 2px;
+ min-width: 0;
}
.ai-reply-mode-radio-label {
diff --git a/src/frontend-agent/src/types/ai-reply-mode.ts b/src/frontend-agent/src/types/ai-reply-mode.ts
index 07f0242..9b00233 100644
--- a/src/frontend-agent/src/types/ai-reply-mode.ts
+++ b/src/frontend-agent/src/types/ai-reply-mode.ts
@@ -26,6 +26,8 @@ export interface AiReplyModeOption {
label: string
/** 副标题描述 */
desc: string
+ /** 单选项左侧显示的图标(emoji,与全站工具栏图标风格一致) */
+ icon: string
/** 切换成功的 ElMessage 提示 */
successMessage: string
/** 是否标记为「默认」标签 */
@@ -37,6 +39,7 @@ export const AI_REPLY_MODE_OPTIONS: readonly AiReplyModeOption[] = [
{
value: 'employee_only',
label: '仅回复员工',
+ icon: '👤',
desc: 'AI 只回复员工,与现状一致',
successMessage: '已切换为:AI回复-仅员工',
isDefault: true,
@@ -44,12 +47,14 @@ export const AI_REPLY_MODE_OPTIONS: readonly AiReplyModeOption[] = [
{
value: 'employee_and_agent',
label: '回复员工 + 推送坐席',
+ icon: '👥',
desc: 'AI 回复员工,坐席端同步可见',
successMessage: '已切换为:AI回复-员工+坐席',
},
{
value: 'off',
label: '关闭自动回复',
+ icon: '⏸️',
desc: 'AI 不再自动回复任何消息',
successMessage: '已切换为:AI回复-关闭',
},