ant-design-vue/components/vc-upload/Upload.tsx
tangjinzhou 04baae5a57
Refactor upload (#5290)
* refactor: vc-upload

* refactor: vc-upload

* refactor: upload

* refactor: upload

* refactor: upload
2022-02-24 09:58:58 +08:00

42 lines
993 B
Vue

import { defineComponent, ref } from 'vue';
import { initDefaultProps } from '../_util/props-util';
import AjaxUpload from './AjaxUploader';
import type { RcFile } from './interface';
import { uploadProps } from './interface';
function empty() {}
export default defineComponent({
name: 'Upload',
inheritAttrs: false,
props: initDefaultProps(uploadProps(), {
componentTag: 'span',
prefixCls: 'rc-upload',
data: {},
headers: {},
name: 'file',
multipart: false,
onStart: empty,
onError: empty,
onSuccess: empty,
multiple: false,
beforeUpload: null,
customRequest: null,
withCredentials: false,
openFileDialogOnClick: true,
}),
setup(props, { slots, attrs, expose }) {
const uploader = ref();
const abort = (file: RcFile) => {
uploader.value?.abort(file);
};
expose({
abort,
});
return () => {
return <AjaxUpload {...props} {...attrs} v-slots={slots} ref={uploader} />;
};
},
});