Преглед на файлове

11482-【CR】【投资系统】增加审批流程-投资机会、项目立项、项目投决、项目终止审批状态,以及前端页面

hxy преди 3 месеца
родител
ревизия
e24d47f6ee
променени са 44 файла, в които са добавени 814 реда и са изтрити 1929 реда
  1. 1 2
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ApprovalController.java
  2. 0 53
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/InvestmentOpportunityController.java
  3. 64 40
      ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/ApprovalServiceImpl.java
  4. 16 5
      ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/DecisionServiceImpl.java
  5. 13 2
      ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/InvestmentOpportunityServiceImpl.java
  6. 16 5
      ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/TerminationServiceImpl.java
  7. 7 0
      ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectApproval.java
  8. 10 0
      ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectDecision.java
  9. 5 3
      ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectPool.java
  10. 11 1
      ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectReview.java
  11. 6 1
      ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectTermination.java
  12. 10 0
      ruoyi-system/src/main/java/com/ruoyi/invest/domain/vo/ProjectApprovalVo.java
  13. 10 0
      ruoyi-system/src/main/java/com/ruoyi/invest/domain/vo/ProjectDecisionVo.java
  14. 4 1
      ruoyi-system/src/main/java/com/ruoyi/invest/domain/vo/ProjectTerminationVo.java
  15. 5 0
      ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/TProjectPoolVo.java
  16. 12 6
      ruoyi-system/src/main/resources/mapper/invest/ApprovalMapper.xml
  17. 3 1
      ruoyi-system/src/main/resources/mapper/invest/DecisionMapper.xml
  18. 14 3
      ruoyi-system/src/main/resources/mapper/invest/InvestmentOpportunityMapper.xml
  19. 3 0
      ruoyi-system/src/main/resources/mapper/invest/TProjectApprovalMapper.xml
  20. 4 0
      ruoyi-system/src/main/resources/mapper/invest/TProjectDecisionMapper.xml
  21. 4 0
      ruoyi-system/src/main/resources/mapper/invest/TProjectPoolMapper.xml
  22. 5 1
      ruoyi-system/src/main/resources/mapper/invest/TerminationMapper.xml
  23. 3 59
      ruoyi-ui/src/views/project/approval/list.vue
  24. 204 198
      ruoyi-ui/src/views/project/approval/audit.vue
  25. 0 12
      ruoyi-ui/src/views/project/approval/detail.vue
  26. 32 35
      ruoyi-ui/src/views/project/approval/edit.vue
  27. 72 400
      ruoyi-ui/src/views/project/approval/myTask.vue
  28. 0 1
      ruoyi-ui/src/views/project/decision/applyList.vue
  29. 5 3
      ruoyi-ui/src/views/project/decision/audit.vue
  30. 4 1
      ruoyi-ui/src/views/project/decision/edit.vue
  31. 57 400
      ruoyi-ui/src/views/project/decision/myTask.vue
  32. 2 2
      ruoyi-ui/src/views/project/flowBase.vue
  33. 8 4
      ruoyi-ui/src/views/project/investOpp/apply.vue
  34. 31 26
      ruoyi-ui/src/views/project/investOpp/audit.vue
  35. 22 19
      ruoyi-ui/src/views/project/investOpp/detail.vue
  36. 1 1
      ruoyi-ui/src/views/project/investOpp/edit.vue
  37. 39 209
      ruoyi-ui/src/views/project/investOpp/myTask.vue
  38. 5 3
      ruoyi-ui/src/views/project/investigate/audit.vue
  39. 4 1
      ruoyi-ui/src/views/project/investigate/edit.vue
  40. 36 23
      ruoyi-ui/src/views/project/meetingList.vue
  41. 0 1
      ruoyi-ui/src/views/project/termination/applyList.vue
  42. 5 3
      ruoyi-ui/src/views/project/termination/audit.vue
  43. 4 1
      ruoyi-ui/src/views/project/termination/edit.vue
  44. 57 403
      ruoyi-ui/src/views/project/termination/myTask.vue

+ 1 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ApprovalController.java

@@ -89,7 +89,6 @@ public class ApprovalController extends BaseController {
     @PostMapping("/start")
     public AjaxResult start(@RequestBody TProjectApproval tProjectApproval) {
 
-       //return approvalService.set
         return approvalService.start(tProjectApproval);
     }
     @ApiOperation(value = "审批任务")
@@ -103,7 +102,7 @@ public class ApprovalController extends BaseController {
         return approvalService.complete(tProjectApproval,tProjectMeeting,tProjectScoring,flowBaseInfo,request);
     }
     /**
-     * 获取通过流程id会议记录详细信息 (会议投决
+     * 获取通过流程id会议记录详细信息 (会议)
      */
     @ApiOperation("获取会议记录详细信息")
     @GetMapping(value = "/getMeetingInfo/{pInstId}")

+ 0 - 53
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/InvestmentOpportunityController.java

@@ -113,62 +113,9 @@ public class InvestmentOpportunityController extends BaseController
                             @RequestBody TProjectPool tProjectPool
                             ) {
 
-       //return investmentOpportunityService.set
         return investmentOpportunityService.start(tProjectPool);
     }
-    /**
-     * 新增项目池
-     */
-    @ApiOperation("新增项目池")
-    @PreAuthorize("@ss.hasPermi('invest:pool:add')")
-    @Log(title = "项目池", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody TProjectPool tProjectPool)
-    {
-        // todo 设置主键及创建人
-        tProjectPool.setCreateBy(getNickName());
-        tProjectPool.setId(IdUtils.fastSimpleUUID());
-        int number = tProjectPoolService.selectTProjectPoolCode(DateUtils.lastTwoDigits()+"-");
-        tProjectPool.setProjectCode(tProjectPool.getProjectGroup() + "-" + DateUtils.lastTwoDigits() + "-" + String.format("%03d",number+1));
-        TProjectCompany tProjectCompany = tProjectPool.gettProjectCompany();
-        tProjectCompany.setCreateBy(getNickName());
-        tProjectCompany.setId(IdUtils.fastSimpleUUID());
-        TProjectContacts tProjectContacts = tProjectPool.gettProjectContacts();
-        tProjectContacts.setCreateBy(getNickName());
-        tProjectContacts.setId(IdUtils.fastSimpleUUID());
-        // todo 设置项目联系人
-        tProjectPool.setProjectContacts(tProjectContacts.getId());
-        // todo 设置公司信息关联关系
-        tProjectCompany.setProjectPoolId(tProjectPool.getId());
-
-        // todo 保存公司附件信息
-        tUnifyFileService.insertTUnifyFileList(tProjectPool.getListFile(),
-                tProjectPool.getId(),
-                tProjectCompany.getId(),
-                String.valueOf(FileType.COMPANY.ordinal()),
-                getNickName());
 
-        // todo 保存BP附件信息
-        tUnifyFileService.insertTUnifyFileList(tProjectPool.getBpFile(),
-                tProjectPool.getId(),
-                tProjectPool.getId(),
-                String.valueOf(FileType.BP.ordinal()),
-                getNickName());
-
-        // todo 保存其他附件信息
-        tUnifyFileService.insertTUnifyFileList(tProjectPool.getOtherFile(),
-                tProjectPool.getId(),
-                tProjectPool.getId(),
-                String.valueOf(FileType.OTHER.ordinal()),
-                getNickName());
-
-        tProjectCompanyService.insertTProjectCompany(tProjectCompany);
-        tProjectContactsService.insertTProjectContacts(tProjectContacts);
-        // todo 增加项目创建记录
-        tProjectCirculationService.insertTProjectCirculation(tProjectPool.getId(),"项目报备",getNickName());
-
-        return toAjax(tProjectPoolService.insertTProjectPool(tProjectPool));
-    }
     @ApiOperation(value = "审批任务")
     @PutMapping(value = "/complete")
     public AjaxResult complete(@RequestBody InvestDto dto, HttpServletRequest request) {

+ 64 - 40
ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/ApprovalServiceImpl.java

@@ -46,16 +46,8 @@ public class ApprovalServiceImpl extends FlowServiceFactory implements IApproval
     @Autowired
     private ITProjectApprovalService tProjectApprovalService;
     @Autowired
-    private TProjectPoolMapper tProjectPoolMapper;
-    @Autowired
     private ITProjectPoolService tProjectPoolService;
 
-    @Autowired
-    private ITProjectCompanyService tProjectCompanyService;
-
-    @Autowired
-    private ITProjectContactsService tProjectContactsService;
-
     @Autowired
     private ITProjectCirculationService tProjectCirculationService;
 
@@ -70,8 +62,6 @@ public class ApprovalServiceImpl extends FlowServiceFactory implements IApproval
     private ISysUserService sysUserService;
     @Autowired
     private SysDeptMapper sysDeptMapper;
-    @Autowired
-    private ITProjectReviewService tProjectReviewService;
 
     @Autowired
     private IFlowService flowService;
@@ -148,6 +138,11 @@ public class ApprovalServiceImpl extends FlowServiceFactory implements IApproval
                     tProjectApproval.setId(IdUtils.fastSimpleUUID());
                     tProjectApproval.setProcInstId(pInst.getProcessInstanceId());
                     tProjectApproval.setCreateBy(userId);
+                    if(tProjectApproval.isFlag()){
+                        tProjectApproval.setStatus(1);//提交
+                    }else{
+                        tProjectApproval.setStatus(0);//暂存
+                    }
                     // todo 保存立项资料
                     tUnifyFileService.insertTUnifyFileList(tProjectApproval.getListFile(),
                             tProjectApproval.getProjectPoolId(),
@@ -184,7 +179,7 @@ public class ApprovalServiceImpl extends FlowServiceFactory implements IApproval
                     flowBaseInfo.setProcInsId(pInst.getId());
                     flowBaseInfo.setTaskName("申请人");
                     flowBaseInfo.setFlag(true);
-                    flowBaseInfo.setComment("[提交申请]");
+                    flowBaseInfo.setComment(tProjectApproval.isFlag() ? "[提交]" : "[暂存]");
                     flowBaseInfo.setStatus(FlowStatusEnum.STARTED.getName());
 
                     activitiBaseInfoService.addActivitiBaseInfo(flowBaseInfo);
@@ -242,31 +237,51 @@ public class ApprovalServiceImpl extends FlowServiceFactory implements IApproval
         if (status) {
             TProjectPool tProjectPool=new TProjectPool();
             tProjectPool.setId(tProjectApproval.getProjectPoolId());
+            if("modifyApply".equals(task.getTaskDefinitionKey())){
+                // todo 保存立项资料
+                tUnifyFileService.insertTUnifyFileList(tProjectApproval.getListFile(),
+                        tProjectApproval.getProjectPoolId(),
+                        tProjectApproval.getId(),
+                        String.valueOf(FileType.APPROVAL.ordinal()),
+                        userInfo.getNickName());
+            }
             //发起会议
             if ("meeting".equals(task.getTaskDefinitionKey())) {
-                tProjectMeeting.setId(IdUtils.fastSimpleUUID());
-                tProjectMeeting.setCreateBy(userInfo.getNickName());
-                tProjectMeeting.setProjectPoolId(tProjectApproval.getProjectPoolId());
-                if(tProjectMeeting.getMeetingType().equals("LX")||tProjectMeeting.getMeetingType().equals("TJ")){
-                    int number = tProjectMeetingService.selectTProjectMeetingCode(DateUtils.lastTwoDigits()+"-");
-                    tProjectMeeting.setMeetingCode(tProjectMeeting.getProjectGroup()+"-"+ DateUtils.lastTwoDigits() +"-"+tProjectMeeting.getMeetingType()+"-"+ String.format("%03d",number+1));
-                }else{
-                    int number = tProjectMeetingService.selectTProjectMeetingCode(DateUtils.dateTimeNow("YYYY"));
-                    tProjectMeeting.setMeetingCode(DateUtils.dateNow()+ String.format("%03d",number+1));
-                }
-                // todo 保存附件信息
-                tUnifyFileService.insertTUnifyFileList(tProjectMeeting.getListFile(),
-                        tProjectMeeting.getProjectPoolId(),
-                        tProjectMeeting.getId(),//会议ID
-                        String.valueOf(FileType.MEETING.ordinal()),//文件类型:会议
-                        userInfo.getNickName());
+                if(tProjectMeeting!=null&&StringUtils.isNotBlank(tProjectMeeting.getId())){
+                    // todo 保存附件信息
+                    tUnifyFileService.insertTUnifyFileList(tProjectMeeting.getListFile(),
+                            tProjectMeeting.getProjectPoolId(),
+                            tProjectMeeting.getId(),//会议ID
+                            String.valueOf(FileType.MEETING.ordinal()),//文件类型:会议
+                            userInfo.getNickName());
+                    tProjectMeetingService.updateTProjectMeeting(tProjectMeeting);
+                }else {
+                    if ("0".equals(tProjectApproval.getNeedMeeting())) {
+
+                    }
+                    tProjectMeeting.setId(IdUtils.fastSimpleUUID());
+                    tProjectMeeting.setCreateBy(userInfo.getNickName());
+                    tProjectMeeting.setProjectPoolId(tProjectApproval.getProjectPoolId());
+                    if (tProjectMeeting.getMeetingType().equals("LX") || tProjectMeeting.getMeetingType().equals("TJ")) {
+                        int number = tProjectMeetingService.selectTProjectMeetingCode(DateUtils.lastTwoDigits() + "-");
+                        tProjectMeeting.setMeetingCode(tProjectMeeting.getProjectGroup() + "-" + DateUtils.lastTwoDigits() + "-" + tProjectMeeting.getMeetingType() + "-" + String.format("%03d", number + 1));
+                    } else {
+                        int number = tProjectMeetingService.selectTProjectMeetingCode(DateUtils.dateTimeNow("YYYY"));
+                        tProjectMeeting.setMeetingCode(DateUtils.dateNow() + String.format("%03d", number + 1));
+                    }
+                    // todo 保存附件信息
+                    tUnifyFileService.insertTUnifyFileList(tProjectMeeting.getListFile(),
+                            tProjectMeeting.getProjectPoolId(),
+                            tProjectMeeting.getId(),//会议ID
+                            String.valueOf(FileType.MEETING.ordinal()),//文件类型:会议
+                            userInfo.getNickName());
 
-                // todo 增加会议创建记录
-                tProjectCirculationService.insertTProjectCirculation(tProjectMeeting.getProjectPoolId(),tProjectMeeting.getMeetingTheme()+"(会议)",userInfo.getNickName());
+                    // todo 增加会议创建记录
+                    tProjectCirculationService.insertTProjectCirculation(tProjectMeeting.getProjectPoolId(), tProjectMeeting.getMeetingTheme() + "(会议)", userInfo.getNickName());
 
-                // todo 发送短信-参与人-发起人
-                if(tProjectMeeting.getMeetingType().equals("LX") || tProjectMeeting.getMeetingType().equals("TJ")){
-                    // todo 参与人
+                    // todo 发送短信-参与人-发起人
+                    if (tProjectMeeting.getMeetingType().equals("LX") || tProjectMeeting.getMeetingType().equals("TJ")) {
+                        // todo 参与人
                     /*if(StringUtils.isNotEmpty(tProjectMeeting.getParticipantsId())){
                         StringUtils.str2List(tProjectMeeting.getParticipantsId(),",",true,true).stream().forEach(str -> {
                             SysUser user = sysUserService.selectUserById(Long.valueOf(str));
@@ -281,7 +296,7 @@ public class ApprovalServiceImpl extends FlowServiceFactory implements IApproval
                         });
                     }*/
 
-                    // todo 发起人
+                        // todo 发起人
                     /*if(StringUtils.isNotEmpty(tProjectMeeting.getPromoterId())){
                         SysUser user = sysUserService.selectUserById(Long.valueOf(tProjectMeeting.getPromoterId()));
                         String contents = "您好," + user.getNickName() + ",兹定于 " +
@@ -293,9 +308,10 @@ public class ApprovalServiceImpl extends FlowServiceFactory implements IApproval
                             logger.error("短信发送失败"+e.getMessage());
                         }
                     }*/
-                }
+                    }
 
-                tProjectMeetingService.insertTProjectMeeting(tProjectMeeting);
+                    tProjectMeetingService.insertTProjectMeeting(tProjectMeeting);
+                }
             }
             //上传打分表
             if("decision".equals(task.getTaskDefinitionKey())){
@@ -309,7 +325,6 @@ public class ApprovalServiceImpl extends FlowServiceFactory implements IApproval
             if("president".equals(task.getTaskDefinitionKey())){
                 tProjectPool.setProjectStage("3");//项目阶段-项目立项
                 tProjectPool.setProjectState("e");//项目状态-立项通过
-                tProjectPool.setProjectDate(new Date());//立项通过日期
             }
             //FlowBaseInfo flow = new FlowBaseInfo();
             if(flow==null){
@@ -323,10 +338,10 @@ public class ApprovalServiceImpl extends FlowServiceFactory implements IApproval
             flow.setTaskDefKey(task.getTaskDefinitionKey());
             String isOk = tProjectApproval.isFlag() ? "[同意]" : "[驳回]";
             if ("modifyApply".equals(task.getTaskDefinitionKey())) {
-                //tProjectPool.setStatus(tProjectPool.isFlag() ? 1 : 4);
+                tProjectApproval.setStatus(tProjectApproval.isFlag() ? 1 : 4);
                 isOk = tProjectApproval.isFlag() ? "[提交]" : "[关闭]";
             } else {
-                //tProjectPool.setStatus(tProjectPool.isFlag() ? 2 : 0);
+                tProjectApproval.setStatus(tProjectApproval.isFlag() ? 2 : 0);
             }
             if (null != flow.getComment()) {
                 flow.setComment(isOk + flow.getComment());
@@ -341,11 +356,18 @@ public class ApprovalServiceImpl extends FlowServiceFactory implements IApproval
             if (processInstance == null) {
                 flow.setStatus(FlowStatusEnum.ENDED.getName());
                 if (!"modifyApply".equals(task.getTaskDefinitionKey())) {
+                    tProjectApproval.setStatus(3);
                     tProjectPool.setProjectStage("4");//项目阶段-尽调背调
                     tProjectPool.setProjectState("f");//项目状态-尽调背调
                     tProjectPool.setUpdateBy(userInfo.getNickName());
-                    tProjectPoolService.updateTProjectPool(tProjectPool);
+                    tProjectPool.setProjectDate(new Date());//立项通过日期
+                }else{
+                    tProjectPool.setProjectStage("3");//项目阶段-项目立项
+                    tProjectPool.setProjectState("c");//项目状态-准备立项材料
+                    tProjectPool.setApprovalFlag("0");
+                    tProjectPool.setUpdateBy(userInfo.getNickName());
                 }
+                tProjectPoolService.updateTProjectPool(tProjectPool);
             }
             tProjectApprovalService.updateTProjectApproval(tProjectApproval);
             activitiBaseInfoService.addActivitiBaseInfo(flow);
@@ -371,7 +393,9 @@ public class ApprovalServiceImpl extends FlowServiceFactory implements IApproval
         Map<String, String> sumScore=new HashMap<>();
         if(tProjectApproval!=null){
             TProjectMeeting tProjectMeeting=tProjectMeetingService.selectTProjectMeetingByProjectPoolId(tProjectApproval.getProjectPoolId());
-            sumScore=tProjectScoringMapper.selectMeetingId(tProjectMeeting.getId());
+            if(tProjectMeeting!=null) {
+                sumScore = tProjectScoringMapper.selectMeetingId(tProjectMeeting.getId());
+            }
         }
         return sumScore;
     }

+ 16 - 5
ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/DecisionServiceImpl.java

@@ -153,7 +153,11 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
                     tProjectDecision.setId(IdUtils.fastSimpleUUID());
                     tProjectDecision.setProcInstId(pInst.getProcessInstanceId());
                     tProjectDecision.setCreateBy(userId);
-
+                    if(tProjectDecision.isFlag()){
+                        tProjectDecision.setStatus(1);//提交
+                    }else{
+                        tProjectDecision.setStatus(0);//暂存
+                    }
                     // todo 保存投决资料
                     tUnifyFileService.insertTUnifyFileList(tProjectDecision.getListFile(),
                             tProjectDecision.getProjectPoolId(),
@@ -191,7 +195,7 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
                     flowBaseInfo.setProcInsId(pInst.getId());
                     flowBaseInfo.setTaskName("申请人");
                     flowBaseInfo.setFlag(true);
-                    flowBaseInfo.setComment("[提交申请]");
+                    flowBaseInfo.setComment(tProjectDecision.isFlag() ? "[提交]" : "[暂存]");
                     flowBaseInfo.setStatus(FlowStatusEnum.STARTED.getName());
 
                     activitiBaseInfoService.addActivitiBaseInfo(flowBaseInfo);
@@ -329,10 +333,10 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
             flow.setTaskDefKey(task.getTaskDefinitionKey());
             String isOk = tProjectDecision.isFlag() ? "[同意]" : "[驳回]";
             if ("modifyApply".equals(task.getTaskDefinitionKey())) {
-                //tProjectPool.setStatus(tProjectPool.isFlag() ? 1 : 4);
+                tProjectDecision.setStatus(tProjectDecision.isFlag() ? 1 : 4);
                 isOk = tProjectDecision.isFlag() ? "[提交]" : "[关闭]";
             } else {
-                //tProjectPool.setStatus(tProjectPool.isFlag() ? 2 : 0);
+                tProjectDecision.setStatus(tProjectDecision.isFlag() ? 2 : 0);
             }
             if (null != flow.getComment()) {
                 flow.setComment(isOk + flow.getComment());
@@ -347,11 +351,18 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
             if (processInstance == null) {
                 flow.setStatus(FlowStatusEnum.ENDED.getName());
                 if (!"modifyApply".equals(task.getTaskDefinitionKey())) {
+                    tProjectDecision.setStatus(3);
                     tProjectPool.setProjectStage("6");//项目阶段-项目终止
                     tProjectPool.setProjectState("j");//项目状态-签约协议沟通中
                     tProjectPool.setUpdateBy(userInfo.getNickName());
-                    tProjectPoolService.updateTProjectPool(tProjectPool);
+                    tProjectPool.setDecisionDate(new Date());//投决通过日期
+                }else{
+                    tProjectPool.setProjectStage("5");//项目阶段-项目投决
+                    tProjectPool.setProjectState("c");//项目状态-
+                    tProjectPool.setDecisionFlag("0");
+                    tProjectPool.setUpdateBy(userInfo.getNickName());
                 }
+                tProjectPoolService.updateTProjectPool(tProjectPool);
             }
 
             tProjectDecisionService.updateTProjectDecision(tProjectDecision);

+ 13 - 2
ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/InvestmentOpportunityServiceImpl.java

@@ -137,6 +137,11 @@ public class InvestmentOpportunityServiceImpl extends FlowServiceFactory impleme
                     tProjectPool.setCreateBy(userId);
                     tProjectPool.setId(IdUtils.fastSimpleUUID());
                     tProjectPool.setProcInstId(pInst.getProcessInstanceId());
+                    if(tProjectPool.isFlag()){
+                        tProjectPool.setStatus(1);//提交
+                    }else{
+                        tProjectPool.setStatus(0);//暂存
+                    }
                     int number = tProjectPoolService.selectTProjectPoolCode(DateUtils.lastTwoDigits()+"-");
                     tProjectPool.setProjectCode(tProjectPool.getProjectGroup() + "-" + DateUtils.lastTwoDigits() + "-" + String.format("%03d",number+1));
                     TProjectCompany tProjectCompany = tProjectPool.gettProjectCompany();
@@ -184,7 +189,7 @@ public class InvestmentOpportunityServiceImpl extends FlowServiceFactory impleme
                     flowBaseInfo.setProcInsId(pInst.getId());
                     flowBaseInfo.setTaskName("申请人");
                     flowBaseInfo.setFlag(true);
-                    flowBaseInfo.setComment("[提交申请]");
+                    flowBaseInfo.setComment(tProjectPool.isFlag() ? "[提交]" : "[暂存]");
                     flowBaseInfo.setStatus(FlowStatusEnum.STARTED.getName());
 
                     activitiBaseInfoService.addActivitiBaseInfo(flowBaseInfo);
@@ -234,12 +239,18 @@ public class InvestmentOpportunityServiceImpl extends FlowServiceFactory impleme
         if (status) {
             //软件工程院审批
             if ("softwareDept".equals(task.getTaskDefinitionKey())) {
+                tProjectReview.setProjectPoolId(tProjectPool.getId());
                 tProjectReview.setCreateBy(userInfo.getNickName());
                 tProjectReview.setReviewPerson(userInfo.getNickName());
                 tProjectReview.setReviewPersonId(userInfo.getUserId().toString());
                 // todo 增加上传评审意见记录
                 tProjectCirculationService.insertTProjectCirculation(tProjectReview.getProjectPoolId(), "上传评估考察意见", userInfo.getNickName());
-                tProjectReviewService.insertTProjectReview(tProjectReview);
+                if(StringUtils.isNotBlank(tProjectReview.getReviewId())){
+                    tProjectReview.setId(tProjectReview.getReviewId());
+                    tProjectReviewService.updateTProjectReview(tProjectReview);
+                }else {
+                    tProjectReviewService.insertTProjectReview(tProjectReview);
+                }
                 tProjectPool.setProjectStage("2");//项目阶段-评估考察
                 tProjectPool.setProjectState("b");//项目状态-评估考察中
             }

+ 16 - 5
ruoyi-flowable/src/main/java/com/ruoyi/flowable/service/impl/TerminationServiceImpl.java

@@ -131,7 +131,11 @@ public class TerminationServiceImpl extends FlowServiceFactory implements ITermi
                     tProjectTermination.setId(IdUtils.fastSimpleUUID());
                     tProjectTermination.setProcInstId(pInst.getProcessInstanceId());
                     tProjectTermination.setCreateBy(userId);
-
+                    if(tProjectTermination.isFlag()){
+                        tProjectTermination.setStatus(1);//提交
+                    }else{
+                        tProjectTermination.setStatus(0);//暂存
+                    }
                     // todo 更改终止状态
                     tProjectPoolService.updateTProjectPoolByApprovalFlag(tProjectTermination.getProjectPoolId(),"1");
                     // todo 短信提醒
@@ -163,7 +167,7 @@ public class TerminationServiceImpl extends FlowServiceFactory implements ITermi
                     flowBaseInfo.setProcInsId(pInst.getId());
                     flowBaseInfo.setTaskName("申请人");
                     flowBaseInfo.setFlag(true);
-                    flowBaseInfo.setComment("[提交申请]");
+                    flowBaseInfo.setComment(tProjectTermination.isFlag() ? "[提交]" : "[暂存]");
                     flowBaseInfo.setStatus(FlowStatusEnum.STARTED.getName());
 
                     activitiBaseInfoService.addActivitiBaseInfo(flowBaseInfo);
@@ -227,10 +231,10 @@ public class TerminationServiceImpl extends FlowServiceFactory implements ITermi
             flow.setTaskDefKey(task.getTaskDefinitionKey());
             String isOk = tProjectTermination.isFlag() ? "[同意]" : "[驳回]";
             if ("modifyApply".equals(task.getTaskDefinitionKey())) {
-                //tProjectPool.setStatus(tProjectPool.isFlag() ? 1 : 4);
+                tProjectTermination.setStatus(tProjectTermination.isFlag() ? 1 : 4);
                 isOk = tProjectTermination.isFlag() ? "[提交]" : "[关闭]";
             } else {
-                //tProjectPool.setStatus(tProjectPool.isFlag() ? 2 : 0);
+                tProjectTermination.setStatus(tProjectTermination.isFlag() ? 2 : 0);
             }
             if (null != flow.getComment()) {
                 flow.setComment(isOk + flow.getComment());
@@ -245,11 +249,18 @@ public class TerminationServiceImpl extends FlowServiceFactory implements ITermi
             if (processInstance == null) {
                 flow.setStatus(FlowStatusEnum.ENDED.getName());
                 if (!"modifyApply".equals(task.getTaskDefinitionKey())) {
+                    tProjectTermination.setStatus(3);
                     tProjectPool.setProjectStage("8");//项目阶段-项目终止
                     tProjectPool.setProjectState("p");//项目状态-终止通过
                     tProjectPool.setUpdateBy(userInfo.getNickName());
-                    tProjectPoolService.updateTProjectPool(tProjectPool);
+
+                }else{
+                    tProjectPool.setProjectStage("8");//项目阶段-项目终止
+                    tProjectPool.setProjectState("o");//项目状态-
+                    tProjectPool.setDelFlag("0");
+                    tProjectPool.setUpdateBy(userInfo.getNickName());
                 }
+                tProjectPoolService.updateTProjectPool(tProjectPool);
             }
 
             /*tProjectTerminationService.updateTProjectTermination(tProjectTermination);*/

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

@@ -1,6 +1,7 @@
 package com.ruoyi.invest.domain;
 
 import com.ruoyi.tool.domain.TUnifyFile;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
@@ -58,6 +59,12 @@ public class TProjectApproval extends BaseEntity
     */
     private String needMeeting;//0否1是
 
+    /**
+     * 流程状态
+     */
+    @ApiModelProperty("流程状态")
+    private int status;//流程状态( //0暂存1已提交2审批中3审批通过4关闭)
+
     //表外
     private String procInstId;//流程实例Id
     private String taskName;

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

@@ -1,6 +1,7 @@
 package com.ruoyi.invest.domain;
 
 import com.ruoyi.tool.domain.TUnifyFile;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
@@ -49,6 +50,15 @@ public class TProjectDecision extends BaseEntity
      * 附件信息
      */
     private List<TUnifyFile> listFile;
+    /**
+     * 是否需要投决会议
+     */
+    private String needMeeting;//0否1是
+    /**
+     * 流程状态
+     */
+    @ApiModelProperty("流程状态")
+    private int status;//流程状态( //0暂存1已提交2审批中3审批通过4关闭)
 
     //表外
     private String procInstId;//流程实例Id

+ 5 - 3
ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectPool.java

@@ -218,12 +218,14 @@ public class TProjectPool extends BaseEntity
      * 投决申请状态
      */
     private String decisionFlag;
-
-    private int status;//流程状态( //0暂存1已提交2流程中3已完成4关闭)
+    /**
+     * 流程状态
+     */
+    @ApiModelProperty("流程状态")
+    private int status;//流程状态( //0暂存1已提交2审批中3审批通过4关闭)
     //表外
     private boolean flag; // true - 同意; false - 驳回
 
-
     private String taskId;//任务节点编号
     private String taskDefKey;
 

+ 11 - 1
ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectReview.java

@@ -17,6 +17,7 @@ public class TProjectReview extends BaseEntity
 
     /** ID */
     private String id;
+    private String reviewId;
 
     /** 项目ID */
     @Excel(name = "项目ID")
@@ -43,7 +44,16 @@ public class TProjectReview extends BaseEntity
     {
         return id;
     }
-    public void setProjectPoolId(String projectPoolId) 
+
+    public String getReviewId() {
+        return reviewId;
+    }
+
+    public void setReviewId(String reviewId) {
+        this.reviewId = reviewId;
+    }
+
+    public void setProjectPoolId(String projectPoolId)
     {
         this.projectPoolId = projectPoolId;
     }

+ 6 - 1
ruoyi-system/src/main/java/com/ruoyi/invest/domain/TProjectTermination.java

@@ -3,6 +3,7 @@ package com.ruoyi.invest.domain;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
 import com.ruoyi.tool.domain.TUnifyFile;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
@@ -36,7 +37,11 @@ public class TProjectTermination extends BaseEntity
 
     /** 状态 */
     private String delFlag;
-
+    /**
+     * 流程状态
+     */
+    @ApiModelProperty("流程状态")
+    private int status;//流程状态( //0暂存1已提交2审批中3审批通过4关闭)
 
 
     //表外

+ 10 - 0
ruoyi-system/src/main/java/com/ruoyi/invest/domain/vo/ProjectApprovalVo.java

@@ -51,6 +51,16 @@ public class ProjectApprovalVo extends BaseEntity
      */
     private List<TUnifyFile> listFile;
 
+    /**
+     * 流程状态
+     */
+    private Integer status;
+
+    /**
+     * 是否需要立项会议
+     */
+    private String needMeeting;//0否1是
+
     //投资机会信息
     /** 项目名称 */
     @Excel(name = "项目名称")

+ 10 - 0
ruoyi-system/src/main/java/com/ruoyi/invest/domain/vo/ProjectDecisionVo.java

@@ -51,6 +51,16 @@ public class ProjectDecisionVo extends BaseEntity
      */
     private List<TUnifyFile> listFile;
 
+    /**
+     * 流程状态
+     */
+    private Integer status;
+
+    /**
+     * 是否需要立项会议
+     */
+    private String needMeeting;//0否1是
+
     //表外
     /*private String procInstId;//流程实例Id
     private String taskName;

+ 4 - 1
ruoyi-system/src/main/java/com/ruoyi/invest/domain/vo/ProjectTerminationVo.java

@@ -32,7 +32,10 @@ public class ProjectTerminationVo extends BaseEntity
     /** 状态 */
     private String delFlag;
 
-
+    /**
+     * 流程状态
+     */
+    private Integer status;
 
     //投资机会信息
     /** 项目名称 */

+ 5 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/TProjectPoolVo.java

@@ -219,6 +219,11 @@ public class TProjectPoolVo extends BaseEntity
      * 投决申请状态
      */
     private String decisionFlag;
+    /**
+     * 流程状态
+     */
+    private Integer status;
+
     //流程信息
     @ApiModelProperty("流程实例ID")
     private String procInsId;

+ 12 - 6
ruoyi-system/src/main/resources/mapper/invest/ApprovalMapper.xml

@@ -18,6 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createTime"    column="create_time"    />
         <result property="updateBy"    column="update_by"    />
         <result property="updateTime"    column="update_time"    />
+        <result property="needMeeting"  column="need_meeting" />
     </resultMap>
     <resultMap type="ProjectApprovalVo" id="ProjectApprovalVoResult">
         <result property="id"    column="id"    />
@@ -33,6 +34,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createTime"    column="create_time"    />
         <result property="updateBy"    column="update_by"    />
         <result property="updateTime"    column="update_time"    />
+        <result property="status"     column="status"  />
+        <result property="needMeeting"  column="need_meeting" />
 
         <result property="projectName"    column="project_name"    />
         <result property="industry"    column="industry"    />
@@ -59,13 +62,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
     <sql id="where_sql">
         <if test="projectApproval.projectPoolId != null  and projectApproval.projectApproval.projectPoolId != ''"> and a.project_pool_id = #{projectApproval.projectPoolId}</if>
-        <if test="projectApproval.projectOverview != null  and projectApproval.projectOverview != ''"> and a.project_overview = #{projectApproval.projectOverview}</if>
-        <if test="projectApproval.projectSparkle != null  and projectApproval.projectSparkle != ''"> and a.project_sparkle = #{projectApproval.projectSparkle}</if>
+        <if test="projectApproval.projectName != null  and projectApproval.projectName != ''"> and tp.project_name like concat('%', #{projectApproval.projectName}, '%')</if>
+        <!--<if test="projectApproval.projectGroup != null  and projectApproval.projectGroup != ''"> and tp.project_group = #{projectApproval.projectGroup}</if>-->
+        <if test="projectApproval.projectOverview != null  and projectApproval.projectOverview != ''"> and a.project_overview like concat('%',  #{projectApproval.projectOverview}, '%')</if>
+        <if test="projectApproval.projectSparkle != null  and projectApproval.projectSparkle != ''"> and a.project_sparkle like concat('%',  #{projectApproval.projectSparkle}, '%')</if>
+
     </sql>
     <select id="getMyTaskList" resultMap="ProjectApprovalVoResult">
         select a.id,a.proc_inst_id, a.project_pool_id,tp.project_name, tp.industry,tp.project_stage,
         tp.project_state,tp.invest_head, a.project_overview, a.project_sparkle, a.participants_id,
-        a.participants, a.remark, a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time ,
+        a.participants, a.remark, a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time , a.status,a.need_meeting,
         p.PROC_INST_ID_ as 'procInsId',
         p.PROC_DEF_ID_ as 'procDefId',
         date_format(p.START_TIME_, '%Y-%m-%d %H:%i:%s') as 'applyTime',
@@ -107,7 +113,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="getMyDoneTaskList" resultMap="ProjectApprovalVoResult">
         select a.id,a.proc_inst_id, a.project_pool_id,tp.project_name, tp.industry,tp.project_stage,
         tp.project_state,tp.invest_head, a.project_overview, a.project_sparkle, a.participants_id,
-        a.participants, a.remark, a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time ,
+        a.participants, a.remark, a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time , a.status,
         p.PROC_INST_ID_ as 'procInsId',
         p.PROC_DEF_ID_ as 'procDefId',
         date_format(p.START_TIME_, '%Y-%m-%d %H:%i:%s') as 'applyTime',
@@ -140,7 +146,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="getMyList" resultMap="ProjectApprovalVoResult">
         select a.id,a.proc_inst_id, a.project_pool_id,tp.project_name, tp.industry,tp.project_stage,
         tp.project_state,tp.invest_head, a.project_overview, a.project_sparkle, a.participants_id,
-        a.participants, a.remark, a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time ,
+        a.participants, a.remark, a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time , a.status,
         u.nick_name as 'applyUserName',
         p.PROC_INST_ID_ as 'procInsId',
         p.PROC_DEF_ID_ as 'procDefId',
@@ -179,7 +185,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>-->
     <select id="selectTProjectApprovalByProcInstId" parameterType="java.lang.String" resultMap="TProjectApprovalResult">
         select a.id,a.proc_inst_id, a.project_pool_id, a.project_overview, a.project_sparkle, a.participants_id,
-               a.participants, a.remark, a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time ,
+               a.participants, a.remark, a.del_flag, a.create_by, a.create_time, a.update_by, a.update_time ,a.need_meeting,
                t.TASK_DEF_KEY_ as 'taskDefKey'
         from t_project_approval a
         left join ACT_RU_TASK t on a.proc_inst_id = t.PROC_INST_ID_

+ 3 - 1
ruoyi-system/src/main/resources/mapper/invest/DecisionMapper.xml

@@ -31,6 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createTime"    column="create_time"    />
         <result property="updateBy"    column="update_by"    />
         <result property="updateTime"    column="update_time"    />
+        <result property="status"     column="status"  />
 
         <result property="projectName"    column="project_name"    />
         <result property="industry"    column="industry"    />
@@ -57,7 +58,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
     <sql id="where_sql">
         <if test="projectDecision.projectPoolId != null  and projectDecision.projectPoolId != ''"> and a.project_pool_id = #{projectDecision.projectPoolId}</if>
-        <if test="projectDecision.provision != null  and projectDecision.provision != ''"> and a.provision = #{projectDecision.provision}</if>
+        <if test="projectDecision.projectName != null  and projectDecision.projectName != ''"> and tp.project_name like concat('%', #{projectDecision.projectName}, '%')</if>
+        <if test="projectDecision.provision != null  and projectDecision.provision != ''"> and a.provision like concat('%', #{projectDecision.provision}, '%')</if>
     </sql>
     <select id="getMyTaskList" resultMap="ProjectDecisionVoResult">
         select a.id,a.proc_inst_id, a.project_pool_id,tp.project_name, tp.industry,tp.project_stage,

Файловите разлики са ограничени, защото са твърде много
+ 14 - 3
ruoyi-system/src/main/resources/mapper/invest/InvestmentOpportunityMapper.xml


+ 3 - 0
ruoyi-system/src/main/resources/mapper/invest/TProjectApprovalMapper.xml

@@ -55,6 +55,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">update_by,</if>
             <if test="updateTime != null">update_time,</if>
             <if test="needMeeting != null">need_meeting,</if>
+            <if test="status != null">status,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -71,6 +72,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">#{updateBy},</if>
             <if test="updateTime != null">#{updateTime},</if>
             <if test="needMeeting != null">#{needMeeting},</if>
+            <if test="status != null">#{status},</if>
          </trim>
     </insert>
 
@@ -89,6 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="needMeeting != null">need_meeting = #{needMeeting},</if>
+            <if test="status != null">status = #{status},</if>
         </trim>
         where id = #{id}
     </update>

+ 4 - 0
ruoyi-system/src/main/resources/mapper/invest/TProjectDecisionMapper.xml

@@ -53,6 +53,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">update_by,</if>
             <if test="updateTime != null">update_time,</if>
             <if test="needMeeting != null">need_meeting,</if>
+            <if test="status != null">status,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -68,6 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateBy != null">#{updateBy},</if>
             <if test="updateTime != null">#{updateTime},</if>
             <if test="needMeeting != null">#{needMeeting},</if>
+            <if test="status != null">#{status},</if>
          </trim>
     </insert>
 
@@ -84,6 +86,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="needMeeting != null">need_meeting = #{needMeeting},</if>
+            <if test="status != null">status = #{status},</if>
         </trim>
         where id = #{id}
     </update>

+ 4 - 0
ruoyi-system/src/main/resources/mapper/invest/TProjectPoolMapper.xml

@@ -42,6 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createTime"    column="create_time"    />
         <result property="updateBy"    column="update_by"    />
         <result property="updateTime"    column="update_time"    />
+        <result property="procInstId"    column="proc_inst_id"    />
 
         <association property="tProjectCompany" javaType="TProjectCompany"  resultMap="TProjectCompanyResult" />
         <association property="tProjectContacts" javaType="TProjectContacts"  resultMap="TProjectContactsResult" />
@@ -218,6 +219,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">create_time,</if>
             <if test="updateBy != null">update_by,</if>
             <if test="updateTime != null">update_time,</if>
+            <if test="status != null">status,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -255,6 +257,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">#{createTime},</if>
             <if test="updateBy != null">#{updateBy},</if>
             <if test="updateTime != null">#{updateTime},</if>
+            <if test="status != null">#{status},</if>
          </trim>
     </insert>
 
@@ -297,6 +300,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="status != null">status = #{status},</if>
         </trim>
         where id = #{id}
     </update>

+ 5 - 1
ruoyi-system/src/main/resources/mapper/invest/TerminationMapper.xml

@@ -51,7 +51,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
     <sql id="where_sql">
         <if test="projectTermination.projectPoolId != null  and projectTermination.projectPoolId != ''"> and a.project_pool_id = #{projectTermination.projectPoolId}</if>
-        <if test="projectTermination.reason != null  and projectTermination.reason != ''"> and a.reason = #{projectTermination.reason}</if>
+        <if test="projectTermination.projectName != null  and projectTermination.projectName != ''"> and tp.project_name like concat('%', #{projectTermination.projectName}, '%')</if>
+        <if test="projectTermination.reason != null  and projectTermination.reason != ''"> and a.reason like concat('%', #{projectTermination.reason}, '%')</if>
     </sql>
     <insert id="insertTProjectTermination" parameterType="TProjectTermination">
         insert into t_project_termination
@@ -65,6 +66,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">create_time,</if>
             <if test="updateBy != null">update_by,</if>
             <if test="updateTime != null">update_time,</if>
+            <if test="status != null">status,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="id != null">#{id},</if>
@@ -76,6 +78,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">#{createTime},</if>
             <if test="updateBy != null">#{updateBy},</if>
             <if test="updateTime != null">#{updateTime},</if>
+            <if test="status != null">#{status},</if>
         </trim>
     </insert>
 
@@ -89,6 +92,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="status != null">status = #{status},</if>
         </trim>
         where id = #{id}
     </update>

+ 3 - 59
ruoyi-ui/src/views/project/approval/list.vue

@@ -94,7 +94,6 @@
           size="mini"
           icon="el-icon-document"
           @click="handleSelectData(6)"
-          v-hasPermi="['invest:pool:lx:apply']"
           >立项申请</el-button
         >
       </el-col>
@@ -142,17 +141,7 @@
           </div>
         </template>
       </el-table-column>
-      <!-- <el-table-column
-        label="项目所属城市"
-        align="center"
-        prop="tProjectCompany.registeredAddress"
-      >
-        <template slot-scope="scope">
-          <div :title="scope.row.tProjectCompany.registeredAddress">
-            {{ scope.row.tProjectCompany.registeredAddress }}
-          </div>
-        </template>
-      </el-table-column> -->
+
       <el-table-column label="所属行业" align="center" prop="industry"
         ><template slot-scope="scope">
           <dict-tag
@@ -209,12 +198,6 @@
           </div>
         </template>
       </el-table-column>
-      <!-- <el-table-column label="投决通过日期" align="center" prop="decisionDate">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
-        </template>
-      </el-table-column> -->
-
       <el-table-column label="项目负责人" align="center" prop="investHead">
         <template slot-scope="scope">
           <div :title="scope.row.investHead">
@@ -222,7 +205,6 @@
           </div>
         </template>
       </el-table-column>
-      <!-- <el-table-column label="项目编号" align="center" prop="projectCode" /> -->
       <el-table-column
         label="渠道"
         align="center"
@@ -239,44 +221,6 @@
           </div>
         </template>
       </el-table-column>
-      <!-- <el-table-column
-        label="所属组别"
-        align="center"
-        prop="tProjectChannel.channelGroup"
-      >
-        <template slot-scope="scope">
-          <dict-tag
-            :options="dict.type.project_group"
-            :value="scope.row.tProjectChannel.channelGroup"
-          />
-        </template>
-      </el-table-column> -->
-
-      <!-- <el-table-column
-        label="项目联系人"
-        align="center"
-        prop="tProjectContacts.name"
-      >
-        <template slot-scope="scope">
-          <div :title="scope.row.tProjectContacts.name">
-            {{ scope.row.tProjectContacts.name }}
-          </div>
-        </template>
-      </el-table-column> -->
-
-      <!--<el-table-column
-        label="创建人"
-        width="120"
-        align="center"
-        prop="createBy"
-      />
-      <el-table-column
-        label="创建时间"
-        align="center"
-        prop="createTime"
-        width="160"
-      /> -->
-      <!-- delFlag -->
       <el-table-column
         label="状态"
         align="center"
@@ -313,11 +257,11 @@
 <script>
 import { listApprovalList, delPool, editStage } from "@/api/invest/pool";
 import { listChannel } from "@/api/invest/channel";
-import meetingList from "./meetingList.vue";
+import meetingList from "../meetingList";
 import businessUpdate from "../../invest/components/businessUpdate";
 import { mapGetters } from "vuex";
 export default {
-  name: "Pool3",
+  name: "apply",
   dicts: ["project_group", "project_stage", "project_state", "CUSTOMER_TRADE"],
   components: {
     meetingList,

+ 204 - 198
ruoyi-ui/src/views/project/approval/audit.vue

@@ -66,8 +66,8 @@
       </el-tabs>
       <section>
         <div v-if="activeName === '0'" class="public-padded-20 detail-meeting">
-          <el-tabs type="border-card" >
-            <el-tab-pane label="项目立项申请表">
+          <el-tabs type="border-card" v-model="activeTab">
+            <el-tab-pane label="项目立项申请表" name="apply">
               <el-form
                 v-if="formLXApply.id"
                 class="special-el-form public-padded-t-20"
@@ -132,7 +132,7 @@
                 暂无数据
               </div>
             </el-tab-pane>
-            <el-tab-pane :label="formType === 1 ? '项目立项评估评审表' : '项目立项评估评审汇总表'" v-if="formLXApply.taskDefKey!='deptLeader'&&formLXApply.taskDefKey!='meeting'">
+            <el-tab-pane :label="formType === 1 ? '项目立项评估评审表' : '项目立项评估评审汇总表'" v-if="formLXApply.taskDefKey!='deptLeader'&&formLXApply.taskDefKey!='meeting'" name="review">
 <!--              <tableForm
                 :formType="2"
                 ref="approvalTableForm"
@@ -1133,16 +1133,6 @@
                   </tbody>
                 </table>
 
-<!--                <el-form-item class="btnList">
-                  <el-button v-if="showBack" @click="goBack">返 回</el-button>
-                  <el-button
-                    v-if="!readonly"
-                    type="primary"
-                    @click="submitForm"
-                    v-preventReClick
-                  >提 交</el-button
-                  >
-                </el-form-item>-->
               </el-form>
             </el-tab-pane>
           </el-tabs>
@@ -1178,139 +1168,144 @@
               </el-form-item>
               <!-- 关键代码:el-form-item 包裹单选组 -->
               <el-form-item label="是否需要立项会议">
-                <el-radio-group v-model="formLXApply.needMeeting">
-                  <el-radio label="0">否</el-radio>
-                  <el-radio label="1">是</el-radio>
-                </el-radio-group>
+                <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>
-          </section>
-          <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="[
+            <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"
+                <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-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>
 
-            <!-- <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="
+              <!-- <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>
+                >
+                  <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-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"
               >
-              </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"
+                <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"
               >
-                {{ meetingForm.participants ? meetingForm.participants : "请选择会议参与人" }}
-              </div>
-            </el-form-item>
-          </el-form>
+                <div
+                  class="el-input__inner inputSimulation yichu1"
+                  @click="handleSelectPeople(2)"
+                  :title="meetingForm.participants"
+                >
+                  {{ meetingForm.participants ? meetingForm.participants : "请选择会议参与人" }}
+                </div>
+              </el-form-item>
+            </el-form>
+          </section>
+
           <!--会议信息结束-->
         </div>
         <div v-show="activeName === '1'">
@@ -1327,7 +1322,6 @@
       <el-form
         ref="flowBaseInfo"
         :model="flowBaseInfo"
-        :rules="rulesFlow"
         label-width="120px"
       >
         <el-form-item label="审批意见" prop="comment">
@@ -1364,30 +1358,16 @@ import poolForm from "../../invest/components/poolForm";
 import tableForm from "./tableForm";
 import fileItem from "../../invest/components/fileItem";
 import flowBase from "../flowBase.vue";
-/*会议信息*/
-
-/*import poolForm from "../components/poolForm";
-import contractList from "../components/contractList";
-import fileList from "../components/fileList";
-import followList from "../components/followList";
-import meetingList from "../components/meetingList";
-import projectList from "../components/projectList";
-
-import listAllfile from "../components/listAllfile";
-import dueDiligenceList from "../components/dueDiligenceList";
-import fileItem from "../components/fileItem";*/
-
-
+import selecDept from "../../invest/components/selecDept";
+import projectItem from "../../invest/components/projectItem";
+import selecUser from "../../invest/components/selecUser";
+import {
+  getMeeting,
+} from "@/api/invest/meeting";
 
 import {
   getPool
 } from "@/api/invest/pool";
-import {
-  listMeeting,
-  getMeeting,
-  listProjectPoolIdNewApproval,
-  selectMeetingId,
-} from "@/api/invest/meeting";
 import{
   approvalComplete,
   getApprovalInfo,
@@ -1395,26 +1375,14 @@ import{
   getSumScore
 } from "@/api/project/approval/pool"
 
-
-import selecDept from "../../invest/components/selecDept.vue";
-import projectItem from "../../invest/components/projectItem.vue";
-import selecUser from "../../invest/components/selecUser.vue";
 import { mapGetters } from "vuex";
 
 export default {
   name: "approvalAudit",
   props: {
-    /*formType: {
-      type: Number,
-      default: 1, //1=立项打分表 2=立项汇总表 3=投决打分表 4=投决汇总表
-    },*/
     readonly: {
       type: Boolean,
     },
-    /*showBack: {
-      type: Boolean,
-      required: false,
-    },*/
   },
   dicts: ["meeting_type", "project_stage", "project_group"],
   components: {
@@ -1425,15 +1393,6 @@ export default {
     tableForm,
     fileItem,
     flowBase,
-  /*  contractList,
-    fileList,
-    followList,
-    meetingList,
-    projectList,
-    tableForm,
-    listAllfile,
-    dueDiligenceList,
-    fileItem,*/
   },
   data() {
     return {
@@ -1446,6 +1405,7 @@ export default {
         projectName: "",
       },
       activeName: "0",
+      activeTab: 'apply', // 默认激活“项目立项申请表”
       formType:1,
       // 人员选择器
       checkType: "multiple",
@@ -1487,7 +1447,9 @@ export default {
         createTime: null,
         updateBy: null,
         updateTime: null,
+        listFile:null
       },
+      fileList:[],
       // 表单校验
       meetingRules: {
         meetingTheme: [{ required: true, trigger: "blur", message: "请输入" }],
@@ -1671,15 +1633,15 @@ export default {
   created() {
     this.id = this.$route.query.id;
     this.flowBaseInfo.taskId=this.$route.query.taskId;
-    this.getDetail();
     this.getlistProjectPoolIdNewApproval();
+    this.getDetail();
     if (this.$route.query.activeName) {
       this.activeName = this.$route.query.activeName;
     }
-    this.openMeetingPage(this.id,'LX');
+   this.openMeetingPage(this.id,'LX');
     //会议投决节点
     this.getMeeting();
-    //总裁室
+   //总裁室
     this.getSelectMeetingId();
     //this.getSelectMeetingId(this.scoreForm.meetingId);
   },
@@ -1701,6 +1663,8 @@ export default {
       getApprovalInfo(this.$route.query.pInstId).then((response) => {
         if (response && response.data) {
           that.formLXApply = response.data;
+          // 接口返回值存在(非 undefined/null)则用接口值,否则用 '0'
+          that.formLXApply.needMeeting = response.data.needMeeting || '0';
           if(response.data.taskDefKey==='decision'){
             this.formType=1;
           }else if(response.data.taskDefKey==='president'){
@@ -1755,11 +1719,26 @@ export default {
         this.meetingForm.projectGroup = projectItemMessage.projectGroup;
         this.meetingForm.meetingType = this.meetingType;
       }
-      /*this.open = true;
-      this.title = "添加会议";*/
-      /*setTimeout(() => {
-        that.$refs.fileItems.fileList = [];
-      }, 200);*/
+      //this.$refs.fileItems.fileList = [];
+      //如果已经有会议信息的进行回显
+      /*if(this.meetingForm.id!=null) {*/
+        getMeetingInfo(this.$route.query.pInstId).then((response) => {
+          if(response.data) {
+            this.meetingForm = response.data;
+            this.meetingForm.projectName = response.data.tProjectPool.projectName;
+            this.meetingForm.projectStage = response.data.tProjectPool.projectStage;
+            this.meetingForm.projectGroup = response.data.tProjectPool.projectGroup;
+            //this.openDetail = true;
+            this.selectValues = response.data.participantsId;
+            this.selectNameValues = response.data.participants;
+            setTimeout(() => {
+              this.$refs.fileItems.fileList = [];
+              this.$refs.fileItems.getListFileBusinessId(response.data.id);
+              //this.$refs.fileItems.handleButton();
+            }, 300);
+          }
+        });
+     /* }*/
     },
     //会议投决
     getMeeting(){
@@ -1778,11 +1757,11 @@ export default {
         this.collectForm.investCommissioner =
           response.data.tProjectPool.investHead;
         this.scoreForm.meetingId = response.data.id;
-        setTimeout(() => {
+        /*setTimeout(() => {
           this.$refs.fileItems.fileList = [];
-          this.$refs.fileItems.getListFileBusinessId(id);
+          this.$refs.fileItems.getListFileBusinessId();
           this.$refs.fileItems.handleButton();
-        }, 300);
+        }, 300);*/
       });
     },
     //总裁室
@@ -1795,15 +1774,37 @@ export default {
     },
     /** 加载审批任务弹框 */
     handleComplete(flag) {
-      /*this.completeOpen = true;
-      this.completeTitle = "流程审批";*/
-      ///his.submitForm(flag);
-
       this.taskComplete(flag);
     },
     /** 用户审批任务 */
     taskComplete(flag) {
-      if (!this.flowBaseInfo.comment) {
+      let allValid = true;
+      if(this.formLXApply.taskDefKey==="meeting") {//发起会议节点
+        this.meetingForm.listFile = this.fileList;
+        if (!this.formLXApply.participants) {
+          this.$modal.msgError("请选择立项审批人!");
+          return;
+        }
+        if (this.formLXApply.needMeeting==='1') {
+          this.$refs["meetingForm"].validate((valid) => {
+            if (!valid) {
+              allValid = false;
+              return;
+            }
+          })
+        }
+      }else if(this.formLXApply.taskDefKey==="decision"){//会议投决
+        this.$refs["scoreForm"].validate((valid) => {
+          if (!valid) {
+            allValid = false;
+            // 4. 评审表校验失败:切换标签 + 提示
+            this.activeTab = 'review'; // 切换到评审表标签
+            this.$message.error('项目立项评估评审表未填写完整,请检查!');
+            return;
+          }
+        })
+      }
+      if (!flag&&!this.flowBaseInfo.comment) {
         this.$modal.msgError("请输入审批意见!");
         return;
       }
@@ -1815,10 +1816,13 @@ export default {
         projectScoring: this.scoreForm,
         flowBaseInfo: this.flowBaseInfo
       }
-      approvalComplete(params).then(response => {
-        this.$modal.msgSuccess(response.msg);
-        this.goMyTask();
-      });
+      if(allValid) {
+        approvalComplete(params).then(response => {
+          this.$modal.msgSuccess(response.msg);
+          this.$store.dispatch("getMyTaskApprovalNumber"); //更新代办数量
+          this.goMyTask();
+        });
+      }
     },
     /*返回*/
     goBack() {
@@ -1826,7 +1830,10 @@ export default {
     },
     //跳转到我的任务-投资机会
     goMyTask(){
-      this.$router.push({ path: "/myTask/project/approval/myTask"});
+      //this.$router.push({ path: "/myTask/project/approval/myTask"});
+      // 关闭当前标签页并返回指定页面
+      const obj = { path: "/myTask/project/approval/myTask", query: { t: Date.now()} };
+      this.$tab.closeOpenPage(obj);
     },
     //显示用户信息
     handleSelectPeople(number) {
@@ -1842,7 +1849,6 @@ export default {
     },
     // 用户选中数据
     handleUserSelect(selection) {
-      console.log(this.openLXApply+"---------------"+this.openHYApply);
       const that = this;
       if (selection && selection[0]) {
         let form;

+ 0 - 12
ruoyi-ui/src/views/project/approval/detail.vue

@@ -117,18 +117,6 @@
                     :id="formLXApply.id"
                   ></fileItem>
                 </el-form-item>
-                <el-form-item
-                  label="通知名单"
-                  prop="participants"
-                  class="special-el-form-item"
-                >
-                  <el-input
-                    rows="4"
-                    type="textarea"
-                    v-model="formLXApply.participants"
-                    disabled
-                  />
-                </el-form-item>
               </el-form>
               <div
                 v-else

+ 32 - 35
ruoyi-ui/src/views/project/approval/edit.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
@@ -110,27 +111,6 @@
                     @getFileList="getFileListLXApply"
                   ></fileItem>
                 </el-form-item>
-<!--                <el-form-item
-                  label="立项资料"
-                  prop="listFile"
-                  class="special-el-form-item"
-                >
-                  <fileItem
-                    ref="fileItemLXApply"
-                    :id="formLXApply.id"
-                  ></fileItem>
-                </el-form-item>-->
-<!--                <el-form-item
-                  label="通知名单"
-                  prop="participants"
-                  class="special-el-form-item"
-                >
-                  <el-input
-                    rows="4"
-                    type="textarea"
-                    v-model="formLXApply.participants"
-                  />
-                </el-form-item>-->
               </el-form>
               <div
                 v-else
@@ -140,14 +120,6 @@
                 暂无数据
               </div>
             </el-tab-pane>
-<!--            <el-tab-pane label="项目立项评估评审汇总表">
-              <tableForm
-                :formType="2"
-                ref="approvalTableForm"
-                :readonly="true"
-                :showBack="false"
-              ></tableForm>
-            </el-tab-pane>-->
           </el-tabs>
         </div>
         <div v-show="activeName === '1'">
@@ -203,6 +175,13 @@ export default {
     fileItem
   },
   data() {
+    const validateLogo = (rule, value, callback) => {
+      if (this.fileListLXApply.length <= 0) {
+        callback(new Error("请上传文件"));
+      } else {
+        callback();
+      }
+    };
     return {
       showDueApply: false,
       meetingId: "0",
@@ -224,6 +203,16 @@ export default {
         participants: null,
         participantsId: null,
       },
+      fileListLXApply: [],
+      rulesLXApply: {
+        projectOverview: [
+          { required: true, trigger: "blur", message: "请输入" },
+        ],
+        projectSparkle: [
+          { required: true, trigger: "blur", message: "请输入" },
+        ],
+        listFile: [{ required: true, validator: validateLogo }],
+      },
       flowBaseInfo:{
         comment:null,
         taskId:null
@@ -329,15 +318,20 @@ export default {
     /** 用户审批任务 */
     taskComplete(flag) {
       this.formLXApply.flag=flag;
+      this.formLXApply.listFile = this.fileListLXApply;
       const params={
         projectApproval:this.formLXApply,
         flowBaseInfo: this.flowBaseInfo
       }
-
-      approvalComplete(params).then(response => {
-        this.$modal.msgSuccess(response.msg);
-        this.goMyTask();
-      });
+      this.$refs["formLXApply"].validate((valid) => {
+        if(valid) {
+          approvalComplete(params).then(response => {
+            this.$modal.msgSuccess(response.msg);
+            this.goMyTask();
+            this.$store.dispatch("getMyTaskApprovalNumber"); //更新代办数量
+          });
+        }
+      })
     },
     /*返回*/
     goBack() {
@@ -345,7 +339,10 @@ export default {
     },
     //跳转到我的任务-投资机会
     goMyTask(){
-      this.$router.push({ path: "/myTask/project/approval/myTask"});
+      //this.$router.push({ path: "/myTask/project/approval/myTask"});
+      // 关闭当前标签页并返回指定页面
+      const obj = { path: "/myTask/project/approval/myTask", query: { t: Date.now()} };
+      this.$tab.closeOpenPage(obj);
     },
   },
 };

+ 72 - 400
ruoyi-ui/src/views/project/approval/myTask.vue

@@ -12,60 +12,24 @@
             @keyup.enter.native="handleQuery"
           />
         </el-form-item>
-        <el-form-item label="项目负责人" prop="investHead">
+        <el-form-item label="项目概况" prop="projectOverview">
           <el-input
-            v-model.trim="queryParams.investHead"
-            placeholder="请输入项目负责人"
+            v-model.trim="queryParams.projectOverview"
+            placeholder="请输入项目概况"
             clearable
             @keyup.enter.native="handleQuery"
           />
         </el-form-item>
-        <el-form-item label="公司联系人" prop="projectContacts">
+        <el-form-item label="项目亮点" prop="projectSparkle">
           <el-input
-            v-model.trim="queryParams.projectContacts"
-            placeholder="请输入公司联系人"
-            clearable
-            @keyup.enter.native="handleQuery"
-          />
-        </el-form-item>
-        <el-form-item label="渠道" prop="channel">
-          <el-select v-model="queryParams.channel" placeholder="全部" clearable>
-            <el-option
-              v-for="item in channelList"
-              :key="item.id"
-              :label="item.channelName"
-              :value="item.id"
-            />
-            <el-option label="无" value="-1" />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="所属组别" prop="projectGroup">
-          <el-select
-            v-model="queryParams.projectGroup"
-            placeholder="全部"
-            clearable
-          >
-            <el-option
-              v-for="dict in dict.type.project_group"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-
-        <el-form-item label="项目公司" prop="company">
-          <el-input
-            v-model.trim="queryParams.company"
-            placeholder="请输入项目所属公司"
+            v-model.trim="queryParams.projectSparkle"
+            placeholder="请输入项目亮点"
             clearable
             @keyup.enter.native="handleQuery"
           />
         </el-form-item>
         <!-- 可继续扩展其他查询表单项目,比如项目编号、负责人等 -->
         <el-form-item>
-<!--          <el-button type="primary" @click="handleQuery">查询</el-button>
-          <el-button @click="handleReset">重置</el-button>-->
           <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
           <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
         </el-form-item>
@@ -89,41 +53,18 @@
               width="50"
               align="center"
             ></el-table-column>
-            <!-- <el-table-column label="主键id" align="center" prop="id" /> -->
+
             <el-table-column label="项目名称" align="center" prop="projectName">
               <template slot-scope="scope">
                 <div
                   :title="scope.row.projectName"
                   class="public-text-blue public-cursor"
-                  @click.stop="handleDetail(scope.row)"
+                  @click.stop="handleInvestOppDetail(scope.row)"
                 >
                   {{ scope.row.projectName }}
                 </div>
               </template>
             </el-table-column>
-<!--            <el-table-column
-              label="公司名称"
-              align="center"
-              prop="tProjectCompany.companyName"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.companyName">
-                  {{ scope.row.tProjectCompany.companyName }}
-                </div>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="项目所属城市"
-              align="center"
-              prop="tProjectCompany.registeredAddress"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.registeredAddress">
-                  {{ scope.row.tProjectCompany.registeredAddress }}
-                </div>
-              </template>
-            </el-table-column>
-            -->
             <el-table-column label="所属行业" align="center" prop="industry"
             ><template slot-scope="scope">
               <dict-tag
@@ -154,36 +95,6 @@
               </template>
             </el-table-column>
 
-            <!--<el-table-column
-              label="备案时间"
-              align="center"
-              prop="tProjectCompany.filingTime"
-            >
-              <template slot-scope="scope">
-          <span>{{
-              parseTime(scope.row.tProjectCompany.filingTime, "{y}-{m}-{d}")
-            }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="立项通过日期"
-              align="center"
-              prop="projectDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.projectDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="投决通过日期"
-              align="center"
-              prop="decisionDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>-->
-
             <el-table-column label="项目负责人" align="center" prop="investHead">
               <template slot-scope="scope">
                 <div :title="scope.row.investHead">
@@ -191,60 +102,6 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- <el-table-column label="项目编号" align="center" prop="projectCode" /> -->
-<!--            <el-table-column
-              label="渠道"
-              align="center"
-              prop="tProjectChannel.channelName"
-            >
-              <template slot-scope="scope">
-                <div
-                  v-if="
-              scope.row.tProjectChannel && scope.row.tProjectChannel.channelName
-            "
-                  :title="scope.row.tProjectChannel.channelName"
-                >
-                  {{ scope.row.tProjectChannel.channelName }}
-                </div>
-              </template>
-            </el-table-column>-->
-            <!-- <el-table-column
-              label="所属组别"
-              align="center"
-              prop="tProjectChannel.channelGroup"
-            >
-              <template slot-scope="scope">
-                <dict-tag
-                  :options="dict.type.project_group"
-                  :value="scope.row.tProjectChannel.channelGroup"
-                />
-              </template>
-            </el-table-column> -->
-
-            <!-- <el-table-column
-              label="项目联系人"
-              align="center"
-              prop="tProjectContacts.name"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectContacts.name">
-                  {{ scope.row.tProjectContacts.name }}
-                </div>
-              </template>
-            </el-table-column> -->
-
-            <!--<el-table-column
-              label="创建人"
-              width="120"
-              align="center"
-              prop="createBy"
-            />
-            <el-table-column
-              label="创建时间"
-              align="center"
-              prop="createTime"
-              width="160"
-            /> -->
             <el-table-column label="项目概况" align="center" prop="projectOverview">
               <template slot-scope="scope">
                 <div :title="scope.row.projectOverview">
@@ -281,14 +138,22 @@
                 </div>
               </template>
             </el-table-column>
+            <el-table-column label="流程状态" align="center" prop="status">
+              <template slot-scope="scope">
+                <div :title="scope.row.status">
+                  <span v-if="scope.row.status === 0">暂存</span>
+                  <span v-else-if="scope.row.status === 1">已提交</span>
+                  <span v-else-if="scope.row.status === 2">审批中</span>
+                  <span v-else-if="scope.row.status === 3">审批完成</span>
+                  <span v-else-if="scope.row.status === 4">关闭</span>
+                </div>
+              </template>
+            </el-table-column>
             <!-- fixed="right" -->
             <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
               <template slot-scope="scope">
-<!--                <el-button  icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">签收</el-button>&ndash;&gt;
-                <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                <el-button  type="text" size="small" @click="handleFlowRecord(scope.row)">详情</el-button>-->
 
-                <el-button v-if="scope.row.taskDefKey=='modifyApply'" type="text" @click="handleEdit(scope.row)">处理</el-button>
+                <el-button v-if="scope.row.taskDefKey=='modifyApply'" size="mini" type="text" @click="handleEdit(scope.row)">处理</el-button>
                 <template v-else>
                 <!-- 1. 签收按钮:无签收人时显示 -->
                   <el-button v-if="!scope.row.assignee" type="primary" size="mini" @click="handleSign(scope.row)">签收</el-button>
@@ -299,7 +164,7 @@
                 <!-- 4. 详情按钮:一直显示 -->
 
                 </template>
-                <el-button type="text" size="small" @click="handleDetail(scope.row)">详情</el-button>
+                <el-button type="text" size="mini" @click="handleDetail(scope.row)">详情</el-button>
               </template>
             </el-table-column>
           </el-table>
@@ -338,34 +203,13 @@
                 <div
                   :title="scope.row.projectName"
                   class="public-text-blue public-cursor"
-                  @click.stop="handleDetail(scope.row)"
+                  @click.stop="handleInvestOppDetail(scope.row)"
                 >
                   {{ scope.row.projectName }}
                 </div>
               </template>
             </el-table-column>
-<!--            <el-table-column
-              label="公司名称"
-              align="center"
-              prop="tProjectCompany.companyName"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.companyName">
-                  {{ scope.row.tProjectCompany.companyName }}
-                </div>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="项目所属城市"
-              align="center"
-              prop="tProjectCompany.registeredAddress"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.registeredAddress">
-                  {{ scope.row.tProjectCompany.registeredAddress }}
-                </div>
-              </template>
-            </el-table-column>-->
+
             <el-table-column label="所属行业" align="center" prop="industry"
             ><template slot-scope="scope">
               <dict-tag
@@ -396,36 +240,6 @@
               </template>
             </el-table-column>
 
-<!--            <el-table-column
-              label="备案时间"
-              align="center"
-              prop="tProjectCompany.filingTime"
-            >
-              <template slot-scope="scope">
-          <span>{{
-              parseTime(scope.row.tProjectCompany.filingTime, "{y}-{m}-{d}")
-            }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="立项通过日期"
-              align="center"
-              prop="projectDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.projectDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="投决通过日期"
-              align="center"
-              prop="decisionDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>-->
-
             <el-table-column label="项目负责人" align="center" prop="investHead">
               <template slot-scope="scope">
                 <div :title="scope.row.investHead">
@@ -433,60 +247,7 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- <el-table-column label="项目编号" align="center" prop="projectCode" /> -->
-<!--            <el-table-column
-              label="渠道"
-              align="center"
-              prop="tProjectChannel.channelName"
-            >
-              <template slot-scope="scope">
-                <div
-                  v-if="
-              scope.row.tProjectChannel && scope.row.tProjectChannel.channelName
-            "
-                  :title="scope.row.tProjectChannel.channelName"
-                >
-                  {{ scope.row.tProjectChannel.channelName }}
-                </div>
-              </template>
-            </el-table-column>-->
-            <!-- <el-table-column
-              label="所属组别"
-              align="center"
-              prop="tProjectChannel.channelGroup"
-            >
-              <template slot-scope="scope">
-                <dict-tag
-                  :options="dict.type.project_group"
-                  :value="scope.row.tProjectChannel.channelGroup"
-                />
-              </template>
-            </el-table-column> -->
-
-            <!-- <el-table-column
-              label="项目联系人"
-              align="center"
-              prop="tProjectContacts.name"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectContacts.name">
-                  {{ scope.row.tProjectContacts.name }}
-                </div>
-              </template>
-            </el-table-column> -->
 
-            <!--<el-table-column
-              label="创建人"
-              width="120"
-              align="center"
-              prop="createBy"
-            />
-            <el-table-column
-              label="创建时间"
-              align="center"
-              prop="createTime"
-              width="160"
-            /> -->
             <el-table-column label="项目概况" align="center" prop="projectOverview">
               <template slot-scope="scope">
                 <div :title="scope.row.projectOverview">
@@ -509,34 +270,38 @@
                 </div>
               </template>
             </el-table-column>
-            <el-table-column label="当前节点" align="center" prop="taskName">
+            <el-table-column label="处理节点" align="center" prop="taskName">
               <template slot-scope="scope">
-                <div :title="scope.row.taskName" class="public-text-blue public-cursor" @click="handleReadImage(scope.row)">
+                <div  v-if="scope.row.deployId !== null && scope.row.deployId !== undefined && scope.row.deployId !== ''"  :title="scope.row.taskName" class="public-text-blue public-cursor" @click="handleReadImage(scope.row)">
+                  {{ scope.row.taskName}}
+                </div>
+                <div v-else :title="scope.row.taskName">
                   {{ scope.row.taskName}}
                 </div>
               </template>
             </el-table-column>
-            <el-table-column label="当前处理人" align="center" prop="assigneeName">
+            <el-table-column label="处理人" align="center" prop="assigneeName">
               <template slot-scope="scope">
                 <div :title="scope.row.assigneeName">
                   {{ scope.row.assigneeName}}
                 </div>
               </template>
             </el-table-column>
+            <el-table-column label="流程状态" align="center" prop="status">
+              <template slot-scope="scope">
+                <div :title="scope.row.status">
+                  <span v-if="scope.row.status === 0">暂存</span>
+                  <span v-else-if="scope.row.status === 1">已提交</span>
+                  <span v-else-if="scope.row.status === 2">审批中</span>
+                  <span v-else-if="scope.row.status === 3">审批完成</span>
+                  <span v-else-if="scope.row.status === 4">关闭</span>
+                </div>
+              </template>
+            </el-table-column>
             <!-- fixed="right" -->
             <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
               <template slot-scope="scope">
-                <!--                <el-button  icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">签收</el-button>&ndash;&gt;
-                                <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                                <el-button  type="text" size="small" @click="handleFlowRecord(scope.row)">详情</el-button>-->
-                <!-- 1. 签收按钮:无签收人时显示 -->
-<!--                <el-button v-if="!scope.row.assignee" icon="el-icon-edit-outline" type="primary" size="mini" @click="handleSign(scope.row)">签收</el-button>
-                &lt;!&ndash; 2. 处理按钮:有签收人时显示 &ndash;&gt;
-                <el-button v-else size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                &lt;!&ndash; 3. 撤回按钮:需补充逻辑(比如仅未签收可撤回,可结合 signPerson 判断) &ndash;&gt;
-                <el-button v-if="!scope.row.assignee" size="mini" type="text" icon="el-icon-refresh-right" @click="handleWithdraw(scope.row)">撤回</el-button>-->
-                <!-- 4. 详情按钮:一直显示 -->
-                <el-button type="text" size="small" @click="handleDetail(scope.row)">详情</el-button>
+                <el-button type="text" size="mini" @click="handleDetail(scope.row)">详情</el-button>
               </template>
             </el-table-column>
           </el-table>
@@ -567,40 +332,18 @@
               width="50"
               align="center"
             ></el-table-column>
-            <!-- <el-table-column label="主键id" align="center" prop="id" /> -->
             <el-table-column label="项目名称" align="center" prop="projectName">
               <template slot-scope="scope">
                 <div
                   :title="scope.row.projectName"
                   class="public-text-blue public-cursor"
-                  @click.stop="handleDetail(scope.row)"
+                  @click.stop="handleInvestOppDetail(scope.row)"
                 >
                   {{ scope.row.projectName }}
                 </div>
               </template>
             </el-table-column>
-<!--            <el-table-column
-              label="公司名称"
-              align="center"
-              prop="tProjectCompany.companyName"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.companyName">
-                  {{ scope.row.tProjectCompany.companyName }}
-                </div>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="项目所属城市"
-              align="center"
-              prop="tProjectCompany.registeredAddress"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.registeredAddress">
-                  {{ scope.row.tProjectCompany.registeredAddress }}
-                </div>
-              </template>
-            </el-table-column>-->
+
             <el-table-column label="所属行业" align="center" prop="industry"
             ><template slot-scope="scope">
               <dict-tag
@@ -631,36 +374,6 @@
               </template>
             </el-table-column>
 
-<!--            <el-table-column
-              label="备案时间"
-              align="center"
-              prop="tProjectCompany.filingTime"
-            >
-              <template slot-scope="scope">
-          <span>{{
-              parseTime(scope.row.tProjectCompany.filingTime, "{y}-{m}-{d}")
-            }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="立项通过日期"
-              align="center"
-              prop="projectDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.projectDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="投决通过日期"
-              align="center"
-              prop="decisionDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>-->
-
             <el-table-column label="项目负责人" align="center" prop="investHead">
               <template slot-scope="scope">
                 <div :title="scope.row.investHead">
@@ -668,60 +381,6 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- <el-table-column label="项目编号" align="center" prop="projectCode" /> -->
-<!--            <el-table-column
-              label="渠道"
-              align="center"
-              prop="tProjectChannel.channelName"
-            >
-              <template slot-scope="scope">
-                <div
-                  v-if="
-              scope.row.tProjectChannel && scope.row.tProjectChannel.channelName
-            "
-                  :title="scope.row.tProjectChannel.channelName"
-                >
-                  {{ scope.row.tProjectChannel.channelName }}
-                </div>
-              </template>
-            </el-table-column>-->
-            <!-- <el-table-column
-              label="所属组别"
-              align="center"
-              prop="tProjectChannel.channelGroup"
-            >
-              <template slot-scope="scope">
-                <dict-tag
-                  :options="dict.type.project_group"
-                  :value="scope.row.tProjectChannel.channelGroup"
-                />
-              </template>
-            </el-table-column> -->
-
-            <!-- <el-table-column
-              label="项目联系人"
-              align="center"
-              prop="tProjectContacts.name"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectContacts.name">
-                  {{ scope.row.tProjectContacts.name }}
-                </div>
-              </template>
-            </el-table-column> -->
-
-            <!--<el-table-column
-              label="创建人"
-              width="120"
-              align="center"
-              prop="createBy"
-            />
-            <el-table-column
-              label="创建时间"
-              align="center"
-              prop="createTime"
-              width="160"
-            /> -->
             <el-table-column label="项目概况" align="center" prop="projectOverview">
               <template slot-scope="scope">
                 <div :title="scope.row.projectOverview">
@@ -758,20 +417,21 @@
                 </div>
               </template>
             </el-table-column>
+            <el-table-column label="流程状态" align="center" prop="status">
+              <template slot-scope="scope">
+                <div :title="scope.row.status">
+                  <span v-if="scope.row.status === 0">暂存</span>
+                  <span v-else-if="scope.row.status === 1">已提交</span>
+                  <span v-else-if="scope.row.status === 2">审批中</span>
+                  <span v-else-if="scope.row.status === 3">审批完成</span>
+                  <span v-else-if="scope.row.status === 4">关闭</span>
+                </div>
+              </template>
+            </el-table-column>
             <!-- fixed="right" -->
             <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
               <template slot-scope="scope">
-                <!--                <el-button  icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">签收</el-button>&ndash;&gt;
-                                <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                                <el-button  type="text" size="small" @click="handleFlowRecord(scope.row)">详情</el-button>-->
-                <!-- 1. 签收按钮:无签收人时显示 -->
-                <!--                <el-button v-if="!scope.row.assignee" icon="el-icon-edit-outline" type="primary" size="mini" @click="handleSign(scope.row)">签收</el-button>
-                                &lt;!&ndash; 2. 处理按钮:有签收人时显示 &ndash;&gt;
-                                <el-button v-else size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                                &lt;!&ndash; 3. 撤回按钮:需补充逻辑(比如仅未签收可撤回,可结合 signPerson 判断) &ndash;&gt;
-                                <el-button v-if="!scope.row.assignee" size="mini" type="text" icon="el-icon-refresh-right" @click="handleWithdraw(scope.row)">撤回</el-button>-->
-                <!-- 4. 详情按钮:一直显示 -->
-                <el-button type="text" size="small" @click="handleDetail(scope.row)">详情</el-button>
+                <el-button type="text" size="mini" @click="handleDetail(scope.row)">详情</el-button>
               </template>
             </el-table-column>
           </el-table>
@@ -799,13 +459,16 @@
 
 <script>
 import { getMyTaskList,getMyDoneTaskList,getMyList } from "@/api/project/approval/pool";
-import { selectByFlowKey,flowXmlAndNode } from "@/api/flowable/definition";
+import { flowXmlAndNode } from "@/api/flowable/definition";
 import { listChannel } from "@/api/invest/channel";
-import dueDiligenceList from "../../invest/components/dueDiligenceList.vue";
-import followList from "../../invest/components/followList.vue";
-import meetingList from "../../invest/components/meetingList.vue";
-import businessUpdate from "../../invest/components/businessUpdate.vue";
+import dueDiligenceList from "../../invest/components/dueDiligenceList";
+import followList from "../../invest/components/followList";
+import meetingList from "../../invest/components/meetingList";
+import businessUpdate from "../../invest/components/businessUpdate";
 import flow from '@/views/flowable/task/todo/detail/flow';
+import {
+  getPool
+} from "@/api/invest/pool";
 
 import { mapGetters } from "vuex";
 import pool from "../../invest/pool/index.vue";
@@ -975,6 +638,15 @@ export default {
     clickRow(row) {
       this.$refs.dataTable.toggleRowSelection(row);
     },
+    /*投资机会详情*/
+    handleInvestOppDetail(row) {
+      const projectPoolId = row.projectPoolId;
+      getPool(projectPoolId).then((response) => {
+        const pInstId=response.data.procInstId;
+        this.$router.push({ path: "/project/investOpp/detail", query: { id:
+            projectPoolId , pInstId: pInstId } });
+      });
+    },
     // 跳转到处理页面(暂存节点页面)
     handleEdit(row){
       const id = row.id || this.ids;

+ 0 - 1
ruoyi-ui/src/views/project/decision/applyList.vue

@@ -94,7 +94,6 @@
           size="mini"
           icon="el-icon-document"
           @click="handleSelectData(11)"
-          v-hasPermi="['invest:pool:tj:apply']"
           >投决申请</el-button
         >
       </el-col>

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

@@ -1346,7 +1346,6 @@
       <el-form
         ref="flowBaseInfo"
         :model="flowBaseInfo"
-        :rules="rulesFlow"
         label-width="120px"
       >
         <el-form-item label="审批意见" prop="comment">
@@ -1884,7 +1883,7 @@ export default {
     },
     /** 用户审批任务 */
     taskComplete(flag) {
-      if (!this.flowBaseInfo.comment) {
+      if (!flag&&!this.flowBaseInfo.comment) {
         this.$modal.msgError("请输入审批意见!");
         return;
       }
@@ -1907,7 +1906,10 @@ export default {
     },
     //跳转到我的任务-投资机会
     goMyTask(){
-      this.$router.push({ path: "/myTask/project/decision/myTask"});
+      //this.$router.push({ path: "/myTask/project/decision/myTask"});
+      // 关闭当前标签页并返回指定页面
+      const obj = { path: "/myTask/project/decision/myTask", query: { t: Date.now()} };
+      this.$tab.closeOpenPage(obj);
     },
   },
 };

+ 4 - 1
ruoyi-ui/src/views/project/decision/edit.vue

@@ -314,7 +314,10 @@ export default {
     },
     //跳转到我的任务-投资机会
     goMyTask(){
-      this.$router.push({ path: "/myTask/project/decision/myTask"});
+      //this.$router.push({ path: "/myTask/project/decision/myTask"});
+      // 关闭当前标签页并返回指定页面
+      const obj = { path: "/myTask/project/decision/myTask", query: { t: Date.now()} };
+      this.$tab.closeOpenPage(obj);
     },
   },
 };

+ 57 - 400
ruoyi-ui/src/views/project/decision/myTask.vue

@@ -12,60 +12,16 @@
             @keyup.enter.native="handleQuery"
           />
         </el-form-item>
-        <el-form-item label="项目负责人" prop="investHead">
+        <el-form-item label="股权/其他合作商务条款" prop="provision">
           <el-input
-            v-model.trim="queryParams.investHead"
-            placeholder="请输入项目负责人"
-            clearable
-            @keyup.enter.native="handleQuery"
-          />
-        </el-form-item>
-        <el-form-item label="公司联系人" prop="projectContacts">
-          <el-input
-            v-model.trim="queryParams.projectContacts"
-            placeholder="请输入公司联系人"
-            clearable
-            @keyup.enter.native="handleQuery"
-          />
-        </el-form-item>
-        <el-form-item label="渠道" prop="channel">
-          <el-select v-model="queryParams.channel" placeholder="全部" clearable>
-            <el-option
-              v-for="item in channelList"
-              :key="item.id"
-              :label="item.channelName"
-              :value="item.id"
-            />
-            <el-option label="无" value="-1" />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="所属组别" prop="projectGroup">
-          <el-select
-            v-model="queryParams.projectGroup"
-            placeholder="全部"
-            clearable
-          >
-            <el-option
-              v-for="dict in dict.type.project_group"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-
-        <el-form-item label="项目公司" prop="company">
-          <el-input
-            v-model.trim="queryParams.company"
-            placeholder="请输入项目所属公司"
+            v-model.trim="queryParams.provision"
+            placeholder="请输入股权/其他合作商务条款"
             clearable
             @keyup.enter.native="handleQuery"
           />
         </el-form-item>
         <!-- 可继续扩展其他查询表单项目,比如项目编号、负责人等 -->
         <el-form-item>
-<!--          <el-button type="primary" @click="handleQuery">查询</el-button>
-          <el-button @click="handleReset">重置</el-button>-->
           <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
           <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
         </el-form-item>
@@ -95,35 +51,12 @@
                 <div
                   :title="scope.row.projectName"
                   class="public-text-blue public-cursor"
-                  @click.stop="handleDetail(scope.row)"
+                  @click.stop="handleInvestOppDetail(scope.row)"
                 >
                   {{ scope.row.projectName }}
                 </div>
               </template>
             </el-table-column>
-<!--            <el-table-column
-              label="公司名称"
-              align="center"
-              prop="tProjectCompany.companyName"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.companyName">
-                  {{ scope.row.tProjectCompany.companyName }}
-                </div>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="项目所属城市"
-              align="center"
-              prop="tProjectCompany.registeredAddress"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.registeredAddress">
-                  {{ scope.row.tProjectCompany.registeredAddress }}
-                </div>
-              </template>
-            </el-table-column>
-            -->
             <el-table-column label="所属行业" align="center" prop="industry"
             ><template slot-scope="scope">
               <dict-tag
@@ -154,36 +87,6 @@
               </template>
             </el-table-column>
 
-            <!--<el-table-column
-              label="备案时间"
-              align="center"
-              prop="tProjectCompany.filingTime"
-            >
-              <template slot-scope="scope">
-          <span>{{
-              parseTime(scope.row.tProjectCompany.filingTime, "{y}-{m}-{d}")
-            }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="立项通过日期"
-              align="center"
-              prop="projectDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.projectDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="投决通过日期"
-              align="center"
-              prop="decisionDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>-->
-
             <el-table-column label="项目负责人" align="center" prop="investHead">
               <template slot-scope="scope">
                 <div :title="scope.row.investHead">
@@ -191,60 +94,6 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- <el-table-column label="项目编号" align="center" prop="projectCode" /> -->
-<!--            <el-table-column
-              label="渠道"
-              align="center"
-              prop="tProjectChannel.channelName"
-            >
-              <template slot-scope="scope">
-                <div
-                  v-if="
-              scope.row.tProjectChannel && scope.row.tProjectChannel.channelName
-            "
-                  :title="scope.row.tProjectChannel.channelName"
-                >
-                  {{ scope.row.tProjectChannel.channelName }}
-                </div>
-              </template>
-            </el-table-column>-->
-            <!-- <el-table-column
-              label="所属组别"
-              align="center"
-              prop="tProjectChannel.channelGroup"
-            >
-              <template slot-scope="scope">
-                <dict-tag
-                  :options="dict.type.project_group"
-                  :value="scope.row.tProjectChannel.channelGroup"
-                />
-              </template>
-            </el-table-column> -->
-
-            <!-- <el-table-column
-              label="项目联系人"
-              align="center"
-              prop="tProjectContacts.name"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectContacts.name">
-                  {{ scope.row.tProjectContacts.name }}
-                </div>
-              </template>
-            </el-table-column> -->
-
-            <!--<el-table-column
-              label="创建人"
-              width="120"
-              align="center"
-              prop="createBy"
-            />
-            <el-table-column
-              label="创建时间"
-              align="center"
-              prop="createTime"
-              width="160"
-            /> -->
             <el-table-column label="股权/其他合作商务条款" align="center" prop="provision">
               <template slot-scope="scope">
                 <div :title="scope.row.provision">
@@ -274,13 +123,20 @@
                 </div>
               </template>
             </el-table-column>
+            <el-table-column label="流程状态" align="center" prop="status">
+              <template slot-scope="scope">
+                <div :title="scope.row.status">
+                  <span v-if="scope.row.status === 0">暂存</span>
+                  <span v-else-if="scope.row.status === 1">已提交</span>
+                  <span v-else-if="scope.row.status === 2">审批中</span>
+                  <span v-else-if="scope.row.status === 3">审批完成</span>
+                  <span v-else-if="scope.row.status === 4">关闭</span>
+                </div>
+              </template>
+            </el-table-column>
             <!-- fixed="right" -->
             <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
               <template slot-scope="scope">
-<!--                <el-button  icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">签收</el-button>&ndash;&gt;
-                <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                <el-button  type="text" size="small" @click="handleFlowRecord(scope.row)">详情</el-button>-->
-
                 <el-button v-if="scope.row.taskDefKey=='modifyApply'" type="text" @click="handleEdit(scope.row)">处理</el-button>
                 <template v-else>
                 <!-- 1. 签收按钮:无签收人时显示 -->
@@ -331,34 +187,12 @@
                 <div
                   :title="scope.row.projectName"
                   class="public-text-blue public-cursor"
-                  @click.stop="handleDetail(scope.row)"
+                  @click.stop="handleInvestOppDetail(scope.row)"
                 >
                   {{ scope.row.projectName }}
                 </div>
               </template>
             </el-table-column>
-<!--            <el-table-column
-              label="公司名称"
-              align="center"
-              prop="tProjectCompany.companyName"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.companyName">
-                  {{ scope.row.tProjectCompany.companyName }}
-                </div>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="项目所属城市"
-              align="center"
-              prop="tProjectCompany.registeredAddress"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.registeredAddress">
-                  {{ scope.row.tProjectCompany.registeredAddress }}
-                </div>
-              </template>
-            </el-table-column>-->
             <el-table-column label="所属行业" align="center" prop="industry"
             ><template slot-scope="scope">
               <dict-tag
@@ -388,37 +222,6 @@
                 />
               </template>
             </el-table-column>
-
-<!--            <el-table-column
-              label="备案时间"
-              align="center"
-              prop="tProjectCompany.filingTime"
-            >
-              <template slot-scope="scope">
-          <span>{{
-              parseTime(scope.row.tProjectCompany.filingTime, "{y}-{m}-{d}")
-            }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="立项通过日期"
-              align="center"
-              prop="projectDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.projectDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="投决通过日期"
-              align="center"
-              prop="decisionDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>-->
-
             <el-table-column label="项目负责人" align="center" prop="investHead">
               <template slot-scope="scope">
                 <div :title="scope.row.investHead">
@@ -426,61 +229,6 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- <el-table-column label="项目编号" align="center" prop="projectCode" /> -->
-<!--            <el-table-column
-              label="渠道"
-              align="center"
-              prop="tProjectChannel.channelName"
-            >
-              <template slot-scope="scope">
-                <div
-                  v-if="
-              scope.row.tProjectChannel && scope.row.tProjectChannel.channelName
-            "
-                  :title="scope.row.tProjectChannel.channelName"
-                >
-                  {{ scope.row.tProjectChannel.channelName }}
-                </div>
-              </template>
-            </el-table-column>-->
-            <!-- <el-table-column
-              label="所属组别"
-              align="center"
-              prop="tProjectChannel.channelGroup"
-            >
-              <template slot-scope="scope">
-                <dict-tag
-                  :options="dict.type.project_group"
-                  :value="scope.row.tProjectChannel.channelGroup"
-                />
-              </template>
-            </el-table-column> -->
-
-            <!-- <el-table-column
-              label="项目联系人"
-              align="center"
-              prop="tProjectContacts.name"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectContacts.name">
-                  {{ scope.row.tProjectContacts.name }}
-                </div>
-              </template>
-            </el-table-column> -->
-
-            <!--<el-table-column
-              label="创建人"
-              width="120"
-              align="center"
-              prop="createBy"
-            />
-            <el-table-column
-              label="创建时间"
-              align="center"
-              prop="createTime"
-              width="160"
-            /> -->
-
             <el-table-column label="股权/其他合作商务条款" align="center" prop="provision">
               <template slot-scope="scope">
                 <div :title="scope.row.provision">
@@ -496,33 +244,37 @@
                 </div>
               </template>
             </el-table-column>
-            <el-table-column label="当前节点" align="center" prop="taskName">
+            <el-table-column label="处理节点" align="center" prop="taskName">
               <template slot-scope="scope">
-                <div :title="scope.row.taskName" class="public-text-blue public-cursor" @click="handleReadImage(scope.row)">
+                <div  v-if="scope.row.deployId !== null && scope.row.deployId !== undefined && scope.row.deployId !== ''"  :title="scope.row.taskName" class="public-text-blue public-cursor" @click="handleReadImage(scope.row)">
+                  {{ scope.row.taskName}}
+                </div>
+                <div v-else :title="scope.row.taskName">
                   {{ scope.row.taskName}}
                 </div>
               </template>
             </el-table-column>
-            <el-table-column label="当前处理人" align="center" prop="assigneeName">
+            <el-table-column label="处理人" align="center" prop="assigneeName">
               <template slot-scope="scope">
                 <div :title="scope.row.assigneeName">
                   {{ scope.row.assigneeName}}
                 </div>
               </template>
             </el-table-column>
+            <el-table-column label="流程状态" align="center" prop="status">
+              <template slot-scope="scope">
+                <div :title="scope.row.status">
+                  <span v-if="scope.row.status === 0">暂存</span>
+                  <span v-else-if="scope.row.status === 1">已提交</span>
+                  <span v-else-if="scope.row.status === 2">审批中</span>
+                  <span v-else-if="scope.row.status === 3">审批完成</span>
+                  <span v-else-if="scope.row.status === 4">关闭</span>
+                </div>
+              </template>
+            </el-table-column>
             <!-- fixed="right" -->
             <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
               <template slot-scope="scope">
-                <!--                <el-button  icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">签收</el-button>&ndash;&gt;
-                                <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                                <el-button  type="text" size="small" @click="handleFlowRecord(scope.row)">详情</el-button>-->
-                <!-- 1. 签收按钮:无签收人时显示 -->
-<!--                <el-button v-if="!scope.row.assignee" icon="el-icon-edit-outline" type="primary" size="mini" @click="handleSign(scope.row)">签收</el-button>
-                &lt;!&ndash; 2. 处理按钮:有签收人时显示 &ndash;&gt;
-                <el-button v-else size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                &lt;!&ndash; 3. 撤回按钮:需补充逻辑(比如仅未签收可撤回,可结合 signPerson 判断) &ndash;&gt;
-                <el-button v-if="!scope.row.assignee" size="mini" type="text" icon="el-icon-refresh-right" @click="handleWithdraw(scope.row)">撤回</el-button>-->
-                <!-- 4. 详情按钮:一直显示 -->
                 <el-button type="text" size="small" @click="handleDetail(scope.row)">详情</el-button>
               </template>
             </el-table-column>
@@ -560,34 +312,12 @@
                 <div
                   :title="scope.row.projectName"
                   class="public-text-blue public-cursor"
-                  @click.stop="handleDetail(scope.row)"
+                  @click.stop="handleInvestOppDetail(scope.row)"
                 >
                   {{ scope.row.projectName }}
                 </div>
               </template>
             </el-table-column>
-<!--            <el-table-column
-              label="公司名称"
-              align="center"
-              prop="tProjectCompany.companyName"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.companyName">
-                  {{ scope.row.tProjectCompany.companyName }}
-                </div>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="项目所属城市"
-              align="center"
-              prop="tProjectCompany.registeredAddress"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.registeredAddress">
-                  {{ scope.row.tProjectCompany.registeredAddress }}
-                </div>
-              </template>
-            </el-table-column>-->
             <el-table-column label="所属行业" align="center" prop="industry"
             ><template slot-scope="scope">
               <dict-tag
@@ -617,37 +347,6 @@
                 />
               </template>
             </el-table-column>
-
-<!--            <el-table-column
-              label="备案时间"
-              align="center"
-              prop="tProjectCompany.filingTime"
-            >
-              <template slot-scope="scope">
-          <span>{{
-              parseTime(scope.row.tProjectCompany.filingTime, "{y}-{m}-{d}")
-            }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="立项通过日期"
-              align="center"
-              prop="projectDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.projectDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="投决通过日期"
-              align="center"
-              prop="decisionDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>-->
-
             <el-table-column label="项目负责人" align="center" prop="investHead">
               <template slot-scope="scope">
                 <div :title="scope.row.investHead">
@@ -655,60 +354,6 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- <el-table-column label="项目编号" align="center" prop="projectCode" /> -->
-<!--            <el-table-column
-              label="渠道"
-              align="center"
-              prop="tProjectChannel.channelName"
-            >
-              <template slot-scope="scope">
-                <div
-                  v-if="
-              scope.row.tProjectChannel && scope.row.tProjectChannel.channelName
-            "
-                  :title="scope.row.tProjectChannel.channelName"
-                >
-                  {{ scope.row.tProjectChannel.channelName }}
-                </div>
-              </template>
-            </el-table-column>-->
-            <!-- <el-table-column
-              label="所属组别"
-              align="center"
-              prop="tProjectChannel.channelGroup"
-            >
-              <template slot-scope="scope">
-                <dict-tag
-                  :options="dict.type.project_group"
-                  :value="scope.row.tProjectChannel.channelGroup"
-                />
-              </template>
-            </el-table-column> -->
-
-            <!-- <el-table-column
-              label="项目联系人"
-              align="center"
-              prop="tProjectContacts.name"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectContacts.name">
-                  {{ scope.row.tProjectContacts.name }}
-                </div>
-              </template>
-            </el-table-column> -->
-
-            <!--<el-table-column
-              label="创建人"
-              width="120"
-              align="center"
-              prop="createBy"
-            />
-            <el-table-column
-              label="创建时间"
-              align="center"
-              prop="createTime"
-              width="160"
-            /> -->
             <el-table-column label="股权/其他合作商务条款" align="center" prop="provision">
               <template slot-scope="scope">
                 <div :title="scope.row.provision">
@@ -738,19 +383,19 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- fixed="right" -->
+            <el-table-column label="流程状态" align="center" prop="status">
+              <template slot-scope="scope">
+                <div :title="scope.row.status">
+                  <span v-if="scope.row.status === 0">暂存</span>
+                  <span v-else-if="scope.row.status === 1">已提交</span>
+                  <span v-else-if="scope.row.status === 2">审批中</span>
+                  <span v-else-if="scope.row.status === 3">审批完成</span>
+                  <span v-else-if="scope.row.status === 4">关闭</span>
+                </div>
+              </template>
+            </el-table-column>
             <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
               <template slot-scope="scope">
-                <!--                <el-button  icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">签收</el-button>&ndash;&gt;
-                                <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                                <el-button  type="text" size="small" @click="handleFlowRecord(scope.row)">详情</el-button>-->
-                <!-- 1. 签收按钮:无签收人时显示 -->
-                <!--                <el-button v-if="!scope.row.assignee" icon="el-icon-edit-outline" type="primary" size="mini" @click="handleSign(scope.row)">签收</el-button>
-                                &lt;!&ndash; 2. 处理按钮:有签收人时显示 &ndash;&gt;
-                                <el-button v-else size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                                &lt;!&ndash; 3. 撤回按钮:需补充逻辑(比如仅未签收可撤回,可结合 signPerson 判断) &ndash;&gt;
-                                <el-button v-if="!scope.row.assignee" size="mini" type="text" icon="el-icon-refresh-right" @click="handleWithdraw(scope.row)">撤回</el-button>-->
-                <!-- 4. 详情按钮:一直显示 -->
                 <el-button type="text" size="small" @click="handleDetail(scope.row)">详情</el-button>
               </template>
             </el-table-column>
@@ -786,6 +431,9 @@ import followList from "../../invest/components/followList.vue";
 import meetingList from "../../invest/components/meetingList.vue";
 import businessUpdate from "../../invest/components/businessUpdate.vue";
 import flow from '@/views/flowable/task/todo/detail/flow';
+import {
+  getPool
+} from "@/api/invest/pool";
 
 import { mapGetters } from "vuex";
 import pool from "../../invest/pool/index.vue";
@@ -955,6 +603,15 @@ export default {
     clickRow(row) {
       this.$refs.dataTable.toggleRowSelection(row);
     },
+    /*投资机会详情*/
+    handleInvestOppDetail(row) {
+      const projectPoolId = row.projectPoolId;
+      getPool(projectPoolId).then((response) => {
+        const pInstId=response.data.procInstId;
+        this.$router.push({ path: "/project/investOpp/detail", query: { id:
+            projectPoolId , pInstId: pInstId } });
+      });
+    },
     // 跳转到处理页面(暂存节点页面)
     handleEdit(row){
       const id = row.id || this.ids;

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

@@ -67,7 +67,7 @@ export default {
             this.procDefId = response.rows[0].procDefId;
             this.getMettingId()
           }
-          console.log('接收到的 信息:', response.rows);
+          //console.log('接收到的 信息:', response.rows);
         })
         .catch(error => {
           console.error('获取审批数据失败:', error);
@@ -82,7 +82,7 @@ export default {
         isAsc: "desc",
         projectPoolId: this.id,
       };
-      console.log(this.procDefId);
+      //console.log(this.procDefId);
       if(this.procDefId.includes('dgt-project')){
         queryParams.meetingType="LX";
       }else if(this.procDefId.includes('dgt-decision')){

+ 8 - 4
ruoyi-ui/src/views/project/investOpp/apply.vue

@@ -812,7 +812,6 @@ export default {
       if (this.form.channel == "") {
         this.form.channel = -1;
       }
-      console.log(flag+"判断暂存还是提交");
       if (flag === 1) {
         // 暂存
         this.form.flag='false';
@@ -823,7 +822,7 @@ export default {
         this.form.listFile = this.fileList;
         this.form.bpFile = this.fileListBP;
         this.form.otherFile = this.fileListOther;
-        console.log(this.form.id+"id----------------------");
+        //console.log(this.form.id+"id----------------------");
         if (this.form.id != null) {
           /*updatePool(this.form).then((response) => {
             this.$modal.msgSuccess("暂存成功");
@@ -833,10 +832,11 @@ export default {
           });*/
         } else {
           this.form.projectStage = "1";
-          this.form.projectState = "1";
+          this.form.projectState = "a";
           this.form.projectGroup = this.form.tProjectChannel.channelGroup;
           investmentOpportunityStart(this.form).then((response) => {
             this.$modal.msgSuccess("暂存成功");
+            this.$store.dispatch("getMyTaskInvestOppNumber"); //更新代办数量
             setTimeout(() => {
               //that.goBack();
               that.goMyTask();
@@ -887,6 +887,7 @@ export default {
               this.form.projectGroup = this.form.tProjectChannel.channelGroup;
               investmentOpportunityStart(this.form).then((response) => {
                 this.$modal.msgSuccess("新增成功");
+                this.$store.dispatch("getMyTaskInvestOppNumber"); //更新代办数量
                 setTimeout(() => {
                   //that.goBack();
                   that.goMyTask();
@@ -918,7 +919,10 @@ export default {
     },
     //跳转到我的任务-投资机会
     goMyTask(){
-      this.$router.push({ path: "/myTask/project/investOpp/myTask"});
+      //this.$router.push({ path: "/myTask/project/investOpp/myTask"});
+      // 关闭当前标签页并返回指定页面
+      const obj = { path: "/myTask/project/investOpp/myTask", query: { t: Date.now()} };
+      this.$tab.closeOpenPage(obj);
     },
     // 表单重置
     reset() {

+ 31 - 26
ruoyi-ui/src/views/project/investOpp/audit.vue

@@ -562,7 +562,6 @@
       <el-form
         ref="flowBaseInfo"
         :model="flowBaseInfo"
-        :rules="rulesFlow"
         label-width="120px"
       >
         <el-form-item label="审批意见" prop="comment">
@@ -692,7 +691,8 @@ export default {
       },
       // 上传评估意见
       formAssess: {
-        id: null,
+        /*id: null,*/
+        reviewId:null,
         context: null,
         projectPoolId: null,
       },
@@ -730,23 +730,24 @@ export default {
   created() {
     this.id = this.$route.query.id;
     this.pInstId = this.$route.query.pInstId;
-    /*this.getDetail();
-    this.getListProjectPoolId();
-    this.getDueList();
-    if (this.$route.query.activeName) {
-      this.activeName = this.$route.query.activeName;
-    }*/
-
     this.getPoolDetail(this.id,this.pInstId);
   },
   methods: {
     handleClick(tab, event) {
       let that = this;
+      if (this.activeName === '1') {
+        this.getPoolDetail(this.id,this.pInstId);
+      }else if(this.activeName === '4'){
+        this.getPoolDetail(this.id,this.pInstId);
+      }
     },
     getPoolDetail(id,pInstId) {
       getInvestInfo(pInstId).then((response) => {
         this.form = response.data;
         this.detailInfo = response.data;
+        if (response.data.tProjectReview) {
+          this.formAssess = response.data.tProjectReview;
+        }
         let channeItem = this.channelList.find((item) => {
           if (this.form.channel == item.id) {
             return item;
@@ -762,20 +763,20 @@ export default {
           };
         }
         setTimeout(() => {
-          if (this.type == "2") {
-            console.log(this.$refs);
-            this.$refs.fileItem?.handleButton();
+          if(this.activeName==='1') {
+              this.$refs.fileItem.handleButton();
+            this.$refs.fileItem.fileList = [];
+            this.$refs.fileItem.getListFileBusinessId(
+              this.form.tProjectCompany.companyId
+            );
+          }else if(this.activeName==='4'){
             this.$refs.bpFileItem.handleButton();
             this.$refs.otherFileItem.handleButton();
+            this.$refs.bpFileItem.fileList = [];
+            this.$refs.bpFileItem.getListFileBusinessId(this.form.id, "9");
+            this.$refs.otherFileItem.fileList = [];
+            this.$refs.otherFileItem.getListFileBusinessId(this.form.id, "0");
           }
-          this.$refs.fileItem.fileList = [];
-          this.$refs.fileItem.getListFileBusinessId(
-            this.form.tProjectCompany.companyId
-          );
-          this.$refs.bpFileItem.fileList = [];
-          this.$refs.bpFileItem.getListFileBusinessId(this.form.id, "9");
-          this.$refs.otherFileItem.fileList = [];
-          this.$refs.otherFileItem.getListFileBusinessId(this.form.id, "0");
         }, 300);
       });
     },
@@ -808,7 +809,10 @@ export default {
     },
     //跳转到我的任务-投资机会
     goMyTask(){
-      this.$router.push({ path: "/myTask/project/investOpp/myTask"});
+      //this.$router.push({ path: "/myTask/project/investOpp/myTask"});
+      // 关闭当前标签页并返回指定页面
+      const obj = { path: "/myTask/project/investOpp/myTask", query: { t: Date.now()} };
+      this.$tab.closeOpenPage(obj);
     },
     /** 加载审批任务弹框 */
     handleComplete(flag) {
@@ -820,14 +824,15 @@ export default {
     },
     /** 用户审批任务 */
     taskComplete(flag) {
-      if (!this.flowBaseInfo.comment) {
-        this.$modal.msgError("请输入审批意见!");
-        return;
-      }
+
       if (this.form.taskDefKey=='softwareDept'&&!this.formAssess.context) {
           this.$modal.msgError("请输入评估意见!");
           return;
       }
+      if (!flag&&!this.flowBaseInfo.comment) {
+        this.$modal.msgError("请输入审批意见!");
+        return;
+      }
       this.form.flag=flag;
       const params={
         projectPool: this.form,  // 拆分明确字段
@@ -885,7 +890,7 @@ export default {
           formData.auditPass=flag;
           Object.assign(this.taskForm.variables, formData);
           this.taskForm.variables.formJson = this.formJson;
-          console.log(this.taskForm, "流程审批提交表单数据1")
+          //console.log(this.taskForm, "流程审批提交表单数据1")
         }).catch(error => {
           // this.$modal.msgError(error)
         })

+ 22 - 19
ruoyi-ui/src/views/project/investOpp/detail.vue

@@ -724,23 +724,22 @@ export default {
   created() {
     this.id = this.$route.query.id;
     this.pInstId = this.$route.query.pInstId;
-    /*this.getDetail();
-    this.getListProjectPoolId();
-    this.getDueList();
-    if (this.$route.query.activeName) {
-      this.activeName = this.$route.query.activeName;
-    }*/
-
     this.getPoolDetail(this.id,this.pInstId);
   },
   methods: {
     handleClick(tab, event) {
       let that = this;
+      if (this.activeName === '1') {
+        this.getPoolDetail(this.id,this.pInstId);
+      }else if(this.activeName === '4'){
+        this.getPoolDetail(this.id,this.pInstId);
+      }
     },
     getPoolDetail(id,pInstId) {
       getInvestInfo(pInstId).then((response) => {
         this.form = response.data;
         this.detailInfo = response.data;
+        this.formAssess = response.data.tProjectReview;
         let channeItem = this.channelList.find((item) => {
           if (this.form.channel == item.id) {
             return item;
@@ -755,21 +754,22 @@ export default {
             channelGroup: "",
           };
         }
+
         setTimeout(() => {
-          if (this.type == "2") {
-            console.log(this.$refs);
-            this.$refs.fileItem?.handleButton();
+          if(this.activeName==='1') {
+            this.$refs.fileItem.handleButton();
+            this.$refs.fileItem.fileList = [];
+            this.$refs.fileItem.getListFileBusinessId(
+              this.form.tProjectCompany.companyId
+            );
+          }else if(this.activeName==='4'){
             this.$refs.bpFileItem.handleButton();
             this.$refs.otherFileItem.handleButton();
+            this.$refs.bpFileItem.fileList = [];
+            this.$refs.bpFileItem.getListFileBusinessId(this.form.id, "9");
+            this.$refs.otherFileItem.fileList = [];
+            this.$refs.otherFileItem.getListFileBusinessId(this.form.id, "0");
           }
-          this.$refs.fileItem.fileList = [];
-          this.$refs.fileItem.getListFileBusinessId(
-            this.form.tProjectCompany.companyId
-          );
-          this.$refs.bpFileItem.fileList = [];
-          this.$refs.bpFileItem.getListFileBusinessId(this.form.id, "9");
-          this.$refs.otherFileItem.fileList = [];
-          this.$refs.otherFileItem.getListFileBusinessId(this.form.id, "0");
         }, 300);
       });
     },
@@ -802,7 +802,10 @@ export default {
     },
     //跳转到我的任务-投资机会
     goMyTask(){
-      this.$router.push({ path: "/myTask/project/investOpp/myTask"});
+      //this.$router.push({ path: "/myTask/project/investOpp/myTask"});
+      // 关闭当前标签页并返回指定页面
+      const obj = { path: "/myTask/project/investOpp/myTask", query: { t: Date.now()} };
+      this.$tab.closeOpenPage(obj);
     },
     /** 加载审批任务弹框 */
     handleComplete(flag) {

+ 1 - 1
ruoyi-ui/src/views/project/investOpp/edit.vue

@@ -696,7 +696,7 @@ export default {
     }).then(() => {
       this.id=this.$route.query.id;
       this.pInstId = this.$route.query.pInstId;
-      console.log(this.pInstId+'--------------------------');
+      //console.log(this.pInstId+'--------------------------');
       if (this.id) {
 
         this.getPoolDetail(this.pInstId);

+ 39 - 209
ruoyi-ui/src/views/project/investOpp/myTask.vue

@@ -94,8 +94,6 @@
               <template slot-scope="scope">
                 <div
                   :title="scope.row.projectName"
-                  class="public-text-blue public-cursor"
-                  @click.stop="handleDetail(scope.row)"
                 >
                   {{ scope.row.projectName }}
                 </div>
@@ -164,25 +162,6 @@
             }}</span>
               </template>
             </el-table-column>
-            <el-table-column
-              label="立项通过日期"
-              align="center"
-              prop="projectDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.projectDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="投决通过日期"
-              align="center"
-              prop="decisionDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>
-
             <el-table-column label="项目负责人" align="center" prop="investHead">
               <template slot-scope="scope">
                 <div :title="scope.row.investHead">
@@ -207,44 +186,6 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- <el-table-column
-              label="所属组别"
-              align="center"
-              prop="tProjectChannel.channelGroup"
-            >
-              <template slot-scope="scope">
-                <dict-tag
-                  :options="dict.type.project_group"
-                  :value="scope.row.tProjectChannel.channelGroup"
-                />
-              </template>
-            </el-table-column> -->
-
-            <!-- <el-table-column
-              label="项目联系人"
-              align="center"
-              prop="tProjectContacts.name"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectContacts.name">
-                  {{ scope.row.tProjectContacts.name }}
-                </div>
-              </template>
-            </el-table-column> -->
-
-            <!--<el-table-column
-              label="创建人"
-              width="120"
-              align="center"
-              prop="createBy"
-            />
-            <el-table-column
-              label="创建时间"
-              align="center"
-              prop="createTime"
-              width="160"
-            /> -->
-            <!-- delFlag -->
             <el-table-column label="状态" align="center" prop="investHead">
               <template slot-scope="scope">
                 <div :title="scope.row.delFlag === '1' ? '终止' : '正常'">
@@ -266,13 +207,19 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- fixed="right" -->
+            <el-table-column label="流程状态" align="center" prop="status">
+              <template slot-scope="scope">
+                <div :title="scope.row.status">
+                  <span v-if="scope.row.status === 0">暂存</span>
+                  <span v-else-if="scope.row.status === 1">已提交</span>
+                  <span v-else-if="scope.row.status === 2">审批中</span>
+                  <span v-else-if="scope.row.status === 3">审批完成</span>
+                  <span v-else-if="scope.row.status === 4">关闭</span>
+                </div>
+              </template>
+            </el-table-column>
             <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
               <template slot-scope="scope">
-<!--                <el-button  icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">签收</el-button>&ndash;&gt;
-                <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                <el-button  type="text" size="small" @click="handleFlowRecord(scope.row)">详情</el-button>-->
-
                 <el-button v-if="scope.row.taskDefKey=='modifyApply'" type="text" @click="handleEdit(scope.row)">处理</el-button>
                 <template v-else>
                 <!-- 1. 签收按钮:无签收人时显示 -->
@@ -322,8 +269,6 @@
               <template slot-scope="scope">
                 <div
                   :title="scope.row.projectName"
-                  class="public-text-blue public-cursor"
-                  @click.stop="handleDetail(scope.row)"
                 >
                   {{ scope.row.projectName }}
                 </div>
@@ -392,25 +337,6 @@
             }}</span>
               </template>
             </el-table-column>
-            <el-table-column
-              label="立项通过日期"
-              align="center"
-              prop="projectDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.projectDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="投决通过日期"
-              align="center"
-              prop="decisionDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>
-
             <el-table-column label="项目负责人" align="center" prop="investHead">
               <template slot-scope="scope">
                 <div :title="scope.row.investHead">
@@ -418,7 +344,6 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- <el-table-column label="项目编号" align="center" prop="projectCode" /> -->
             <el-table-column
               label="渠道"
               align="center"
@@ -435,44 +360,6 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- <el-table-column
-              label="所属组别"
-              align="center"
-              prop="tProjectChannel.channelGroup"
-            >
-              <template slot-scope="scope">
-                <dict-tag
-                  :options="dict.type.project_group"
-                  :value="scope.row.tProjectChannel.channelGroup"
-                />
-              </template>
-            </el-table-column> -->
-
-            <!-- <el-table-column
-              label="项目联系人"
-              align="center"
-              prop="tProjectContacts.name"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectContacts.name">
-                  {{ scope.row.tProjectContacts.name }}
-                </div>
-              </template>
-            </el-table-column> -->
-
-            <!--<el-table-column
-              label="创建人"
-              width="120"
-              align="center"
-              prop="createBy"
-            />
-            <el-table-column
-              label="创建时间"
-              align="center"
-              prop="createTime"
-              width="160"
-            /> -->
-            <!-- delFlag -->
             <el-table-column label="状态" align="center" prop="investHead">
               <template slot-scope="scope">
                 <div :title="scope.row.delFlag === '1' ? '终止' : '正常'">
@@ -480,33 +367,36 @@
                 </div>
               </template>
             </el-table-column>
-            <el-table-column label="当前节点" align="center" prop="taskName">
+            <el-table-column label="处理节点" align="center" prop="taskName">
               <template slot-scope="scope">
-                <div :title="scope.row.taskName" class="public-text-blue public-cursor" @click="handleReadImage(scope.row)">
+                <div  v-if="scope.row.deployId !== null && scope.row.deployId !== undefined && scope.row.deployId !== ''"  :title="scope.row.taskName" class="public-text-blue public-cursor" @click="handleReadImage(scope.row)">
+                  {{ scope.row.taskName}}
+                </div>
+                <div v-else :title="scope.row.taskName">
                   {{ scope.row.taskName}}
                 </div>
               </template>
             </el-table-column>
-            <el-table-column label="当前处理人" align="center" prop="assigneeName">
+            <el-table-column label="处理人" align="center" prop="assigneeName">
               <template slot-scope="scope">
                 <div :title="scope.row.assigneeName">
                   {{ scope.row.assigneeName}}
                 </div>
               </template>
             </el-table-column>
-            <!-- fixed="right" -->
+            <el-table-column label="流程状态" align="center" prop="status">
+              <template slot-scope="scope">
+                <div :title="scope.row.status">
+                  <span v-if="scope.row.status === 0">暂存</span>
+                  <span v-else-if="scope.row.status === 1">已提交</span>
+                  <span v-else-if="scope.row.status === 2">审批中</span>
+                  <span v-else-if="scope.row.status === 3">审批完成</span>
+                  <span v-else-if="scope.row.status === 4">关闭</span>
+                </div>
+              </template>
+            </el-table-column>
             <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
               <template slot-scope="scope">
-                <!--                <el-button  icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">签收</el-button>&ndash;&gt;
-                                <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                                <el-button  type="text" size="small" @click="handleFlowRecord(scope.row)">详情</el-button>-->
-                <!-- 1. 签收按钮:无签收人时显示 -->
-<!--                <el-button v-if="!scope.row.assignee" icon="el-icon-edit-outline" type="primary" size="mini" @click="handleSign(scope.row)">签收</el-button>
-                &lt;!&ndash; 2. 处理按钮:有签收人时显示 &ndash;&gt;
-                <el-button v-else size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                &lt;!&ndash; 3. 撤回按钮:需补充逻辑(比如仅未签收可撤回,可结合 signPerson 判断) &ndash;&gt;
-                <el-button v-if="!scope.row.assignee" size="mini" type="text" icon="el-icon-refresh-right" @click="handleWithdraw(scope.row)">撤回</el-button>-->
-                <!-- 4. 详情按钮:一直显示 -->
                 <el-button type="text" size="small" @click="handleDetail(scope.row)">详情</el-button>
               </template>
             </el-table-column>
@@ -543,8 +433,6 @@
               <template slot-scope="scope">
                 <div
                   :title="scope.row.projectName"
-                  class="public-text-blue public-cursor"
-                  @click.stop="handleDetail(scope.row)"
                 >
                   {{ scope.row.projectName }}
                 </div>
@@ -613,25 +501,6 @@
             }}</span>
               </template>
             </el-table-column>
-            <el-table-column
-              label="立项通过日期"
-              align="center"
-              prop="projectDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.projectDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="投决通过日期"
-              align="center"
-              prop="decisionDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>
-
             <el-table-column label="项目负责人" align="center" prop="investHead">
               <template slot-scope="scope">
                 <div :title="scope.row.investHead">
@@ -639,7 +508,6 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- <el-table-column label="项目编号" align="center" prop="projectCode" /> -->
             <el-table-column
               label="渠道"
               align="center"
@@ -656,44 +524,6 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- <el-table-column
-              label="所属组别"
-              align="center"
-              prop="tProjectChannel.channelGroup"
-            >
-              <template slot-scope="scope">
-                <dict-tag
-                  :options="dict.type.project_group"
-                  :value="scope.row.tProjectChannel.channelGroup"
-                />
-              </template>
-            </el-table-column> -->
-
-            <!-- <el-table-column
-              label="项目联系人"
-              align="center"
-              prop="tProjectContacts.name"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectContacts.name">
-                  {{ scope.row.tProjectContacts.name }}
-                </div>
-              </template>
-            </el-table-column> -->
-
-            <!--<el-table-column
-              label="创建人"
-              width="120"
-              align="center"
-              prop="createBy"
-            />
-            <el-table-column
-              label="创建时间"
-              align="center"
-              prop="createTime"
-              width="160"
-            /> -->
-            <!-- delFlag -->
             <el-table-column label="状态" align="center" prop="investHead">
               <template slot-scope="scope">
                 <div :title="scope.row.delFlag === '1' ? '终止' : '正常'">
@@ -715,19 +545,19 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- fixed="right" -->
+            <el-table-column label="流程状态" align="center" prop="status">
+              <template slot-scope="scope">
+                <div :title="scope.row.status">
+                  <span v-if="scope.row.status === 0">暂存</span>
+                  <span v-else-if="scope.row.status === 1">已提交</span>
+                  <span v-else-if="scope.row.status === 2">审批中</span>
+                  <span v-else-if="scope.row.status === 3">审批完成</span>
+                  <span v-else-if="scope.row.status === 4">关闭</span>
+                </div>
+              </template>
+            </el-table-column>
             <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
               <template slot-scope="scope">
-                <!--                <el-button  icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">签收</el-button>&ndash;&gt;
-                                <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                                <el-button  type="text" size="small" @click="handleFlowRecord(scope.row)">详情</el-button>-->
-                <!-- 1. 签收按钮:无签收人时显示 -->
-                <!--                <el-button v-if="!scope.row.assignee" icon="el-icon-edit-outline" type="primary" size="mini" @click="handleSign(scope.row)">签收</el-button>
-                                &lt;!&ndash; 2. 处理按钮:有签收人时显示 &ndash;&gt;
-                                <el-button v-else size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                                &lt;!&ndash; 3. 撤回按钮:需补充逻辑(比如仅未签收可撤回,可结合 signPerson 判断) &ndash;&gt;
-                                <el-button v-if="!scope.row.assignee" size="mini" type="text" icon="el-icon-refresh-right" @click="handleWithdraw(scope.row)">撤回</el-button>-->
-                <!-- 4. 详情按钮:一直显示 -->
                 <el-button type="text" size="small" @click="handleDetail(scope.row)">详情</el-button>
               </template>
             </el-table-column>

+ 5 - 3
ruoyi-ui/src/views/project/investigate/audit.vue

@@ -1705,7 +1705,6 @@ export default {
       getApprovalInfo(this.$route.query.pInstId).then((response) => {
         if (response && response.data) {
           that.formLXApply = response.data;
-          console.log(response.data.taskDefKey+"-----------");
           if(response.data.taskDefKey==='decision'){
             this.formType=1;
           }else if(response.data.taskDefKey==='president'){
@@ -1831,7 +1830,10 @@ export default {
     },
     //跳转到我的任务-投资机会
     goMyTask(){
-      this.$router.push({ path: "/myTask/project/approval/myTask"});
+      //this.$router.push({ path: "/myTask/project/approval/myTask"});
+      // 关闭当前标签页并返回指定页面
+      const obj = { path: "/myTask/project/approval/myTask", query: { t: Date.now()} };
+      this.$tab.closeOpenPage(obj);
     },
     //显示用户信息
     handleSelectPeople(number) {
@@ -1847,7 +1849,7 @@ export default {
     },
     // 用户选中数据
     handleUserSelect(selection) {
-      console.log(this.openLXApply+"---------------"+this.openHYApply);
+
       const that = this;
       if (selection && selection[0]) {
         let form;

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

@@ -412,7 +412,10 @@ export default {
     },
     //跳转到我的任务-投资机会
     goMyTask(){
-      this.$router.push({ path: "/myTask/project/approval/myTask"});
+      //this.$router.push({ path: "/myTask/project/approval/myTask"});
+      // 关闭当前标签页并返回指定页面
+      const obj = { path: "/myTask/project/approval/myTask", query: { t: Date.now()} };
+      this.$tab.closeOpenPage(obj);
     },
   },
 };

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

@@ -911,12 +911,10 @@ import {
   addMeeting,
   updateMeeting,
   getCanScoringMeetingId,
-  addApproval,
-  updateApproval,
-  addDecision,
-  updateDecision,
 } from "@/api/invest/meeting";
 import {approvalStart} from "@/api/project/approval/pool";
+import {decisionStart} from "@/api/project/decision/pool";
+import {terminationStart} from "@/api/project/termination/pool";
 import projectItem from "../invest/components/projectItem";
 import fileItem from "../invest/components/fileItem";
 import selecDept from "../invest/components/selecDept";
@@ -937,7 +935,6 @@ export default {
   components: { projectItem, selecDept, fileItem, selecUser },
   watch: {
     "form.meetingType": function (newValue, oldValue) {
-      // console.log(newValue,"this.form.meetingType", this.form.meetingType);
       if (this.form.meetingType == "LX" || this.form.meetingType == "TJ") {
         this.verifyProjectName = true;
       } else {
@@ -1040,7 +1037,6 @@ export default {
         createTime: null,
         updateBy: null,
         updateTime: null,
-        projectGroup: "",
       },
       // 表单校验
       rules: {
@@ -1358,7 +1354,7 @@ export default {
     // 获取公司信息
     getProjectInfo(info) {
       if (info.length > 0) {
-        console.log("info=", info);
+        //console.log("info=", info);
         this.form.projectPoolId = info[0].id;
         this.form.projectName = info[0].projectName;
         this.form.projectStage = info[0].projectStage;
@@ -1415,7 +1411,6 @@ export default {
         createTime: null,
         updateBy: null,
         updateTime: null,
-        projectGroup: "",
       };
       this.resetForm("form");
     },
@@ -1615,11 +1610,17 @@ export default {
             });*/
           }
           this.formLXApply.flag=flag;
-          approvalStart(this.formLXApply).then((response) => {
-            this.$modal.msgSuccess("新增成功");
-            this.openLXApply = false;
-            this.$emit("getList");
-          });
+          try {
+            approvalStart(this.formLXApply).then((response) => {
+              this.$modal.msgSuccess("新增成功");
+              this.openLXApply = false;
+              this.$emit("getList");
+              this.$store.dispatch("getMyTaskApprovalNumber"); //更新代办数量
+            });
+          } catch (err) {
+            // 捕获重复提交错误
+            this.$message.error(err.message);
+          }
         }
       });
     },
@@ -1642,11 +1643,17 @@ export default {
             });
           }*/
           this.formTJApply.flag=flag;
-          decisionStart(this.formTJApply).then((response) => {
-            this.$modal.msgSuccess("新增成功");
-            this.openTJApply = false;
-            this.$emit("getList");
-          });
+          try {
+            decisionStart(this.formTJApply).then((response) => {
+              this.$modal.msgSuccess("新增成功");
+              this.openTJApply = false;
+              this.$emit("getList");
+              this.$store.dispatch("getMyTaskDecisionNumber"); //更新代办数量
+            });
+          } catch (err) {
+            // 捕获重复提交错误
+            this.$message.error(err.message);
+          }
         }
       });
     },
@@ -1655,11 +1662,17 @@ export default {
       this.$refs["formZZApply"].validate((valid) => {
         if (valid) {
           this.formZZApply.flag=flag;
-          terminationStart(this.formZZApply).then((response) => {
-            this.$modal.msgSuccess("新增成功");
-            this.openZZApply = false;
-            this.$emit("getList");
-          });
+          try {
+            terminationStart(this.formZZApply).then((response) => {
+              this.$modal.msgSuccess("新增成功");
+              this.openZZApply = false;
+              this.$emit("getList");
+              this.$store.dispatch("getMyTaskTerminationNumber"); //更新代办数量
+            });
+          } catch (err) {
+            // 捕获重复提交错误
+            this.$message.error(err.message);
+          }
         }
       });
     },

+ 0 - 1
ruoyi-ui/src/views/project/termination/applyList.vue

@@ -94,7 +94,6 @@
           size="mini"
           icon="el-icon-document"
           @click="handleSelectData(14)"
-          v-hasPermi="['invest:pool:zz:apply']"
         >终止申请</el-button>
       </el-col>
       <right-toolbar

+ 5 - 3
ruoyi-ui/src/views/project/termination/audit.vue

@@ -118,7 +118,6 @@
       <el-form
         ref="flowBaseInfo"
         :model="flowBaseInfo"
-        :rules="rulesFlow"
         label-width="120px"
       >
         <el-form-item label="审批意见" prop="comment">
@@ -254,7 +253,7 @@ export default {
     },
     /** 用户审批任务 */
     taskComplete(flag) {
-      if (!this.flowBaseInfo.comment) {
+      if (!flag&&!this.flowBaseInfo.comment) {
         this.$modal.msgError("请输入审批意见!");
         return;
       }
@@ -275,7 +274,10 @@ export default {
     },
     //跳转到我的任务-投资机会
     goMyTask(){
-      this.$router.push({ path: "/myTask/project/termination/myTask"});
+      //this.$router.push({ path: "/myTask/project/termination/myTask"});
+      // 关闭当前标签页并返回指定页面
+      const obj = { path: "/myTask/project/termination/myTask", query: { t: Date.now()} };
+      this.$tab.closeOpenPage(obj);
     },
   },
 };

+ 4 - 1
ruoyi-ui/src/views/project/termination/edit.vue

@@ -247,7 +247,10 @@ export default {
     },
     //跳转到我的任务-项目终止
     goMyTask(){
-      this.$router.push({ path: "/myTask/project/termination/myTask"});
+      //this.$router.push({ path: "/myTask/project/termination/myTask"});
+      // 关闭当前标签页并返回指定页面
+      const obj = { path: "/myTask/project/termination/myTask", query: { t: Date.now()} };
+      this.$tab.closeOpenPage(obj);
     },
   },
 };

+ 57 - 403
ruoyi-ui/src/views/project/termination/myTask.vue

@@ -12,60 +12,16 @@
             @keyup.enter.native="handleQuery"
           />
         </el-form-item>
-        <el-form-item label="项目负责人" prop="investHead">
+        <el-form-item label="终止原因" prop="reason">
           <el-input
-            v-model.trim="queryParams.investHead"
-            placeholder="请输入项目负责人"
-            clearable
-            @keyup.enter.native="handleQuery"
-          />
-        </el-form-item>
-        <el-form-item label="公司联系人" prop="projectContacts">
-          <el-input
-            v-model.trim="queryParams.projectContacts"
-            placeholder="请输入公司联系人"
-            clearable
-            @keyup.enter.native="handleQuery"
-          />
-        </el-form-item>
-        <el-form-item label="渠道" prop="channel">
-          <el-select v-model="queryParams.channel" placeholder="全部" clearable>
-            <el-option
-              v-for="item in channelList"
-              :key="item.id"
-              :label="item.channelName"
-              :value="item.id"
-            />
-            <el-option label="无" value="-1" />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="所属组别" prop="projectGroup">
-          <el-select
-            v-model="queryParams.projectGroup"
-            placeholder="全部"
-            clearable
-          >
-            <el-option
-              v-for="dict in dict.type.project_group"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-
-        <el-form-item label="项目公司" prop="company">
-          <el-input
-            v-model.trim="queryParams.company"
-            placeholder="请输入项目所属公司"
+            v-model.trim="queryParams.reason"
+            placeholder="请输入终止原因"
             clearable
             @keyup.enter.native="handleQuery"
           />
         </el-form-item>
         <!-- 可继续扩展其他查询表单项目,比如项目编号、负责人等 -->
         <el-form-item>
-<!--          <el-button type="primary" @click="handleQuery">查询</el-button>
-          <el-button @click="handleReset">重置</el-button>-->
           <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
           <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
         </el-form-item>
@@ -89,41 +45,17 @@
               width="50"
               align="center"
             ></el-table-column>
-            <!-- <el-table-column label="主键id" align="center" prop="id" /> -->
             <el-table-column label="项目名称" align="center" prop="projectName">
               <template slot-scope="scope">
                 <div
                   :title="scope.row.projectName"
                   class="public-text-blue public-cursor"
-                  @click.stop="handleDetail(scope.row)"
+                  @click.stop="handleInvestOppDetail(scope.row)"
                 >
                   {{ scope.row.projectName }}
                 </div>
               </template>
             </el-table-column>
-<!--            <el-table-column
-              label="公司名称"
-              align="center"
-              prop="tProjectCompany.companyName"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.companyName">
-                  {{ scope.row.tProjectCompany.companyName }}
-                </div>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="项目所属城市"
-              align="center"
-              prop="tProjectCompany.registeredAddress"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.registeredAddress">
-                  {{ scope.row.tProjectCompany.registeredAddress }}
-                </div>
-              </template>
-            </el-table-column>
-            -->
             <el-table-column label="所属行业" align="center" prop="industry"
             ><template slot-scope="scope">
               <dict-tag
@@ -153,37 +85,6 @@
                 />
               </template>
             </el-table-column>
-
-            <!--<el-table-column
-              label="备案时间"
-              align="center"
-              prop="tProjectCompany.filingTime"
-            >
-              <template slot-scope="scope">
-          <span>{{
-              parseTime(scope.row.tProjectCompany.filingTime, "{y}-{m}-{d}")
-            }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="立项通过日期"
-              align="center"
-              prop="projectDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.projectDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="投决通过日期"
-              align="center"
-              prop="decisionDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>-->
-
             <el-table-column label="项目负责人" align="center" prop="investHead">
               <template slot-scope="scope">
                 <div :title="scope.row.investHead">
@@ -191,60 +92,6 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- <el-table-column label="项目编号" align="center" prop="projectCode" /> -->
-<!--            <el-table-column
-              label="渠道"
-              align="center"
-              prop="tProjectChannel.channelName"
-            >
-              <template slot-scope="scope">
-                <div
-                  v-if="
-              scope.row.tProjectChannel && scope.row.tProjectChannel.channelName
-            "
-                  :title="scope.row.tProjectChannel.channelName"
-                >
-                  {{ scope.row.tProjectChannel.channelName }}
-                </div>
-              </template>
-            </el-table-column>-->
-            <!-- <el-table-column
-              label="所属组别"
-              align="center"
-              prop="tProjectChannel.channelGroup"
-            >
-              <template slot-scope="scope">
-                <dict-tag
-                  :options="dict.type.project_group"
-                  :value="scope.row.tProjectChannel.channelGroup"
-                />
-              </template>
-            </el-table-column> -->
-
-            <!-- <el-table-column
-              label="项目联系人"
-              align="center"
-              prop="tProjectContacts.name"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectContacts.name">
-                  {{ scope.row.tProjectContacts.name }}
-                </div>
-              </template>
-            </el-table-column> -->
-
-            <!--<el-table-column
-              label="创建人"
-              width="120"
-              align="center"
-              prop="createBy"
-            />
-            <el-table-column
-              label="创建时间"
-              align="center"
-              prop="createTime"
-              width="160"
-            /> -->
             <el-table-column label="终止原因" align="center" prop="reason">
               <template slot-scope="scope">
                 <div :title="scope.row.reason">
@@ -274,12 +121,19 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- fixed="right" -->
+            <el-table-column label="流程状态" align="center" prop="status">
+              <template slot-scope="scope">
+                <div :title="scope.row.status">
+                  <span v-if="scope.row.status === 0">暂存</span>
+                  <span v-else-if="scope.row.status === 1">已提交</span>
+                  <span v-else-if="scope.row.status === 2">审批中</span>
+                  <span v-else-if="scope.row.status === 3">审批完成</span>
+                  <span v-else-if="scope.row.status === 4">关闭</span>
+                </div>
+              </template>
+            </el-table-column>
             <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
               <template slot-scope="scope">
-<!--                <el-button  icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">签收</el-button>&ndash;&gt;
-                <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                <el-button  type="text" size="small" @click="handleFlowRecord(scope.row)">详情</el-button>-->
 
                 <el-button v-if="scope.row.taskDefKey=='modifyApply'" type="text" @click="handleEdit(scope.row)">处理</el-button>
                 <template v-else>
@@ -331,34 +185,12 @@
                 <div
                   :title="scope.row.projectName"
                   class="public-text-blue public-cursor"
-                  @click.stop="handleDetail(scope.row)"
+                  @click.stop="handleInvestOppDetail(scope.row)"
                 >
                   {{ scope.row.projectName }}
                 </div>
               </template>
             </el-table-column>
-<!--            <el-table-column
-              label="公司名称"
-              align="center"
-              prop="tProjectCompany.companyName"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.companyName">
-                  {{ scope.row.tProjectCompany.companyName }}
-                </div>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="项目所属城市"
-              align="center"
-              prop="tProjectCompany.registeredAddress"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.registeredAddress">
-                  {{ scope.row.tProjectCompany.registeredAddress }}
-                </div>
-              </template>
-            </el-table-column>-->
             <el-table-column label="所属行业" align="center" prop="industry"
             ><template slot-scope="scope">
               <dict-tag
@@ -388,37 +220,6 @@
                 />
               </template>
             </el-table-column>
-
-<!--            <el-table-column
-              label="备案时间"
-              align="center"
-              prop="tProjectCompany.filingTime"
-            >
-              <template slot-scope="scope">
-          <span>{{
-              parseTime(scope.row.tProjectCompany.filingTime, "{y}-{m}-{d}")
-            }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="立项通过日期"
-              align="center"
-              prop="projectDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.projectDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="投决通过日期"
-              align="center"
-              prop="decisionDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>-->
-
             <el-table-column label="项目负责人" align="center" prop="investHead">
               <template slot-scope="scope">
                 <div :title="scope.row.investHead">
@@ -426,61 +227,6 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- <el-table-column label="项目编号" align="center" prop="projectCode" /> -->
-<!--            <el-table-column
-              label="渠道"
-              align="center"
-              prop="tProjectChannel.channelName"
-            >
-              <template slot-scope="scope">
-                <div
-                  v-if="
-              scope.row.tProjectChannel && scope.row.tProjectChannel.channelName
-            "
-                  :title="scope.row.tProjectChannel.channelName"
-                >
-                  {{ scope.row.tProjectChannel.channelName }}
-                </div>
-              </template>
-            </el-table-column>-->
-            <!-- <el-table-column
-              label="所属组别"
-              align="center"
-              prop="tProjectChannel.channelGroup"
-            >
-              <template slot-scope="scope">
-                <dict-tag
-                  :options="dict.type.project_group"
-                  :value="scope.row.tProjectChannel.channelGroup"
-                />
-              </template>
-            </el-table-column> -->
-
-            <!-- <el-table-column
-              label="项目联系人"
-              align="center"
-              prop="tProjectContacts.name"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectContacts.name">
-                  {{ scope.row.tProjectContacts.name }}
-                </div>
-              </template>
-            </el-table-column> -->
-
-            <!--<el-table-column
-              label="创建人"
-              width="120"
-              align="center"
-              prop="createBy"
-            />
-            <el-table-column
-              label="创建时间"
-              align="center"
-              prop="createTime"
-              width="160"
-            /> -->
-
             <el-table-column label="终止原因" align="center" prop="reason">
               <template slot-scope="scope">
                 <div :title="scope.row.reason">
@@ -496,33 +242,36 @@
                 </div>
               </template>
             </el-table-column>
-            <el-table-column label="当前节点" align="center" prop="taskName">
+            <el-table-column label="处理节点" align="center" prop="taskName">
               <template slot-scope="scope">
-                <div :title="scope.row.taskName" class="public-text-blue public-cursor" @click="handleReadImage(scope.row)">
+                <div  v-if="scope.row.deployId !== null && scope.row.deployId !== undefined && scope.row.deployId !== ''"  :title="scope.row.taskName" class="public-text-blue public-cursor" @click="handleReadImage(scope.row)">
+                  {{ scope.row.taskName}}
+                </div>
+                <div v-else :title="scope.row.taskName">
                   {{ scope.row.taskName}}
                 </div>
               </template>
             </el-table-column>
-            <el-table-column label="当前处理人" align="center" prop="assigneeName">
+            <el-table-column label="处理人" align="center" prop="assigneeName">
               <template slot-scope="scope">
                 <div :title="scope.row.assigneeName">
                   {{ scope.row.assigneeName}}
                 </div>
               </template>
             </el-table-column>
-            <!-- fixed="right" -->
+            <el-table-column label="流程状态" align="center" prop="status">
+              <template slot-scope="scope">
+                <div :title="scope.row.status">
+                  <span v-if="scope.row.status === 0">暂存</span>
+                  <span v-else-if="scope.row.status === 1">已提交</span>
+                  <span v-else-if="scope.row.status === 2">审批中</span>
+                  <span v-else-if="scope.row.status === 3">审批完成</span>
+                  <span v-else-if="scope.row.status === 4">关闭</span>
+                </div>
+              </template>
+            </el-table-column>
             <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
               <template slot-scope="scope">
-                <!--                <el-button  icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">签收</el-button>&ndash;&gt;
-                                <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                                <el-button  type="text" size="small" @click="handleFlowRecord(scope.row)">详情</el-button>-->
-                <!-- 1. 签收按钮:无签收人时显示 -->
-<!--                <el-button v-if="!scope.row.assignee" icon="el-icon-edit-outline" type="primary" size="mini" @click="handleSign(scope.row)">签收</el-button>
-                &lt;!&ndash; 2. 处理按钮:有签收人时显示 &ndash;&gt;
-                <el-button v-else size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                &lt;!&ndash; 3. 撤回按钮:需补充逻辑(比如仅未签收可撤回,可结合 signPerson 判断) &ndash;&gt;
-                <el-button v-if="!scope.row.assignee" size="mini" type="text" icon="el-icon-refresh-right" @click="handleWithdraw(scope.row)">撤回</el-button>-->
-                <!-- 4. 详情按钮:一直显示 -->
                 <el-button type="text" size="small" @click="handleDetail(scope.row)">详情</el-button>
               </template>
             </el-table-column>
@@ -560,34 +309,12 @@
                 <div
                   :title="scope.row.projectName"
                   class="public-text-blue public-cursor"
-                  @click.stop="handleDetail(scope.row)"
+                  @click.stop="handleInvestOppDetail(scope.row)"
                 >
                   {{ scope.row.projectName }}
                 </div>
               </template>
             </el-table-column>
-<!--            <el-table-column
-              label="公司名称"
-              align="center"
-              prop="tProjectCompany.companyName"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.companyName">
-                  {{ scope.row.tProjectCompany.companyName }}
-                </div>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="项目所属城市"
-              align="center"
-              prop="tProjectCompany.registeredAddress"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectCompany.registeredAddress">
-                  {{ scope.row.tProjectCompany.registeredAddress }}
-                </div>
-              </template>
-            </el-table-column>-->
             <el-table-column label="所属行业" align="center" prop="industry"
             ><template slot-scope="scope">
               <dict-tag
@@ -617,37 +344,6 @@
                 />
               </template>
             </el-table-column>
-
-<!--            <el-table-column
-              label="备案时间"
-              align="center"
-              prop="tProjectCompany.filingTime"
-            >
-              <template slot-scope="scope">
-          <span>{{
-              parseTime(scope.row.tProjectCompany.filingTime, "{y}-{m}-{d}")
-            }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="立项通过日期"
-              align="center"
-              prop="projectDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.projectDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              label="投决通过日期"
-              align="center"
-              prop="decisionDate"
-            >
-              <template slot-scope="scope">
-                <span>{{ parseTime(scope.row.decisionDate, "{y}-{m}-{d}") }}</span>
-              </template>
-            </el-table-column>-->
-
             <el-table-column label="项目负责人" align="center" prop="investHead">
               <template slot-scope="scope">
                 <div :title="scope.row.investHead">
@@ -655,60 +351,6 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- <el-table-column label="项目编号" align="center" prop="projectCode" /> -->
-<!--            <el-table-column
-              label="渠道"
-              align="center"
-              prop="tProjectChannel.channelName"
-            >
-              <template slot-scope="scope">
-                <div
-                  v-if="
-              scope.row.tProjectChannel && scope.row.tProjectChannel.channelName
-            "
-                  :title="scope.row.tProjectChannel.channelName"
-                >
-                  {{ scope.row.tProjectChannel.channelName }}
-                </div>
-              </template>
-            </el-table-column>-->
-            <!-- <el-table-column
-              label="所属组别"
-              align="center"
-              prop="tProjectChannel.channelGroup"
-            >
-              <template slot-scope="scope">
-                <dict-tag
-                  :options="dict.type.project_group"
-                  :value="scope.row.tProjectChannel.channelGroup"
-                />
-              </template>
-            </el-table-column> -->
-
-            <!-- <el-table-column
-              label="项目联系人"
-              align="center"
-              prop="tProjectContacts.name"
-            >
-              <template slot-scope="scope">
-                <div :title="scope.row.tProjectContacts.name">
-                  {{ scope.row.tProjectContacts.name }}
-                </div>
-              </template>
-            </el-table-column> -->
-
-            <!--<el-table-column
-              label="创建人"
-              width="120"
-              align="center"
-              prop="createBy"
-            />
-            <el-table-column
-              label="创建时间"
-              align="center"
-              prop="createTime"
-              width="160"
-            /> -->
             <el-table-column label="终止原因" align="center" prop="reason">
               <template slot-scope="scope">
                 <div :title="scope.row.reason">
@@ -738,19 +380,19 @@
                 </div>
               </template>
             </el-table-column>
-            <!-- fixed="right" -->
+            <el-table-column label="流程状态" align="center" prop="status">
+              <template slot-scope="scope">
+                <div :title="scope.row.status">
+                  <span v-if="scope.row.status === 0">暂存</span>
+                  <span v-else-if="scope.row.status === 1">已提交</span>
+                  <span v-else-if="scope.row.status === 2">审批中</span>
+                  <span v-else-if="scope.row.status === 3">审批完成</span>
+                  <span v-else-if="scope.row.status === 4">关闭</span>
+                </div>
+              </template>
+            </el-table-column>
             <el-table-column label="操作" align="center" width="150" fixed="right" class-name="small-padding fixed-width">
               <template slot-scope="scope">
-                <!--                <el-button  icon="el-icon-edit-outline" type="primary" size="mini" @click="handleDelegate">签收</el-button>&ndash;&gt;
-                                <el-button size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                                <el-button  type="text" size="small" @click="handleFlowRecord(scope.row)">详情</el-button>-->
-                <!-- 1. 签收按钮:无签收人时显示 -->
-                <!--                <el-button v-if="!scope.row.assignee" icon="el-icon-edit-outline" type="primary" size="mini" @click="handleSign(scope.row)">签收</el-button>
-                                &lt;!&ndash; 2. 处理按钮:有签收人时显示 &ndash;&gt;
-                                <el-button v-else size="mini" type="text" icon="el-icon-edit-outline" @click="handleProcess(scope.row)">处理</el-button>
-                                &lt;!&ndash; 3. 撤回按钮:需补充逻辑(比如仅未签收可撤回,可结合 signPerson 判断) &ndash;&gt;
-                                <el-button v-if="!scope.row.assignee" size="mini" type="text" icon="el-icon-refresh-right" @click="handleWithdraw(scope.row)">撤回</el-button>-->
-                <!-- 4. 详情按钮:一直显示 -->
                 <el-button type="text" size="small" @click="handleDetail(scope.row)">详情</el-button>
               </template>
             </el-table-column>
@@ -786,6 +428,9 @@ import followList from "../../invest/components/followList.vue";
 import meetingList from "../../invest/components/meetingList.vue";
 import businessUpdate from "../../invest/components/businessUpdate.vue";
 import flow from '@/views/flowable/task/todo/detail/flow';
+import {
+  getPool
+} from "@/api/invest/pool";
 
 import { mapGetters } from "vuex";
 import pool from "../../invest/pool/index.vue";
@@ -955,6 +600,15 @@ export default {
     clickRow(row) {
       this.$refs.dataTable.toggleRowSelection(row);
     },
+    /*投资机会详情*/
+    handleInvestOppDetail(row) {
+      const projectPoolId = row.projectPoolId;
+      getPool(projectPoolId).then((response) => {
+        const pInstId=response.data.procInstId;
+        this.$router.push({ path: "/project/investOpp/detail", query: { id:
+            projectPoolId , pInstId: pInstId } });
+      });
+    },
     // 跳转到处理页面(暂存节点页面)
     handleEdit(row){
       const id = row.id || this.ids;