weapp_file_controller.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. 'use strict';
  2. module.exports = app => {
  3. class WeappFileController extends app.BaseController {
  4. /**
  5. * 获取文件列表页面数据
  6. *
  7. * @param {Object} ctx - 上下文对象
  8. */
  9. async file(ctx) {
  10. try {
  11. const { id } = ctx.query;
  12. if (!id) {
  13. ctx.body = { code: -1, msg: '缺少子项目ID', data: null };
  14. return;
  15. }
  16. // 获取子项目信息
  17. const subProject = await ctx.service.subProject.getDataById(id);
  18. if (!subProject) {
  19. ctx.body = { code: -1, msg: '子项目不存在', data: null };
  20. return;
  21. }
  22. // 获取有效的归档分类
  23. const filing = await ctx.service.filing.getValidFiling(id, subProject.permission.filing_type);
  24. // 获取所有分类数据
  25. const categoryData = await ctx.service.category.getAllCategory(subProject);
  26. // 检查权限
  27. const canFiling = subProject.permission.file_permission.indexOf(ctx.service.subProjPermission.PermissionConst.file.filing.value) >= 0;
  28. const canUpload = subProject.permission.file_permission.indexOf(ctx.service.subProjPermission.PermissionConst.file.upload.value) >= 0;
  29. const canEdit = subProject.permission.file_permission.indexOf(ctx.service.subProjPermission.PermissionConst.file.editfile.value) >= 0;
  30. // 获取文件引用列表
  31. const fileReferenceList = await ctx.service.subProject.getFileReference(subProject, ctx.service.subProject.FileReferenceType.file);
  32. ctx.body = {
  33. code: 0,
  34. msg: '获取成功',
  35. data: {
  36. filing,
  37. categoryData,
  38. canFiling,
  39. canUpload,
  40. canEdit,
  41. fileReferenceList,
  42. },
  43. };
  44. } catch (err) {
  45. this.log(err);
  46. ctx.body = { code: -1, msg: err.toString(), data: null };
  47. }
  48. }
  49. }
  50. return WeappFileController;
  51. };