'use strict'; module.exports = app => { class WeappFileController extends app.BaseController { /** * 获取文件列表页面数据 * * @param {Object} ctx - 上下文对象 */ async file(ctx) { try { const { id } = ctx.query; if (!id) { ctx.body = { code: -1, msg: '缺少子项目ID', data: null }; return; } // 获取子项目信息 const subProject = await ctx.service.subProject.getDataById(id); if (!subProject) { ctx.body = { code: -1, msg: '子项目不存在', data: null }; return; } // 获取有效的归档分类 const filing = await ctx.service.filing.getValidFiling(id, subProject.permission.filing_type); // 获取所有分类数据 const categoryData = await ctx.service.category.getAllCategory(subProject); // 检查权限 const canFiling = subProject.permission.file_permission.indexOf(ctx.service.subProjPermission.PermissionConst.file.filing.value) >= 0; const canUpload = subProject.permission.file_permission.indexOf(ctx.service.subProjPermission.PermissionConst.file.upload.value) >= 0; const canEdit = subProject.permission.file_permission.indexOf(ctx.service.subProjPermission.PermissionConst.file.editfile.value) >= 0; // 获取文件引用列表 const fileReferenceList = await ctx.service.subProject.getFileReference(subProject, ctx.service.subProject.FileReferenceType.file); ctx.body = { code: 0, msg: '获取成功', data: { filing, categoryData, canFiling, canUpload, canEdit, fileReferenceList, }, }; } catch (err) { this.log(err); ctx.body = { code: -1, msg: err.toString(), data: null }; } } } return WeappFileController; };