From c02bff2911f720d54388f4abb6456ec1777f8a96 Mon Sep 17 00:00:00 2001
From: zhangxiao <898441624@qq.com>
Date: 星期五, 30 八月 2024 10:40:02 +0800
Subject: [PATCH] fix: 修改bug

---
 src/views/dmx/knowledgeLib/add.vue |  276 +++++++++++++++++++++---------------------------------
 1 files changed, 108 insertions(+), 168 deletions(-)

diff --git a/src/views/dmx/knowledgeLib/add.vue b/src/views/dmx/knowledgeLib/add.vue
index b1f803a..da877ce 100644
--- a/src/views/dmx/knowledgeLib/add.vue
+++ b/src/views/dmx/knowledgeLib/add.vue
@@ -1,192 +1,132 @@
-
 <template>
-  <a-button type="primary" @click="handleClick">
+  <a-button type="primary" v-hasPermi="'/kb/data_add'" @click="handleClick">
     <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="acceptNameList" :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-tab-pane key="1" title="鏂囦欢"> </a-tab-pane>
+      <a-tab-pane key="2" title="鏂囦欢澶�"> </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, computed } from "vue";
-import axios from 'axios';
-let CancelToken = axios.CancelToken
-let source = null
-const visible = ref(false);
-const loading = ref(false);
-const activeKey = ref('1');
-const formRef = ref(null);
-const uploadList = ref([]);
-const form = reactive({
-  name: '',// 鐢ㄦ埛鍚�
-  nameJoin: '',// 鏄电О
-  post: '',// 宀椾綅
-  txt: '',// 澶囨敞
-});
-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,'
-  }
-)
-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);
-    };
-  }
-  xhr.onerror = function error(e) {
-    onError(e);
-  };
-  xhr.onload = function onload() {
-    if (xhr.status < 200 || xhr.status >= 300) {
-      return onError(xhr.responseText);
+  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([]);
+  const form = reactive({
+    name: '', // 鐢ㄦ埛鍚�
+    nameJoin: '', // 鏄电О
+    post: '', // 宀椾綅
+    txt: '', // 澶囨敞
+  });
+  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,';
+  });
+  // 涓婁紶鏂囦欢
+  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);
     }
-    onSuccess(xhr.response);
   };
 
-  const formData = new FormData();
-  formData.append(name || 'file', fileItem.file);
-  xhr.open('post', '/v1/user/login', true);
-  xhr.send(formData);
+  const handleSubmit = ({ values, errors }) => {};
 
-  return {
-    abort() {
-      xhr.abort()
-    }
-  }
-};
-// 涓婁紶鏂囦欢
-// async submitForm = ()=>{
-//   if (this.fileList && this.fileList.length > 0) {
-//     source = CancelToken.source()
-//     this.fileUploadLoad = true
-//     const formdata = new FormData()
-//     let param = {
-//       userName: this.userInfo.userName,
-//       userId: this.userInfo.userID,
-//       cfeId: this.currow.conferences[0].id,
-//     }
-//     this.fileList.map((item) => {
-//       formdata.append('file', item.raw)
-//     })
-//     uploadCfeFile(
-//       { param, formdata },
-//       (progressEvent) => {
-//         let total = progressEvent.total
-//         let loaded = progressEvent.loaded
-//         this.uploadPercent = parseInt(((loaded / total) * 100).toFixed(0))
-//       },
-//       source
-//     )
-//       .then((res) => {
-//         if (res.data.code === '0') {
-//           //涓婁紶鎴愬姛
-//           this.$successMessage(
-//             this.translateTitle(
-//               'json_fileupload.json_file_tip.json_file_tip08'
-//             )
-//           )
-//           this.fileList = []
-//           this.$refs.upload.clearFiles()
-//           this.queryList()
-//         } else {
-//           this.$errorMessage(res.data.message)
-//         }
-//         this.fileUploadLoad = false
-//         this.uploadPercent = 0
-//       })
-//       .catch((error) => {
-//         this.fileUploadLoad = false
-//         this.uploadPercent = 0
-//         if (axios.isCancel(error)) {
-//           //宸茬粓姝笂浼�
-//           this.$errorMessage(
-//             this.translateTitle(
-//               'json_fileupload.json_file_tip.json_file_tip09'
-//             )
-//           )
-//         } else {
-//           this.$errorMessage('鏂囦欢澶у皬瓒呰繃闄愬埗锛屼笂浼犲け璐�')
-//         }
-//       })
-//   } else {
-//     //璇烽�夋嫨瑕佷笂浼犵殑鏂囦欢
-//     this.$warningMessage(
-//       this.translateTitle('json_fileupload.json_file_tip.json_file_tip10')
-//     )
-//   }
-// }
+  const onChange = (fileList) => {
+    files.value = fileList;
+  };
 
+  const handleClick = () => {
+    visible.value = true;
+  };
+  const handleBeforeOk = (done) => {
+    submitForm(done);
+  };
+  const handleCancel = () => {
+    visible.value = false;
+  };
 
-
-const handleSubmit = ({values, errors}) => {
-  console.log('values:', values, '\nerrors:', errors)
-}
-
-const handleClick = () => {
-  visible.value = true;
-};
-const handleBeforeOk = (done) => {
-
-};
-const handleCancel = () => {
-  visible.value = false;
-}
-
-const handleOpened =(el) => {
-  uploadList.value = [];
-  console.log(uploadList, 'uploadList');
-  console.log(activeKey.value, 'activeKey');
-}
-const activeKeyChange = (value)=>{
-  activeKey.value = value;
-}
-onBeforeMount(()=>{
-
-})
-onMounted(()=>{
-
-
-})
+  const handleOpened = (el) => {
+    // console.log(props.kbobj);
+    uploadList.value = [];
+    files.value = [];
+    loading.value = false;
+  };
+  const activeKeyChange = (value) => {
+    activeKey.value = value;
+    directory.value = value == '2' ? true : false;
+  };
+  onBeforeMount(() => {});
+  onMounted(() => {});
 </script>
 
 <script lang="ts">
-export default {
-  name: 'add',
-  methods: {
-
-  }
-};
+  export default {
+    name: 'add',
+    methods: {},
+  };
 </script>
 
 <style scoped lang="less">
-.aUpload {
-  width: 100%;
-  max-height: 500px;
-  overflow: hidden;
-  overflow-y: auto;
-}
-</style>
\ No newline at end of file
+  .aUpload {
+    width: 100%;
+    max-height: 500px;
+    overflow: hidden;
+    overflow-y: auto;
+    :deep(.arco-upload-progress) {
+      display: none;
+    }
+  }
+</style>

--
Gitblit v1.8.0