From 4f12de4fb0cbdf8cf2e8ea7745d9478330a08699 Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期四, 01 八月 2024 15:35:07 +0800
Subject: [PATCH] 知识库文件的下载和预览

---
 .env.development                                 |    2 
 public/logo.svg                                  |   29 +++++++
 yarn.lock                                        |    5 +
 public/logo.jpg                                  |    0 
 src/views/dmx/knowledgeLib/components/excel.vue  |   48 ++++++++++++
 package.json                                     |    1 
 src/views/dmx/knowledgeLib/components/docx.vue   |   48 ++++++++++++
 src/views/dmx/knowledgeLib/components/txtPdf.vue |   45 +++++++++++
 src/views/dmx/knowledgeLib/index.vue             |   35 ++++++++
 public/logo1.png                                 |    0 
 public/logo.png                                  |    0 
 11 files changed, 210 insertions(+), 3 deletions(-)

diff --git a/.env.development b/.env.development
index 22b240e..ab9243a 100644
--- a/.env.development
+++ b/.env.development
@@ -1,2 +1,2 @@
 VUE_APP_BASE_API=/api/v1
-VITE_API_BASE_URL= 'http://aiotlink.com:8189'
\ No newline at end of file
+VITE_API_BASE_URL= 'http://192.168.20.116:1080'
\ No newline at end of file
diff --git a/package.json b/package.json
index 38ad2c8..d22f6db 100644
--- a/package.json
+++ b/package.json
@@ -37,6 +37,7 @@
   "dependencies": {
     "@arco-design/web-vue": "^2.44.7",
     "@vue-office/docx": "^1.6.2",
+    "@vue-office/excel": "^1.7.11",
     "@vueuse/core": "^9.3.0",
     "arco-design-pro-vue": "^2.7.3",
     "axios": "^0.24.0",
diff --git a/public/logo.jpg b/public/logo.jpg
new file mode 100644
index 0000000..d788bdb
--- /dev/null
+++ b/public/logo.jpg
Binary files differ
diff --git a/public/logo.png b/public/logo.png
new file mode 100644
index 0000000..bc22092
--- /dev/null
+++ b/public/logo.png
Binary files differ
diff --git a/public/logo.svg b/public/logo.svg
new file mode 100644
index 0000000..54167d2
--- /dev/null
+++ b/public/logo.svg
@@ -0,0 +1,29 @@
+<svg width="32" height="34" viewBox="0 0 32 34" fill="none" xmlns="http://www.w3.org/2000/svg">
+    <path fill-rule="evenodd" clip-rule="evenodd"
+        d="M3.43265 20.7677C4.15835 21.5062 4.15834 22.7035 3.43262 23.4419L3.39546 23.4797C2.66974 24.2182 1.49312 24.2182 0.767417 23.4797C0.0417107 22.7412 0.0417219 21.544 0.767442 20.8055L0.804608 20.7677C1.53033 20.0292 2.70694 20.0293 3.43265 20.7677Z"
+        fill="#B2DDFF" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+        d="M12.1689 21.3375C12.8933 22.0773 12.8912 23.2746 12.1641 24.0117L7.01662 29.2307C6.2896 29.9678 5.11299 29.9657 4.38859 29.2259C3.66419 28.4861 3.66632 27.2888 4.39334 26.5517L9.54085 21.3327C10.2679 20.5956 11.4445 20.5977 12.1689 21.3375Z"
+        fill="#53B1FD" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+        d="M19.1551 30.3217C19.7244 29.4528 20.8781 29.218 21.7321 29.7973L21.8436 29.8729C22.6975 30.4522 22.9283 31.6262 22.359 32.4952C21.7897 33.3641 20.6359 33.5989 19.782 33.0196L19.6705 32.944C18.8165 32.3647 18.5858 31.1907 19.1551 30.3217Z"
+        fill="#B2DDFF" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+        d="M31.4184 20.6544C32.1441 21.3929 32.1441 22.5902 31.4184 23.3286L28.8911 25.9003C28.1654 26.6388 26.9887 26.6388 26.263 25.9003C25.5373 25.1619 25.5373 23.9646 26.263 23.2261L28.7903 20.6544C29.516 19.916 30.6927 19.916 31.4184 20.6544Z"
+        fill="#53B1FD" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+        d="M31.4557 11.1427C32.1814 11.8812 32.1814 13.0785 31.4557 13.8169L12.7797 32.8209C12.054 33.5594 10.8774 33.5594 10.1517 32.8209C9.42599 32.0825 9.42599 30.8852 10.1517 30.1467L28.8277 11.1427C29.5534 10.4043 30.73 10.4043 31.4557 11.1427Z"
+        fill="#1570EF" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+        d="M27.925 5.29994C28.6508 6.0384 28.6508 7.23568 27.925 7.97414L17.184 18.9038C16.4583 19.6423 15.2817 19.6423 14.556 18.9038C13.8303 18.1653 13.8303 16.9681 14.556 16.2296L25.297 5.29994C26.0227 4.56148 27.1993 4.56148 27.925 5.29994Z"
+        fill="#1570EF" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+        d="M22.256 1.59299C22.9822 2.33095 22.983 3.52823 22.2578 4.26718L8.45055 18.3358C7.72533 19.0748 6.54871 19.0756 5.82251 18.3376C5.09631 17.5996 5.09552 16.4024 5.82075 15.6634L19.6279 1.59478C20.3532 0.855827 21.5298 0.855022 22.256 1.59299Z"
+        fill="#1570EF" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+        d="M8.58225 6.09619C9.30671 6.83592 9.30469 8.0332 8.57772 8.77038L3.17006 14.2541C2.4431 14.9913 1.26649 14.9893 0.542025 14.2495C-0.182438 13.5098 -0.180413 12.3125 0.546548 11.5753L5.95421 6.09159C6.68117 5.3544 7.85778 5.35646 8.58225 6.09619Z"
+        fill="#53B1FD" />
+    <path fill-rule="evenodd" clip-rule="evenodd"
+        d="M11.893 0.624023C12.9193 0.624023 13.7513 1.47063 13.7513 2.51497V2.70406C13.7513 3.7484 12.9193 4.59501 11.893 4.59501C10.8667 4.59501 10.0347 3.7484 10.0347 2.70406V2.51497C10.0347 1.47063 10.8667 0.624023 11.893 0.624023Z"
+        fill="#B2DDFF" />
+</svg>
\ No newline at end of file
diff --git a/public/logo1.png b/public/logo1.png
new file mode 100644
index 0000000..b3ee314
--- /dev/null
+++ b/public/logo1.png
Binary files differ
diff --git a/src/views/dmx/knowledgeLib/components/docx.vue b/src/views/dmx/knowledgeLib/components/docx.vue
new file mode 100644
index 0000000..08ee57a
--- /dev/null
+++ b/src/views/dmx/knowledgeLib/components/docx.vue
@@ -0,0 +1,48 @@
+
+<template>
+  <vue-office-docx
+    :src="previewSrc"
+    :style="comStyle"
+    @rendered="renderedHandler"
+    @error="errorHandler"
+  />
+</template>
+
+<script setup>
+//	鑾峰彇鐖剁粍浠朵紶閫掔殑璧勬簮url
+const props = defineProps({
+  previewSrc: {
+    type: String,
+    required: false,
+    default: () => ''
+  }
+});
+//寮曞叆VueOfficeDocx缁勪欢鐩稿叧
+import VueOfficeDocx from '@vue-office/docx'
+import '@vue-office/docx/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>
\ No newline at end of file
diff --git a/src/views/dmx/knowledgeLib/components/excel.vue b/src/views/dmx/knowledgeLib/components/excel.vue
new file mode 100644
index 0000000..8013021
--- /dev/null
+++ b/src/views/dmx/knowledgeLib/components/excel.vue
@@ -0,0 +1,48 @@
+
+<template>
+  <vue-office-excel
+    :src="previewSrc"
+    :style="comStyle"
+    @rendered="renderedHandler"
+    @error="errorHandler"
+  />
+</template>
+
+<script setup>
+//	鑾峰彇鐖剁粍浠朵紶閫掔殑璧勬簮url
+const props = defineProps({
+  previewSrc: {
+    type: String,
+    required: false,
+    default: () => ''
+  }
+});
+//寮曞叆VueOfficeExcel缁勪欢鐩稿叧
+import VueOfficeExcel from '@vue-office/excel'
+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>
\ No newline at end of file
diff --git a/src/views/dmx/knowledgeLib/components/txtPdf.vue b/src/views/dmx/knowledgeLib/components/txtPdf.vue
new file mode 100644
index 0000000..5388215
--- /dev/null
+++ b/src/views/dmx/knowledgeLib/components/txtPdf.vue
@@ -0,0 +1,45 @@
+
+<template>
+  <iframe
+    :src="previewSrc"
+  ></iframe>
+</template>
+
+<script setup>
+//	鑾峰彇鐖剁粍浠朵紶閫掔殑璧勬簮url
+const props = defineProps({
+  previewSrc: {
+    type: String,
+    required: false,
+    default: () => ''
+  }
+});
+//寮曞叆VueOfficeExcel缁勪欢鐩稿叧
+import VueOfficeExcel from '@vue-office/excel'
+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>
\ No newline at end of file
diff --git a/src/views/dmx/knowledgeLib/index.vue b/src/views/dmx/knowledgeLib/index.vue
index 7da5b5e..2fa72fd 100644
--- a/src/views/dmx/knowledgeLib/index.vue
+++ b/src/views/dmx/knowledgeLib/index.vue
@@ -228,11 +228,13 @@
                         <icon-download />
                       </template>
                     </a-button>
+
                     <a-button type="text" size="small"  @click="seeload(record)">
                       <template #icon>
                         <icon-eye />
                       </template>
                     </a-button>
+
                   </template>
                 </a-table>
               </a-card>
@@ -287,6 +289,12 @@
         </div>
       </div>
     </div>
+    <a-modal v-model:visible="visible" :footer="false" fullscreen>
+<!--      <docx v-if="documenttype=='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>
+    </a-modal>
   </div>
 </template>
 
@@ -315,6 +323,9 @@
   import test from '@/views/dmx/knowledgeLib/test.vue'
   import tool from '@/views/dmx/knowledgeLib/tool.vue'
   import addDetails from '@/views/dmx/knowledgeLib/addDetails.vue'
+  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 { Message } from "@arco-design/web-vue";
   import { parseTime } from "@/utils";
   import { usePinia } from "@/store";
@@ -346,10 +357,13 @@
   let selectedTab = ref(0)
   let testForm = ref(null)
   let configForm = ref(null)
+  let documenttype = ref('docx')
+  let previewSrc = ref('')
   let kbId = ref('')
   let kbobj = reactive({})
   let kbdetail = reactive({})
   let parser_ids = reactive({})
+  let seeObj = reactive({})
   let kbtenantInfo = reactive({
     "asr_id": "paraformer-realtime-8k-v1",
     "embd_id": "BAAI/bge-large-zh-v1.5",
@@ -671,8 +685,25 @@
       filename: record.name,
     });
   }
-const   seeload =  async (row)=>{
-  console.log(row);
+const   seeload = async (row)=>{
+  Object.assign(seeObj, row)
+  console.log(seeObj.name, 'seeObj');
+  let type = seeObj.name.split('.')[1];
+  console.log(type);
+  if(type=='pdf'){
+    documenttype.value = 'txtPdf'
+  }else if(type=='docx'){
+    documenttype.value = 'docx'
+  }else if(type=='xlsx'){
+    documenttype.value = 'excel'
+  }else if(type=='txt'){
+    documenttype.value = 'txtPdf'
+  }else {
+    return false
+  }
+  previewSrc.value = `${import.meta.env.VITE_API_BASE_URL}/v1/document/get/${row.id}`
+  visible.value = true;
+
 }
 
 const   handleChangeStatus =  async (row)=>{
diff --git a/yarn.lock b/yarn.lock
index 4700063..d70afe3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1020,6 +1020,11 @@
   resolved "https://registry.npmmirror.com/@vue-office/docx/-/docx-1.6.2.tgz#c97d28db60db5325dd351d90b0202dd3d54ad427"
   integrity sha512-OHAoUHeY8nHjhWvwDhlPx+/rmRkxmqLpvPgtfCEOZ4H1c1LCdJ6eDbdV3152ww8dcdZ7fgGQu3fmSSaI7JwdpQ==
 
+"@vue-office/excel@^1.7.11":
+  version "1.7.11"
+  resolved "https://registry.npmmirror.com/@vue-office/excel/-/excel-1.7.11.tgz#e37e5a2c212907a62c9b65e42d9df21f9c68a2cc"
+  integrity sha512-LF3R9IV573Sf4qTu6Ik5Ee8UMfkrsZQ6HEQE25/2m1c0CMcHX6KanIy6Cz0b0Q+FrLH3TjIsLTm6oPcqAbDGSA==
+
 "@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#7f1f817a4f00ad531651a8d1d22e22d9e42807ef"

--
Gitblit v1.8.0