yangdr il y a 3 semaines
Parent
commit
9215a5a094

+ 11 - 1
src/components/FileViewer/FileViewer.vue

@@ -30,8 +30,9 @@
 </template>
 
 <script setup>
-import { ref, onMounted, onBeforeUnmount, computed } from 'vue'
+import { ref, onMounted, onBeforeUnmount, computed, watch } from 'vue'
 import { ElMessage } from 'element-plus'
+import { checkLinkValidity } from "@/utils/app"
 //引入相关样式
 import '@vue-office/docx/lib/index.css'
 //引入VueOfficeDocx组件
@@ -63,6 +64,15 @@ const excelOptions = computed(() => {
   }
 })
 
+// watch(() => props.fileUrl, (newValue) => {
+//   if (!newValue) return;
+//   checkLinkValidity(newValue).then(() => {
+
+//   }).catch(err => {
+//     errorHandler()
+//   })
+// }, {})
+
 function renderedHandler() {
   console.log("渲染完成")
 }

+ 5 - 5
src/dialogs/OCRDialog.vue

@@ -1,5 +1,6 @@
 <template>
-  <el-dialog :title="title" v-model="dialogFormVisible" width="800" @closed="handleClosed">
+  <el-dialog :close-on-click-modal="false" :title="title" v-model="dialogFormVisible" width="800"
+    @closed="handleClosed">
     <el-form :model="form" ref="formRef">
       <el-form-item label="任务名称" prop="name" :label-width="formLabelWidth" required>
         <el-input v-model="form.name" autocomplete="off"></el-input>
@@ -137,7 +138,6 @@
       </div>
     </div>
   </el-dialog>
-
 </template>
 
 <script setup lang="ts">
@@ -506,22 +506,22 @@ async function calculateFileHash(file: File) {
 async function handleImportFiles(filesList: any[]) {
   loading.value = true
   await Promise.allSettled(filesList.map(async (fileInfo) => {
-    const { file_name, minio_url, file_url } = fileInfo;
     try {
+      const { file_name, minio_url, file_url } = fileInfo;
       const response = await axios.get(file_url, { responseType: 'blob' });
       const rawFile = new File([response.data], file_name, { type: response.data.type });
       const fileHash = await calculateFileHash(rawFile);
 
       if (importedFileHashes.value.includes(fileHash as string)) {
         ElMessage({
-          message: `文件“${file_name}”已导入过,不能重复导入`,
+          message: `文件“${file_name}”已导入过或者存在内容相同的文件,不能重复导入`,
           type: 'info',
           plain: true,
         });
         return;
       }
 
-      const file = rawFile as UploadRawFile;
+      const file: UploadRawFile = rawFile as UploadRawFile;
       file.uid = genFileId();
       upload.value!.handleStart(file);
       importedFileHashes.value.push(fileHash as string);

+ 1 - 1
src/router/index.ts

@@ -24,7 +24,7 @@ const router = createRouter({
   routes: [
     {
       path: "/",
-      redirect: "/kmplatform",
+      redirect: "/login",
       name: "top",
       meta: {
         auth: false,

+ 22 - 1
src/utils/app.ts

@@ -1,4 +1,7 @@
 import { getSessionVar } from '@/utils/session'
+import axios from 'axios';
+
+
 /**
  * 重置一个参数对象
  * @param args
@@ -66,4 +69,22 @@ export function toFormData(data: any): FormData {
   return formData
 }
 
-export default { resetArgs, saveBlob, toFormData, isNotLogin }
+
+export function checkLinkValidity(url: string) {
+  return new Promise((resolve, reject) => {
+    // 使用 HEAD 请求,仅请求响应头
+    axios.head(url).then((response) => {
+      if (response.status >= 200 && response.status < 300) {
+        resolve(true)
+      } else {
+        reject(false)  // 返回 false 表示链接无效
+      }
+    }).catch((error) => {
+      reject(false)
+    });
+  })
+}
+
+export default { resetArgs, saveBlob, toFormData, isNotLogin }
+
+

+ 1 - 12
src/views/KMPlatform/KnowledgeBase/KM/KnowledgeManagement.vue

@@ -164,18 +164,7 @@ const handleSizeChange = (pageSize) => {
   paginationData.value.currentPageSize = pageSize
   // console.log('handleSizeChange', pageSize)
 }
-async function checkLinkValidity(index, url) {
-  try {
-    const response = await axios.head(url);  // 使用 HEAD 请求,仅请求响应头
-    if (response.status >= 200 && response.status < 300) {
-      filesList.value[index].isValid = true
-    } else {
-      filesList.value[index].isValid = false  // 返回 false 表示链接无效
-    }
-  } catch (error) {
-    filesList.value[index].isValid = false // 请求失败,返回 false
-  }
-}
+
 // 定义处理关闭查看器的方法
 const handleCloseViewer = () => {
   viewFileData.value.show = false;