helper.ts 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import { queenApi } from "queenjs";
  2. import { ResourceModule } from ".";
  3. export const helper = ResourceModule.helper({
  4. createFileName(fileName: string, dir: string) {
  5. const suffix = fileName.substring(fileName.lastIndexOf("."));
  6. if (/[\u4e00-\u9fa5]/.test(fileName) || fileName.length > 10) {
  7. fileName = `${this.controls.uploader.randomName(4)}${suffix}`;
  8. }
  9. return `${dir}/${Date.now()}_${this.controls.uploader.randomName(
  10. 6
  11. )}_${fileName}`;
  12. },
  13. // createSourceController() {
  14. // const { controls, actions } = this;
  15. // const ctrl = new MaterialController();
  16. // ctrl.imageCtrl = controls.materialImageListCtrl;
  17. // ctrl.vidoeCtrl = controls.materialVideoListCtrl;
  18. // ctrl.taskCtrl = controls.renderTaskListCtrl;
  19. // ctrl.tplCtrl = controls.matTempListCtrl;
  20. // ctrl.onBtnClick = async function (name: string) {
  21. // if (name == "upload") {
  22. // const uploaded = await actions.uploadMaterial();
  23. // ctrl.switchTab(uploaded.fileType, false);
  24. // ctrl.getCurrControl().loadPage(1);
  25. // return;
  26. // }
  27. // ctrl.showDialog(name);
  28. // };
  29. // ctrl.onItemClick = function (name, record) {
  30. // if (name == "delete") return actions.deleteMaterial(record);
  31. // return actions.downloadMaterial(record);
  32. // };
  33. // return ctrl;
  34. // },
  35. async uploadResource(opts?: { accept?: string; multiple?: boolean }) {
  36. const result = [];
  37. const blobs = await queenApi.selectFile(opts);
  38. queenApi.showLoading("上传中……");
  39. for (const key in blobs) {
  40. const blob = blobs[key];
  41. const file = await this.controls.uploader.uploadFile(blob, "queenshow");
  42. const souceObj = {
  43. file,
  44. fileType: blob.type.split("/")[0],
  45. from: "upload",
  46. };
  47. result.push(souceObj);
  48. }
  49. queenApi.hideLoading();
  50. return result;
  51. },
  52. async uploadMaterials(opts?: { accept?: string; multiple?: boolean }) {
  53. const result: any = {
  54. successRow: [],
  55. failRow: [],
  56. };
  57. const blobs = await queenApi.selectFile(opts);
  58. queenApi.showLoading("上传中……");
  59. for (const key in blobs) {
  60. const blob = blobs[key];
  61. if (blob.type.indexOf("image") !== -1 && blob.size >= 10 * 1024 * 1024) {
  62. result.failRow.push(blob);
  63. } else if (
  64. blob.type.indexOf("video") !== -1 &&
  65. blob.size >= 200 * 1024 * 1024
  66. ) {
  67. result.failRow.push(blob);
  68. } else {
  69. const file = await this.controls.uploader.uploadFile(blob, "queenshow");
  70. const souceObj = {
  71. file,
  72. fileType: blob.type.split("/")[0],
  73. from: "upload",
  74. isSvg: blob.name.toLowerCase().lastIndexOf(".svg") == blob.name.length -4
  75. };
  76. result.successRow.push(souceObj);
  77. }
  78. }
  79. queenApi.hideLoading();
  80. return result;
  81. },
  82. });