<template>
|
<a-button type="primary" @click="handleClick">
|
<template #icon>
|
<icon-plus />
|
</template>
|
新增文件
|
</a-button>
|
<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="文件"> </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';
|
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);
|
}
|
};
|
|
const handleSubmit = ({ values, 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 = [];
|
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: {},
|
};
|
</script>
|
|
<style scoped lang="less">
|
.aUpload {
|
width: 100%;
|
max-height: 500px;
|
overflow: hidden;
|
overflow-y: auto;
|
:deep(.arco-upload-progress) {
|
display: none;
|
}
|
}
|
</style>
|