|
|
@@ -3,6 +3,27 @@
|
|
|
module.exports = app => {
|
|
|
class WeappFileController extends app.BaseController {
|
|
|
|
|
|
+ async getSubProjectPermission(ctx, spid) {
|
|
|
+ const sessionUser = ctx.session.sessionUser;
|
|
|
+
|
|
|
+ // 如果是管理员,返回全部权限
|
|
|
+ if (sessionUser.is_admin) {
|
|
|
+ return ctx.service.subProjPermission.adminPermission;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 否则获取用户在该子项目的权限
|
|
|
+ const permission = await ctx.service.subProjPermission.getSubProjectUserPermission(
|
|
|
+ spid,
|
|
|
+ sessionUser.accountId
|
|
|
+ );
|
|
|
+
|
|
|
+ if (!permission) {
|
|
|
+ throw '您无权查看该项目';
|
|
|
+ }
|
|
|
+
|
|
|
+ return permission;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取文件列表页面数据
|
|
|
*
|
|
|
@@ -23,16 +44,20 @@ module.exports = app => {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ // 获取用户在该子项目的权限信息
|
|
|
+ const permission = await this.getSubProjectPermission(ctx, id);
|
|
|
+
|
|
|
// 获取有效的归档分类
|
|
|
- const filing = await ctx.service.filing.getValidFiling(id, subProject.permission.filing_type);
|
|
|
+ const filing = await ctx.service.filing.getValidFiling(id, permission.filing_type);
|
|
|
+ // 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 canFiling = permission.file_permission.indexOf(ctx.service.subProjPermission.PermissionConst.file.filing.value) >= 0;
|
|
|
+ const canUpload = permission.file_permission.indexOf(ctx.service.subProjPermission.PermissionConst.file.upload.value) >= 0;
|
|
|
+ const canEdit = 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);
|
|
|
@@ -55,6 +80,45 @@ module.exports = app => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取第一层级归档分类
|
|
|
+ *
|
|
|
+ * @param {Object} ctx - 上下文对象
|
|
|
+ */
|
|
|
+ async getFirstLevelFiling(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 allFiling = await ctx.service.filing.getValidFiling(id, subProject.permission.filing_type);
|
|
|
+
|
|
|
+ // 过滤出第一层级数据
|
|
|
+ const firstLevelFiling = allFiling.filter(item => item.tree_level === 1);
|
|
|
+
|
|
|
+ ctx.body = {
|
|
|
+ code: 0,
|
|
|
+ msg: '获取成功',
|
|
|
+ data: {
|
|
|
+ filing: firstLevelFiling,
|
|
|
+ },
|
|
|
+ };
|
|
|
+ } catch (err) {
|
|
|
+ this.log(err);
|
|
|
+ ctx.body = { code: -1, msg: err.toString(), data: null };
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
return WeappFileController;
|