|
@@ -30,7 +30,7 @@
|
|
|
<span v-else>{{ userInfo.name }}</span>
|
|
|
</div>
|
|
|
<div class="chat" :class="{ botChat: item.role == 'assistant' }">
|
|
|
- <span v-html="item.content"></span>
|
|
|
+ <span style="white-space: pre-wrap;" v-html="item.content"></span>
|
|
|
</div>
|
|
|
</template>
|
|
|
</div>
|
|
@@ -41,8 +41,9 @@
|
|
|
style="width: 90%"
|
|
|
:autosize="{ minRows: 2, maxRows: 5 }"
|
|
|
type="textarea"
|
|
|
- placeholder="请在此输入关键词"
|
|
|
- @keyup.enter="enterChat"
|
|
|
+ placeholder="请在此输入关键词,按 Ctrl+Enter 换行"
|
|
|
+
|
|
|
+ @keydown="handleKeyCode($event)"
|
|
|
/>
|
|
|
<div class="chatBtn">
|
|
|
<img :src="send" class="send-info" @click="enterChat" />
|
|
@@ -86,6 +87,17 @@ const baseMsgList = [
|
|
|
// 这里的数值可能需要根据实际的CSS调整
|
|
|
const baseInputHeight = 52;
|
|
|
const maxInputHeight = 115;
|
|
|
+const handleKeyCode = (event)=>{
|
|
|
+ if (event.keyCode == 13) {
|
|
|
+ if (!event.ctrlKey) {
|
|
|
+ event.preventDefault();
|
|
|
+ enterChat();
|
|
|
+ } else {
|
|
|
+ iptText.value += '\n';
|
|
|
+ console.log('enter');
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
const enterChat =async () => {
|
|
|
if (disabled.value) return;
|
|
|
disabled.value = true;
|
|
@@ -107,6 +119,7 @@ const enterChat =async () => {
|
|
|
query = [baseMsgList[0], ...longArr]
|
|
|
}
|
|
|
query = query.map((item) => {
|
|
|
+ if(item.role == "user") return item
|
|
|
return {
|
|
|
role: item.role,
|
|
|
content: item.content.replace(/</gi, "")
|