feat: 发送消息的处理

This commit is contained in:
2026-01-21 21:37:31 +08:00
parent aa8c1737ad
commit 34ad0ed8e3

View File

@@ -45,7 +45,7 @@
shadow-[0_1px_0_rgba(0,0,0,0.03)] shadow-[0_1px_0_rgba(0,0,0,0.03)]
p-[18px] mt-[8px] flex flex-col justify-between"> p-[18px] mt-[8px] flex flex-col justify-between">
<textarea rows="2" placeholder="给我发布或者布置任务" class="flex-1 resize-none outline-none text-sm" <textarea rows="2" placeholder="给我发布或者布置任务" class="flex-1 resize-none outline-none text-sm"
v-model="inputMessage" @keyup.enter="sendMessageAction" /> v-model="inputMessage" @keydown.enter="handleKeydownEnter" />
<div class="flex justify-between items-end"> <div class="flex justify-between items-end">
<button @click="addAttachmentAction()"> <button @click="addAttachmentAction()">
@@ -193,14 +193,27 @@ const sendMessageAction = () => {
return; return;
} }
console.log("输入消息:", inputMessage.value); const raw = inputMessage.value || '';
if (!inputMessage.value.trim()) return; // 去除尾部多余的换行,保留中间换行(例如 Shift+Enter
const sendText = raw.replace(/\n+$/, '');
console.log("输入消息:", sendText);
if (!sendText.trim()) return;
// 重置消息状态准备接收新的AI回复 // 重置消息状态准备接收新的AI回复
resetMessageState(); resetMessageState();
sendMessage(inputMessage.value); sendMessage(sendText);
setTimeoutScrollToBottom(); setTimeoutScrollToBottom();
}; };
// 处理在 textarea 中按 EnterShift+Enter 保留换行,单按 Enter 发送并阻止默认换行行为
const handleKeydownEnter = (e: KeyboardEvent) => {
if ((e as KeyboardEvent).shiftKey) {
// 允许插入换行
return;
}
e.preventDefault();
sendMessageAction();
};
// 停止发送消息事件 // 停止发送消息事件
const sendStopAction = () => { const sendStopAction = () => {
console.log("停止发送消息"); console.log("停止发送消息");