|
<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;
|
}
|
</style>
|