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