caipin 1 неделя назад
Родитель
Сommit
279e770679
2 измененных файлов с 62 добавлено и 0 удалено
  1. 61 0
      app/controller/weapp_file_controller.js
  2. 1 0
      app/router.js

+ 61 - 0
app/controller/weapp_file_controller.js

@@ -0,0 +1,61 @@
+'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;
+};

+ 1 - 0
app/router.js

@@ -1268,4 +1268,5 @@ module.exports = app => {
     app.get('/wx/weapp/tender/:tenderId/material', weappAuth, weappTenderCheck, 'weappMaterialController.index');
     app.get('/wx/weapp/tender/:tenderId/material/:mid', weappAuth, weappTenderCheck, 'weappMaterialController.detail');
     app.post('/wx/weapp/tender/:tenderId/material/:mid/audit/check', weappAuth, weappTenderCheck, 'weappMaterialController.checkAudit');
+    app.get('/wx/weapp/file/list', weappAuth, 'weappFileController.file');
 };