奇橙 1 éve
szülő
commit
069961e9eb
1 módosított fájl, 24 hozzáadás és 6 törlés
  1. 24 6
      src/components/DialogWrap.vue

+ 24 - 6
src/components/DialogWrap.vue

@@ -206,6 +206,12 @@
                             </div>
                         </section>
                     </div>
+                    <div v-if="item.file" class="paper-wrap" @click="downloadFile(item.file.file_url)">
+                        <img src="@/assets/question/word.svg" />
+                        <span>
+                            <b>{{ item.file.file_name }}</b>
+                        </span>
+                    </div>
                     <div class="dialog-other" v-if="item?.other">
                         <p v-if="isSetting">
                             <img src="@/assets/icons/check.png" width="16" />
@@ -517,6 +523,9 @@ export default defineComponent({
             loadingData.value.capacity = DOCUMENT_RESULT;
             addAnswer(loadingData.value);
         };
+        const downloadFile = (url) => {
+            window.open(url, "_blank");
+        };
         onBeforeUnmount(() => {
             helper.$bus.off("send-message");
             helper.$bus.off("clear-message");
@@ -528,13 +537,18 @@ export default defineComponent({
             helper.webSocket = ajax.message.create(helper.read("token"), props.agentId, props.dialogId, props.type);
             helper.webSocket.onmessage = (event) => {
                 console.log(JSON.parse(event.data));
-                const { type, message, step_message } = JSON.parse(event.data);
+                const { type, message, step_message, files } = JSON.parse(event.data);
                 if (type === "stream") {
-                    answerData.value += props.type === "report" ? step_message + "<br />" : message;
-                    if (answerData.value && !isLoaded.value) {
-                        answerLoaded();
+                    if (files && files.length > 0) {
+                        loadingData.value.file = files[0];
+                        addData(loadingData.value);
+                    } else {
+                        answerData.value += props.type === "report" ? step_message + "<br />" : message;
+                        if (answerData.value && !isLoaded.value) {
+                            answerLoaded();
+                        }
+                        addAnswer(loadingData.value);
                     }
-                    addAnswer(loadingData.value);
                 }
                 if (type === "close") {
                     if (!answerData.value) {
@@ -586,7 +600,8 @@ export default defineComponent({
             stopWriting,
             knowledgeList,
             dialogConfig,
-            userName
+            userName,
+            downloadFile
         };
     }
 });
@@ -631,6 +646,9 @@ export default defineComponent({
     display: flex;
     max-width: 200px;
     align-items: center;
+    margin-left: 40px;
+    margin-bottom: 10px;
+    cursor: pointer;
     > img {
         width: 50px;
         margin-right: 10px;