diff --git a/Touchkebao/src/pages/pc/ckbox/weChat/components/ChatWindow/components/MessageEnter/index.tsx b/Touchkebao/src/pages/pc/ckbox/weChat/components/ChatWindow/components/MessageEnter/index.tsx index 074f5459..33307856 100644 --- a/Touchkebao/src/pages/pc/ckbox/weChat/components/ChatWindow/components/MessageEnter/index.tsx +++ b/Touchkebao/src/pages/pc/ckbox/weChat/components/ChatWindow/components/MessageEnter/index.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from "react"; -import { Layout, Input, Button, Modal, message } from "antd"; +import { Layout, Input, Button, Modal, message, Tooltip } from "antd"; import { SendOutlined, FolderOutlined, @@ -7,6 +7,7 @@ import { ExportOutlined, CloseOutlined, MessageOutlined, + ReloadOutlined, } from "@ant-design/icons"; import { ContractData, weChatGroup, ChatRecord } from "@/pages/pc/ckbox/data"; import { useWebSocketStore } from "@/store/module/websocket/websocket"; @@ -19,6 +20,7 @@ import styles from "./MessageEnter.module.scss"; import { useWeChatStore, clearAiRequestQueue, + manualTriggerAi, } from "@/store/module/weChat/weChat"; import { useContactStore } from "@/store/module/weChat/contacts"; const { Footer } = Layout; @@ -91,6 +93,16 @@ const MessageEnter: React.FC = ({ contract }) => { } }; + // 手动触发AI生成 + const handleManualTriggerAi = async () => { + const success = await manualTriggerAi(); + if (success) { + message.success("AI正在生成回复..."); + } else { + message.warning("无法生成AI回复,请检查消息记录"); + } + }; + // 发送消息(支持传入内容参数,避免闭包问题) const handleSend = async (content?: string) => { const messageContent = content || inputValue; // 优先使用传入的内容 @@ -371,6 +383,19 @@ const MessageEnter: React.FC = ({ contract }) => { } className={styles.toolbarButton} /> + + {/* AI模式下显示重新生成按钮 */} + {(isAiAssist || isAiTakeover) && ( + +