Browse Source

提交代码

Lijy 4 months ago
parent
commit
0afdfd80ea

+ 12 - 8
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectApprovalController.java

@@ -115,12 +115,16 @@ public class ProjectApprovalController {
             projectApproval.setInchargerName(id.getName());
         }
         if (projectApproval.getId() != null) {
-            //编辑
-            Integer count=projectMapper.selectCount(new LambdaQueryWrapper<Project>().eq(Project::getCompanyId, companyId).eq(Project::getProjectCode, projectApproval.getProjectCode()));
-            Integer count1=projectApprovalService.count(new LambdaQueryWrapper<ProjectApproval>().eq(ProjectApproval::getCompanyId, companyId).eq(ProjectApproval::getProjectCode, projectApproval.getProjectCode()).ne(ProjectApproval::getId,projectApproval.getId()));
-            if(count>0||count1>0){
-                msg.setError("已存在项目编号为["+projectApproval.getProjectCode()+"]的项目/立项");
-                return msg;
+            if (org.apache.commons.lang3.StringUtils.isNotEmpty(projectApproval.getProjectCode())){
+                //编辑
+                Integer count=projectMapper.selectCount(new LambdaQueryWrapper<Project>().eq(Project::getCompanyId, companyId)
+                        .eq( Project::getProjectCode, projectApproval.getProjectCode())
+                        .ne(Project::getApproveId,projectApproval.getId()));
+                Integer count1=projectApprovalService.count(new LambdaQueryWrapper<ProjectApproval>().eq(ProjectApproval::getCompanyId, companyId).eq(ProjectApproval::getProjectCode, projectApproval.getProjectCode()).ne(ProjectApproval::getId,projectApproval.getId()));
+                if(count>0||count1>0){
+                    msg.setError("已存在项目编号为["+projectApproval.getProjectCode()+"]的项目/立项");
+                    return msg;
+                }
             }
         } else {
             //新增
@@ -319,8 +323,8 @@ public class ProjectApprovalController {
 
     @RequestMapping("/check")
     @Transactional(rollbackFor = Exception.class)
-    public HttpRespMsg check(Integer id,Integer checkType,Integer revokeType){
-        return projectApprovalService.check(id,checkType,revokeType);
+    public HttpRespMsg check(Integer id,Integer checkType,Integer revokeType,String rejectInfo){
+        return projectApprovalService.check(id,checkType,revokeType,rejectInfo);
     }
 
     @RequestMapping("/importData")

+ 12 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ProjectApproval.java

@@ -247,6 +247,12 @@ public class ProjectApproval extends Model<ProjectApproval> {
     @TableField("wx_corp_sp_no")
     private String wxCorpSpNo;
 
+    /**
+     * 驳回原因
+     */
+    @TableField("reject_info")
+    private String rejectInfo;
+
     @TableField(exist = false)
     private List<ProjectApprovalBasecost> projectApprovalBasecostList;
 
@@ -265,6 +271,12 @@ public class ProjectApproval extends Model<ProjectApproval> {
     @TableField(exist = false)
     private Integer canChecked;
 
+    @TableField(exist = false)
+    private Boolean isFirstCheckUser;
+
+    @TableField(exist = false)
+    private Boolean isCheckedUser;
+
 
     @Override
     protected Serializable pkVal() {

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectApprovalService.java

@@ -24,5 +24,5 @@ public interface ProjectApprovalService extends IService<ProjectApproval> {
 
     HttpRespMsg exportData(String keyword, Integer searchField, String statuses, Integer category, Integer viewId);
 
-    HttpRespMsg check(Integer id, Integer checkType, Integer revokeType);
+    HttpRespMsg check(Integer id, Integer checkType, Integer revokeType,String rejectInfo);
 }

+ 37 - 8
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectApprovalServiceImpl.java

@@ -161,6 +161,25 @@ public class ProjectApprovalServiceImpl extends ServiceImpl<ProjectApprovalMappe
             if(optional.isPresent()){
                 r.setInchargerName(optional.get().getName());
             }
+            Optional<ProjectApprovalCheck> first1 = approvalCheckList.stream().filter(p -> p.getProjectApprovalId().equals(r.getId()) && p.getStatus() == 0).min(Comparator.comparing(ProjectApprovalCheck::getSeq));
+            Optional<ProjectApprovalCheck> first2 = approvalCheckList.stream().filter(p -> p.getProjectApprovalId().equals(r.getId()) && p.getStatus() == 1&&p.getUserId().equals(user.getId())).findFirst();
+            if (first1.isPresent()){
+                ProjectApprovalCheck projectApprovalCheck = first1.get();
+                if (projectApprovalCheck.getUserId().equals(user.getId())){
+                    r.setIsFirstCheckUser(true);
+                }else {
+                    r.setIsFirstCheckUser(false);
+                }
+            }else r.setIsFirstCheckUser(false);
+
+            if (first2.isPresent()){
+                ProjectApprovalCheck projectApprovalCheck = first2.get();
+                if (projectApprovalCheck.getUserId().equals(user.getId())){
+                    r.setIsCheckedUser(true);
+                }else {
+                    r.setIsFirstCheckUser(false);
+                }
+            }else r.setIsCheckedUser(false);
 //            List<ProjectApprovalCheck> checkList = approvalCheckList.stream().filter(a -> a.getProjectApprovalId().equals(r.getId())).collect(Collectors.toList());
 //            Optional<ProjectApprovalCheck> first = checkList.stream().filter(c -> c.getUserId().equals(user.getId())&&c.getStatus()==0).findFirst();
         });
@@ -788,20 +807,22 @@ public class ProjectApprovalServiceImpl extends ServiceImpl<ProjectApprovalMappe
     }
 
     @Override
-    public HttpRespMsg check(Integer id, Integer checkType, Integer revokeType) {
+    public HttpRespMsg check(Integer id, Integer checkType, Integer revokeType,String rejectInfo) {
         HttpRespMsg msg=new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("token"));
         ProjectApproval projectApproval = getById(id);
-        List<ProjectApprovalCheck> projectApprovalChecks = projectApprovalCheckService.list(new LambdaQueryWrapper<ProjectApprovalCheck>().eq(ProjectApprovalCheck::getProjectApprovalId, id));
-        Optional<ProjectApprovalCheck> first = projectApprovalChecks.stream().filter(p -> p.getUserId().equals(user.getId())&&p.getStatus()==0).findFirst();
+        List<ProjectApprovalCheck> projectApprovalChecks = projectApprovalCheckService.list(new LambdaQueryWrapper<ProjectApprovalCheck>().eq(ProjectApprovalCheck::getProjectApprovalId, id).orderByAsc(ProjectApprovalCheck::getSeq));
+        if (null==projectApprovalChecks||projectApprovalChecks.isEmpty()){
+            msg.setError("该项目未设置审核人");
+            return msg;
+        }
+        Optional<ProjectApprovalCheck> first = projectApprovalChecks.stream().filter(p ->  p.getStatus() == 0&& p.getUserId().equals(user.getId())).min(Comparator.comparing(ProjectApprovalCheck::getSeq));
 //        boolean hasAllPriviledge = sysFunctionService.hasPriviledge(user.getRoleId(), "管理全部立项申请");
 //        boolean hasCheckPriviledge = sysFunctionService.hasPriviledge(user.getRoleId(), "审核立项申请");
         if(checkType!=3){
-            if(projectApprovalChecks.size()>0){
-                if(!first.isPresent()){
-                    msg.setError("审核人验证失败,请按照审核人顺序审核");
-                    return msg;
-                }
+            if(!first.isPresent()){
+                msg.setError("审核人验证失败,请按照审核人顺序审核");
+                return msg;
             }
         }
         ProjectApprovalLog projectApprovalLog=new ProjectApprovalLog();
@@ -861,11 +882,19 @@ public class ProjectApprovalServiceImpl extends ServiceImpl<ProjectApprovalMappe
                     //通过
                     projectApprovalLog.setType(2);
                     projectApprovalLogService.save(projectApprovalLog);
+                    if (first.get().getSeq()==projectApprovalChecks.size()){
+                        projectApproval.setStatus(1);
+                        projectApprovalService.updateById(projectApproval);
+                    }
                 }
                 break;
             /*驳回*/
             case 2:
+                ProjectApprovalCheck check = first.get();
+                check.setStatus(2);
+                projectApprovalCheckService.updateById(check);
                 projectApproval.setStatus(2);
+                projectApproval.setRejectInfo(rejectInfo);
                 projectApprovalService.updateById(projectApproval);
                 //新增操作记录数据
                 projectApprovalLog.setCreateTime(LocalDateTime.now());

+ 45 - 41
fhKeeper/formulahousekeeper/timesheet/src/views/project/info.vue

@@ -6,65 +6,68 @@
                 <div class="box info">
                     <label>{{ $t('basicinformation') }}<el-link v-if="(user.id == project.creatorId || user.id == project.inchargerId) || permissions.projectManagement" @click="showEdit" style="float:right;"><i class="el-icon-edit"  ></i></el-link></label>
                     <el-row :gutter="10" >
-                        <el-col :span="5" ><span class="gray_label">{{ $t('headerTop.projectName') }}:</span></el-col><el-col :span="7" ><span >{{project.projectName}}</span></el-col>
-                        <el-col :span="5" ><span class="gray_label">{{ $t('projectclassification') }}:</span></el-col><el-col :span="7" ><span >{{project.categoryName}}</span></el-col>
+                        <el-col :span="5" ><div class="gray_label">{{ $t('headerTop.projectName') }}:</div></el-col><el-col :span="7" ><div >{{project.projectName}}</div></el-col>
+                        <el-col :span="5" ><div class="gray_label">{{ $t('projectclassification') }}:</div></el-col><el-col :span="7" ><div >{{project.categoryName}}</div></el-col>
                     </el-row>
                     <el-row :gutter="10" >
-                        <el-col :span="5" ><span class="gray_label">{{ $t('other.projectDescription') }}:</span></el-col><el-col :span="7" ></el-col>
-                        <el-col :span="18" ><span>{{project.projectDesc}}</span></el-col>
+                        <el-col :span="5" ><div class="gray_label">{{ $t('other.projectDescription') }}:</div></el-col><el-col :span="7" ></el-col>
+                        <el-col :span="18" ><div>{{project.projectDesc}}</div></el-col>
                     </el-row>
                     <el-row :gutter="10" v-if="user.timeType.projectWithDept">
-                        <el-col :span="5" ><span class="gray_label">{{ $t('subordinatedepartments') }}:</span></el-col><el-col :span="7" ></el-col>
+                        <el-col :span="5" ><div class="gray_label">{{ $t('subordinatedepartments') }}:</div></el-col><el-col :span="7" ></el-col>
                         <el-col :span="18" >
-                            <span v-if="user.userNameNeedTranslate != 1">{{project.departmentName}}</span>
-                            <span v-if="user.userNameNeedTranslate == 1"><TranslationOpenDataText type='departmentName' :openid='project.departmentName'></TranslationOpenDataText></span>
+                            <div v-if="user.userNameNeedTranslate != 1">{{project.departmentName}}</div>
+                            <div v-if="user.userNameNeedTranslate == 1"><TranslationOpenDataText type='departmentName' :openid='project.departmentName'></TranslationOpenDataText></div>
                         </el-col>
                     </el-row>
                     <el-row :gutter="10">
-                        <el-col :span="5" ><span class="gray_label">{{ $t('state.states') }}:</span></el-col><el-col :span="7" ><span >{{project.status==null?'-':statusTxt[project.status]}}</span></el-col>
-                        <el-col :span="5" v-if="user.company.packageEngineering==0"><span class="gray_label">{{ $t('completeness') }}: </span></el-col><el-col :span="7" >
-                        <span v-if="user.company.packageEngineering==0">
+                        <el-col :span="5" ><div class="gray_label">{{ $t('state.states') }}:</div></el-col><el-col :span="7" ><div >{{project.status==null?'-':statusTxt[project.status]}}</div></el-col>
+                        <el-col :span="5" v-if="user.company.packageEngineering==0"><div class="gray_label">{{ $t('completeness') }}: </div></el-col><el-col :span="7" >
+                        <div v-if="user.company.packageEngineering==0">
                             <el-progress  :percentage="project.progress == null?0:project.progress"></el-progress>
-                        </span></el-col>
+                        </div></el-col>
                     </el-row>
                     <el-row :gutter="10">
-                        <el-col :span="5" ><span class="gray_label">{{ user.companyId == '7030' ? '项目令号' : $t('Itemno') }}: </span></el-col><el-col :span="7" ><span >{{project.projectCode}}&nbsp;</span></el-col>
-                        <el-col :span="5" v-if="permissions.projectContract"><span class="gray_label">{{ $t('contractamount') }}:</span></el-col>
+                        <el-col :span="5" ><div class="gray_label">{{ user.companyId == '7030' ? '项目令号' : $t('Itemno') }}: </div></el-col><el-col :span="7" ><div >{{project.projectCode}}&nbsp;</div></el-col>
+                        <el-col :span="5" v-if="permissions.projectContract"><div class="gray_label">{{ $t('contractamount') }}:</div></el-col>
                         <el-col :span="7" >
-                        <span style="float:left;" v-if="permissions.projectContract">{{project.contractAmount == null?'-':project.contractAmount | numberToCurrency}} 元</span>
+                        <div style="float:left;" v-if="permissions.projectContract">{{project.contractAmount == null?'-':project.contractAmount | numberToCurrency}} 元</div>
                         <el-link v-if="user.id == project.creatorId || user.id == project.inchargerId" @click="contractRecord" style="float:left;"><i class="iconfont firerock-iconrecord"></i></el-link>
                         <el-link v-if="user.id == project.creatorId || user.id == project.inchargerId || permissions.projectManagement" @click="contractChange" style="float:right;"><i class="el-icon-edit"  ></i></el-link>
                         </el-col>
                         
                     </el-row>
                     <el-row :gutter="10">
-                        <el-col :span="5" ><span class="gray_label">{{ $t('jihuajibie') }}: </span></el-col><el-col :span="7" ><span >{{levelTextShow(project.level)}}</span></el-col>
-                        <el-col :span="5" ><span class="gray_label">{{ $t('creationdate') }}:</span></el-col><el-col :span="7" ><span>{{project.createDate}}</span></el-col>
+                        <el-col :span="5" ><div class="gray_label ">{{ $t('jihuajibie') }}: </div></el-col>
+                        <el-col :span="7" ><div class="gray_label ">{{levelTextShow(project.level)}}</div></el-col>
+                        <el-col :span="5" ><div class="gray_label ">{{ $t('creationdate') }}:</div>
+                        </el-col><el-col :span="7" ><div class="gray_label ">{{project.createDate}}</div></el-col>
                     </el-row>
+             
                     <el-row :gutter="10">
-                        <el-col :span="5" ><span class="gray_label">{{ $t('ommencementDate') }}:</span></el-col>
-                        <el-col :span="7" ><span >{{project.planStartDate==null?'-':project.planStartDate}}</span></el-col>
-                        <el-col :span="5" ><span class="gray_label">{{ $t('ji-hua-jie-shu-ri-qi') }}:</span></el-col>
-                        <el-col :span="7" ><span>{{project.planEndDate == null?'-':project.planEndDate}}</span></el-col>
+                        <el-col :span="5" ><div class="gray_label">{{ $t('ommencementDate') }}:</div></el-col>
+                        <el-col :span="7" ><div >{{project.planStartDate==null?'-':project.planStartDate}}</div></el-col>
+                        <el-col :span="5" ><div class="gray_label">{{ $t('ji-hua-jie-shu-ri-qi') }}:</div></el-col>
+                        <el-col :span="7" ><div>{{project.planEndDate == null?'-':project.planEndDate}}</div></el-col>
                     </el-row>
                     <el-row :gutter="10">
-                        <el-col :span="5" ><span class="gray_label">{{ $t('shijiawancheng') }}:</span></el-col>
-                        <el-col :span="7" ><span>{{project.finishDate==null?'-':project.finishDate}}</span></el-col>
+                        <el-col :span="5" ><div class="gray_label">{{ $t('shijiawancheng') }}:</div></el-col>
+                        <el-col :span="7" ><div>{{project.finishDate==null?'-':project.finishDate}}</div></el-col>
                         <template v-if="user.timeType.outputValueStatus == 1">
-                        <el-col :span="5" ><span class="gray_label">{{ $t('projectoutput') }}:</span></el-col>
-                        <el-col :span="7" ><span>{{project.outputValue == null?'-':project.outputValue | numberToCurrency}} {{ $t('yuan') }}</span></el-col>
+                        <el-col :span="5" ><div class="gray_label">{{ $t('projectoutput') }}:</div></el-col>
+                        <el-col :span="7" ><div>{{project.outputValue == null?'-':project.outputValue | numberToCurrency}} {{ $t('yuan') }}</div></el-col>
                         </template>
                     </el-row>
                     <el-row :gutter="10" v-if="yonghuUser.customDegreeActive == 1">
-                        <el-col :span="5" ><span class="gray_label">{{yonghuUser.customDegreeName}}:</span></el-col>
-                        <el-col :span="18" ><span>{{project.associateDegreeNames}}</span></el-col>
+                        <el-col :span="5" ><div class="gray_label">{{yonghuUser.customDegreeName}}:</div></el-col>
+                        <el-col :span="18" ><div>{{project.associateDegreeNames}}</div></el-col>
                     </el-row>
 
                     <div v-if="user.timeType.projectCustom">
                         <el-row :gutter="10" v-for="(item,index) in dataListTwo" :key="index">
-                            <el-col :span="5" ><span class="gray_label">{{ item.customName }}:</span></el-col>
+                            <el-col :span="5" ><div class="gray_label">{{ item.customName }}:</div></el-col>
                             <el-col :span="18" v-if="item.customType != 1">
-                                <span>{{item.value}}</span>
+                                <div>{{item.value}}</div>
                             </el-col>
                             <el-col :span="18" v-if="item.customType == 1">
                                 <viewer :images="item.value" class="detailsPicture">
@@ -78,31 +81,31 @@
                     <!-- this.project  -->
                     <div v-if="user.companyId == '936'">
                         <el-row :gutter="10" >
-                            <el-col :span="5" ><span class="gray_label">{{ $t('contractno') }}:</span></el-col><el-col :span="7" ></el-col>
-                            <el-col :span="18" ><span>{{project.projectSeparate && project.projectSeparate.contractCode}}</span></el-col>
+                            <el-col :span="5" ><div class="gray_label">{{ $t('contractno') }}:</div></el-col><el-col :span="7" ></el-col>
+                            <el-col :span="18" ><div>{{project.projectSeparate && project.projectSeparate.contractCode}}</div></el-col>
                         </el-row>
                         <el-row :gutter="10">
-                            <el-col :span="5" ><span class="gray_label">{{ $t('warrantystartime') }}:</span></el-col><el-col :span="7" >
-                                <span >{{project.projectSeparate.warrantyStartDate==null?'-':project.projectSeparate.warrantyStartDate}}</span></el-col>
-                            <el-col :span="5" ><span class="gray_label">{{ $t('warrantyexpirationtime') }}:</span></el-col><el-col :span="7" ><span>
-                                {{project.projectSeparate.warrantyEndDate == null?'-':project.projectSeparate.warrantyEndDate}}</span></el-col>
+                            <el-col :span="5" ><div class="gray_label">{{ $t('warrantystartime') }}:</div></el-col><el-col :span="7" >
+                                <div >{{project.projectSeparate.warrantyStartDate==null?'-':project.projectSeparate.warrantyStartDate}}</div></el-col>
+                            <el-col :span="5" ><div class="gray_label">{{ $t('warrantyexpirationtime') }}:</div></el-col><el-col :span="7" ><div>
+                                {{project.projectSeparate.warrantyEndDate == null?'-':project.projectSeparate.warrantyEndDate}}</div></el-col>
                         </el-row>
                         <el-row :gutter="10" >
-                            <el-col :span="5" ><span class="gray_label">{{ $t('IndependentProject') }}:</span></el-col><el-col :span="7" ></el-col>
-                            <el-col :span="18" ><span>{{project.projectSeparate.projectCategorySub}}</span></el-col>
+                            <el-col :span="5" ><div class="gray_label">{{ $t('IndependentProject') }}:</div></el-col><el-col :span="7" ></el-col>
+                            <el-col :span="18" ><div>{{project.projectSeparate.projectCategorySub}}</div></el-col>
                         </el-row>
                         <el-row :gutter="10" >
-                            <el-col :span="5" ><span class="gray_label">{{ $t('region') }}:</span></el-col><el-col :span="7" ></el-col>
-                            <el-col :span="18" ><span>{{project.projectSeparate.region}}</span></el-col>
+                            <el-col :span="5" ><div class="gray_label">{{ $t('region') }}:</div></el-col><el-col :span="7" ></el-col>
+                            <el-col :span="18" ><div>{{project.projectSeparate.region}}</div></el-col>
                         </el-row>
                         <el-row :gutter="10" >
-                            <el-col :span="5" ><span class="gray_label">{{ $t('subordinateBU') }}:</span></el-col><el-col :span="7" ></el-col>
-                            <el-col :span="18" ><span>{{project.projectSeparate.bu}}</span></el-col>
+                            <el-col :span="5" ><div class="gray_label">{{ $t('subordinateBU') }}:</div></el-col><el-col :span="7" ></el-col>
+                            <el-col :span="18" ><div>{{project.projectSeparate.bu}}</div></el-col>
                         </el-row>
                     </div>
                     <div v-if="user.timeType.projectManDay">
                         <el-row :gutter="10" >
-                            <el-col :span="5" ><span class="gray_label">{{ $t('shiJiYuGuGongShi') }}</span></el-col><el-col :span="7" ></el-col>
+                            <el-col :span="5" ><div class="gray_label">{{ $t('shiJiYuGuGongShi') }}</div></el-col><el-col :span="7" ></el-col>
                             <el-col :span="18" ><b :style="fillTimeData.total>project.manDay*user.timeType.allday?'color:red;':''">{{fillTimeData.total}}</b>/<b>{{project.manDay*user.timeType.allday}}</b>&nbsp;{{ $t('time.hour') }}</el-col>
                         </el-row>
                     </div>
@@ -721,6 +724,7 @@
 }
 .gray_label {
     color:#999 !important;
+    min-height: 20px;
 }
 
 .el-row {

+ 148 - 42
fhKeeper/formulahousekeeper/timesheet/src/views/projectApproval/projectApproval.vue

@@ -29,6 +29,15 @@
                 </el-form-item>
             </el-form>
         </el-col>
+        <el-dialog :title="$t('defaultText.pleaseEnterTheReason')"  v-if="denyReasonDialog" :visible.sync="denyReasonDialog" :close-on-click-modal="false" customClass="customWidth" width="500px">
+            <div>
+                <span style="color:red;">*</span><el-input type="textarea" v-model="denyReasonRReason" rows="2" placeholder="请输入驳回原因" />
+            </div>
+            <div slot="footer" class="dialog-footer">
+                <el-button  @click="denyReasonDialog = false" >{{ $t('btn.cancel') }}</el-button>
+                <el-button type="primary" @click="deny()" :disabled="!denyReasonRReason">{{ $t('btn.determine') }}</el-button>
+            </div>
+        </el-dialog>
         <div style="display: flex;width: 100%;">
                 <div class="classification">
                     <div>
@@ -43,13 +52,13 @@
                         </el-table-column>
                         <el-table-column prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')"  width="150"></el-table-column>
                         <el-table-column prop="projectName" :label="$t('headerTop.projectName')" min-width="250" sortable="custom">
-                        <template slot-scope="scope">
-                            <div> 
-                                <el-button type="text" v-if="user.company.packageProject==1 && (user.company.nonProjectSimple==0 || (user.company.nonProjectSimple==1&&scope.row.isPublic==0))" @click="showProjectApprovalDeatil(scope.row)">{{scope.row.projectName}}</el-button>
-                                <span v-else>{{scope.row.projectName}}</span>
-                            </div>
-                        </template>
-                    </el-table-column>
+                            <template slot-scope="scope">
+                                <div> 
+                                    <el-button type="text" v-if="user.company.packageProject==1 && (user.company.nonProjectSimple==0 || (user.company.nonProjectSimple==1&&scope.row.isPublic==0))" @click="showProjectApprovalDeatil(scope.row)">{{scope.row.projectName}}</el-button>
+                                    <span v-else>{{scope.row.projectName}}</span>
+                                </div>
+                            </template>
+                        </el-table-column>
                         <el-table-column prop="categoryName" :label="$t('projectclassification')"  width="140"></el-table-column>
                         <el-table-column prop="isPublic" :label="$t('projecttype')"  width="140">
                             <template slot-scope="scope">{{scope.row.isPublic==0?$t('zheng-shi-xiang-mu'):$t('fei-xiang-mu')}}</template>
@@ -78,11 +87,12 @@
                                 {{scope.row.status == null?"-":approvalStatusStr[scope.row.status]}}
                             </template>
                         </el-table-column>
+                        <el-table-column prop="rejectInfo" :label="$t('dismissreason')" min-width="250" ></el-table-column>
                         <el-table-column :label="$t('operation')" :width="300" align="left" fixed="right">
                             <template slot-scope="scope">
                                 <el-button size="mini" type="primary" v-if="(permissions.projectApprovalEdit||permissions.projectApprovalCheck)&&scope.row.status!=1" @click="handleAdd(scope.$index, scope.row)">{{'编辑'}}</el-button>
-                                <el-button size="mini" type="success" v-if="(permissions.projectApprovalEdit||permissions.projectApprovalCheck) && scope.row.status==0"  @click="check(scope.row,1)" >{{'通过'}}</el-button>
-                                <el-button size="mini" v-if="(permissions.projectApprovalEdit||permissions.projectApprovalCheck) && scope.row.status==0" @click="check(scope.row,2)">{{'驳回'}}</el-button>
+                                <el-button size="mini" type="success" v-if="(permissions.projectApprovalEdit||permissions.projectApprovalCheck) && scope.row.status==0" :disabled="!scope.row.isFirstCheckUser"  @click="check(scope.row,1)" >{{'通过'}}</el-button>
+                                <el-button size="mini" v-if="(permissions.projectApprovalEdit||permissions.projectApprovalCheck) && scope.row.status==0" :disabled="!scope.row.isFirstCheckUser"  @click="showDenyDialog(scope.row,2)">{{'驳回'}}</el-button>
                                 <el-button size="mini" v-if="(permissions.projectApprovalEdit ||permissions.projectApprovalCheck) && scope.row.status==1" @click="check(scope.row,3)">{{'撤销'}}</el-button>
                             </template>
                         </el-table-column>
@@ -227,9 +237,11 @@
                                 </div>
                                 <el-divider></el-divider>
                                 <template>
-                                    <div><span>{{'审核人'}}</span></div>
-                                    <div>
-                                        <div v-for="(item, index) in pointList" :key="index" >
+                                    <div style="padding: 7px 0; ">
+                                        <span style="color: #409EFF; font-size: 17px;">{{'审核人'}}</span>
+                                    </div>
+                                    <!-- <div >
+                                        <div  v-for="(item, index) in pointList" :key="index" >
                                         第{{index+1}}审核人:
                                         <el-select  v-if="user.userNameNeedTranslate != 1" :disabled="item.status!=0" v-model="item.userId" style="width:140px;" :placeholder="$t('defaultText.pleaseChoose')" clearable @change="manageSelect" size="small" filterable popper-class="managePopperClass">
                                             <el-option v-for="item in participator" :key="item.id" :label="item.name" :value="item.id">
@@ -241,6 +253,20 @@
                                         <i class="el-icon-remove-outline" v-if="pointList.length>1 && item.status==0"  @click="deleteInput(index)"></i>
                                         <span>{{item.status==0?'待审核':item.status==1?"已审核":"已驳回"}}</span>
                                         </div>
+                                    </div> -->
+                                    <div>
+                                        <div v-for="(item, index) in pointList" :key="index" style="margin-bottom: 10px; padding: 10px; border: 1px solid #e0e0e0; border-radius: 5px;">
+                                            第{{index + 1}}审核人:
+                                            <el-select v-if="user.userNameNeedTranslate != 1" :disabled="item.status != 0" v-model="item.userId" style="width: 140px; margin-left: 10px;" :placeholder="$t('defaultText.pleaseChoose')" clearable @change="manageSelect" size="small" filterable popper-class="managePopperClass">
+                                                <el-option v-for="participatorItem in participator" :key="participatorItem.id" :label="participatorItem.name" :value="participatorItem.id">
+                                                    <span style="float: left">{{ participatorItem.name }}</span>
+                                                </el-option>
+                                            </el-select>
+                                            <selectCat v-if="user.userNameNeedTranslate == 1" :size="'medium'" :subject="participator" :subjectId="item.userId" :distinction="'12'" @selectCal="selectCal" :disabled="canOnlyModParticipator || projectManagerEdit || isShowProjectName"></selectCat>
+                                            <i class="el-icon-circle-plus-outline" @click="addInput(index)" v-if="index == pointList.length - 1" style="margin-left: 10px;"></i>
+                                            <i class="el-icon-remove-outline" v-if="pointList.length > 1 && item.status == 0" @click="deleteInput(index)" style="margin-left: 10px;"></i>
+                                            <span style="margin-left: 10px;">{{ item.status == 0 ? '待审核' : item.status == 1 ? "已审核" : "已驳回" }}</span>
+                                        </div>
                                     </div>
                                 </template>
                             </el-form>  
@@ -312,14 +338,27 @@
                     </el-dialog>
 
                     <!--查看立项-->
-                    <el-dialog :title="$t('Checkthedetails')" v-if="projectApprovalDetailVisible" :visible.sync="projectApprovalDetailVisible" :close-on-click-modal="false" customClass="customWidth" width="400px">
-                        <div class="line"><span>{{user.companyId='7030' ? '项目令号:' : '项目编号:'}}</span><span>{{projectApprocalDetail.projectCode}}</span></div>
-                        <div class="line"><span>{{'项目名称:'}}</span><span>{{projectApprocalDetail.projectName}}</span></div>
-                        <div class="line"><span>{{'项目分类:'}}</span><span>{{projectApprocalDetail.categoryName}}</span></div>
-                        <div class="line"><span>{{'项目类型:'}}</span><span>{{projectApprocalDetail.isPublic==0?"正式项目":"非项目"}}</span></div>
-                        <div class="line"><span>{{'项目描述:'}}</span><span>{{projectApprocalDetail.projectDesc}}</span></div>
-                        <div class="line"><span>{{'全部参与人:'}}</span>
-                            <span v-for="(par, index) in projectApprocalDetail.participationApprovalList" :key="par.userId">
+                    <el-dialog :title="$t('Checkthedetails')" v-if="projectApprovalDetailVisible" :visible.sync="projectApprovalDetailVisible" :close-on-click-modal="false" customClass="customWidth" width="800px">
+                        <el-row :gutter="10" >
+                            <el-col :span="5" ><div class="gray_label">{{user.companyId='7030' ? '项目令号:' : '项目编号:'}}</div></el-col>
+                            <el-col :span="7" ><div class="gray_label ">{{projectApprocalDetail.projectCode}}</div></el-col>
+                            <el-col :span="5" ><div class="gray_label">{{'项目名称:'}}</div></el-col>
+                            <el-col :span="7" ><div class="gray_label ">{{projectApprocalDetail.projectName}}</div></el-col>
+                        </el-row>
+                        <el-row :gutter="10" >
+                            <el-col :span="5" ><div class="gray_label">{{'项目分类:'}}</div></el-col>
+                            <el-col :span="7" ><div class="gray_label ">{{projectApprocalDetail.categoryName}}</div></el-col>
+                            <el-col :span="5" ><div class="gray_label">{{'项目类型:'}}</div></el-col>
+                            <el-col :span="7" ><div class="gray_label ">{{projectApprocalDetail.isPublic==0?"正式项目":"非项目"}}</div></el-col>
+                        </el-row>
+                        <el-row :gutter="10" >
+                            <el-col :span="3" ><div class="gray_label">{{'项目描述:'}}</div></el-col>
+                            <el-col :span="21" ><div class="gray_label ">{{projectApprocalDetail.projectDesc}}</div></el-col>
+                        </el-row>
+                        <el-row :gutter="10" >
+                            <el-col :span="3" ><div class="gray_label">{{'全部参与人:'}}</div></el-col>
+                            <el-col :span="21" ><div class="gray_label ">
+                                <span v-for="(par, index) in projectApprocalDetail.participationApprovalList" :key="par.userId">
                                 <span v-if="user.userNameNeedTranslate != 1">
                                     {{par.userName}}
                                 </span>
@@ -328,13 +367,18 @@
                                 </span>
                                 <span v-if="index < projectApprocalDetail.participationApprovalList.length-1">,</span>
                             </span>
-                        </div>
-                        <div class="line"><span>{{'项目经理:'}}</span>
-                            <span v-if="user.userNameNeedTranslate != 1">{{projectApprocalDetail.inchargerName}}</span>
-                            <span v-if="user.userNameNeedTranslate == 1&&projectApprocalDetail.inchargerName"><TranslationOpenDataText type='userName' :openid='projectApprocalDetail.inchargerName'></TranslationOpenDataText></span>
-                        </div>
-                        <div class="line"><span>{{'日报审核人:'}}</span>
-                            <span v-for="(par,index) in projectApprocalDetail.projectApprovalAuditorList" :key="par.auditorId">
+                            </div></el-col>
+                        </el-row>
+                        <el-row :gutter="10" >
+                            <el-col :span="5" ><div class="gray_label">{{'项目经理:'}}</div></el-col>
+                            <el-col :span="7" ><div class="gray_label " > 
+                                <span v-if="user.userNameNeedTranslate != 1">{{projectApprocalDetail.inchargerName}}</span>
+                                <span v-if="user.userNameNeedTranslate == 1&&projectApprocalDetail.inchargerName"><TranslationOpenDataText type='userName' :openid='projectApprocalDetail.inchargerName'></TranslationOpenDataText></span>
+                                </div>
+                            </el-col>
+                            <el-col :span="5" ><div class="gray_label">{{'日报审核人:'}}</div></el-col>
+                            <el-col :span="7" ><div class="gray_label ">
+                                <span v-for="(par,index) in projectApprocalDetail.projectApprovalAuditorList" :key="par.auditorId">
                                 <span v-if="user.userNameNeedTranslate != 1">
                                     {{par.auditorName}}
                                 </span>
@@ -343,25 +387,36 @@
                                 </span>
                                 <span v-if="index < projectApprocalDetail.projectApprovalAuditorList.length-1">,</span>
                             </span>
-                        </div>
-                        <div class="line"><span>{{'级别:'}}</span><span>{{importanceListLable[projectApprocalDetail.level-1]}}</span></div>
-                        <div class="line"><span>{{'合同金额:'}}</span><span>{{projectApprocalDetail.contractAmount}}</span></div>
-                        <div class="line">
-                            <span>{{'计划开始日期:'}}</span><span>{{projectApprocalDetail.planStartDate}}</span>
-                            <span>{{'计划结束日期:'}}</span><span>{{projectApprocalDetail.planEndDate}}</span>
-                        </div>
+                            </div></el-col>
+                        </el-row>
+                        <el-row :gutter="10" >
+                            <el-col :span="5" ><div class="gray_label">{{'级别:'}}</div></el-col>
+                            <el-col :span="7" ><div class="gray_label ">{{importanceListLable[projectApprocalDetail.level-1]}}</div></el-col>
+                            <el-col :span="5" ><div class="gray_label">{{'合同金额:'}}</div></el-col>
+                            <el-col :span="7" ><div class="gray_label ">{{projectApprocalDetail.contractAmount}}</div></el-col>
+                        </el-row>
+                        <el-row :gutter="10" >
+                            <el-col :span="5" ><div class="gray_label">{{'计划开始日期:'}}</div></el-col>
+                            <el-col :span="7" ><div class="gray_label ">{{projectApprocalDetail.planStartDate}}</div></el-col>
+                            <el-col :span="5" ><div class="gray_label">{{'计划结束日期:'}}</div></el-col>
+                            <el-col :span="7" ><div class="gray_label ">{{projectApprocalDetail.planEndDate}}</div></el-col>
+                        </el-row>
+                       
                         <el-divider></el-divider>
-                        <div class="line">
-                            <span>{{ $t('costbaseline') }}</span>
-                        </div>
-                        <div class="line" v-for="(item,index) in projectApprocalDetail.projectApprovalBasecostList">
+                        <el-row :gutter="10" >
+                            <el-col :span="24" ><div class="gray_label">{{'成本基线'}}</div></el-col>
+                        </el-row>
+            
+                        <div class="gray_label" v-for="(item,index) in projectApprocalDetail.projectApprovalBasecostList">
                             <span>{{item.baseName+":"}}</span><span>{{item.baseAmount}}</span>
                         </div>
                         <el-divider></el-divider>
-                        <div class="line">
-                            <span>{{ $t('caoZuoJiLu') }}</span>
-                        </div>
-                        <div class="line" v-for="(item,index) in approvalLogData">
+
+                        <el-row :gutter="10" >
+                            <el-col :span="24" ><div class="gray_label">{{'操作记录'}}</div></el-col>
+                        </el-row>
+        
+                        <div class="gray_label" v-for="(item,index) in approvalLogData">
                             <span v-if="user.userNameNeedTranslate != 1">{{item.userName}} {{item.createTime}} {{approvalTypeStr[item.type]}}{{ $t('leRiBao') }}</span>
                             <span v-if="user.userNameNeedTranslate == 1"><TranslationOpenDataText type='userName' :openid='item.userName'></TranslationOpenDataText> {{item.createTime}}{{approvalTypeStr[item.type]}}{{ $t('leRiBao') }}</span>
                         </div>
@@ -400,6 +455,9 @@ components: {
 props: { },
 data() { 
 return {
+    denyReasonDialog:false,
+    denyReasonValue: {},
+    denyReasonRReason: '',
     keyword:"",
     searchField:"1",
     user: JSON.parse(sessionStorage.getItem("user")),
@@ -486,6 +544,49 @@ mounted () {
     this.getUsers();
 },
 methods: {
+    deny() {
+        // console.log(this.denyReasonValue);
+        // console.log(this.denyReasonRReason);
+
+        this.listLoading = true;
+        this.http.post('/project-approval/check',{ 
+            id:this.denyReasonValue.item.id ,
+            checkType:this.denyReasonValue.num,
+            revokeType:'',
+            rejectInfo:this.denyReasonRReason
+        },
+        res => {
+            this.listLoading = false;
+            if (res.code == "ok") {
+                this.$message({
+                    message: this.$t('operationissuccessful'),
+                    type: "success"
+                });
+                this.addFormVisible=false
+                this.denyReasonDialog=false
+                this.getList();
+            } else {
+                this.$message({
+                    message: res.msg,
+                    type: "error"
+                });
+            }
+        },
+        error => {
+            this.listLoading = false;
+            this.$message({
+                message: error,
+                type: "error"
+            });
+            }
+        );
+        
+    },
+    showDenyDialog(item, num) {
+                this.denyReasonDialog = true;
+                this.denyReasonValue = {item,num}
+        
+            },
     isSelectable(row,index){
         if(row.creatorId == this.user.id || row.inchargerId == this.user.id || this.permissions.projectApprovalEdit){
             return true
@@ -754,6 +855,7 @@ methods: {
                 creatorId: item.creatorId,
                 outputValue: item.outputValue,
                 status: item.status,
+
             }
             this.participator=theData.participationApprovalList
             this.changeParticipator();
@@ -1407,4 +1509,8 @@ methods: {
 .on {
     color: #409EFF;
 }
+.gray_label {
+    color:#999 !important;
+    min-height: 20px;
+}
 </style>