소스 검색

ocr任务中禁用文件禁止导入

yangdr 1 개월 전
부모
커밋
487ba1007a
3개의 변경된 파일42개의 추가작업 그리고 27개의 파일을 삭제
  1. 2 1
      .env.development
  2. 28 17
      src/dialogs/OCRDialog.vue
  3. 12 9
      src/views/KMPlatform/KnowledgeBase/KM/KnowledgeManagement.vue

+ 2 - 1
.env.development

@@ -1,2 +1,3 @@
 NODE_ENV = development
-VITE_API_URL = http://173.18.12.205:8005
+# VITE_API_URL = http://173.18.12.205:8005
+VITE_API_URL = http://192.18.1.235:8000

+ 28 - 17
src/dialogs/OCRDialog.vue

@@ -63,7 +63,7 @@
             </div>
             <el-scrollbar class="management-content-middle">
               <el-table :data="knowledgeBase.filesList" ref="KBTableRef">
-                <el-table-column type="selection" width="30" />
+                <el-table-column :selectable="handleSelectable" type="selection" width="30" />
                 <el-table-column label="#" prop="index" width="50" />
                 <el-table-column prop="file_name" min-width="150" label="标题">
                   <template #default="{ row }">
@@ -85,20 +85,21 @@
                 <el-table-column prop="created_at" label="上传时间" width="150" />
                 <el-table-column prop="" label="状态" width="80">
                   <template #default="{ row }">
-                    <span v-if="row.isValid">
+                    <span v-if="row.status">
                       <i class="circle" type="success"></i>
                       <el-text type="success">可用</el-text>
                     </span>
                     <span v-else>
-                      <i class="circle" type="warning"></i>
-                      <el-text type="warning">异常</el-text>
+                      <i class="circle" type="danger"></i>
+                      <el-text type="danger">禁用</el-text>
                     </span>
                   </template>
                 </el-table-column>
                 <el-table-column fixed="right" label="操作" min-width="55">
                   <template #default="{ row }">
                     <div class="operation">
-                      <el-button link type="primary" @click="handleImportFiles([toRaw(row)])">导入</el-button>
+                      <el-button link type="primary" :disabled="!row.status"
+                        @click="handleImportFiles([toRaw(row)])">导入</el-button>
                     </div>
                   </template>
                 </el-table-column>
@@ -233,7 +234,7 @@ const props = defineProps({
   job_creator: { type: String, required: false, default: 'admin' },
   status: { type: Number, required: false, default: 0 },
 })
-const emit = defineEmits(['update:modelValue', 'success', 'cancel','closed'])
+const emit = defineEmits(['update:modelValue', 'success', 'cancel', 'closed'])
 const showDialog = (visible: boolean = true) => {
   // console.log("OCRDialog showDialog")
   if (upload.value) {
@@ -244,11 +245,11 @@ const showDialog = (visible: boolean = true) => {
 
 // 清除上传文件列表
 const clearFileList = () => {
-    fileList.value = []
-    if (upload.value) {
-        upload.value.clearFiles()
-    }
-    importedFileHashes.value = [] // 清空已导入文件的哈希值记录
+  fileList.value = []
+  if (upload.value) {
+    upload.value.clearFiles()
+  }
+  importedFileHashes.value = [] // 清空已导入文件的哈希值记录
 }
 function handleGetKnowledgeBase() {
   getKnowledgeBase().then((response: any) => {
@@ -304,6 +305,10 @@ function fetchFile(fileName: string, fileUrl: string) {
       console.log(error);
     });
 }
+function handleSelectable(row: any, index: number) {
+  // console.log(row, index)
+  return row.status
+}
 function handleSelectedImport() {
   const SelectionRows = KBTableRef.value.getSelectionRows()
   handleImportFiles(toRaw(SelectionRows))
@@ -423,7 +428,7 @@ async function calculateFileHash(file: File) {
   // const hashArray = Array.from(new Uint8Array(hashBuffer));
   // const hashHex = hashArray.map(byte => byte.toString(16).padStart(2, '0')).join('');
   // return hashHex;
-    // 使用 crypto-js 计算哈希值
+  // 使用 crypto-js 计算哈希值
   return new Promise((resolve, reject) => {
     const reader = new FileReader();
     reader.readAsArrayBuffer(file);
@@ -447,7 +452,7 @@ function handleImportFiles(filesList: any[]) {
       const rawFile = new File([response.data], file_name, { type: response.data.type });
       const fileHash = await calculateFileHash(rawFile);
 
-      if (importedFileHashes.value.includes(fileHash)) {
+      if (importedFileHashes.value.includes(fileHash as string)) {
         ElMessage({
           message: `文件“${file_name}”已导入过,不能重复导入`,
           type: 'info',
@@ -459,7 +464,7 @@ function handleImportFiles(filesList: any[]) {
       const file = rawFile as UploadRawFile;
       file.uid = genFileId();
       upload.value!.handleStart(file);
-      importedFileHashes.value.push(fileHash);
+      importedFileHashes.value.push(fileHash as string);
       ElMessage({
         message: `文件“${file_name}”导入成功`,
         type: 'success',
@@ -508,18 +513,18 @@ const handleConfirm = () => {
     }
   })
 }
-defineExpose({ showDialog,clearFileList })
+defineExpose({ showDialog, clearFileList })
 
 function handleClosed() {
   knowledgeBase.value.visible = false
-  clearFileList ()
+  clearFileList()
 }
 
 watch(() => knowledgeBase.value.activeId, (newValue) => {
   debounceGetKBfileList()
   // console.log('activeId', newValue)
 })
-watch(() =>knowledgeBase.value.visible, (newValue) => {
+watch(() => knowledgeBase.value.visible, (newValue) => {
   if (!newValue) {
     KBTableRef.value.clearSelection() // 清除选择
   }
@@ -748,6 +753,10 @@ onMounted(() => {
       &:is([type='warning']) {
         background-color: #E6A23C;
       }
+
+      &:is([type='danger']) {
+        background-color: #F56C6C;
+      }
     }
 
     .operation {
@@ -797,6 +806,8 @@ onMounted(() => {
     // background-color: @bgColor;
     display: flex;
     padding: 0px 5px;
+    justify-content: end;
+    margin-top: 10px;
 
     ::v-deep.el-pagination {
       background-color: #fff;

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

@@ -61,7 +61,7 @@
                     <i class="circle" type="danger"></i>
                     <el-text type="danger">禁用</el-text>
                   </span>
-                  <el-switch v-model="row.status" @change="handleStatusChange(row.id,row.status)"></el-switch>
+                  <el-switch v-model="row.status" @change="handleStatusChange(row.id, row.status)"></el-switch>
                 </div>
               </template>
             </el-table-column>
@@ -168,26 +168,29 @@ async function checkLinkValidity(index, url) {
 }
 // 定义处理关闭查看器的方法
 const handleCloseViewer = () => {
-  viewFileData.show = false;
+
+  viewFileData.value.show = false;
 };
 // 修改状态
-const handleStatusChange = async (id,status) => {
+const handleStatusChange = async (id, status) => {
   console.log('handleStatusChange', status)
-  try{
-   await proxy.$http.get(api.files + `${id}/changeStatus`, {   params: {
-      status: status 
-      }})
+  try {
+    await proxy.$http.get(api.files + `${id}/changeStatus`, {
+      params: {
+        status: status
+      }
+    })
     ElMessage({
       message: '状态修改成功',
       type: 'success',
     })
   }
   catch (e) {
-    console.log(e)  
+    console.log(e)
     ElMessage({
       message: '状态修改失败',
       type: 'error',
-    })  
+    })
     let index = filesList.value.findIndex(item => item.id === id)
     filesList.value[index].status = !status // 恢复原状态
   }