From 4fdfacbe067d10cc1adfe5a9a3f9ea4495ba5f4d Mon Sep 17 00:00:00 2001
From: liudong <liudong>
Date: 星期四, 01 八月 2024 19:09:43 +0800
Subject: [PATCH] 解析块和解析方法的页面开发和功能开发

---
 src/views/dmx/knowledgeLib/add.vue |  116 +++++++++++++++++++++++++++++++++------------------------
 1 files changed, 67 insertions(+), 49 deletions(-)

diff --git a/src/views/dmx/knowledgeLib/add.vue b/src/views/dmx/knowledgeLib/add.vue
index 4fa459a..5f7749d 100644
--- a/src/views/dmx/knowledgeLib/add.vue
+++ b/src/views/dmx/knowledgeLib/add.vue
@@ -4,30 +4,41 @@
     <template #icon>
       <icon-plus />
     </template>
-    鏂板缓鏂囦欢
+    鏂板鏂囦欢
   </a-button>
-  <a-modal v-model:visible="visible" title="涓婁紶鏂囦欢" @before-open="handleOpened" @cancel="handleCancel" @before-ok="handleBeforeOk" title-align="start">
+  <a-modal v-model:visible="visible" title="涓婁紶鏂囦欢" @open="handleOpened" @cancel="handleCancel" :ok-loading="loading" @before-ok="handleBeforeOk" title-align="start">
     <a-tabs :default-active-key="activeKey" @change="activeKeyChange">
       <a-tab-pane key="1" title="鏂囦欢">
-        <div class="aUpload">
-<!--          <a-upload :file-list="uploadList" draggable accept=".word, .pdf, .ppt, .excel, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .pptx, .ppt, .pdf, .mp4, .avi, .mp3,.wav, .wma, .wmv, .rm," :custom-request="customRequest" />-->
-          <a-upload :file-list="uploadList" draggable accept=".word, .pdf, .ppt, .excel, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .pptx, .ppt," :custom-request="customRequest" />
-        </div>
       </a-tab-pane>
       <a-tab-pane key="2" title="鏂囦欢澶�">
-        <div class="aUpload">
-          <a-upload :file-list="uploadList" draggable accept=".word, .pdf, .ppt, .excel, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .pptx, .ppt,"  directory   :custom-request="customRequest" />
-        </div>
       </a-tab-pane>
     </a-tabs>
+    <div class="aUpload">
+      <!--          <a-upload :file-list="uploadList" draggable accept=".word, .pdf, .ppt, .excel, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .pptx, .ppt, .pdf, .mp4, .avi, .mp3,.wav, .wma, .wmv, .rm," :custom-request="customRequest" />-->
+      <a-upload
+        action="/"
+        :auto-upload="false"
+        ref="uploadRef"
+        :file-list="uploadList"
+        draggable
+        :directory="directory"
+        @change="onChange"
+        multiple
+      />
+    </div>
   </a-modal>
 </template>
 
 <script lang="ts" setup>
-import { onMounted ,onBeforeMount, reactive, ref } from "vue";
-
+import { onMounted, onBeforeMount, reactive, ref, computed } from "vue";
+import axios from 'axios';
+import { kbdocumentupload } from "@/api/kbList";
+import { Message } from '@arco-design/web-vue';
+let CancelToken = axios.CancelToken
+let source = null
 const visible = ref(false);
 const loading = ref(false);
+const directory = ref(false);
 const activeKey = ref('1');
 const formRef = ref(null);
 const uploadList = ref([]);
@@ -37,64 +48,71 @@
   post: '',// 宀椾綅
   txt: '',// 澶囨敞
 });
-
-
-const customRequest = (option) => {
-  const {onProgress, onError, onSuccess, fileItem, name} = option
-  const xhr = new XMLHttpRequest();
-  if (xhr.upload) {
-    xhr.upload.onprogress = function (event) {
-      let percent;
-      if (event.total > 0) {
-        // 0 ~ 1
-        percent = event.loaded / event.total;
-      }
-      onProgress(percent, event);
-    };
+const props =  defineProps(['kbobj'])
+const emit =  defineEmits(['changeFetchData'])
+const uploadRef = ref();
+const files = ref([]);
+console.log(props.kbobj);
+const acceptNameList = computed(
+  ()=>{
+    return '.word, .pdf, .ppt, .excel, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .pptx, .ppt, .pdf, .mp4, .avi, .mp3,.wav, .wma, .wmv, .rm,'
   }
-  xhr.onerror = function error(e) {
-    onError(e);
-  };
-  xhr.onload = function onload() {
-    if (xhr.status < 200 || xhr.status >= 300) {
-      return onError(xhr.responseText);
-    }
-    onSuccess(xhr.response);
-  };
-
-  const formData = new FormData();
-  formData.append(name || 'file', fileItem.file);
-  xhr.open('post', '//upload-z2.qbox.me/', true);
-  xhr.send(formData);
-
-  return {
-    abort() {
-      xhr.abort()
-    }
+)
+// 涓婁紶鏂囦欢
+const submitForm = async(done)=>{
+  if (files.value && files.value.length > 0) {
+    files.value.map((item) => {
+      const formData = new FormData()
+      formData.append('file', item.file);
+      formData.append('kb_id', props.kbobj.id);
+      kbdocumentupload(formData).then((res) => {
+        if(res.code == 0){
+          emit('changeFetchData')
+          Message.success('涓婁紶鎴愬姛');
+          handleCancel()
+        }
+      })
+    })
+    done(false)
+  }else {
+    done(false)
   }
-};
+}
 
 const handleSubmit = ({values, errors}) => {
-  console.log('values:', values, '\nerrors:', errors)
+
 }
+
+
+const onChange = (fileList) => {
+  files.value = fileList;
+};
+
+
+
+
+
 
 const handleClick = () => {
   visible.value = true;
 };
 const handleBeforeOk = (done) => {
-
+  submitForm(done);
 };
 const handleCancel = () => {
   visible.value = false;
 }
 
 const handleOpened =(el) => {
+  // console.log(props.kbobj);
   uploadList.value = [];
-  console.log(uploadList, 'uploadList');
-  console.log(activeKey.value, 'activeKey');
+  files.value = [];
+  loading.value = false;
+
 }
 const activeKeyChange = (value)=>{
   activeKey.value = value;
+  directory.value = value == '2' ? true : false;
 }
 onBeforeMount(()=>{
 

--
Gitblit v1.8.0