Upload.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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: function setup(props, _ref) {
  31. var slots = _ref.slots,
  32. attrs = _ref.attrs,
  33. expose = _ref.expose;
  34. var uploader = ref();
  35. var abort = function abort(file) {
  36. var _uploader$value;
  37. (_uploader$value = uploader.value) === null || _uploader$value === void 0 ? void 0 : _uploader$value.abort(file);
  38. };
  39. expose({
  40. abort: abort
  41. });
  42. return function () {
  43. return _createVNode(AjaxUpload, _objectSpread(_objectSpread(_objectSpread({}, props), attrs), {}, {
  44. "ref": uploader
  45. }), slots);
  46. };
  47. }
  48. });