62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Vue
		
	
	
| <docs>
 | ||
| ---
 | ||
| order: 5
 | ||
| title:
 | ||
|   zh-CN: 拖拽上传
 | ||
|   en-US: Drag and Drop
 | ||
| ---
 | ||
| 
 | ||
| ## zh-CN
 | ||
| 
 | ||
| 把文件拖入指定区域,完成上传,同样支持点击上传。
 | ||
| 
 | ||
| 设置 `multiple` 后,可以一次上传多个文件。
 | ||
| 
 | ||
| ## 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 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"
 | ||
|     @drop="handleDrop"
 | ||
|   >
 | ||
|     <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" setup>
 | ||
| import { ref } from 'vue';
 | ||
| import { InboxOutlined } from '@ant-design/icons-vue';
 | ||
| import { message } from 'ant-design-vue';
 | ||
| import type { UploadChangeParam } from 'ant-design-vue';
 | ||
| const fileList = ref([]);
 | ||
| const handleChange = (info: UploadChangeParam) => {
 | ||
|   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.`);
 | ||
|   }
 | ||
| };
 | ||
| function handleDrop(e: DragEvent) {
 | ||
|   console.log(e);
 | ||
| }
 | ||
| </script>
 |