diff --git a/vue-fastapi-frontend/src/views/aichat/aichat.vue b/vue-fastapi-frontend/src/views/aichat/aichat.vue
index b651fe9..d7cde30 100644
--- a/vue-fastapi-frontend/src/views/aichat/aichat.vue
+++ b/vue-fastapi-frontend/src/views/aichat/aichat.vue
@@ -66,19 +66,6 @@
回复中...
-
-
-
-
-
-
-
-
-
-
- 停止回答
-
@@ -175,6 +162,7 @@

+
+
+
+
+
!(inputValue.value.trim())
)
-
const emit = defineEmits(['scroll'])
function setScrollBottom() {
@@ -585,7 +578,7 @@ async function sendChatHandle(event) {
if (inputValue.value.trim() && (chatList.value.length === 0||
(chatList.value[chatList.value.length - 1].isStop ||
chatList.value[chatList.value.length - 1].isEnd))) {
- chatList.value.push({
+ lastQuestion.value = {
"chatId": uuidv4(),
"type": "question",
"content": inputValue.value.trim(),
@@ -593,10 +586,8 @@ async function sendChatHandle(event) {
"sessionId": Cookies.get("chatSessionId"),
"sessionName": chatList.value.length > 0 ? chatList.value[0].content.substring(0, 20) : inputValue.value.trim().substring(0, 20),
"file": currentFiles.value
- })
- let question = JSON.parse(JSON.stringify(chatList.value[chatList.value.length - 1]))
- question.file = JSON.stringify(question.file)
- await addChat(question)
+ }
+ asking.value = true
nextTick(() => {
// 将滚动条滚动到最下面
scrollDiv.value.setScrollTop(getMaxHeight())
@@ -608,10 +599,9 @@ async function sendChatHandle(event) {
"session_id": Cookies.get("chatSessionId"),
"doc": currentFiles.value
}
- if (chatList.value.length > 1){
- // 判断为1 因为上方已将问题加入 chatList了 , >1 则视为已存在提问交互
+ if (chatList.value.length > 0){
//取最新的checkpointer值
- data.checkpointer = chatList.value[chatList.value.length - 2].content.checkpointer
+ data.checkpointer = chatList.value[chatList.value.length - 1].content.checkpointer
}
currentQuestion.value = data
inputValue.value = ''
@@ -630,64 +620,71 @@ 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 {
- 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(()=> {
- 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
+ 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
+ }
}
- }
- 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)
}
- sendChatMessage(reqData)
}
}
- }
+ })
})
}
}).catch((e) => {
@@ -695,8 +692,6 @@ function sendChatMessage(data){
})
}
-
-
watch(
chatList,
() => {
@@ -789,18 +784,21 @@ const getWrite = (reader) => {
return write_stream;
};
-const stopChat = (index) => {
+const stopChat = () => {
if (currentJobId.value !== ''){
cancelJob({job_id:currentJobId.value})
}
- chatList.value[index].isStop = true
+ if (chatList.value.length > 0 || chatList.value[chatList.value.length - 1].type === 'answer'){
+ chatList.value[chatList.value.length - 1].isStop = true
+ }
if (controller.value !== null){
controller.value.abort()
}
- let answer = JSON.parse(JSON.stringify(chatList.value[index]))
+ let answer = JSON.parse(JSON.stringify(chatList.value[chatList.value.length - 1]))
answer.content = JSON.stringify(answer.content)
addChat(answer)
currentJobId.value = ''
+ asking.value = false
}
// const startChat = (index) => {
diff --git a/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityCol.vue b/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityCol.vue
index de3a5aa..d89e085 100644
--- a/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityCol.vue
+++ b/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityCol.vue
@@ -24,11 +24,11 @@
@node-click="handleNodeClick"
>
-
+
{{ data.name }}
-
+
diff --git a/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityRow.vue b/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityRow.vue
index 59f10bd..e4d4906 100644
--- a/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityRow.vue
+++ b/vue-fastapi-frontend/src/views/meta/metasercurity/MetaSecurityRow.vue
@@ -24,11 +24,11 @@
@node-click="handleNodeClick"
>
-
+
{{ data.name }}
-
+
diff --git a/vue-fastapi-frontend/src/views/tool/swagger/index.vue b/vue-fastapi-frontend/src/views/tool/swagger/index.vue
index ff4526a..a0c8754 100644
--- a/vue-fastapi-frontend/src/views/tool/swagger/index.vue
+++ b/vue-fastapi-frontend/src/views/tool/swagger/index.vue
@@ -5,5 +5,5 @@