81 lines
1.9 KiB
Vue
81 lines
1.9 KiB
Vue
<docs>
|
||
---
|
||
order: 5
|
||
title:
|
||
zh-CN: 拖拽上传
|
||
en-US: Drag and Drop
|
||
---
|
||
|
||
## zh-CN
|
||
|
||
把文件拖入指定区域,完成上传,同样支持点击上传。
|
||
|
||
设置 `multiple` 后,在 `IE10+` 可以一次上传多个文件。
|
||
|
||
## en-US
|
||
|
||
You can drag files to a specific area, to upload. Alternatively, you can also upload by selecting.
|
||
|
||
We can upload serveral files at once in modern browsers by giving the input the `multiple` attribute.
|
||
</docs>
|
||
|
||
<template>
|
||
<a-upload-dragger
|
||
v-model:fileList="fileList"
|
||
name="file"
|
||
:multiple="true"
|
||
action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
|
||
@change="handleChange"
|
||
>
|
||
<p class="ant-upload-drag-icon">
|
||
<inbox-outlined></inbox-outlined>
|
||
</p>
|
||
<p class="ant-upload-text">Click or drag file to this area to upload</p>
|
||
<p class="ant-upload-hint">
|
||
Support for a single or bulk upload. Strictly prohibit from uploading company data or other
|
||
band files
|
||
</p>
|
||
</a-upload-dragger>
|
||
</template>
|
||
<script lang="ts">
|
||
import { InboxOutlined } from '@ant-design/icons-vue';
|
||
import { message } from 'ant-design-vue';
|
||
import { defineComponent, ref } from 'vue';
|
||
|
||
interface FileItem {
|
||
uid: string;
|
||
name?: string;
|
||
status?: string;
|
||
response?: string;
|
||
url?: string;
|
||
}
|
||
|
||
interface FileInfo {
|
||
file: FileItem;
|
||
fileList: FileItem[];
|
||
}
|
||
|
||
export default defineComponent({
|
||
components: {
|
||
InboxOutlined,
|
||
},
|
||
setup() {
|
||
const handleChange = (info: FileInfo) => {
|
||
const status = info.file.status;
|
||
if (status !== 'uploading') {
|
||
console.log(info.file, info.fileList);
|
||
}
|
||
if (status === 'done') {
|
||
message.success(`${info.file.name} file uploaded successfully.`);
|
||
} else if (status === 'error') {
|
||
message.error(`${info.file.name} file upload failed.`);
|
||
}
|
||
};
|
||
return {
|
||
handleChange,
|
||
fileList: ref([]),
|
||
};
|
||
},
|
||
});
|
||
</script>
|