diff --git a/ui/src/components/ai-chat/component/chat-input-operate/index.vue b/ui/src/components/ai-chat/component/chat-input-operate/index.vue index 44c986ebb..8329de818 100644 --- a/ui/src/components/ai-chat/component/chat-input-operate/index.vue +++ b/ui/src/components/ai-chat/component/chat-input-operate/index.vue @@ -535,10 +535,20 @@ function sendChatHandle(event?: any) { } } } else { - // 如果同时按下ctrl+回车键,则会换行 - inputValue.value += '\n' + // 如果同时按下ctrl+回车键,则会换行 + insertNewlineAtCursor() } } +const insertNewlineAtCursor = () => { + const textarea = document.querySelector('.el-textarea__inner') as HTMLTextAreaElement + const startPos = textarea.selectionStart + const endPos = textarea.selectionEnd + // 在光标处插入换行符 + inputValue.value = inputValue.value.slice(0, startPos) + '\n' + inputValue.value.slice(endPos) + nextTick(() => { + textarea.setSelectionRange(startPos + 1, startPos + 1) // 光标定位到换行后位置 + }) +} function deleteFile(index: number, val: string) { if (val === 'image') { diff --git a/ui/src/styles/app.scss b/ui/src/styles/app.scss index c42b4bf70..55f0106c2 100644 --- a/ui/src/styles/app.scss +++ b/ui/src/styles/app.scss @@ -11,9 +11,7 @@ margin: 0; padding: 0; } -[v-cloak] { - display: none !important; -} + html { height: 100%; box-sizing: border-box;