From 6b5f0408ab95f5ea135f97924c6e414042cd2a88 Mon Sep 17 00:00:00 2001
From: yinbangzhong <zhongbangyin@126.com>
Date: 星期四, 05 九月 2024 11:27:41 +0800
Subject: [PATCH] 单文档

---
 src/views/dmx/knowledgeLib/components/Pdf.vue |    4 +-
 yarn.lock                                     |    5 ++
 package.json                                  |    1 
 src/views/dmx/knowledgeLib/index.vue          |   53 +++++++++++++-------------
 src/views/sessionManager/index.vue            |    6 ++-
 src/views/dmx/knowledgeLib/components/txt.vue |   51 +++++++++++++++++++++++++
 6 files changed, 89 insertions(+), 31 deletions(-)

diff --git a/package.json b/package.json
index 25a2cdf..e52a9eb 100644
--- a/package.json
+++ b/package.json
@@ -29,6 +29,7 @@
     "@microsoft/fetch-event-source": "^2.0.1",
     "@vue-office/docx": "^1.6.2",
     "@vue-office/excel": "^1.7.11",
+    "@vue-office/pdf": "^2.0.2",
     "@vueuse/core": "^9.3.0",
     "arco-design-pro-vue": "^2.7.3",
     "axios": "^0.24.0",
diff --git a/src/views/dmx/knowledgeLib/components/txtPdf.vue b/src/views/dmx/knowledgeLib/components/Pdf.vue
similarity index 78%
rename from src/views/dmx/knowledgeLib/components/txtPdf.vue
rename to src/views/dmx/knowledgeLib/components/Pdf.vue
index a76003a..02d456b 100644
--- a/src/views/dmx/knowledgeLib/components/txtPdf.vue
+++ b/src/views/dmx/knowledgeLib/components/Pdf.vue
@@ -1,5 +1,5 @@
 <template>
-  <iframe :src="previewSrc"></iframe>
+<vue-office-pdf :src="previewSrc" :style="comStyle" @rendered="renderedHandler" @error="errorHandler"></vue-office-pdf>
 </template>
 
 <script setup>
@@ -12,7 +12,7 @@
     },
   });
   //寮曞叆VueOfficeExcel缁勪欢鐩稿叧
-  import VueOfficeExcel from '@vue-office/excel';
+  import VueOfficePdf from '@vue-office/pdf';
   import '@vue-office/excel/lib/index.css';
 
   const comStyle = {
diff --git a/src/views/dmx/knowledgeLib/components/txt.vue b/src/views/dmx/knowledgeLib/components/txt.vue
new file mode 100644
index 0000000..6cd3f41
--- /dev/null
+++ b/src/views/dmx/knowledgeLib/components/txt.vue
@@ -0,0 +1,51 @@
+<template>
+  <div>
+    <pre v-html="content"></pre>
+  </div>
+</template>
+
+<script setup>
+import { ref, watch } from "vue";
+
+let content = ref("");
+//	鑾峰彇鐖剁粍浠朵紶閫掔殑璧勬簮url
+const props = defineProps({
+  previewSrc: {
+    type: String,
+    required: false,
+    default: () => ""
+  }
+});
+
+const getContent = (url) => {
+  fetch(url)
+    .then((res) => res.text())
+    .then((data) => {
+      content.value = data;
+    });
+};
+getContent(props.previewSrc);
+
+//寮曞叆VueOfficeExcel缁勪欢鐩稿叧
+import "@vue-office/excel/lib/index.css";
+
+const comStyle = {
+  width: "100%",
+  height: "100%"
+};
+
+const renderedHandler = () => {
+  console.log("rendered");
+};
+const errorHandler = (err) => {
+  console.log("error", err);
+};
+</script>
+
+<style scoped lang="less">
+  .aUpload {
+    position: absolute;
+    top: 0;
+    left: 0;
+  }
+</style>
diff --git a/src/views/dmx/knowledgeLib/index.vue b/src/views/dmx/knowledgeLib/index.vue
index 994f862..4beaa09 100644
--- a/src/views/dmx/knowledgeLib/index.vue
+++ b/src/views/dmx/knowledgeLib/index.vue
@@ -877,34 +877,8 @@
         pagination.current = params.page;
         pagination.total = data.data.total;
 
-        if (timer) {
-          clearInterval(timer);
-        }
         // 瀹氭椂鍣ㄦ煡璇㈡枃妗�
-        timer = setInterval(async () => {
-          let params = { ...basePagination, kb_id: kbobj.id };
-          const data = await queryKbDocumentList(params);
-          if (data.code == '0') {
-            parser_ids = kbtenantInfo.parser_ids
-              .split(',')
-              .reduce((acc, pair) => {
-                const [key, value] = pair.split(':');
-                acc[key] = value;
-                return acc;
-              }, {});
-            // console.log(parser_ids, 'parser_ids');
-            kbtenantInfo.parser_idObj = parser_ids;
-            renderData.value = data.data.docs || [];
-            renderData.value = renderData.value.map((item) => {
-              return {
-                ...item,
-                loading: false,
-                parser_id: parser_ids[item.parser_id],
-              };
-            });
-            // console.log(renderData.value, 'renderData');
-          }
-        }, 10000);
+        documentList()
       }
     } catch (err) {
       // you can report use errorHandler or other
@@ -913,6 +887,31 @@
     }
   };
 
+  const documentList= async () => {
+    let params = { ...basePagination, kb_id: kbobj.id };
+    const data = await queryKbDocumentList(params);
+    if (data.code == '0') {
+      parser_ids = kbtenantInfo.parser_ids
+        .split(',')
+        .reduce((acc, pair) => {
+          const [key, value] = pair.split(':');
+          acc[key] = value;
+          return acc;
+        }, {});
+      // console.log(parser_ids, 'parser_ids');
+      kbtenantInfo.parser_idObj = parser_ids;
+      renderData.value = data.data.docs || [];
+      renderData.value = renderData.value.map((item) => {
+        return {
+          ...item,
+          loading: false,
+          parser_id: parser_ids[item.parser_id],
+        };
+      });
+      // console.log(renderData.value, 'renderData');
+    }
+  }
+
   const search = () => {
     basePagination.page = 1;
     fetchData({
diff --git a/src/views/sessionManager/index.vue b/src/views/sessionManager/index.vue
index a7332b5..6ac9d6c 100644
--- a/src/views/sessionManager/index.vue
+++ b/src/views/sessionManager/index.vue
@@ -486,7 +486,8 @@
       <!--      <docx  previewSrc="http://192.168.20.116:1080/v1/document/get/405c3efa4d8c11ef97560242ac120006"></docx>-->
       <docx v-if="documenttype == 'docx'" :previewSrc="previewSrc"></docx>
       <excel v-if="documenttype == 'excel'" :previewSrc="previewSrc"></excel>
-      <txtPdf v-if="documenttype == 'txtPdf'" :previewSrc="previewSrc"></txtPdf>
+      <Pdf v-if="documenttype == 'pdf'" :previewSrc="previewSrc"></Pdf>
+      <txt v-if="documenttype == 'txt'" :previewSrc="previewSrc"></txt>
     </a-modal>
     <a-modal
       v-model:visible="visible"
@@ -564,7 +565,8 @@
 
   import docx from '@/views/dmx/knowledgeLib/components/docx.vue';
   import excel from '@/views/dmx/knowledgeLib/components/excel.vue';
-  import txtPdf from '@/views/dmx/knowledgeLib/components/txtPdf.vue';
+  import Pdf from '@/views/dmx/knowledgeLib/components/Pdf.vue';
+  import txt from '@/views/dmx/knowledgeLib/components/txt.vue';
   import { is } from 'immutable';
   import uploadFile from './components/uploadFile.vue';
 
diff --git a/yarn.lock b/yarn.lock
index 2bb026c..59a7c00 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1021,6 +1021,11 @@
   resolved "https://registry.npmmirror.com/@vue-office/excel/-/excel-1.7.11.tgz"
   integrity sha512-LF3R9IV573Sf4qTu6Ik5Ee8UMfkrsZQ6HEQE25/2m1c0CMcHX6KanIy6Cz0b0Q+FrLH3TjIsLTm6oPcqAbDGSA==
 
+"@vue-office/pdf@^2.0.2":
+  version "2.0.2"
+  resolved "https://registry.npmmirror.com/@vue-office/pdf/-/pdf-2.0.2.tgz#475010e4279c6dfb368e3dc7df81f56b597bd080"
+  integrity sha512-bQFqGxSOnKbvCS7OoJniYoTz1VIm1XOrRD27Msorxny9NFJ8RsQK1A4uhlnISJRFMaUwp1qlcVE9jMAhsiIyjg==
+
 "@vue/babel-helper-vue-transform-on@1.2.2":
   version "1.2.2"
   resolved "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz"

--
Gitblit v1.8.0