From 17b0aa1299cac2fba97ab674c65e2e52660bad43 Mon Sep 17 00:00:00 2001 From: cc500 <2014434568@qq.com> Date: Fri, 28 Feb 2025 14:50:38 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E7=94=A8=E4=BA=8E=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=A4=9A=E6=AC=A1=E7=82=B9=E5=87=BB=E4=BC=9A=E8=AF=9D=E9=80=A0?= =?UTF-8?q?=E6=88=90=20409=20=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/historySession.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/store/historySession.ts b/src/store/historySession.ts index e645e59..8d1be77 100644 --- a/src/store/historySession.ts +++ b/src/store/historySession.ts @@ -173,6 +173,12 @@ export const useHistorySessionStore = defineStore('sessionStore', () => { const generateSession = async (): Promise => { const [_, res] = await api.createSession(); if (!_ && res) { + // 用于处理多次点击会话造成 409 的问题 + if(res.code === 409){ + successMsg(i18n.global.t('history.sessionLimit')); + await getHistorySession(); + return; + } currentSelectedSession.value = res.result.conversationId; await getHistorySession(); } -- Gitee From 60901134ef36439b17c86a7272e3d9f58d831fa1 Mon Sep 17 00:00:00 2001 From: cc500 <2014434568@qq.com> Date: Fri, 28 Feb 2025 15:16:23 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E5=BD=93/chat=20=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E7=9A=84=E6=97=B6=E5=80=99,=E5=B0=86?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81=E7=8A=B6=E6=80=81=E7=BD=AE=E4=B8=BA?= =?UTF-8?q?=20error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/conversation.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/store/conversation.ts b/src/store/conversation.ts index 4ed4b8b..e219567 100644 --- a/src/store/conversation.ts +++ b/src/store/conversation.ts @@ -475,6 +475,9 @@ export const useSessionStore = defineStore('conversation', () => { //error没加限制 if (msg.includes('[ERROR]')) { errorMsg = i18n.global.t('feedback.systemBusy'); + const answerIndex = ind ?? conversationList.value.length - 1; + const conversationItem = conversationList.value[answerIndex] as RobotConversationItem; + conversationItem.flowdata.status = 'error'; } if (errorMsg&&!(conversationList.value[ind] as RobotConversationItem).message[ (conversationList.value[ind] as RobotConversationItem).currentInd -- Gitee From b6a49bcb4221861bd63ea7e08614253bb1708594 Mon Sep 17 00:00:00 2001 From: cc500 <2014434568@qq.com> Date: Fri, 28 Feb 2025 15:49:10 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Upload/index.vue | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/components/Upload/index.vue b/src/components/Upload/index.vue index 00fafe6..e54882e 100644 --- a/src/components/Upload/index.vue +++ b/src/components/Upload/index.vue @@ -15,7 +15,7 @@ const handleCreateapi = async () => { }); if (!_ && res) { if (res.code === 200) { - getServiceJson.value = res[1]?.result?.apis; + getServiceJson.value = res?.result?.apis; uploadtype.value = 'get'; successMsg('创建成功'); } else { @@ -162,7 +162,7 @@ const doPreview = (e: Event) => { const getServiceYamlFun = async (id: string) => { await api.querySingleApiData({ serviceId: id, edit: true }).then(res => { if (res) { - getServiceYaml.value = jsYaml.dump(res[1]?.result.data); + getServiceYaml.value = jsYaml.dump(res?.result.data); } }); }; @@ -204,7 +204,6 @@ watch( :show-file-list="false" :on-success="handleSuccess" :before-upload="beforeUpload" - :http-request="doUpload" :on-progress="handleProgress" class="" > -- Gitee From 6fcb89ee879aa3bf2e046dd6b1847b1c333da44b Mon Sep 17 00:00:00 2001 From: cc500 <2014434568@qq.com> Date: Fri, 28 Feb 2025 15:59:35 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=9A=82=E5=81=9C=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=97=B6=E5=87=BA=E7=8E=B0=E6=8F=90=E7=A4=BA=E6=B6=88=E6=81=AF?= =?UTF-8?q?,=E5=88=87=E6=8D=A2=E5=BA=94=E7=94=A8=E6=97=B6=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/dialoguePanel/DialoguePanel.vue | 2 -- src/store/conversation.ts | 1 + src/views/dialogue/components/DialogueAside.vue | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/dialoguePanel/DialoguePanel.vue b/src/components/dialoguePanel/DialoguePanel.vue index 6abe12f..7d2961e 100644 --- a/src/components/dialoguePanel/DialoguePanel.vue +++ b/src/components/dialoguePanel/DialoguePanel.vue @@ -412,8 +412,6 @@ const { sendQuestion } = useSessionStore(); const chatWithParams = async () => { visible.value = false; - // handleSendMessage(undefined,undefined,user_selected_app.value); - // reGenerateAnswer(props.cid, user_selected_app.value,"params"); const language = localStorage.getItem('localeLang') === 'CN' ? 'zh' : 'en'; const len = conversationList.value.length; const question = (conversationList.value[props.cid - 1]).message; diff --git a/src/store/conversation.ts b/src/store/conversation.ts index e219567..9f18e69 100644 --- a/src/store/conversation.ts +++ b/src/store/conversation.ts @@ -587,6 +587,7 @@ export const useSessionStore = defineStore('conversation', () => { const pausedStream = async (cid?: number): Promise => { const answerIndex = conversationList.value.findIndex((val) => val.cid === cid) !== -1 ? conversationList.value.findIndex((val) => val.cid === cid) : conversationList.value.length - 1; isPaused.value = true; + conversationList.value[answerIndex].message[0] += '暂停生成'; (conversationList.value[answerIndex] as RobotConversationItem).isFinish = true; cancel(); await api.stopGeneration(); diff --git a/src/views/dialogue/components/DialogueAside.vue b/src/views/dialogue/components/DialogueAside.vue index 0af55d4..3078a86 100644 --- a/src/views/dialogue/components/DialogueAside.vue +++ b/src/views/dialogue/components/DialogueAside.vue @@ -227,6 +227,7 @@ const selectApp = (id) => { // app.value.appId = id; app.value.selectedAppId = id; } + getHistorySession(); }; function ensureAppAtFirstPosition() { if(!app.value.appId){ -- Gitee From c5557f41bed3f4aed82f626def16d1a53af4f50c Mon Sep 17 00:00:00 2001 From: cc500 <2014434568@qq.com> Date: Fri, 28 Feb 2025 16:22:15 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=20icon=20=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E9=99=90=E5=88=B6=E6=96=87=E4=BB=B6=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/createapp/components/appConfig.vue | 51 ++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/views/createapp/components/appConfig.vue b/src/views/createapp/components/appConfig.vue index 761cd3e..a4f4b53 100644 --- a/src/views/createapp/components/appConfig.vue +++ b/src/views/createapp/components/appConfig.vue @@ -7,6 +7,7 @@ import { useRoute } from 'vue-router'; import { api } from 'src/apis'; import AppInitalPreview from 'src/views/dialogue/components/AppInitalPreview.vue'; +import { ElMessage } from 'element-plus'; const activeName = ref([1, 2, 3]); const activeNames = ref([1, 2, 3]); const route = useRoute(); @@ -200,6 +201,55 @@ const validateForm = async () => { } } +const beforeUpload = async (file: ElFile) => { + const isPic = + file.type === 'png' || + file.type === 'jpg' || + file.type === 'svg' || + file.name.indexOf('.png') > -1 || + file.name.indexOf('.svg') > -1 || + file.name.indexOf('.jpg') > -1; + + const isLt2M = file.size / 1024 / 1024 < 2; + if (!isPic) { + ElMessage({ + message: 'File must be YAML format!', + type: 'error', + }); + return false; + } + if (!isLt2M) { + ElMessage({ + message: 'YAML size cannot exceed 2MB!', + type: 'error', + }); + return false; + } + try { + const reader = new FileReader(); + reader.onerror = error => { + ElMessage({ + message: 'Error reading file!', + type: 'error', + }); + }; + // 开始读取文件内容 + await new Promise((resolve, reject) => { + reader.readAsText(file); + reader.onloadend = () => resolve(); // 当读取完成时解决 Promise + reader.onerror = error => reject(error); // 如果出错则拒绝 Promise + }); + return true; + } catch (error) { + console.error('Error during file upload process:', error); + ElMessage({ + message: 'An error occurred during file upload!', + type: 'error', + }); + return false; // 同样,这行在当前的 async 函数中可能没有实际意义 + } +}; + defineExpose({ createAppForm, createAppFormRef, @@ -228,6 +278,7 @@ defineExpose({ action="#" :show-file-list="false" :on-success="handleAvatarSuccess" + :before-upload="beforeUpload" :http-request="httpRequest" > -- Gitee From ed2f2ffdece84769a5ecc07f57217065d0db6233 Mon Sep 17 00:00:00 2001 From: cc500 <2014434568@qq.com> Date: Fri, 28 Feb 2025 16:22:35 +0800 Subject: [PATCH 6/7] =?UTF-8?q?icon=20=E5=9B=BE=E6=A0=87=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=9C=86=E8=A7=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/api/index.vue | 3 +++ src/views/app/index.vue | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/views/api/index.vue b/src/views/api/index.vue index db1f53e..94d4bcf 100644 --- a/src/views/api/index.vue +++ b/src/views/api/index.vue @@ -287,6 +287,9 @@ onMounted(() => { });