From 357ea219876b6460c3751a75f64397239109fb23 Mon Sep 17 00:00:00 2001 From: xueyinfei <1207092115@qq.com> Date: Fri, 2 Jan 2026 20:33:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A9=E6=89=8B=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/aichat/aichat.vue | 111 +++++++++--------- 1 file changed, 55 insertions(+), 56 deletions(-) diff --git a/vue-fastapi-frontend/src/views/aichat/aichat.vue b/vue-fastapi-frontend/src/views/aichat/aichat.vue index d7cde30..4def7d2 100644 --- a/vue-fastapi-frontend/src/views/aichat/aichat.vue +++ b/vue-fastapi-frontend/src/views/aichat/aichat.vue @@ -587,6 +587,10 @@ async function sendChatHandle(event) { "sessionName": chatList.value.length > 0 ? chatList.value[0].content.substring(0, 20) : inputValue.value.trim().substring(0, 20), "file": currentFiles.value } + chatList.value.push(lastQuestion.value) + let question = JSON.parse(JSON.stringify(lastQuestion.value)) + question.file = JSON.stringify(question.file) + await addChat(question) asking.value = true nextTick(() => { // 将滚动条滚动到最下面 @@ -620,71 +624,66 @@ function sendChatMessage(data){ // chatList.value.push({"chatId":uuidv4(),"type":"answer","content":[{"type":"text","content":"服务异常,错误码:"+res.status}],"isEnd":true,"isStop":false,"sessionId":chatList.value[0].sessionId,"sessionName":chatList.value[0].sessionName,"operate":'',"thumbDownReason":''}) currentError.value = "服务异常,错误码:"+res.status +",请联系管理员!" }else { - chatList.value.push(lastQuestion.value) - let question = JSON.parse(JSON.stringify(lastQuestion.value)) - question.file = JSON.stringify(question.file) - addChat(question).then(()=>{ - currentError.value = '' - currentChatData.value = {} - currentFiles.value = [] - chatList.value.push({"chatId":uuidv4(),"type":"answer","content":[],"isEnd":false,"isStop":false,"sessionId":chatList.value[0].sessionId,"sessionName":chatList.value[0].sessionName, "operate":'',"thumbDownReason":''}) - const reader = res.body.getReader() - const write = getWrite(reader) - reader.read().then(write).then(()=> { - asking.value = false - let answer = JSON.parse(JSON.stringify(chatList.value[chatList.value.length - 1])) - answer.content = JSON.stringify(answer.content) - answer.interrupt = answer.interrupt ? JSON.stringify(answer.interrupt): null - answer.checkpointer = JSON.stringify(answer.checkpointer) - addChat(answer) - }).then(()=>{ - let answer = JSON.parse(JSON.stringify(chatList.value[chatList.value.length - 1])) - if(answer.interrupt){ - let robot = answer.interrupt.robot - let block = answer.interrupt.block - let action = answer.interrupt.action - let autoRequest = false - if (autoProcess.value.autoArray.length > 0 && autoProcess.value.autoArray.indexOf(robot) !== -1){ - //自动审批信号有效,需判断 block内容的必填项,有无默认值,有的话,可以自动发送,没有需填写 - autoRequest = true - if (block && block.length>0){ - for (let i = 0; i < block.length; i++) { - if (block[i].required){ - if (block[i].ct_type === 'dateRangePicker' || block[i].ct_type === 'checkboxGroup' || block[i].ct_type === 'multiselect'){ - //default_value 是数组 - if (!block[i].default_value || block[i].default_value === []){ - autoRequest = false - } + currentError.value = '' + currentChatData.value = {} + currentFiles.value = [] + chatList.value.push({"chatId":uuidv4(),"type":"answer","content":[],"isEnd":false,"isStop":false,"sessionId":chatList.value[0].sessionId,"sessionName":chatList.value[0].sessionName, "operate":'',"thumbDownReason":''}) + const reader = res.body.getReader() + const write = getWrite(reader) + reader.read().then(write).then(()=> { + asking.value = false + let answer = JSON.parse(JSON.stringify(chatList.value[chatList.value.length - 1])) + answer.content = JSON.stringify(answer.content) + answer.interrupt = answer.interrupt ? JSON.stringify(answer.interrupt): null + answer.checkpointer = JSON.stringify(answer.checkpointer) + addChat(answer) + }).then(()=>{ + let answer = JSON.parse(JSON.stringify(chatList.value[chatList.value.length - 1])) + if(answer.interrupt){ + let robot = answer.interrupt.robot + let block = answer.interrupt.block + let action = answer.interrupt.action + let autoRequest = false + if (autoProcess.value.autoArray.length > 0 && autoProcess.value.autoArray.indexOf(robot) !== -1){ + //自动审批信号有效,需判断 block内容的必填项,有无默认值,有的话,可以自动发送,没有需填写 + autoRequest = true + if (block && block.length>0){ + for (let i = 0; i < block.length; i++) { + if (block[i].required){ + if (block[i].ct_type === 'dateRangePicker' || block[i].ct_type === 'checkboxGroup' || block[i].ct_type === 'multiselect'){ + //default_value 是数组 + if (!block[i].default_value || block[i].default_value === []){ + autoRequest = false } - if (block[i].ct_type === 'datePicker' || block[i].ct_type === 'input' || block[i].ct_type === 'radioGroup' ||block[i].ct_type === 'select'){ - //default_value 是文字 - if (!block[i].default_value || block[i].default_value.trim() === ''){ - autoRequest = false - } + } + if (block[i].ct_type === 'datePicker' || block[i].ct_type === 'input' || block[i].ct_type === 'radioGroup' ||block[i].ct_type === 'select'){ + //default_value 是文字 + if (!block[i].default_value || block[i].default_value.trim() === ''){ + autoRequest = false } } } } - if (autoRequest){ - let reqData = { - "user_id": cache.local.get("username"), - "session_id": Cookies.get("chatSessionId"), - "checkpointer": answer.checkpointer, - "action":"", - "resume": true, - "block": block - } - for (let i = 0; i < action.length; i++) { - if (action[i].style === 'primary'){ - reqData.action = action[i].action - } + } + if (autoRequest){ + let reqData = { + "user_id": cache.local.get("username"), + "session_id": Cookies.get("chatSessionId"), + "checkpointer": answer.checkpointer, + "action":"", + "resume": true, + "block": block + } + for (let i = 0; i < action.length; i++) { + if (action[i].style === 'primary'){ + reqData.action = action[i].action } - asking.value = true - sendChatMessage(reqData) } + asking.value = true + sendChatMessage(reqData) } } - }) + } }) } }).catch((e) => {