ソースを参照

11482-【CR】【投资系统】增加审批流程-各个流程附件增加、删除、修改、回显

hxy 1 ヶ月 前
コミット
a2b973d8d8
31 ファイル変更774 行追加313 行削除
  1. 5 0
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TUnifyFileController.java
  2. 21 3
      ruoyi-common/src/main/java/com/ruoyi/common/enums/FileType.java
  3. 44 9
      ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/ApprovalServiceImpl.java
  4. 22 8
      ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/DecisionServiceImpl.java
  5. 35 11
      ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/InvestigateServiceImpl.java
  6. 8 9
      ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/InvestmentOpportunityServiceImpl.java
  7. 4 0
      ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectApproval.java
  8. 4 0
      ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectDecision.java
  9. 7 0
      ruoyi-system/src/main/java/com/ruoyi/invest/mapper/TProjectInformationMapper.java
  10. 8 0
      ruoyi-system/src/main/java/com/ruoyi/invest/service/ITProjectInformationService.java
  11. 10 1
      ruoyi-system/src/main/java/com/ruoyi/invest/service/impl/TProjectInformationServiceImpl.java
  12. 9 0
      ruoyi-system/src/main/resources/mapper/invest/TProjectInformationMapper.xml
  13. 16 1
      ruoyi-ui/src/api/project/investigate/pool.js
  14. 4 9
      ruoyi-ui/src/views/file/businessPlan/index.vue
  15. 11 4
      ruoyi-ui/src/views/file/decisionReport/index.vue
  16. 10 2
      ruoyi-ui/src/views/file/financialEvaluation/index.vue
  17. 10 2
      ruoyi-ui/src/views/file/initiationReport/index.vue
  18. 10 2
      ruoyi-ui/src/views/file/legalDueDiligence/index.vue
  19. 10 2
      ruoyi-ui/src/views/file/marketResearch/index.vue
  20. 10 2
      ruoyi-ui/src/views/file/projectTechnology/index.vue
  21. 270 195
      ruoyi-ui/src/views/project/approval/audit.vue
  22. 27 15
      ruoyi-ui/src/views/project/approval/detail.vue
  23. 15 0
      ruoyi-ui/src/views/project/approval/edit.vue
  24. 10 5
      ruoyi-ui/src/views/project/decision/audit.vue
  25. 10 5
      ruoyi-ui/src/views/project/decision/detail.vue
  26. 15 0
      ruoyi-ui/src/views/project/decision/edit.vue
  27. 2 2
      ruoyi-ui/src/views/project/flowBase.vue
  28. 104 4
      ruoyi-ui/src/views/project/investigate/audit.vue
  29. 25 8
      ruoyi-ui/src/views/project/investigate/detail.vue
  30. 2 2
      ruoyi-ui/src/views/project/investigate/edit.vue
  31. 36 12
      ruoyi-ui/src/views/project/meetingList.vue

+ 5 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TUnifyFileController.java

@@ -14,6 +14,7 @@ import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.file.FileUploadUtils;
 import com.ruoyi.common.utils.file.FileUtils;
 import com.ruoyi.framework.config.ServerConfig;
+import com.ruoyi.invest.service.ITProjectInformationService;
 import com.ruoyi.web.controller.common.CommonController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -59,6 +60,9 @@ public class TUnifyFileController extends BaseController
     @Autowired
     private ServerConfig serverConfig;
 
+    @Autowired
+    private ITProjectInformationService tProjectInformationService;
+
     /**
      * 查询附件列表
      */
@@ -125,6 +129,7 @@ public class TUnifyFileController extends BaseController
 	@DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable String[] ids)
     {
+        tProjectInformationService.updateTProjectInformationByFileIds(ids);
         return toAjax(tUnifyFileService.updateTUnifyFileByIds(ids));
     }
 

+ 21 - 3
ruoyi-common/src/main/java/com/ruoyi/common/enums/FileType.java

@@ -43,15 +43,33 @@ public enum FileType {
      */
     INVESTIGATE,
     /**
-     * BP附件类型
+     * BP附件类型(商业计划书)
      */
     BP,
     /**
-     * 立项资料
+     * 立项资料(立项申请报告)
      */
     APPROVAL,
     /**
-     * 投决资料
+     * 投决资料(投决申请报告)
      */
     DECISION,
+    /**
+     * 项目行研报告
+     */
+    INDUSTRY,
+    /**
+     * 项目技术报告
+     */
+    TECHNICAL,
+    /**
+     * 财务评估报告
+     */
+    FINANCE,
+    /**
+     * 法务评估报告
+     */
+    LEGAL
+
+
 }

+ 44 - 9
ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/ApprovalServiceImpl.java

@@ -148,12 +148,17 @@ public class ApprovalServiceImpl extends FlowServiceFactory implements IApproval
                         tProjectApproval.setStatus(0);//暂存
                     }
                     // todo 保存立项资料
-                    tUnifyFileService.insertTUnifyFileList(tProjectApproval.getListFile(),
+                    tUnifyFileService.insertTUnifyFileLists(tProjectApproval.getListFile(),
                             tProjectApproval.getProjectPoolId(),
                             tProjectApproval.getId(),
                             String.valueOf(FileType.APPROVAL.ordinal()),
-                            nickName);
-
+                            nickName, "l","3");
+                    // todo 保存其他附件信息
+                    tUnifyFileService.insertTUnifyFileLists(tProjectApproval.getOtherFile(),
+                            tProjectApproval.getProjectPoolId(),
+                            tProjectApproval.getId(),
+                            String.valueOf(FileType.OTHER.ordinal()),
+                            nickName,"k","3");
                     // todo 更改立项状态
                     tProjectPoolService.updateTProjectPoolByApprovalFlag(tProjectApproval.getProjectPoolId(),"1");
 
@@ -246,12 +251,20 @@ public class ApprovalServiceImpl extends FlowServiceFactory implements IApproval
         if (status) {
             TProjectPool tProjectPool=new TProjectPool();
             tProjectPool.setId(tProjectApproval.getProjectPoolId());
-            // todo 保存立项资料
-            tUnifyFileService.insertTUnifyFileList(tProjectApproval.getListFile(),
-                    tProjectApproval.getProjectPoolId(),
-                    tProjectApproval.getId(),
-                    String.valueOf(FileType.APPROVAL.ordinal()),
-                    userInfo.getNickName());
+            if ("modifyApply".equals(task.getTaskDefinitionKey())) {
+                // todo 立项申请报告
+                tUnifyFileService.insertTUnifyFileLists(tProjectApproval.getListFile(),
+                        tProjectApproval.getProjectPoolId(),
+                        tProjectApproval.getId(),
+                        String.valueOf(FileType.APPROVAL.ordinal()),
+                        userInfo.getNickName(), "l", "3");
+                // todo 保存其他附件信息
+                tUnifyFileService.insertTUnifyFileLists(tProjectApproval.getOtherFile(),
+                        tProjectApproval.getProjectPoolId(),
+                        tProjectApproval.getId(),
+                        String.valueOf(FileType.OTHER.ordinal()),
+                        userInfo.getNickName(), "k", "3");
+            }
             //发起会议
             if ("meeting".equals(task.getTaskDefinitionKey())) {
                 if(tProjectMeeting!=null&&StringUtils.isNotBlank(tProjectMeeting.getId())){
@@ -329,6 +342,28 @@ public class ApprovalServiceImpl extends FlowServiceFactory implements IApproval
 
                 tProjectScoringService.insertTProjectScoring(tProjectScoring);
             }
+            if("industryResearch".equals(task.getTaskDefinitionKey())){
+
+                // todo 保存项目行研报告
+                tUnifyFileService.insertTUnifyFileLists(tProjectApproval.getListFile(),
+                        tProjectApproval.getProjectPoolId(),
+                        tProjectApproval.getId(),//附件业务Id
+                        String.valueOf(FileType.INDUSTRY.ordinal()),//文件类型:项目行研报告
+                        userInfo.getNickName(),"m","3");
+                // todo 增加文件创建记录
+                //tProjectCirculationService.insertTProjectCirculation(tProjectApproval.getProjectPoolId(),tProjectApproval.getListFile().get(0).getNewUploadName()+"(项目行研报告)",userInfo.getNickName());
+            }
+            if("technicalResearch".equals(task.getTaskDefinitionKey())){
+                // todo 保存项目技术报告
+                tUnifyFileService.insertTUnifyFileLists(tProjectApproval.getListFile(),
+                        tProjectApproval.getProjectPoolId(),
+                        tProjectApproval.getId(),//附件业务Id
+                        String.valueOf(FileType.TECHNICAL.ordinal()),//文件类型:项目技术报告
+                        userInfo.getNickName(),"n","3");
+                // todo 增加文件创建记录
+                //tProjectCirculationService.insertTProjectCirculation(tProjectApproval.getProjectPoolId(),tProjectApproval.getListFile().get(0).getNewUploadName()+"(项目技术报告)",userInfo.getNickName());
+
+            }
             if("president".equals(task.getTaskDefinitionKey())){
                 tProjectPool.setProjectStage("3");//项目阶段-项目立项
                 tProjectPool.setProjectState("e");//项目状态-立项通过

+ 22 - 8
ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/DecisionServiceImpl.java

@@ -159,11 +159,17 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
                         tProjectDecision.setStatus(0);//暂存
                     }
                     // todo 保存投决资料
-                    tUnifyFileService.insertTUnifyFileList(tProjectDecision.getListFile(),
+                    tUnifyFileService.insertTUnifyFileLists(tProjectDecision.getListFile(),
                             tProjectDecision.getProjectPoolId(),
                             tProjectDecision.getId(),
                             String.valueOf(FileType.DECISION.ordinal()),
-                            nickName);
+                            nickName,"q","5");
+                    // todo 保存其他附件
+                    tUnifyFileService.insertTUnifyFileLists(tProjectDecision.getOtherFile(),
+                            tProjectDecision.getProjectPoolId(),
+                            tProjectDecision.getId(),
+                            String.valueOf(FileType.DECISION.ordinal()),
+                            nickName,"k","5");
 
                     // todo 更改投决状态
                     tProjectPoolService.updateTProjectPoolByDecisionFlag(tProjectDecision.getProjectPoolId(),"1");
@@ -257,12 +263,20 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
         if (status) {
             TProjectPool tProjectPool=new TProjectPool();
             tProjectPool.setId(tProjectDecision.getProjectPoolId());
-            // todo 保存投决资料
-            tUnifyFileService.insertTUnifyFileList(tProjectDecision.getListFile(),
-                    tProjectDecision.getProjectPoolId(),
-                    tProjectDecision.getId(),
-                    String.valueOf(FileType.DECISION.ordinal()),
-                    userInfo.getNickName());
+            if("modifyApply".equals(task.getTaskDefinitionKey())) {
+                // todo 保存投决资料
+                tUnifyFileService.insertTUnifyFileLists(tProjectDecision.getListFile(),
+                        tProjectDecision.getProjectPoolId(),
+                        tProjectDecision.getId(),
+                        String.valueOf(FileType.DECISION.ordinal()),
+                        userInfo.getNickName(), "q", "5");
+                // todo 保存其他附件
+                tUnifyFileService.insertTUnifyFileLists(tProjectDecision.getOtherFile(),
+                        tProjectDecision.getProjectPoolId(),
+                        tProjectDecision.getId(),
+                        String.valueOf(FileType.OTHER.ordinal()),
+                        userInfo.getNickName(), "k", "5");
+            }
             //发起会议
             if ("meeting".equals(task.getTaskDefinitionKey())) {
                 tProjectMeeting.setId(IdUtils.fastSimpleUUID());

+ 35 - 11
ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/InvestigateServiceImpl.java

@@ -129,8 +129,8 @@ public class InvestigateServiceImpl extends FlowServiceFactory implements IInves
                 String leader=sysDeptMapper.selectDeptLeader("投资部");
                 formProperties.put("MANAGER",sysUserService.selectUserByUserName(leader).getUserId());
                 //尽职背调上传人
-                List<String> userIds = Arrays.asList(tProjectInvestigate.getInvestigatePersonId().split(","));
-                formProperties.put("uploadList", userIds);
+                /*List<String> userIds = Arrays.asList(tProjectInvestigate.getInvestigatePersonId().split(","));
+                formProperties.put("uploadList", userIds);*/
                 pInst = runtimeService.startProcessInstanceById(pDefId, formProperties);
                 if(pInst!=null){
                     String nickName= SecurityUtils.getLoginUser().getUser().getNickName();
@@ -217,11 +217,11 @@ public class InvestigateServiceImpl extends FlowServiceFactory implements IInves
         Map<String, Object> formProperties = new HashMap<>();
         formProperties.put("auditPass", tProjectInvestigate.isFlag());
         //尽职背调上传人
-        if("modifyApply".equals(task.getTaskDefinitionKey())) {
+        /*if("modifyApply".equals(task.getTaskDefinitionKey())) {
             //尽职背调上传人
             List<String> userIds = Arrays.asList(tProjectInvestigate.getInvestigatePersonId().split(","));
             formProperties.put("uploadList", userIds);
-        }
+        }*/
         if(StringUtils.isNotBlank(tProjectInvestigate.getIsTerminate())) {//不为空代表结束流程
             formProperties.put("whetherToEnd", true);
         }else{
@@ -240,12 +240,6 @@ public class InvestigateServiceImpl extends FlowServiceFactory implements IInves
         if (status) {
             TProjectPool tProjectPool=new TProjectPool();
             tProjectPool.setId(tProjectInvestigate.getProjectPoolId());
-            // todo 保存尽职背调资料
-            tUnifyFileService.insertTUnifyFileList(tProjectInvestigate.getListFile(),
-                    tProjectInvestigate.getProjectPoolId(),
-                    tProjectInvestigate.getId(),
-                    String.valueOf(FileType.INVESTIGATE.ordinal()),
-                    userInfo.getNickName());
             //上传尽职背调报告
             if ("upload".equals(task.getTaskDefinitionKey())) {
                 if(StringUtils.isNull(tProjectInvestigatePerson.getId())){
@@ -266,7 +260,37 @@ public class InvestigateServiceImpl extends FlowServiceFactory implements IInves
 
                 tProjectInvestigatePersonService.insertTProjectInvestigatePerson(tProjectInvestigatePerson);
             }
-
+            if("approve".equals(task.getTaskDefinitionKey())){//背调审批节点
+                //查询当前人员所在部门
+                if(userInfo.getDept().getDeptName().contains("财务")) {
+                    // todo 保存财务评估报告
+                    tUnifyFileService.insertTUnifyFileLists(tProjectInvestigate.getListFile(),
+                            tProjectInvestigate.getProjectPoolId(),
+                            tProjectInvestigate.getId(),//附件业务Id
+                            String.valueOf(FileType.FINANCE.ordinal()),//文件类型:财务评估报告
+                            userInfo.getNickName(),"o","4");
+                    // todo 增加文件创建记录
+                    //tProjectCirculationService.insertTProjectCirculation(tProjectInformation.getProjectPoolId(),tProjectInformation.getFileName()+"(财务评估报告)",userInfo.getNickName());
+                }else if(userInfo.getDept().getDeptName().contains("法务")) {
+                    // todo 保存法务评估报告
+                    tUnifyFileService.insertTUnifyFileLists(tProjectInvestigate.getListFile(),
+                            tProjectInvestigate.getProjectPoolId(),
+                            tProjectInvestigate.getId(),//附件业务Id
+                            String.valueOf(FileType.LEGAL.ordinal()),//文件类型:法务评估报告
+                            userInfo.getNickName(),"p","4");
+                    // todo 增加文件创建记录
+                    //tProjectCirculationService.insertTProjectCirculation(tProjectInformation.getProjectPoolId(),tProjectInformation.getFileName()+"(法务评估报告)",userInfo.getNickName());
+                }else{
+                    // todo 保存其他附件
+                    tUnifyFileService.insertTUnifyFileLists(tProjectInvestigate.getListFile(),
+                            tProjectInvestigate.getProjectPoolId(),
+                            tProjectInvestigate.getId(),//附件业务Id
+                            String.valueOf(FileType.OTHER.ordinal()),//文件类型:其他附件
+                            userInfo.getNickName(),"k","4");
+                    // todo 增加文件创建记录
+                    //tProjectCirculationService.insertTProjectCirculation(tProjectInformation.getProjectPoolId(),tProjectInformation.getFileName()+"(立项其他附件)",userInfo.getNickName());
+                }
+            }
             if("president".equals(task.getTaskDefinitionKey())){
 //                tProjectPool.setProjectStage("5");//项目阶段-项目投决
 //                tProjectPool.setProjectState("i");//项目状态-项目投决通过

+ 8 - 9
ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/InvestmentOpportunityServiceImpl.java

@@ -179,7 +179,6 @@ public class InvestmentOpportunityServiceImpl extends FlowServiceFactory impleme
                     tProjectPool.setProjectContacts(tProjectContacts.getId());
                     // todo 设置公司信息关联关系
                     tProjectCompany.setProjectPoolId(tProjectPool.getId());
-
                     // todo 保存公司附件信息
                     tUnifyFileService.insertTUnifyFileList(tProjectPool.getListFile(),
                             tProjectPool.getId(),
@@ -188,18 +187,18 @@ public class InvestmentOpportunityServiceImpl extends FlowServiceFactory impleme
                             nickName);
 
                     // todo 保存BP附件信息
-                    tUnifyFileService.insertTUnifyFileList(tProjectPool.getBpFile(),
+                    tUnifyFileService.insertTUnifyFileLists(tProjectPool.getBpFile(),
                             tProjectPool.getId(),
                             tProjectPool.getId(),
                             String.valueOf(FileType.BP.ordinal()),
-                            nickName);
+                            nickName,"a","1");
 
                     // todo 保存其他附件信息
-                    tUnifyFileService.insertTUnifyFileList(tProjectPool.getOtherFile(),
+                    tUnifyFileService.insertTUnifyFileLists(tProjectPool.getOtherFile(),
                             tProjectPool.getId(),
                             tProjectPool.getId(),
                             String.valueOf(FileType.OTHER.ordinal()),
-                            nickName);
+                            nickName,"k","1");
 
                     tProjectCompanyService.insertTProjectCompany(tProjectCompany);
                     tProjectContactsService.insertTProjectContacts(tProjectContacts);
@@ -306,18 +305,18 @@ public class InvestmentOpportunityServiceImpl extends FlowServiceFactory impleme
                         nickName);
 
                 // todo 保存BP附件信息
-                tUnifyFileService.insertTUnifyFileList(tProjectPool.getBpFile(),
+                tUnifyFileService.insertTUnifyFileLists(tProjectPool.getBpFile(),
                         tProjectPool.getId(),
                         tProjectPool.getId(),
                         String.valueOf(FileType.BP.ordinal()),
-                        nickName);
+                        nickName,"a","1");
 
                 // todo 保存其他附件信息
-                tUnifyFileService.insertTUnifyFileList(tProjectPool.getOtherFile(),
+                tUnifyFileService.insertTUnifyFileLists(tProjectPool.getOtherFile(),
                         tProjectPool.getId(),
                         tProjectPool.getId(),
                         String.valueOf(FileType.OTHER.ordinal()),
-                        nickName);
+                        nickName,"k","1");
 
                 tProjectCompanyService.insertTProjectCompany(tProjectCompany);
                 tProjectContactsService.insertTProjectContacts(tProjectContacts);

+ 4 - 0
ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectApproval.java

@@ -53,6 +53,10 @@ public class TProjectApproval extends BaseEntity
      * 附件信息
      */
     private List<TUnifyFile> listFile;
+    /**
+     * 其他附件信息
+     */
+    private List<TUnifyFile> otherFile;
 
     /**
     * 是否需要立项会议

+ 4 - 0
ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectDecision.java

@@ -50,6 +50,10 @@ public class TProjectDecision extends BaseEntity
      * 附件信息
      */
     private List<TUnifyFile> listFile;
+    /**
+     * 其他附件信息
+     */
+    private List<TUnifyFile> otherFile;
     /**
      * 是否需要投决会议
      */

+ 7 - 0
ruoyi-system/src/main/java/com/ruoyi/invest/mapper/TProjectInformationMapper.java

@@ -68,6 +68,13 @@ public interface TProjectInformationMapper
      * @return 结果
      */
     public int updateTProjectInformationByIds(String[] ids);
+    /**
+     * 批量删除文件资料
+     *
+     * @param fileIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int updateTProjectInformationByFileIds(String[] fileIds);
 
     /**
      * 根据项目ID获取会议记录

+ 8 - 0
ruoyi-system/src/main/java/com/ruoyi/invest/service/ITProjectInformationService.java

@@ -69,6 +69,14 @@ public interface ITProjectInformationService
      */
     public int updateTProjectInformationByIds(String[] ids);
 
+    /**
+     * 批量删除文件资料(修改del_flag状态)
+     *
+     * @param fileIds 需要删除的文件资料主键集合
+     * @return 结果
+     */
+    public int updateTProjectInformationByFileIds(String[] fileIds);
+
     /**
      * 根据项目ID获取会议记录
      * @param projectPoolId

+ 10 - 1
ruoyi-system/src/main/java/com/ruoyi/invest/service/impl/TProjectInformationServiceImpl.java

@@ -105,7 +105,16 @@ public class TProjectInformationServiceImpl implements ITProjectInformationServi
     public int updateTProjectInformationByIds(String[] ids) {
         return tProjectInformationMapper.updateTProjectInformationByIds(ids);
     }
-
+    /**
+     * 批量删除文件资料
+     *
+     * @param fileIds 需要删除的文件资料主键
+     * @return 结果
+     */
+    @Override
+    public int updateTProjectInformationByFileIds(String[] fileIds) {
+        return tProjectInformationMapper.updateTProjectInformationByFileIds(fileIds);
+    }
     /**
      * 根据项目ID获取会议记录
      * @param projectPoolId

+ 9 - 0
ruoyi-system/src/main/resources/mapper/invest/TProjectInformationMapper.xml

@@ -128,6 +128,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
     </update>
 
+    <update id="updateTProjectInformationByFileIds" parameterType="String">
+        update t_project_information
+        set del_flag = 1
+        where file_id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+
     <select id="listProjectPoolId" parameterType="String" resultMap="TProjectInformationResult">
         <include refid="selectTProjectInformationVo"/>
         where a.project_pool_id = #{projectPoolId} and a.del_flag = 0

+ 16 - 1
ruoyi-ui/src/api/project/investigate/pool.js

@@ -74,8 +74,23 @@ export function getInvestigateInfo(pInstId) {
 // 查询尽职背调待办任务列表数量
 export function getMyTaskInvestigateNumber() {
   return request({
-    url: '/invest/investigate/getMyTaskList',
+    url: '/project/investigate/getMyTaskList',
+    method: 'get'
+  })
+}
+export function findApproveUser() {
+  return request({
+    url:'/system/approve/findApproveUser',
     method: 'get'
   })
 }
+//保存审批人员
+export function saveApproveUser(data) {
+  return request({
+    url:'/system/approve/saveApproveUser',
+    method: 'post',
+    data: data
+  })
+}
+
 

+ 4 - 9
ruoyi-ui/src/views/file/businessPlan/index.vue

@@ -403,7 +403,7 @@ export default {
         updateBy: null,
         updateTime: null,
         listFile: null,
-        fileInfoId: null,
+        fileId: null,
       },
       // 表单校验
       rules: {
@@ -528,7 +528,6 @@ export default {
       this.title = "添加文件资料";
       // 设置新增时的默认文件类别
       this.form.fileType = "a";
-      console.log(this.form.fileType)
       setTimeout(() => {
         that.$refs.fileItems.fileList = [];
       }, 200);
@@ -542,9 +541,7 @@ export default {
         // 从全局选中的数据中获取 ID(假设用 selectRowList 存储选中项)
         row = this.selectRowList[0];
       }
-      console.log(row);
       let id = row.id || this.ids;
-      let uploadType="";
       getBusinessPlan(id).then((response) => {
         this.form = response.data;
         this.form.projectName = response.data.tProjectPool.projectName;
@@ -553,11 +550,9 @@ export default {
         this.title = "修改文件资料";
         setTimeout(() => {
           this.$refs.fileItems.fileList = [];
-          console.log(row.fileInfoId+"-------------------")
-          if(row.fileInfoId){
-            id=row.fileInfoId;
-            //uploadType="9";
-            this.$refs.fileItems.getListFileInfoId(id);
+          if(row.fileId){
+            id=row.fileId;
+            this.$refs.fileItems.getListFileById(id);
           }else{
             this.$refs.fileItems.getListFileBusinessId(id);
           }

+ 11 - 4
ruoyi-ui/src/views/file/decisionReport/index.vue

@@ -99,7 +99,7 @@
       class="tableWrapper"
       v-loading="loading"
       border
-      :data="informationList"
+      :data="decisionReportList"
       @selection-change="handleSelectionChange"
     >
       <el-table-column
@@ -363,6 +363,8 @@ export default {
       single: true,
       // 非多个禁用
       multiple: true,
+      // 选中数组
+      selectRowList: [],
       // 显示搜索条件
       showSearch: true,
       // 总条数
@@ -507,6 +509,7 @@ export default {
       this.idsName = selection.map((item) => item.fileName);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
+      this.selectRowList = selection;
     },
     /** 新增按钮操作 */
     handleAdd(projectId) {
@@ -524,7 +527,6 @@ export default {
       this.title = "添加文件资料";
       // 设置新增时的默认文件类别
       this.form.fileType = "q";
-      console.log(this.form.fileType)
       setTimeout(() => {
         that.$refs.fileItems.fileList = [];
       }, 200);
@@ -538,7 +540,7 @@ export default {
         // 从全局选中的数据中获取 ID(假设用 selectRowList 存储选中项)
         row = this.selectRowList[0];
       }
-      const id = row.id || this.ids;
+      let id = row.id || this.ids;
       getDecisionReport(id).then((response) => {
         this.form = response.data;
         this.form.projectName = response.data.tProjectPool.projectName;
@@ -547,7 +549,12 @@ export default {
         this.title = "修改文件资料";
         setTimeout(() => {
           this.$refs.fileItems.fileList = [];
-          this.$refs.fileItems.getListFileBusinessId(id);
+          if(row.fileId){
+            id=row.fileId;
+            this.$refs.fileItems.getListFileById(id);
+          }else {
+            this.$refs.fileItems.getListFileBusinessId(id);
+          }
         }, 300);
       });
     },

+ 10 - 2
ruoyi-ui/src/views/file/financialEvaluation/index.vue

@@ -363,6 +363,8 @@ export default {
       single: true,
       // 非多个禁用
       multiple: true,
+      // 选中数组
+      selectRowList: [],
       // 显示搜索条件
       showSearch: true,
       // 总条数
@@ -507,6 +509,7 @@ export default {
       this.idsName = selection.map((item) => item.fileName);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
+      this.selectRowList = selection;
     },
     /** 新增按钮操作 */
     handleAdd(projectId) {
@@ -537,7 +540,7 @@ export default {
         // 从全局选中的数据中获取 ID(假设用 selectRowList 存储选中项)
         row = this.selectRowList[0];
       }
-      const id = row.id || this.ids;
+      let id = row.id || this.ids;
       getFinancialEvaluation(id).then((response) => {
         this.form = response.data;
         this.form.projectName = response.data.tProjectPool.projectName;
@@ -546,7 +549,12 @@ export default {
         this.title = "修改文件资料";
         setTimeout(() => {
           this.$refs.fileItems.fileList = [];
-          this.$refs.fileItems.getListFileBusinessId(id);
+          if(row.fileId){
+            id=row.fileId;
+            this.$refs.fileItems.getListFileById(id);
+          }else {
+            this.$refs.fileItems.getListFileBusinessId(id);
+          }
         }, 300);
       });
     },

+ 10 - 2
ruoyi-ui/src/views/file/initiationReport/index.vue

@@ -363,6 +363,8 @@ export default {
       single: true,
       // 非多个禁用
       multiple: true,
+      // 选中数组
+      selectRowList: [],
       // 显示搜索条件
       showSearch: true,
       // 总条数
@@ -507,6 +509,7 @@ export default {
       this.idsName = selection.map((item) => item.fileName);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
+      this.selectRowList = selection;
     },
     /** 新增按钮操作 */
     handleAdd(projectId) {
@@ -537,7 +540,7 @@ export default {
         // 从全局选中的数据中获取 ID(假设用 selectRowList 存储选中项)
         row = this.selectRowList[0];
       }
-      const id = row.id || this.ids;
+      let id = row.id || this.ids;
       getInitiationReport(id).then((response) => {
         this.form = response.data;
         this.form.projectName = response.data.tProjectPool.projectName;
@@ -546,7 +549,12 @@ export default {
         this.title = "修改文件资料";
         setTimeout(() => {
           this.$refs.fileItems.fileList = [];
-          this.$refs.fileItems.getListFileBusinessId(id);
+          if(row.fileId){
+            id=row.fileId;
+            this.$refs.fileItems.getListFileById(id);
+          }else {
+            this.$refs.fileItems.getListFileBusinessId(id);
+          }
         }, 300);
       });
     },

+ 10 - 2
ruoyi-ui/src/views/file/legalDueDiligence/index.vue

@@ -363,6 +363,8 @@ export default {
       single: true,
       // 非多个禁用
       multiple: true,
+      // 选中数组
+      selectRowList: [],
       // 显示搜索条件
       showSearch: true,
       // 总条数
@@ -507,6 +509,7 @@ export default {
       this.idsName = selection.map((item) => item.fileName);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
+      this.selectRowList = selection;
     },
     /** 新增按钮操作 */
     handleAdd(projectId) {
@@ -537,7 +540,7 @@ export default {
         // 从全局选中的数据中获取 ID(假设用 selectRowList 存储选中项)
         row = this.selectRowList[0];
       }
-      const id = row.id || this.ids;
+      let id = row.id || this.ids;
       getLegalDueDiligence(id).then((response) => {
         this.form = response.data;
         this.form.projectName = response.data.tProjectPool.projectName;
@@ -546,7 +549,12 @@ export default {
         this.title = "修改文件资料";
         setTimeout(() => {
           this.$refs.fileItems.fileList = [];
-          this.$refs.fileItems.getListFileBusinessId(id);
+          if(row.fileId){
+            id=row.fileId;
+            this.$refs.fileItems.getListFileById(id);
+          }else {
+            this.$refs.fileItems.getListFileBusinessId(id);
+          }
         }, 300);
       });
     },

+ 10 - 2
ruoyi-ui/src/views/file/marketResearch/index.vue

@@ -363,6 +363,8 @@ export default {
       single: true,
       // 非多个禁用
       multiple: true,
+      // 选中数组
+      selectRowList: [],
       // 显示搜索条件
       showSearch: true,
       // 总条数
@@ -507,6 +509,7 @@ export default {
       this.idsName = selection.map((item) => item.fileName);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
+      this.selectRowList = selection;
     },
     /** 新增按钮操作 */
     handleAdd(projectId) {
@@ -537,7 +540,7 @@ export default {
         // 从全局选中的数据中获取 ID(假设用 selectRowList 存储选中项)
         row = this.selectRowList[0];
       }
-      const id = row.id || this.ids;
+      let id = row.id || this.ids;
       getMarketResearch(id).then((response) => {
         this.form = response.data;
         this.form.projectName = response.data.tProjectPool.projectName;
@@ -546,7 +549,12 @@ export default {
         this.title = "修改文件资料";
         setTimeout(() => {
           this.$refs.fileItems.fileList = [];
-          this.$refs.fileItems.getListFileBusinessId(id);
+          if(row.fileId){
+            id=row.fileId;
+            this.$refs.fileItems.getListFileById(id);
+          }else {
+            this.$refs.fileItems.getListFileBusinessId(id);
+          }
         }, 300);
       });
     },

+ 10 - 2
ruoyi-ui/src/views/file/projectTechnology/index.vue

@@ -363,6 +363,8 @@ export default {
       single: true,
       // 非多个禁用
       multiple: true,
+      // 选中数组
+      selectRowList: [],
       // 显示搜索条件
       showSearch: true,
       // 总条数
@@ -507,6 +509,7 @@ export default {
       this.idsName = selection.map((item) => item.fileName);
       this.single = selection.length !== 1;
       this.multiple = !selection.length;
+      this.selectRowList = selection;
     },
     /** 新增按钮操作 */
     handleAdd(projectId) {
@@ -537,7 +540,7 @@ export default {
         // 从全局选中的数据中获取 ID(假设用 selectRowList 存储选中项)
         row = this.selectRowList[0];
       }
-      const id = row.id || this.ids;
+      let id = row.id || this.ids;
       getProjectTechnology(id).then((response) => {
         this.form = response.data;
         this.form.projectName = response.data.tProjectPool.projectName;
@@ -546,7 +549,12 @@ export default {
         this.title = "修改文件资料";
         setTimeout(() => {
           this.$refs.fileItems.fileList = [];
-          this.$refs.fileItems.getListFileBusinessId(id);
+          if(row.fileId){
+            id=row.fileId;
+            this.$refs.fileItems.getListFileById(id);
+          }else {
+            this.$refs.fileItems.getListFileBusinessId(id);
+          }
         }, 300);
       });
     },

+ 270 - 195
ruoyi-ui/src/views/project/approval/audit.vue

@@ -73,6 +73,7 @@
                 class="special-el-form public-padded-t-20"
                 ref="formLXApply"
                 :model="formLXApply"
+                :rules="rulesLXApply"
                 label-width="120px"
               >
                 <el-form-item
@@ -101,16 +102,23 @@
                     disabled
                   />
                 </el-form-item>
-                <el-form-item
-                  label="立项资料"
-                  prop="listFile"
-                  class="special-el-form-item"
-                >
-                  <fileItem
-                    ref="fileItemLXApply1"
-                    :id="formLXApply.id"
-                    :is-detail="true"
-                  ></fileItem>
+                <el-form-item label="立项申请报告" prop="listFile" class="special-el-form-item">
+                  <fileItem ref="fileItemLXApply" :id="formLXApply.id" :is-detail="true"></fileItem>
+                </el-form-item>
+                <el-form-item label="项目行研报告" class="special-el-form-item" v-if="formLXApply.taskDefKey=='president'">
+                  <fileItem ref="industryFileItem" :id="formLXApply.id" :is-detail="true"></fileItem>
+                </el-form-item>
+                <el-form-item label="项目技术报告" class="special-el-form-item" v-if="formLXApply.taskDefKey=='president'">
+                  <fileItem ref="technicalFileItem" :id="formLXApply.id" :is-detail="true"></fileItem>
+                </el-form-item>
+                <el-form-item label="其他附件" prop="otherListFile" class="special-el-form-item">
+                  <fileItem ref="otherFileItem" :id="formLXApply.id" :is-detail="true"></fileItem>
+                </el-form-item>
+                <el-form-item label="项目行研报告" prop="industryListFile" class="special-el-form-item" v-if="formLXApply.taskDefKey=='industryResearch'">
+                  <fileItem ref="industryFileItem" :id="formLXApply.id" @getFileList="getIndustryFileList"></fileItem>
+                </el-form-item>
+                <el-form-item label="项目技术报告" prop="technicalListFile" class="special-el-form-item" v-if="formLXApply.taskDefKey=='technicalResearch'">
+                  <fileItem ref="technicalFileItem" :id="formLXApply.id" @getFileList="getTechnicalFileList"></fileItem>
                 </el-form-item>
               </el-form>
               <div
@@ -121,7 +129,7 @@
                 暂无数据
               </div>
             </el-tab-pane>
-            <el-tab-pane :label="formType === 1 ? '项目立项评估评审表' : '项目立项评估评审汇总表'" v-if="formLXApply.taskDefKey!='deptLeader'&&formLXApply.taskDefKey!='meeting'" name="review">
+<!--            <el-tab-pane :label="formType === 1 ? '项目立项评估评审表' : '项目立项评估评审汇总表'" v-if="formLXApply.taskDefKey!='deptLeader'&&formLXApply.taskDefKey!='meeting'" name="review">
               <el-form
                 class="table-form ss_scoreTable"
                 ref="scoreForm"
@@ -1117,188 +1125,188 @@
                 </table>
 
               </el-form>
-            </el-tab-pane>
+            </el-tab-pane>-->
           </el-tabs>
           <!-- 会议信息开始         -->
-          <section v-if="formLXApply.taskDefKey==='meeting'">
-            <el-form
-              v-if="formLXApply.id"
-              class="special-el-form public-padded-t-20"
-              ref="formLXApply"
-              :model="formLXApply"
-              label-width="120px"
-            >
-              <el-form-item
-                label="立项审批人"
-                prop="participants"
-                class="special-el-form-item public-input-height-2"
-              >
-                <div
-                  class="el-input__inner inputSimulation yichu1"
-                  @click="handleSelectPeople(1)"
-                  :title="formLXApply.participants"
-                >
-                  {{ formLXApply.participants ? formLXApply.participants : "请选择" }}
-                </div>
-              </el-form-item>
-              <el-form-item
-                label="附件"
-                prop="listFile"
-                class="special-el-form-item"
-              >
-                <fileItem
-                  ref="fileItemLXApply"
-                  :id="formLXApply.id"
-                  @getFileList="getFileListLXApply"
-                ></fileItem>
-              </el-form-item>
-              <!-- 关键代码:el-form-item 包裹单选组 -->
-              <el-form-item label="是否需要立项会议">
-                <label>
-                  <input type="radio" name="needMeeting" value="0" v-model="formLXApply.needMeeting">
-                  否
-                </label>
-                <label>
-                  <input type="radio" name="needMeeting" value="1" v-model="formLXApply.needMeeting">
-                  是
-                </label>
-              </el-form-item>
-            </el-form>
-            <h3 v-if="formLXApply.needMeeting === '1'">会议信息</h3>
-            <el-form
-              class="special-el-form"
-              ref="meetingForm"
-              :model="meetingForm"
-              :rules="meetingRules"
-              label-width="120px"
-              v-if="formLXApply.needMeeting === '1'"
-            >
-              <el-form-item
-                label="项目名称"
-                prop="projectName"
-                class="special-el-form-item public-input-height-2"
-                :rules="[
-            { required: verifyProjectName, trigger: 'blur', message: '请选择' },
-          ]"
-              >
-                <div
-                  class="el-input__inner inputSimulation yichu1"
-                  @click="handleProjectItem"
-                  :class="{ show_disabled: pageType === '1' }"
-                  :title="meetingForm.projectName"
-                >
-                  {{ meetingForm.projectName ? meetingForm.projectName : "请选择 " }}
-                </div>
-                <projectItem
-                  ref="projectItem"
-                  @getProjectInfo="getProjectInfo"
-                ></projectItem>
-              </el-form-item>
-              <el-form-item
-                label="项目阶段"
-                prop="projectStage"
-                class="special-el-form-item"
-              >
-                <el-select v-model="meetingForm.projectStage" disabled placeholder="">
-                  <el-option
-                    v-for="dict in dict.type.project_stage"
-                    :key="dict.value"
-                    :label="dict.label"
-                    :value="dict.value"
-                  />
-                </el-select>
-              </el-form-item>
-              <el-form-item label="会议主题" prop="meetingTheme">
-                <el-input
-                  maxlength="100"
-                  v-model="meetingForm.meetingTheme"
-                  placeholder="请输入会议主题"
-                />
-              </el-form-item>
+<!--          <section v-if="formLXApply.taskDefKey==='meeting'">-->
+<!--            <el-form-->
+<!--              v-if="formLXApply.id"-->
+<!--              class="special-el-form public-padded-t-20"-->
+<!--              ref="formLXApply"-->
+<!--              :model="formLXApply"-->
+<!--              label-width="120px"-->
+<!--            >-->
+<!--              <el-form-item-->
+<!--                label="立项审批人"-->
+<!--                prop="participants"-->
+<!--                class="special-el-form-item public-input-height-2"-->
+<!--              >-->
+<!--                <div-->
+<!--                  class="el-input__inner inputSimulation yichu1"-->
+<!--                  @click="handleSelectPeople(1)"-->
+<!--                  :title="formLXApply.participants"-->
+<!--                >-->
+<!--                  {{ formLXApply.participants ? formLXApply.participants : "请选择" }}-->
+<!--                </div>-->
+<!--              </el-form-item>-->
+<!--              <el-form-item-->
+<!--                label="附件"-->
+<!--                prop="listFile"-->
+<!--                class="special-el-form-item"-->
+<!--              >-->
+<!--                <fileItem-->
+<!--                  ref="fileItemLXApply"-->
+<!--                  :id="formLXApply.id"-->
+<!--                  @getFileList="getFileListLXApply"-->
+<!--                ></fileItem>-->
+<!--              </el-form-item>-->
+<!--              &lt;!&ndash; 关键代码:el-form-item 包裹单选组 &ndash;&gt;-->
+<!--              <el-form-item label="是否需要立项会议">-->
+<!--                <label>-->
+<!--                  <input type="radio" name="needMeeting" value="0" v-model="formLXApply.needMeeting">-->
+<!---->
+<!--                </label>-->
+<!--                <label>-->
+<!--                  <input type="radio" name="needMeeting" value="1" v-model="formLXApply.needMeeting">-->
+<!---->
+<!--                </label>-->
+<!--              </el-form-item>-->
+<!--            </el-form>-->
+<!--            <h3 v-if="formLXApply.needMeeting === '1'">会议信息</h3>-->
+<!--            <el-form-->
+<!--              class="special-el-form"-->
+<!--              ref="meetingForm"-->
+<!--              :model="meetingForm"-->
+<!--              :rules="meetingRules"-->
+<!--              label-width="120px"-->
+<!--              v-if="formLXApply.needMeeting === '1'"-->
+<!--            >-->
+<!--              <el-form-item-->
+<!--                label="项目名称"-->
+<!--                prop="projectName"-->
+<!--                class="special-el-form-item public-input-height-2"-->
+<!--                :rules="[-->
+<!--            { required: verifyProjectName, trigger: 'blur', message: '请选择' },-->
+<!--          ]"-->
+<!--              >-->
+<!--                <div-->
+<!--                  class="el-input__inner inputSimulation yichu1"-->
+<!--                  @click="handleProjectItem"-->
+<!--                  :class="{ show_disabled: pageType === '1' }"-->
+<!--                  :title="meetingForm.projectName"-->
+<!--                >-->
+<!--                  {{ meetingForm.projectName ? meetingForm.projectName : "请选择 " }}-->
+<!--                </div>-->
+<!--                <projectItem-->
+<!--                  ref="projectItem"-->
+<!--                  @getProjectInfo="getProjectInfo"-->
+<!--                ></projectItem>-->
+<!--              </el-form-item>-->
+<!--              <el-form-item-->
+<!--                label="项目阶段"-->
+<!--                prop="projectStage"-->
+<!--                class="special-el-form-item"-->
+<!--              >-->
+<!--                <el-select v-model="meetingForm.projectStage" disabled placeholder="">-->
+<!--                  <el-option-->
+<!--                    v-for="dict in dict.type.project_stage"-->
+<!--                    :key="dict.value"-->
+<!--                    :label="dict.label"-->
+<!--                    :value="dict.value"-->
+<!--                  />-->
+<!--                </el-select>-->
+<!--              </el-form-item>-->
+<!--              <el-form-item label="会议主题" prop="meetingTheme">-->
+<!--                <el-input-->
+<!--                  maxlength="100"-->
+<!--                  v-model="meetingForm.meetingTheme"-->
+<!--                  placeholder="请输入会议主题"-->
+<!--                />-->
+<!--              </el-form-item>-->
 
-              <!-- <el-form-item label="会议编号" prop="meetingCode">
-                <el-input v-model="form.meetingCode" placeholder="请输入会议编号" />
-              </el-form-item> -->
-              <el-form-item label="会议类别" prop="meetingType">
-                <el-select
-                  v-model="meetingForm.meetingType"
-                  placeholder="请选择会议类别"
-                  :disabled="
-              meetingTypeDisabled || (pageType === '1' && meetingType != null)
-            "
-                >
-                  <el-option
-                    v-for="dict in meetingTypeList"
-                    :key="dict.value"
-                    :label="dict.label"
-                    :value="dict.value"
-                  ></el-option>
-                </el-select>
-              </el-form-item>
+<!--              &lt;!&ndash; <el-form-item label="会议编号" prop="meetingCode">-->
+<!--                <el-input v-model="form.meetingCode" placeholder="请输入会议编号" />-->
+<!--              </el-form-item> &ndash;&gt;-->
+<!--              <el-form-item label="会议类别" prop="meetingType">-->
+<!--                <el-select-->
+<!--                  v-model="meetingForm.meetingType"-->
+<!--                  placeholder="请选择会议类别"-->
+<!--                  :disabled="-->
+<!--              meetingTypeDisabled || (pageType === '1' && meetingType != null)-->
+<!--            "-->
+<!--                >-->
+<!--                  <el-option-->
+<!--                    v-for="dict in meetingTypeList"-->
+<!--                    :key="dict.value"-->
+<!--                    :label="dict.label"-->
+<!--                    :value="dict.value"-->
+<!--                  ></el-option>-->
+<!--                </el-select>-->
+<!--              </el-form-item>-->
 
-              <el-form-item label="会议开始时间" prop="startTime">
-                <el-date-picker
-                  v-model="meetingForm.startTime"
-                  type="datetime"
-                  placeholder="请选择会议开始时间"
-                  format="yyyy-MM-dd HH:mm"
-                  value-format="yyyy-MM-dd HH:mm"
-                >
-                </el-date-picker>
-              </el-form-item>
-              <el-form-item label="会议结束时间" prop="endTime">
-                <el-date-picker
-                  v-model="meetingForm.endTime"
-                  format="yyyy-MM-dd HH:mm"
-                  value-format="yyyy-MM-dd HH:mm"
-                  type="datetime"
-                  placeholder="请选择会议结束时间"
-                >
-                </el-date-picker>
-              </el-form-item>
-              <el-form-item label="会议地点" prop="place">
-                <el-input
-                  maxlength="100"
-                  v-model="meetingForm.place"
-                  placeholder="请输入会议地点"
-                />
-              </el-form-item>
-              <el-form-item
-                label="会议发起人"
-                prop="promoter"
-                class="public-input-height"
-              >
-                <div class="el-input__inner" @click="openSelectDept(1)">
-                  {{ meetingForm.promoter ? meetingForm.promoter : "请选择会议发起人" }}
-                </div>
-                <selecDept
-                  ref="selecDepts"
-                  @getDeptUserInfo="getDeptUserInfo"
-                  :deptId="deptId"
-                ></selecDept>
-              </el-form-item>
-              <el-form-item
-                label="会议参与人"
-                prop="participants"
-                class="special-el-form-item public-input-height-2"
-              >
-                <div
-                  class="el-input__inner inputSimulation yichu1"
-                  @click="handleSelectPeople(2)"
-                  :title="meetingForm.participants"
-                >
-                  {{ meetingForm.participants ? meetingForm.participants : "请选择会议参与人" }}
-                </div>
-              </el-form-item>
-              <el-form-item label="附件" prop="file" class="special-el-form-item">
-                <fileItem
-                  ref="fileItems"
-                  :id="meetingForm.id"
-                  @getFileList="getFileList"
-                ></fileItem>
-              </el-form-item>
-            </el-form>
-          </section>
+<!--              <el-form-item label="会议开始时间" prop="startTime">-->
+<!--                <el-date-picker-->
+<!--                  v-model="meetingForm.startTime"-->
+<!--                  type="datetime"-->
+<!--                  placeholder="请选择会议开始时间"-->
+<!--                  format="yyyy-MM-dd HH:mm"-->
+<!--                  value-format="yyyy-MM-dd HH:mm"-->
+<!--                >-->
+<!--                </el-date-picker>-->
+<!--              </el-form-item>-->
+<!--              <el-form-item label="会议结束时间" prop="endTime">-->
+<!--                <el-date-picker-->
+<!--                  v-model="meetingForm.endTime"-->
+<!--                  format="yyyy-MM-dd HH:mm"-->
+<!--                  value-format="yyyy-MM-dd HH:mm"-->
+<!--                  type="datetime"-->
+<!--                  placeholder="请选择会议结束时间"-->
+<!--                >-->
+<!--                </el-date-picker>-->
+<!--              </el-form-item>-->
+<!--              <el-form-item label="会议地点" prop="place">-->
+<!--                <el-input-->
+<!--                  maxlength="100"-->
+<!--                  v-model="meetingForm.place"-->
+<!--                  placeholder="请输入会议地点"-->
+<!--                />-->
+<!--              </el-form-item>-->
+<!--              <el-form-item-->
+<!--                label="会议发起人"-->
+<!--                prop="promoter"-->
+<!--                class="public-input-height"-->
+<!--              >-->
+<!--                <div class="el-input__inner" @click="openSelectDept(1)">-->
+<!--                  {{ meetingForm.promoter ? meetingForm.promoter : "请选择会议发起人" }}-->
+<!--                </div>-->
+<!--                <selecDept-->
+<!--                  ref="selecDepts"-->
+<!--                  @getDeptUserInfo="getDeptUserInfo"-->
+<!--                  :deptId="deptId"-->
+<!--                ></selecDept>-->
+<!--              </el-form-item>-->
+<!--              <el-form-item-->
+<!--                label="会议参与人"-->
+<!--                prop="participants"-->
+<!--                class="special-el-form-item public-input-height-2"-->
+<!--              >-->
+<!--                <div-->
+<!--                  class="el-input__inner inputSimulation yichu1"-->
+<!--                  @click="handleSelectPeople(2)"-->
+<!--                  :title="meetingForm.participants"-->
+<!--                >-->
+<!--                  {{ meetingForm.participants ? meetingForm.participants : "请选择会议参与人" }}-->
+<!--                </div>-->
+<!--              </el-form-item>-->
+<!--              <el-form-item label="附件" prop="file" class="special-el-form-item">-->
+<!--                <fileItem-->
+<!--                  ref="fileItems"-->
+<!--                  :id="meetingForm.id"-->
+<!--                  @getFileList="getFileList"-->
+<!--                ></fileItem>-->
+<!--              </el-form-item>-->
+<!--            </el-form>-->
+<!--          </section>-->
 
           <!--会议信息结束-->
         </div>
@@ -1332,7 +1340,7 @@
           <!--          <div class="btn-group">-->
           <el-button @click="goBack">返 回</el-button>
           <el-button type="success" @click="handleComplete(true)">同意</el-button>
-          <el-button v-if="formLXApply.taskDefKey!='decision'&&formLXApply.taskDefKey!='president'" type="warning" @click="handleComplete(false)">驳回</el-button>
+          <el-button v-if="formLXApply.taskDefKey!='technicalResearch'&&formLXApply.taskDefKey!='industryResearch'&&formLXApply.taskDefKey!='president'" type="warning" @click="handleComplete(false)">驳回</el-button>
           <el-button v-if="formLXApply.taskDefKey!='decision'&&formLXApply.taskDefKey=='president'" type="warning" @click="handleComplete(false)">驳回(修改)</el-button>
           <el-button v-if="formLXApply.taskDefKey=='president'" type="danger" @click="handleComplete(false,1)">驳回(终止)</el-button>
           <el-button v-if="formLXApply.taskDefKey=='president'" type="warning" @click="handleComplete(false,0)">观望</el-button>
@@ -1387,6 +1395,21 @@ export default {
     flowBase,
   },
   data() {
+    const industryValidateLogo = (rule, value, callback) => {
+      //debugger
+      if (this.fileListIndustry.length <= 0) {
+        callback(new Error("请上传项目行研报告"));
+      } else {
+        callback();
+      }
+    };
+    const technicalValidateLogo = (rule, value, callback) => {
+      if (this.fileListTechnical.length <= 0) {
+        callback(new Error("请上传项目技术报告"));
+      } else {
+        callback();
+      }
+    };
     return {
       meetingId: "0",
       type: "2",
@@ -1415,6 +1438,14 @@ export default {
         participantsId: null,
         taskDefKey:null,
         needMeeting:'0',
+        industryListFile: null,
+        technicalListFile:null
+      },
+      fileListIndustry: [],
+      fileListTechnical: [],
+      rulesLXApply: {
+        industryListFile: [{ required: true, validator: industryValidateLogo }],
+        technicalListFile: [{ required: true, validator: technicalValidateLogo }],
       },
       // 会议表单参数-开始
       meetingForm: {
@@ -1662,11 +1693,22 @@ export default {
             this.formType=2;
           }
           setTimeout(() => {
-            that.$refs.fileItemLXApply1.handleButton();
-            that.$refs.fileItemLXApply1.fileList = [];
-            that.$refs.fileItemLXApply1.getListFileBusinessId(
-              that.formLXApply.id
-            );
+            //立项申请报告
+            this.$refs.fileItemLXApply.handleButton();
+            this.$refs.fileItemLXApply.fileList = [];
+            this.$refs.fileItemLXApply.getListFileBusinessId(that.formLXApply.id,"10");
+            //项目行研报告
+            this.$refs.industryFileItem.handleButton();
+            this.$refs.industryFileItem.fileList = [];
+            this.$refs.industryFileItem.getListFileBusinessId(that.formLXApply.id, "12");
+            //项目技术报告
+            this.$refs.technicalFileItem.handleButton();
+            this.$refs.technicalFileItem.fileList = [];
+            this.$refs.technicalFileItem.getListFileBusinessId(that.formLXApply.id, "13");
+            //其他附件
+            this.$refs.otherFileItem.handleButton();
+            this.$refs.otherFileItem.fileList = [];
+            this.$refs.otherFileItem.getListFileBusinessId(that.formLXApply.id, "0");
           }, 300);
         }
       });
@@ -1863,6 +1905,22 @@ export default {
             return;
           }
         })
+      }else if(this.formLXApply.taskDefKey==="industryResearch"){//项目行研
+        this.formLXApply.listFile = this.fileListIndustry;
+        this.$refs["formLXApply"].validate((valid) => {
+          if (!valid) {
+            allValid = false;
+            return;
+          }
+        })
+      }else if(this.formLXApply.taskDefKey==="technicalResearch"){//项目技术
+        this.formLXApply.listFile = this.fileListTechnical;
+        this.$refs["formLXApply"].validate((valid) => {
+          if (!valid) {
+            allValid = false;
+            return;
+          }
+        })
       }
       if (!flag&&!this.flowBaseInfo.comment) {
         this.$modal.msgError("请输入审批意见!");
@@ -1918,6 +1976,23 @@ export default {
         this.fileList = [];
       }
     },
+    //
+    getIndustryFileList(fileList) {
+      if (fileList && fileList.length > 0) {
+        this.fileListIndustry = fileList;
+        this.$refs.formLXApply.clearValidate(["industryListFile"]);
+      } else {
+        this.fileListIndustry = [];
+      }
+    },
+    getTechnicalFileList(fileList) {
+      if (fileList && fileList.length > 0) {
+        this.fileListTechnical = fileList;
+        this.$refs.formLXApply.clearValidate(["technicalListFile"]);
+      } else {
+        this.fileListTechnical = [];
+      }
+    },
   },
 };
 </script>

+ 27 - 15
ruoyi-ui/src/views/project/approval/detail.vue

@@ -107,16 +107,17 @@
                     disabled
                   />
                 </el-form-item>
-                <el-form-item
-                  label="立项资料"
-                  prop="listFile"
-                  class="special-el-form-item"
-                >
-                  <fileItem
-                    ref="fileItemLXApply"
-                    :id="formLXApply.id"
-                    :is-detail="true"
-                  ></fileItem>
+                <el-form-item label="立项申请报告" prop="listFile" class="special-el-form-item">
+                  <fileItem ref="fileItemLXApply" :id="formLXApply.id" :is-detail="true"></fileItem>
+                </el-form-item>
+                <el-form-item label="项目行研报告" prop="industryListFile" class="special-el-form-item">
+                  <fileItem ref="industryFileItem" :id="formLXApply.id" :is-detail="true"></fileItem>
+                </el-form-item>
+                <el-form-item label="项目技术报告" prop="technicalListFile" class="special-el-form-item">
+                  <fileItem ref="technicalFileItem" :id="formLXApply.id" :is-detail="true"></fileItem>
+                </el-form-item>
+                <el-form-item label="其他附件" prop="otherListFile" class="special-el-form-item">
+                  <fileItem ref="otherFileItem" :id="formLXApply.id" :is-detail="true"></fileItem>
                 </el-form-item>
               </el-form>
               <div
@@ -846,11 +847,22 @@ export default {
             this.getSelectMeetingId();
           }
           setTimeout(() => {
-            that.$refs.fileItemLXApply.handleButton();
-            that.$refs.fileItemLXApply.fileList = [];
-            that.$refs.fileItemLXApply.getListFileBusinessId(
-              that.formLXApply.id
-            );
+            //立项申请报告
+            this.$refs.fileItemLXApply.handleButton();
+            this.$refs.fileItemLXApply.fileList = [];
+            this.$refs.fileItemLXApply.getListFileBusinessId(that.formLXApply.id,"10");
+            //项目行研报告
+            this.$refs.industryFileItem.handleButton();
+            this.$refs.industryFileItem.fileList = [];
+            this.$refs.industryFileItem.getListFileBusinessId(that.formLXApply.id, "12");
+            //项目技术报告
+            this.$refs.technicalFileItem.handleButton();
+            this.$refs.technicalFileItem.fileList = [];
+            this.$refs.technicalFileItem.getListFileBusinessId(that.formLXApply.id, "13");
+            //其他附件
+            this.$refs.otherFileItem.handleButton();
+            this.$refs.otherFileItem.fileList = [];
+            this.$refs.otherFileItem.getListFileBusinessId(that.formLXApply.id, "0");
           }, 300);
         }
       });

+ 15 - 0
ruoyi-ui/src/views/project/approval/edit.vue

@@ -111,6 +111,9 @@
                     @getFileList="getFileListLXApply"
                   ></fileItem>
                 </el-form-item>
+                <el-form-item label="其他附件" prop="otherFile" class="special-el-form-item">
+                  <fileItem ref="otherFileItem" :id="formLXApply.id" @getFileList="getOtherFileListLXApply"></fileItem>
+                </el-form-item>
               </el-form>
               <div
                 v-else
@@ -193,8 +196,10 @@ export default {
         listFile: null,
         participants: null,
         participantsId: null,
+        otherFile:null,
       },
       fileListLXApply: [],
+      otherFileListLXApply: [],
       rulesLXApply: {
         projectOverview: [
           { required: true, trigger: "blur", message: "请输入" },
@@ -289,6 +294,15 @@ export default {
         this.fileListLXApply = [];
       }
     },
+    //立项其他附件
+    getOtherFileListLXApply(fileList) {
+      if (fileList && fileList.length > 0) {
+        this.otherFileListLXApply = fileList;
+        this.$refs.formLXApply.clearValidate(["otherFile"]);
+      } else {
+        this.otherFileListLXApply = [];
+      }
+    },
     //项目报备
     getDetail() {
       getPool(this.id).then((response) => {
@@ -310,6 +324,7 @@ export default {
     taskComplete(flag) {
       this.formLXApply.flag=flag;
       this.formLXApply.listFile = this.fileListLXApply;
+      this.formLXApply.otherFile = this.otherFileListLXApply;
       const params={
         projectApproval:this.formLXApply,
         flowBaseInfo: this.flowBaseInfo

+ 10 - 5
ruoyi-ui/src/views/project/decision/audit.vue

@@ -106,6 +106,9 @@
                     :is-detail="true"
                   ></fileItem>
                 </el-form-item>
+                <el-form-item label="其他附件" prop="otherListFile" class="special-el-form-item">
+                  <fileItem ref="otherFileItem" :id="formTJApply.id" :is-detail="true"></fileItem>
+                </el-form-item>
               </el-form>
               <div
                 v-else
@@ -1685,11 +1688,13 @@ export default {
             this.formType=4;
           }
           setTimeout(() => {
-            that.$refs.fileItemTJApply1.handleButton();
-            that.$refs.fileItemTJApply1.fileList = [];
-            that.$refs.fileItemTJApply1.getListFileBusinessId(
-              that.formTJApply.id
-            );
+            this.$refs.fileItemTJApply1.handleButton();
+            this.$refs.fileItemTJApply1.fileList = [];
+            this.$refs.fileItemTJApply1.getListFileBusinessId(that.formTJApply.id,"11");
+            //其他附件
+            this.$refs.otherFileItem.handleButton();
+            this.$refs.otherFileItem.fileList = [];
+            this.$refs.otherFileItem.getListFileBusinessId(that.formLXApply.id, "0");
           }, 300);
         }
       });

+ 10 - 5
ruoyi-ui/src/views/project/decision/detail.vue

@@ -119,6 +119,9 @@
                     disabled
                   />
                 </el-form-item>-->
+                <el-form-item label="其他附件" prop="otherListFile" class="special-el-form-item">
+                  <fileItem ref="otherFileItem" :id="formTJApply.id" :is-detail="true"></fileItem>
+                </el-form-item>
               </el-form>
               <div
                 v-else
@@ -845,11 +848,13 @@ export default {
             this.getSelectMeetingId();
           }
           setTimeout(() => {
-            that.$refs.fileItemTJApply.handleButton();
-            that.$refs.fileItemTJApply.fileList = [];
-            that.$refs.fileItemTJApply.getListFileBusinessId(
-              that.formTJApply.id
-            );
+            this.$refs.fileItemTJApply.handleButton();
+            this.$refs.fileItemTJApply.fileList = [];
+            this.$refs.fileItemTJApply.getListFileBusinessId(that.formTJApply.id,"11");
+            //其他附件
+            this.$refs.otherFileItem.handleButton();
+            this.$refs.otherFileItem.fileList = [];
+            this.$refs.otherFileItem.getListFileBusinessId(that.formTJApply.id, "0");
           }, 300);
         }
       });

+ 15 - 0
ruoyi-ui/src/views/project/decision/edit.vue

@@ -106,6 +106,9 @@
                     @getFileList="getFileListTJApply"
                   ></fileItem>
                 </el-form-item>
+                <el-form-item label="其他附件" prop="otherFile" class="special-el-form-item">
+                  <fileItem ref="otherFileItem" :id="formTJApply.id" @getFileList="getOtherFileListTJApply"></fileItem>
+                </el-form-item>
 <!--                <el-form-item
                   label="通知名单"
                   prop="participants"
@@ -208,8 +211,10 @@ export default {
         participants: null,
         participantsId: null,
         flag:null,
+        otherFile:null,
       },
       fileListTJApply: [],
+      otherFileListTJApply: [],
       rulesTJApply: {
         provision: [{ required: true, trigger: "blur", message: "请输入" }],
         listFile: [{ required: true, validator: validateLogo }],
@@ -301,6 +306,15 @@ export default {
         this.fileListTJApply = [];
       }
     },
+    //投决其他附件
+    getOtherFileListTJApply(fileList) {
+      if (fileList && fileList.length > 0) {
+        this.otherFileListTJApply = fileList;
+        this.$refs.formTJApply.clearValidate(["otherFile"]);
+      } else {
+        this.otherFileListTJApply = [];
+      }
+    },
     //项目报备
     getDetail() {
       getPool(this.id).then((response) => {
@@ -321,6 +335,7 @@ export default {
     taskComplete(flag) {
       this.formTJApply.flag=flag;
       this.formTJApply.listFile = this.fileListTJApply;
+      this.formTJApply.otherFile = this.otherFileListTJApply;
       const params={
         projectDecision:this.formTJApply,
         flowBaseInfo: this.flowBaseInfo

+ 2 - 2
ruoyi-ui/src/views/project/flowBase.vue

@@ -7,7 +7,7 @@
         <th>审批人</th>
         <th>审批结果</th>
         <th>审批时间</th>
-        <th v-if="procDefId && (procDefId.includes('dgt-project') || procDefId.includes('dgt-decision'))">打分表</th>
+        <th v-if="procDefId && (procDefId.includes('dgt-decision'))">打分表</th>
       </tr>
       </thead>
       <tbody>
@@ -16,7 +16,7 @@
         <td>{{ item.createBy }}</td>
         <td>{{ item.comment }}</td>
         <td>{{ item.createDate }}</td>
-        <td v-if="procDefId && (procDefId.includes('dgt-project') || procDefId.includes('dgt-decision'))">
+        <td v-if="procDefId && (procDefId.includes('dgt-decision'))">
           <el-button v-if="item.taskDefKey==='decision' " class="custom-blue-color" size="mini"
                      type="text" icon="el-icon-search" @click="handleDetail(item.createBy,scoringList)">查看</el-button>
         </td>

+ 104 - 4
ruoyi-ui/src/views/project/investigate/audit.vue

@@ -80,6 +80,7 @@
                 ref="dueForm"
                 class="special-el-form public-padded-t-20"
                 :model="dueForm"
+                :rules="dueRules"
                 label-width="170px"
               >
                 <el-form-item label="尽调名称" class="special-el-form-item">
@@ -177,6 +178,24 @@
                     v-model="dueForm.remark"
                   />
                 </el-form-item>
+                <el-form-item label="财务评估报告" class="special-el-form-item" v-if="dueForm.taskDefKey=='president'">
+                  <fileItem ref="financeFileItem" :id="dueForm.id" :is-detail="true"></fileItem>
+                </el-form-item>
+                <el-form-item label="法务评估报告"  class="special-el-form-item" v-if="dueForm.taskDefKey=='president'">
+                  <fileItem ref="legalFileItem" :id="dueForm.id" :is-detail="true"></fileItem>
+                </el-form-item>
+                <el-form-item label="其他" class="special-el-form-item" v-if="dueForm.taskDefKey=='president'">
+                  <fileItem ref="otherFileItem" :id="dueForm.id" :is-detail="true"></fileItem>
+                </el-form-item>
+<!--                <el-form-item label="财务评估报告" prop="financeListFile" class="special-el-form-item" v-show="user.dept.deptName.indexOf('财务') > -1">
+                  <fileItem ref="financeFileItem" :id="dueForm.id" @getFileList="getFinanceFileList"></fileItem>
+                </el-form-item>
+                <el-form-item label="法务评估报告" prop="legalListFile" class="special-el-form-item" v-show="user.dept.deptName.indexOf('法务') > -1">
+                  <fileItem ref="legalFileItem" :id="dueForm.id" @getFileList="getLegalFileList"></fileItem>
+                </el-form-item>-->
+                <el-form-item label="评估报告" prop="assessListFile" class="special-el-form-item" v-if="dueForm.taskDefKey==='approve'">
+                  <fileItem ref="assessFileItem" :id="dueForm.id" @getFileList="getAssessFileList"></fileItem>
+                </el-form-item>
               </el-form>
             </el-tab-pane>
             <el-tab-pane label="项目投决评估评审汇总表"  v-if="dueForm.taskDefKey==='confirm'||dueForm.taskDefKey=='president'" name="review">
@@ -265,7 +284,7 @@
         <el-form-item class="btnList">
           <el-button @click="goBack">返 回</el-button>
           <el-button type="success" @click="handleComplete(true)">同意</el-button>
-          <el-button v-if="dueForm.taskDefKey!='upload'&&dueForm.taskDefKey!='president'" type="warning" @click="handleComplete(false)">驳回</el-button>
+          <el-button v-if="dueForm.taskDefKey!='upload'&&dueForm.taskDefKey!='approve'&&dueForm.taskDefKey!='president'" type="warning" @click="handleComplete(false)">驳回</el-button>
           <el-button v-if="dueForm.taskDefKey=='president'" type="warning" @click="handleComplete(false)">驳回(修改)</el-button>
           <el-button v-if="dueForm.taskDefKey=='president'" type="danger" @click="handleComplete(false,1)">驳回(终止)</el-button>
           <el-button v-if="dueForm.taskDefKey=='president'" type="warning" @click="handleComplete(false,0)">观望</el-button>
@@ -317,6 +336,27 @@ export default {
         callback();
       }
     };
+   /* const financeValidateLogo = (rule, value, callback) => {
+      if (this.financeFileList.length <= 0) {
+        callback(new Error("请上传财务评估报告"));
+      } else {
+        callback();
+      }
+    };
+    const legalValidateLogo = (rule, value, callback) => {
+      if (this.legalFileList.length <= 0) {
+        callback(new Error("请上传法务评估报告"));
+      } else {
+        callback();
+      }
+    };*/
+    const assessValidateLogo = (rule, value, callback) => {
+      if (this.assessFileList.length <= 0) {
+        callback(new Error("请上传评估报告"));
+      } else {
+        callback();
+      }
+    };
     return {
       // 人员选择器
       checkType: "multiple",
@@ -358,6 +398,15 @@ export default {
         projectName: null,
         flag:null,
         taskDefKey:null,
+        financeListFile:null,
+        /*legalListFile: null,
+        reportListFile:null,*/
+        assessListFile:null,
+      },
+      dueRules:{
+       /* financeListFile: [{ required: true, validator: financeValidateLogo }],
+        legalListFile: [{ required: true, validator: legalValidateLogo }],*/
+        assessListFile: [{ required: true, validator: assessValidateLogo }],
       },
       duePeportForm: {
         createBy: null,
@@ -377,6 +426,9 @@ export default {
         listFile: [{ required: true, validator: validateLogo }],
       },
       reportFileList: [],
+      /*financeFileList: [],
+      legalFileList: [],*/
+      assessFileList: [],
       dueAllPeportList: [],
       //打分-结束
       flowBaseInfo:{
@@ -419,10 +471,23 @@ export default {
         if (response && response.data) {
           that.dueForm = response.data;
           setTimeout(() => {
-            that.$refs.fileItems1.listFile = [];
-            that.$refs.fileItems1.handleButton();
-            that.$refs.fileItems1.getListFileBusinessId(this.dueForm.id);
+            this.$refs.fileItems1.listFile = [];
+            this.$refs.fileItems1.handleButton();
+            this.$refs.fileItems1.getListFileBusinessId(that.dueForm.id,"11");
+            //项目行研报告
+            this.$refs.financeFileItem.handleButton();
+            this.$refs.financeFileItem.fileList = [];
+            this.$refs.financeFileItem.getListFileBusinessId(that.dueForm.id, "14");
+            //项目技术报告
+            this.$refs.legalFileItem.handleButton();
+            this.$refs.legalFileItem.fileList = [];
+            this.$refs.legalFileItem.getListFileBusinessId(that.dueForm.id, "15");
+            //其他
+            this.$refs.otherFileItem.handleButton();
+            this.$refs.otherFileItem.fileList = [];
+            this.$refs.otherFileItem.getListFileBusinessId(that.dueForm.id, "0");
           }, 300);
+
           if(response.data.taskDefKey==='confirm'||response.data.taskDefKey === "president"){
             this.handleLook(response.data);
           }
@@ -456,6 +521,33 @@ export default {
         this.reportFileList = [];
       }
     },
+    //财务评估报告
+    /*getFinanceFileList(fileList) {
+      if (fileList && fileList.length > 0) {
+        this.financeFileList = fileList;
+        this.$refs.dueForm.clearValidate(["financeListFile"]);
+      } else {
+        this.financeFileList = [];
+      }
+    },
+    //法务评估报告
+    getLegalFileList(fileList) {
+      if (fileList && fileList.length > 0) {
+        this.legalFileList = fileList;
+        this.$refs.dueForm.clearValidate(["legalListFile"]);
+      } else {
+        this.legalFileList = [];
+      }
+    },*/
+    //评估报告
+    getAssessFileList(fileList) {
+      if (fileList && fileList.length > 0) {
+        this.assessFileList = fileList;
+        this.$refs.dueForm.clearValidate(["assessListFile"]);
+      } else {
+        this.assessFileList = [];
+      }
+    },
     //项目报备
     getDetail() {
       getPool(this.id).then((response) => {
@@ -488,6 +580,14 @@ export default {
             return;
           }
         })
+      }else if(this.dueForm.taskDefKey==="approve"){
+        this.dueForm.listFile =  this.assessFileList;
+        this.$refs["dueForm"].validate((valid) => {
+          if (!valid) {
+            allValid = false;
+            return;
+          }
+        })
       }
       if (!flag&&!this.flowBaseInfo.comment) {
         this.$modal.msgError("请输入审批意见!");

+ 25 - 8
ruoyi-ui/src/views/project/investigate/detail.vue

@@ -156,11 +156,7 @@
                   />
                 </el-form-item>
                 <el-form-item label="尽调资料" class="special-el-form-item">
-                  <fileItem
-                    ref="fileItems1"
-                    :id="dueForm.id"
-                    :is-detail="true"
-                  ></fileItem>
+                  <fileItem ref="fileItems1" :id="dueForm.id" :is-detail="true"></fileItem>
                 </el-form-item>
                 <el-form-item label="描述" class="special-el-form-item">
                   <el-input
@@ -178,6 +174,15 @@
                     v-model="dueForm.remark"
                   />
                 </el-form-item>
+                <el-form-item label="财务评估报告" class="special-el-form-item">
+                  <fileItem ref="financeFileItem" :id="dueForm.id" :is-detail="true"></fileItem>
+                </el-form-item>
+                <el-form-item label="法务评估报告"  class="special-el-form-item">
+                  <fileItem ref="legalFileItem" :id="dueForm.id" :is-detail="true"></fileItem>
+                </el-form-item>
+                <el-form-item label="其他" class="special-el-form-item">
+                  <fileItem ref="otherFileItem" :id="dueForm.id" :is-detail="true"></fileItem>
+                </el-form-item>
               </el-form>
               <div
                 v-else
@@ -332,9 +337,21 @@ export default {
         if (response && response.data) {
           that.dueForm = response.data;
           setTimeout(() => {
-            that.$refs.fileItems1.listFile = [];
-            that.$refs.fileItems1.handleButton();
-            that.$refs.fileItems1.getListFileBusinessId(this.dueForm.id);
+            this.$refs.fileItems1.handleButton();
+            this.$refs.fileItems1.listFile = [];
+            this.$refs.fileItems1.getListFileBusinessId(that.dueForm.id,"11");
+            //项目行研报告
+            this.$refs.financeFileItem.handleButton();
+            this.$refs.financeFileItem.fileList = [];
+            this.$refs.financeFileItem.getListFileBusinessId(that.dueForm.id, "14");
+            //项目技术报告
+            this.$refs.legalFileItem.handleButton();
+            this.$refs.legalFileItem.fileList = [];
+            this.$refs.legalFileItem.getListFileBusinessId(that.dueForm.id, "15");
+            //其他
+            this.$refs.otherFileItem.handleButton();
+            this.$refs.otherFileItem.fileList = [];
+            this.$refs.otherFileItem.getListFileBusinessId(that.dueForm.id, "0");
           }, 300);
           this.handleLook(response.data);
         }

+ 2 - 2
ruoyi-ui/src/views/project/investigate/edit.vue

@@ -378,9 +378,9 @@ export default {
         if (response.data) {
           this.dueForm = response.data;
           setTimeout(() => {
-            that.$refs.fileItems.listFile = [];
+            this.$refs.fileItems.listFile = [];
             //that.$refs.fileItems.handleButton();
-            that.$refs.fileItems.getListFileBusinessId(this.dueForm.id);
+            this.$refs.fileItems.getListFileBusinessId(that.dueForm.id,"11");
           }, 300);
           //this.handleLook(response.data);
         }

+ 36 - 12
ruoyi-ui/src/views/project/meetingList.vue

@@ -756,16 +756,11 @@
             placeholder="请输入项目亮点"
           />
         </el-form-item>
-        <el-form-item
-          label="立项资料"
-          prop="listFile"
-          class="special-el-form-item"
-        >
-          <fileItem
-            ref="fileItemLXApply"
-            :id="formLXApply.id"
-            @getFileList="getFileListLXApply"
-          ></fileItem>
+        <el-form-item label="立项申请报告" prop="listFile" class="special-el-form-item">
+          <fileItem ref="fileItemLXApply" :id="formLXApply.id" @getFileList="getFileListLXApply"></fileItem>
+        </el-form-item>
+        <el-form-item label="其他附件" prop="otherFile" class="special-el-form-item">
+          <fileItem ref="otherFileItem" :id="formLXApply.id" @getFileList="getOtherFileListLXApply"></fileItem>
         </el-form-item>
 <!--        <el-form-item
           label="通知名单"
@@ -851,6 +846,9 @@
             @getFileList="getFileListTJApply"
           ></fileItem>
         </el-form-item>
+        <el-form-item label="其他附件" prop="otherFile" class="special-el-form-item">
+          <fileItem ref="otherFileItem" :id="formTJApply.id" @getFileList="getOtherFileListTJApply"></fileItem>
+        </el-form-item>
 <!--        <el-form-item
           label="通知名单"
           prop="participants"
@@ -988,14 +986,14 @@ export default {
   data() {
     const validateLogo = (rule, value, callback) => {
       if (this.fileListLXApply.length <= 0) {
-        callback(new Error("请上传文件"));
+        callback(new Error("请上传立项申请报告"));
       } else {
         callback();
       }
     };
     const validateLogo1 = (rule, value, callback) => {
       if (this.fileListTJApply.length <= 0) {
-        callback(new Error("请上传文件"));
+        callback(new Error("请上传投决申请报告"));
       } else {
         callback();
       }
@@ -1130,8 +1128,10 @@ export default {
         participants: null,
         participantsId: null,
         flag:null,
+        otherFile:null
       },
       fileListLXApply: [],
+      otherFileListLXApply: [],
       rulesLXApply: {
         projectOverview: [
           { required: true, trigger: "blur", message: "请输入" },
@@ -1153,8 +1153,10 @@ export default {
         participants: null,
         participantsId: null,
         flag:null,
+        otherFile:null
       },
       fileListTJApply: [],
+      otherFileListTJApply: [],
       rulesTJApply: {
         provision: [{ required: true, trigger: "blur", message: "请输入" }],
         listFile: [{ required: true, validator: validateLogo1 }],
@@ -1386,6 +1388,15 @@ export default {
         this.fileListLXApply = [];
       }
     },
+    //立项其他附件
+    getOtherFileListLXApply(fileList) {
+      if (fileList && fileList.length > 0) {
+        this.otherFileListLXApply = fileList;
+        this.$refs.formLXApply.clearValidate(["otherFile"]);
+      } else {
+        this.otherFileListLXApply = [];
+      }
+    },
     // 投决申请附件回显
     getFileListTJApply(fileList) {
       this.fileListTJApply = fileList;
@@ -1395,6 +1406,15 @@ export default {
         this.fileListTJApply = [];
       }
     },
+    //投决其他附件
+    getOtherFileListTJApply(fileList) {
+      if (fileList && fileList.length > 0) {
+        this.otherFileListTJApply = fileList;
+        this.$refs.formTJApply.clearValidate(["otherFile"]);
+      } else {
+        this.otherFileListTJApply = [];
+      }
+    },
     // 获取公司信息
     getProjectInfo(info) {
       if (info.length > 0) {
@@ -1497,6 +1517,7 @@ export default {
         projectOverview: null,
         projectSparkle: null,
         listFile: null,
+        otherFile:null,
       };
       this.resetForm("formLXApply");
     },
@@ -1509,6 +1530,7 @@ export default {
         projectOverview: null,
         projectSparkle: null,
         listFile: null,
+        otherFile:null,
       };
       this.resetForm("formTJApply");
     },
@@ -1668,6 +1690,7 @@ export default {
       this.$refs["formLXApply"].validate((valid) => {
         if (valid) {
           this.formLXApply.listFile = this.fileListLXApply;
+          this.formLXApply.otherFile=this.otherFileListLXApply;
           if (this.formLXApply.id != null) {
             /*updateApproval(this.formLXApply).then((response) => {
               this.$modal.msgSuccess("修改成功");
@@ -1695,6 +1718,7 @@ export default {
       this.$refs["formTJApply"].validate((valid) => {
         if (valid) {
           this.formTJApply.listFile = this.fileListTJApply;
+          this.formTJApply.otherFile = this.otherFileListTJApply;
           /*if (this.formTJApply.id != null) {
             updateDecision(this.formTJApply).then((response) => {
               this.$modal.msgSuccess("修改成功");