SkuImgUploader.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports.default = void 0;
  5. var _utils = require("../../utils");
  6. var _uploader = _interopRequireDefault(require("../../uploader"));
  7. // Utils
  8. // Components
  9. var namespace = (0, _utils.createNamespace)('sku-img-uploader');
  10. var createComponent = namespace[0];
  11. var t = namespace[2];
  12. var _default = createComponent({
  13. props: {
  14. value: String,
  15. uploadImg: Function,
  16. maxSize: {
  17. type: Number,
  18. default: 6
  19. }
  20. },
  21. data: function data() {
  22. return {
  23. fileList: []
  24. };
  25. },
  26. watch: {
  27. value: function value(val) {
  28. if (val) {
  29. this.fileList = [{
  30. url: val,
  31. isImage: true
  32. }];
  33. } else {
  34. this.fileList = [];
  35. }
  36. }
  37. },
  38. methods: {
  39. afterReadFile: function afterReadFile(file) {
  40. var _this = this;
  41. file.status = 'uploading';
  42. file.message = t('uploading');
  43. this.uploadImg(file.file, file.content).then(function (img) {
  44. file.status = 'done';
  45. _this.$emit('input', img);
  46. }).catch(function () {
  47. file.status = 'failed';
  48. file.message = t('fail');
  49. });
  50. },
  51. onOversize: function onOversize() {
  52. this.$toast(t('oversize', this.maxSize));
  53. },
  54. onDelete: function onDelete() {
  55. this.$emit('input', '');
  56. }
  57. },
  58. render: function render() {
  59. var _this2 = this;
  60. var h = arguments[0];
  61. return h(_uploader.default, {
  62. "attrs": {
  63. "maxCount": 1,
  64. "afterRead": this.afterReadFile,
  65. "maxSize": this.maxSize * 1024 * 1024
  66. },
  67. "on": {
  68. "oversize": this.onOversize,
  69. "delete": this.onDelete
  70. },
  71. "model": {
  72. value: _this2.fileList,
  73. callback: function callback($$v) {
  74. _this2.fileList = $$v;
  75. }
  76. }
  77. });
  78. }
  79. });
  80. exports.default = _default;