Upload.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  2. import { createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
  3. import { defineComponent, ref } from 'vue';
  4. import { initDefaultProps } from '../_util/props-util';
  5. import AjaxUpload from './AjaxUploader';
  6. import { uploadProps } from './interface';
  7. function empty() {}
  8. export default defineComponent({
  9. compatConfig: {
  10. MODE: 3
  11. },
  12. name: 'Upload',
  13. inheritAttrs: false,
  14. props: initDefaultProps(uploadProps(), {
  15. componentTag: 'span',
  16. prefixCls: 'rc-upload',
  17. data: {},
  18. headers: {},
  19. name: 'file',
  20. multipart: false,
  21. onStart: empty,
  22. onError: empty,
  23. onSuccess: empty,
  24. multiple: false,
  25. beforeUpload: null,
  26. customRequest: null,
  27. withCredentials: false,
  28. openFileDialogOnClick: true
  29. }),
  30. setup(props, _ref) {
  31. let {
  32. slots,
  33. attrs,
  34. expose
  35. } = _ref;
  36. const uploader = ref();
  37. const abort = file => {
  38. var _a;
  39. (_a = uploader.value) === null || _a === void 0 ? void 0 : _a.abort(file);
  40. };
  41. expose({
  42. abort
  43. });
  44. return () => {
  45. return _createVNode(AjaxUpload, _objectSpread(_objectSpread(_objectSpread({}, props), attrs), {}, {
  46. "ref": uploader
  47. }), slots);
  48. };
  49. }
  50. });