helper.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { PageListController } from "@queenjs/controllers";
  2. import { ResourceModule } from ".";
  3. import { PromotionController } from "./controllers/PromotionController";
  4. import { MaterialController } from "./controllers/MaterialController";
  5. export const helper = ResourceModule.helper({
  6. createFileName(fileName: string, dir: string) {
  7. const suffix = fileName.substring(fileName.lastIndexOf("."));
  8. if (/[\u4e00-\u9fa5]/.test(fileName) || fileName.length > 10) {
  9. fileName = `${this.controls.uploader.randomName(4)}${suffix}`;
  10. }
  11. return `${dir}/${Date.now()}_${this.controls.uploader.randomName(
  12. 6
  13. )}_${fileName}`;
  14. },
  15. createPromotinController() {
  16. const ctrl= new PromotionController();
  17. ctrl.ListCtrl = new PageListController(this.config?.httpConfig);
  18. ctrl.ListCtrl.setCrudPrefix("/h5")
  19. ctrl.createPromotion = this.actions.createPromotion;
  20. return ctrl;
  21. },
  22. createSourceController(isSelectModel:boolean, selectType :string) {
  23. const {controls, actions} = this;
  24. const ctrl = new MaterialController();
  25. ctrl.imageCtrl = controls.materialImageListCtrl;
  26. ctrl.vidoeCtrl = controls.materialVideoListCtrl;
  27. ctrl.taskCtrl = controls.renderTaskListCtrl;
  28. ctrl.tplCtrl = controls.matTempListCtrl;
  29. ctrl.onBtnClick = async function (name: string) {
  30. if (name == "upload") {
  31. const uploaded = await actions.uploadMaterial();
  32. ctrl.switchTab(uploaded.fileType, false);
  33. ctrl.getCurrControl().loadPage(1);
  34. return;
  35. }
  36. ctrl.showDialog(name);
  37. };
  38. ctrl.onItemClick = function (name, record) {
  39. if (name == "delete") return actions.deleteMaterial(record);
  40. return actions.downloadMaterial(record);
  41. };
  42. return ctrl
  43. }
  44. });