Helper.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. export default class Helper {
  2. constructor(Uploder) {
  3. this.uploader = Uploder;
  4. this.isSupportBase64 = this.supportBase64();
  5. }
  6. // 判断是否支持base64
  7. supportBase64() {
  8. let data = new Image(),
  9. support = true;
  10. data.onload = data.onerror = function () {
  11. if (this.width != 1 || this.height != 1) {
  12. support = false;
  13. }
  14. };
  15. data.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
  16. return support;
  17. }
  18. // 显示api响应的错误信息
  19. showError(response) {
  20. var message = 'Unknown error!';
  21. if (response && response.data) {
  22. message = response.data.message || message;
  23. }
  24. Dcat.error(message)
  25. }
  26. // 文件排序
  27. orderFiles($this) {
  28. var _this = this,
  29. $li = $this.parents('li').first(),
  30. fileId = $this.data('id'),
  31. order = $this.data('order'),
  32. $prev = $li.prev(),
  33. $next = $li.next();
  34. if (order) {
  35. // 升序
  36. if (!$prev.length) {
  37. return;
  38. }
  39. _this.swrapUploadedFile(fileId, order);
  40. _this.uploader.reRenderUploadedFiles();
  41. return;
  42. }
  43. if (!$next.length) {
  44. return;
  45. }
  46. _this.swrapUploadedFile(fileId, order);
  47. _this.uploader.reRenderUploadedFiles();
  48. }
  49. // 交换文件排序
  50. swrapUploadedFile(fileId, order) {
  51. let _this = this,
  52. parent = _this.uploader,
  53. uploadedFiles = parent.addUploadedFile.uploadedFiles,
  54. index = parseInt(_this.searchUploadedFile(fileId)),
  55. currentFile = uploadedFiles[index],
  56. prevFile = uploadedFiles[index - 1],
  57. nextFile = uploadedFiles[index + 1];
  58. if (order) {
  59. if (index === 0) {
  60. return;
  61. }
  62. uploadedFiles[index - 1] = currentFile;
  63. uploadedFiles[index] = prevFile;
  64. } else {
  65. if (!nextFile) {
  66. return;
  67. }
  68. uploadedFiles[index + 1] = currentFile;
  69. uploadedFiles[index] = nextFile;
  70. }
  71. _this.setUploadedFilesToInput();
  72. }
  73. setUploadedFilesToInput() {
  74. let _this = this,
  75. parent = _this.uploader,
  76. uploadedFiles = parent.addUploadedFile.uploadedFiles,
  77. files = [],
  78. i;
  79. for (i in uploadedFiles) {
  80. if (uploadedFiles[i]) {
  81. files.push(uploadedFiles[i].serverId);
  82. }
  83. }
  84. parent.input.set(files);
  85. }
  86. // 查找文件位置
  87. searchUploadedFile(fileId) {
  88. let _this = this,
  89. parent = _this.uploader,
  90. uploadedFiles = parent.addUploadedFile.uploadedFiles;
  91. for (var i in uploadedFiles) {
  92. if (uploadedFiles[i].serverId === fileId) {
  93. return i;
  94. }
  95. }
  96. return -1;
  97. }
  98. }