82 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Vue
		
	
	
<docs>
 | 
						|
---
 | 
						|
order: 12
 | 
						|
title:
 | 
						|
  zh-CN: 自定义交互图标
 | 
						|
  en-US: custom action icon
 | 
						|
---
 | 
						|
 | 
						|
## zh-CN
 | 
						|
 | 
						|
使用相应插槽设置列表交互图标。
 | 
						|
 | 
						|
## en-US
 | 
						|
 | 
						|
Use slot for custom action icons of files.
 | 
						|
</docs>
 | 
						|
 | 
						|
<template>
 | 
						|
  <a-upload
 | 
						|
    v-model:file-list="fileList"
 | 
						|
    action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
 | 
						|
    :show-upload-list="{ showDownloadIcon: true, showRemoveIcon: true }"
 | 
						|
    @change="handleChange"
 | 
						|
  >
 | 
						|
    <a-button>
 | 
						|
      <upload-outlined></upload-outlined>
 | 
						|
      Upload
 | 
						|
    </a-button>
 | 
						|
    <template #downloadIcon>download</template>
 | 
						|
    <template #removeIcon><StarOutlined @click="handleClick"></StarOutlined></template>
 | 
						|
  </a-upload>
 | 
						|
</template>
 | 
						|
<script lang="ts">
 | 
						|
import { UploadOutlined, StarOutlined } from '@ant-design/icons-vue';
 | 
						|
import { defineComponent, ref } from 'vue';
 | 
						|
import type { UploadChangeParam, UploadProps } from 'ant-design-vue';
 | 
						|
 | 
						|
export default defineComponent({
 | 
						|
  components: {
 | 
						|
    UploadOutlined,
 | 
						|
    StarOutlined,
 | 
						|
  },
 | 
						|
  setup() {
 | 
						|
    const fileList = ref<UploadProps['fileList']>([
 | 
						|
      {
 | 
						|
        uid: '1',
 | 
						|
        name: 'xxx.png',
 | 
						|
        status: 'done',
 | 
						|
        response: 'Server Error 500', // custom error message to show
 | 
						|
        url: 'http://www.baidu.com/xxx.png',
 | 
						|
      },
 | 
						|
      {
 | 
						|
        uid: '2',
 | 
						|
        name: 'yyy.png',
 | 
						|
        status: 'done',
 | 
						|
        url: 'http://www.baidu.com/yyy.png',
 | 
						|
      },
 | 
						|
      {
 | 
						|
        uid: '3',
 | 
						|
        name: 'zzz.png',
 | 
						|
        status: 'error',
 | 
						|
        response: 'Server Error 500', // custom error message to show
 | 
						|
        url: 'http://www.baidu.com/zzz.png',
 | 
						|
      },
 | 
						|
    ]);
 | 
						|
 | 
						|
    const handleChange = ({ file, fileList }: UploadChangeParam) => {
 | 
						|
      if (file.status !== 'uploading') {
 | 
						|
        console.log(file, fileList);
 | 
						|
      }
 | 
						|
    };
 | 
						|
    return {
 | 
						|
      fileList,
 | 
						|
      handleChange,
 | 
						|
      handleClick: (e: MouseEvent) => {
 | 
						|
        console.log(e, 'custom removeIcon event');
 | 
						|
      },
 | 
						|
    };
 | 
						|
  },
 | 
						|
});
 | 
						|
</script>
 |