Merge remote-tracking branch 'origin/dev_2nd_LCYH' into dev_2nd_LCYH

This commit is contained in:
cuijiaming
2023-03-09 11:57:59 +08:00
14 changed files with 1300 additions and 532 deletions
@@ -15,6 +15,8 @@ public enum CertificationFlowNodeEnum {
ZRRJJRW ("zrrjjrw","责任人拒绝任务","The person in charge refused the assignment"),
ZRRTJRW ("zrrtjrw","责任人提交任务","The responsible person submits the task"),
RZGCSSC ("rzgcssc","认证工程师审查","Certified engineer review"),
RZGCSSC_TG ("rzgcssc_tg","认证工程师审查-通过","Certified engineer review through"),
RZGCSSC_TH ("rzgcssc_th","认证工程师审查-退回","Certified engineer review returned"),
;
String key;
@@ -17,7 +17,7 @@ public enum CertificationInventoryFlowStatusEnum {
* 任务待确认 认证工程师发起责任人待确认
* 责任人拒绝 责任人拒绝
* 结果待提交 责任人接受后 未提交交付物
* 工程师退回 责任人分发后被第二位责任人退回
* 工程师退回 责任人分发后被第二位责任人退回 (没有该状态。)
* 结果待审查 责任人提交后认证工程师未审查
* 审查通过 责任人提交后认证工程师审查通过
* 审查退回 责任人提交后认证工程师审查退回
@@ -131,7 +131,7 @@ public interface IProjectCertificationInventoryEOService extends IService<Projec
/**
* 批量保存
* @param projectCertificationInventoryEOList
* @param json
* @return
*/
Result<?> saveBatch(JSONObject json);
@@ -301,17 +301,27 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
throw new JeroBootException("至少选择一条数据进行发布!");
}
String endTime = json.getString("endTime");
String cut = json.getString("cut");
List<String> idList = Arrays.asList(ids.split(","));
List<String> flowStatusList = new ArrayList<>();
flowStatusList.add(CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue());
flowStatusList.add(CertificationInventoryFlowStatusEnum.CERTIFICATION_RETURNED.getValue());
// 根据页面选择的认证清单数据id,查询出状态为’清单待发布‘的数据,进行发布处理
QueryWrapper<ProjectCertificationInventoryEO> certificationQueryWrap = new QueryWrapper<>();
certificationQueryWrap.lambda().in(ProjectCertificationInventoryEO::getId,idList);
certificationQueryWrap.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,CertificationInventoryFlowStatusEnum.LIST_TO_BE_RELEASED.getValue());
certificationQueryWrap.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList);
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList = this.list(certificationQueryWrap);
if(CollectionUtils.isEmpty(projectCertificationInventoryEOList)){
throw new JeroBootException("无法获取要发布的数据,请重新选择!");
if(StringUtils.equals(cut,CutEnum.EN.getValue())){
throw new JeroBootException("Select at least one data flow whose status is' List to be released or Certification returned '!");
}else {
throw new JeroBootException("至少选择一条数据流程状态为'清单待发布 或 认证退回'的数据!");
}
}
List<ProcessInfoDetailEO> processInfoDetailEOList = new ArrayList<>();
@@ -338,7 +348,6 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO();
processInfoDetailEO.setUserId(userId);
processInfoDetailEO.setTaskDefinitionKey(CertificationFlowNodeEnum.RZGCSJSRW.getKey());
processInfoDetailEO.setEndTime(DateUtils.str2Date(endTime,DateUtils.date_sdf.get()));
processInfoDetailEO.setCreateTime(new Date());
processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue());
processInfoDetailEO.setProcessInfoId(projectLibraryId);
@@ -373,7 +382,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
processInfoEO.setProjectLibraryId(projectLibraryId);
processInfoEO.setActiProcInstId(projectLibraryId);
processInfoEO.setFlowType(FlowTypeEnum.CERTIFICATION_LC.getValue());
processInfoEO.setStatus(TodoCenterStatusEnum.LIST_TO_CONFIRM.getValue());
// processInfoEO.setStatus(TodoCenterStatusEnum.LIST_TO_CONFIRM.getValue());
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
processInfoEO.setCreateBy(currentUser.getId());
@@ -397,7 +406,6 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
detail.setFlowType(FlowTypeEnum.CERTIFICATION_LC.getValue());
detail.setTaskDefinitionKey(taskDefinitionKey);
detail.setStatus(TaskStatusEnum.NOT_DONE.getValue());
// detail.setEndTime(DateUtils.str2Date(endTime,DateUtils.date_sdf.get()));
detail.setCreateTime(new Date());
detail.setStatus(TaskStatusEnum.NOT_DONE.getValue());
});
@@ -406,6 +414,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
QueryWrapper<ProcessInfoDetailEO> removeWrap = new QueryWrapper<>();
removeWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,processInfoId);
removeWrap.lambda().in(ProcessInfoDetailEO::getUserId,userIdList);
removeWrap.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,taskDefinitionKey);
// 删除用户在这个认证清单流程中其它的待办任务
this.processInfoDetailEOService.remove(removeWrap);
@@ -680,14 +689,18 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
case RZGCSTHRW:
return this.certificationReturnedStudioTask(json);
case ZRRJSRW:
break;
return this.dutyPersonAcceptTask(json);
case ZRRJJRW:
return this.dutyPersonRejectTask(json);
case ZRRTJRW:
break;
return this.dutyPersonSubmitTask(json);
case RZGCSSC:
break;
case RZGCSSC_TG:
return this.certificationReviewThrough(json);
case RZGCSSC_TH:
return this.certificationReviewReturned(json);
default:
throw new JeroBootException(nodeKey + " 的操作节点传递有误,请联系管理员!");
}
@@ -695,6 +708,361 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
return Result.OK("提交任务成功!");
}
/**
* 认证工程师审查退回
* @param json
* @return
*/
private Result<?> certificationReviewReturned(JSONObject json) {
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String ids = json.getString("ids");
if(StringUtils.isEmpty(ids)){
throw new JeroBootException("至少选择一条数据进行操作!");
}
List<String> idList = Arrays.asList(ids.split(","));
List<String> flowStatusList = new ArrayList<>();
flowStatusList.add(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue());
QueryWrapper<ProjectCertificationInventoryEO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().in(ProjectCertificationInventoryEO::getId,idList);
queryWrapper.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList);
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList = this.list(queryWrapper);
if(CollectionUtils.isEmpty(projectCertificationInventoryEOList)){
throw new JeroBootException("至少选择一条数据流程状态为'结果待审查'的数据!");
}
for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) {
projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.REVIEW_AND_RETURN.getValue());
}
ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class);
try {
// 更新数据状态为 审查退回
this.updateBatchById(projectCertificationInventoryEOList);
List<String> flowStatus = new ArrayList<>();
flowStatus.add(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue());
// 更新该项目认证流程中,认证工程师的任务状态。
// 如果还有 结果待审查 的数据,不做操作,如果没有 将这个项目认证流程的所有认证工程师待办任务转为已办 flowStatus
this.updateProcessInfoDetailStatus(projectLibraryBase,CertificationFlowNodeEnum.RZGCSSC.getKey(),flowStatus);
}catch (Exception ex){
ex.printStackTrace();
log.error("认证工程师-审批退回失败:" + ex.getMessage());
throw new JeroBootException("审批退回失败!");
}
return Result.OK("审批退回成功!");
}
/**
* 认证工程师审查通过
* @param json
* @return
*/
private Result<?> certificationReviewThrough(JSONObject json) {
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String ids = json.getString("ids");
if(StringUtils.isEmpty(ids)){
throw new JeroBootException("至少选择一条数据进行操作!");
}
List<String> idList = Arrays.asList(ids.split(","));
List<String> flowStatusList = new ArrayList<>();
flowStatusList.add(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue());
QueryWrapper<ProjectCertificationInventoryEO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().in(ProjectCertificationInventoryEO::getId,idList);
queryWrapper.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList);
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList = this.list(queryWrapper);
if(CollectionUtils.isEmpty(projectCertificationInventoryEOList)){
throw new JeroBootException("至少选择一条数据流程状态为'结果待审查'的数据!");
}
for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) {
projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue());
}
ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class);
try {
// 更新数据状态为 审查通过
this.updateBatchById(projectCertificationInventoryEOList);
List<String> flowStatus = new ArrayList<>();
flowStatus.add(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue());
// 更新该项目认证流程中,认证工程师的任务状态。
// 如果还有 结果待审查 的数据,不做操作,如果没有 将这个项目认证流程的所有认证工程师待办任务转为已办 flowStatus
this.updateProcessInfoDetailStatus(projectLibraryBase,CertificationFlowNodeEnum.RZGCSSC.getKey(),flowStatus);
}catch (Exception ex){
ex.printStackTrace();
log.error("认证工程师-审批通过失败:" + ex.getMessage());
throw new JeroBootException("审批通过失败!");
}
return Result.OK("审批通过成功!");
}
/**
* 更新任务状态为已办
* @param projectLibraryBase
*/
private void updateProcessInfoDetailStatus(ProjectLibraryBase projectLibraryBase,String taskDefinitionKey,List<String> flowStatusList) {
QueryWrapper<ProjectCertificationInventoryEO> queryCountWrap = new QueryWrapper<>();
queryCountWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId, projectLibraryBase.getId());
queryCountWrap.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList);
int notDoneCount = this.count(queryCountWrap);
if(notDoneCount == 0){
QueryWrapper<ProcessInfoDetailEO> detailQueryWrapper = new QueryWrapper<>();
detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getProcessInfoId, projectLibraryBase.getId());
detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,taskDefinitionKey);
List<ProcessInfoDetailEO> detailEOList = this.processInfoDetailEOService.list(detailQueryWrapper);
for (ProcessInfoDetailEO processInfoDetailEO : detailEOList) {
processInfoDetailEO.setStatus(TaskStatusEnum.HAVE_DONE.getValue());
}
this.processInfoDetailEOService.updateBatchById(detailEOList);
}
}
/**
* 责任人提交任务
* @param json
* @return
*/
private Result<?> dutyPersonSubmitTask(JSONObject json) {
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String ids = json.getString("ids");
if(StringUtils.isEmpty(ids)){
throw new JeroBootException("至少选择一条数据进行操作!");
}
List<String> idList = Arrays.asList(ids.split(","));
List<String> flowStatusList = new ArrayList<>();
flowStatusList.add(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue());
QueryWrapper<ProjectCertificationInventoryEO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().in(ProjectCertificationInventoryEO::getId,idList);
queryWrapper.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList);
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList = this.list(queryWrapper);
if(CollectionUtils.isEmpty(projectCertificationInventoryEOList)){
throw new JeroBootException("至少选择一条数据流程状态为'结果待提交'的数据!");
}
ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class);
// 给认证工程师分配待办中心的任务
String certificationEngineer = projectLibraryBase.getCertificationEngineer();
if(StringUtils.isEmpty(certificationEngineer)){
throw new JeroBootException("该项目中认证工程师为空,请先维护认证工程师!");
}
List<ProcessInfoDetailEO> processInfoDetailEOList = new ArrayList<>();
List<String> certificationEngineerList = Arrays.asList(certificationEngineer.split(","));
// 给认证工程师分配任务
for (String userId : certificationEngineerList) {
ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO();
processInfoDetailEO.setUserId(userId);
processInfoDetailEO.setTaskDefinitionKey(CertificationFlowNodeEnum.RZGCSSC.getKey());
processInfoDetailEO.setCreateTime(new Date());
processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue());
processInfoDetailEO.setProcessInfoId(projectLibraryBase.getId());
processInfoDetailEO.setActiProcInstId(projectLibraryBase.getId());
processInfoDetailEO.setFlowType(FlowTypeEnum.CERTIFICATION_LC.getValue());
processInfoDetailEOList.add(processInfoDetailEO);
}
// 数据更新为结果待审查
for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) {
projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue());
}
try {
this.updateBatchById(projectCertificationInventoryEOList);
List<String> certificationIdList = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getId).distinct().collect(Collectors.toList());
// 将当前责任人的待办任务转为已办
LambdaUpdateWrapper<ProcessInfoDetailEO> detailUpdateWrap = new LambdaUpdateWrapper<>();
detailUpdateWrap.eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId());
detailUpdateWrap.eq(ProcessInfoDetailEO::getUserId,currentUser.getId());
detailUpdateWrap.eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.ZRRTJRW.getKey());
detailUpdateWrap.eq(ProcessInfoDetailEO::getProjectLawsInventoryId,certificationIdList);
detailUpdateWrap.set(ProcessInfoDetailEO::getStatus,TaskStatusEnum.HAVE_DONE.getValue());
this.processInfoDetailEOService.update(detailUpdateWrap);
// 给认证工程师分配待办中心的任务 认证工程师审查
this.addProcessInfoDetailEO(processInfoDetailEOList,projectLibraryBase.getId(),CertificationFlowNodeEnum.RZGCSSC.getKey());
}catch (Exception ex){
ex.printStackTrace();
log.error("责任人-提交任务失败:" + ex.getMessage());
throw new JeroBootException("提交任务失败!");
}
return Result.OK("提交任务成功!");
}
/**
* 责任人接受任务
* @param json
* @return
*/
private Result<?> dutyPersonAcceptTask(JSONObject json) {
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String ids = json.getString("ids");
if(StringUtils.isEmpty(ids)){
throw new JeroBootException("至少选择一条数据进行操作!");
}
List<String> idList = Arrays.asList(ids.split(","));
List<String> flowStatusList = new ArrayList<>();
flowStatusList.add(CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue());
QueryWrapper<ProjectCertificationInventoryEO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().in(ProjectCertificationInventoryEO::getId,idList);
queryWrapper.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList);
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList = this.list(queryWrapper);
if(CollectionUtils.isEmpty(projectCertificationInventoryEOList)){
throw new JeroBootException("至少选择一条数据流程状态为'任务待确认'的数据!");
}
ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class);
List<ProcessInfoDetailEO> processInfoDetailEOList = new ArrayList<>();
for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) {
projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_SUBMITTED.getValue());
ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO();
processInfoDetailEO.setUserId(projectCertificationInventoryEO.getDutyPerson());
processInfoDetailEO.setEndTime(projectCertificationInventoryEO.getEndTime());
processInfoDetailEO.setProjectLawsInventoryId(projectCertificationInventoryEO.getId());
processInfoDetailEOList.add(processInfoDetailEO);
}
try {
List<String> certificationIdList = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getId).distinct().collect(Collectors.toList());
// 将当前责任人的待办任务转为已办
LambdaUpdateWrapper<ProcessInfoDetailEO> detailUpdateWrap = new LambdaUpdateWrapper<>();
detailUpdateWrap.eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId());
detailUpdateWrap.eq(ProcessInfoDetailEO::getUserId,currentUser.getId());
detailUpdateWrap.eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.ZRRJSRW.getKey());
detailUpdateWrap.eq(ProcessInfoDetailEO::getProjectLawsInventoryId,certificationIdList);
detailUpdateWrap.set(ProcessInfoDetailEO::getStatus,TaskStatusEnum.HAVE_DONE.getValue());
this.processInfoDetailEOService.update(detailUpdateWrap);
// 给责任人分配待办中心的任务 (待提交)
this.addProcessInfoDetailEO(processInfoDetailEOList,projectLibraryBase.getId(),CertificationFlowNodeEnum.ZRRTJRW.getKey());
// 责任人接受任务,将数据的状态更新为 结果待提交。
this.updateBatchById(projectCertificationInventoryEOList);
}catch (Exception ex){
ex.printStackTrace();
log.error("责任人-接受任务失败:" + ex.getMessage());
throw new JeroBootException("接受任务失败!");
}
return Result.OK("接受任务成功!");
}
/**
* 责任人拒绝任务
* @param json
* @return
*/
private Result<?> dutyPersonRejectTask(JSONObject json) {
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String ids = json.getString("ids");
if(StringUtils.isEmpty(ids)){
throw new JeroBootException("至少选择一条数据进行操作!");
}
List<String> idList = Arrays.asList(ids.split(","));
List<String> flowStatusList = new ArrayList<>();
flowStatusList.add(CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue());
QueryWrapper<ProjectCertificationInventoryEO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().in(ProjectCertificationInventoryEO::getId,idList);
queryWrapper.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList);
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList = this.list(queryWrapper);
if(CollectionUtils.isEmpty(projectCertificationInventoryEOList)){
throw new JeroBootException("至少选择一条数据流程状态为'任务待确认'的数据!");
}
ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class);
// 给认证工程师分配待办中心的任务
String certificationEngineer = projectLibraryBase.getCertificationEngineer();
if(StringUtils.isEmpty(certificationEngineer)){
throw new JeroBootException("该项目中认证工程师为空,请先维护认证工程师!");
}
for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) {
projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.REFUSAL_OF_RESPONSIBLE_PERSON.getValue());
}
try {
// 将当前责任人的待办任务转为已办
LambdaUpdateWrapper<ProcessInfoDetailEO> detailUpdateWrap = new LambdaUpdateWrapper<>();
detailUpdateWrap.eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId());
detailUpdateWrap.eq(ProcessInfoDetailEO::getUserId,currentUser.getId());
detailUpdateWrap.eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.ZRRJSRW.getKey());
detailUpdateWrap.set(ProcessInfoDetailEO::getStatus,TaskStatusEnum.HAVE_DONE.getValue());
this.processInfoDetailEOService.update(detailUpdateWrap);
List<ProcessInfoDetailEO> processInfoDetailEOList = new ArrayList<>();
List<String> certificationEngineerList = Arrays.asList(certificationEngineer.split(","));
// 给认证工程师分配任务
for (String userId : certificationEngineerList) {
ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO();
processInfoDetailEO.setUserId(userId);
processInfoDetailEO.setTaskDefinitionKey(CertificationFlowNodeEnum.RZGCSJSRW.getKey());
processInfoDetailEO.setCreateTime(new Date());
processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue());
processInfoDetailEO.setProcessInfoId(projectLibraryBase.getId());
processInfoDetailEO.setActiProcInstId(projectLibraryBase.getId());
processInfoDetailEO.setFlowType(FlowTypeEnum.CERTIFICATION_LC.getValue());
processInfoDetailEOList.add(processInfoDetailEO);
}
// 删除该项目数据的待办任务,key为 认证工程师接受任务的数据
QueryWrapper<ProcessInfoDetailEO> deleteDetailWrap = new QueryWrapper<>();
deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId());
deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.RZGCSJSRW.getKey());
deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getFlowType,FlowTypeEnum.CERTIFICATION_LC.getValue());
this.processInfoDetailEOService.remove(deleteDetailWrap);
this.processInfoDetailEOService.saveBatch(processInfoDetailEOList);
// 责任人接受任务,将数据的状态更新为 结果待提交。
this.updateBatchById(projectCertificationInventoryEOList);
}catch (Exception ex){
ex.printStackTrace();
log.error("责任人-拒绝任务失败:" + ex.getMessage());
throw new JeroBootException("拒绝任务失败!");
}
return Result.OK("拒绝任务成功!");
}
/**
* 认证工程师退回至studio任务
* @param json
* @return
*/
private Result<?> certificationReturnedStudioTask(JSONObject json) {
String ids = json.getString("ids");
if(StringUtils.isEmpty(ids)){
@@ -720,18 +1088,23 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
}
// 给studio分配待办中心任务
List<ProcessInfoDetailEO> processInfoDetailEOList = new ArrayList<>();
/*List<ProcessInfoDetailEO> processInfoDetailEOList = new ArrayList<>();
ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO();
processInfoDetailEO.setUserId(projectLibraryBase.getStudioEngineer());
processInfoDetailEOList.add(processInfoDetailEO);
this.addProcessInfoDetailEO(processInfoDetailEOList,projectLibraryBase.getId(),CertificationFlowNodeEnum.STUDIOFQ.getKey());
this.addProcessInfoDetailEO(processInfoDetailEOList,projectLibraryBase.getId(),CertificationFlowNodeEnum.STUDIOFQ.getKey());*/
try {
for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) {
projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.CERTIFICATION_RETURNED.getValue());
}
// 认证工程师发起任务,将数据的状态更新为 任务待确认。
// 认证工程师退回任务到studio,将数据的状态更新为 认证退回
this.updateBatchById(projectCertificationInventoryEOList);
// 更新该项目认证流程中,认证工程师的任务状态。
// 如果还有 清单待校核、责任人拒绝 状态的数据,不做操作,如果没有 将这个项目认证流程的所有认证工程师待办任务转为已办
this.updateProcessInfoDetailStatus(projectLibraryBase,CertificationFlowNodeEnum.RZGCSJSRW.getKey(),flowStatusList);
}catch (Exception ex){
ex.printStackTrace();
log.error("认证工程师-退回认证清单任务失败:" + ex.getMessage());
@@ -773,41 +1146,26 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
}
try {
// 给责任人分配待办中心的任务
List<ProcessInfoDetailEO> processInfoDetailEOList = new ArrayList<>();
for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) {
projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue());
}
// 给责任人分配待办中心的任务
List<String> dutyPersonList = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getDutyPerson).distinct().collect(Collectors.toList());
List<ProcessInfoDetailEO> processInfoDetailEOList = new ArrayList<>();
for (String dutyPerson : dutyPersonList) {
ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO();
processInfoDetailEO.setUserId(dutyPerson);
processInfoDetailEO.setUserId(projectCertificationInventoryEO.getDutyPerson());
processInfoDetailEO.setEndTime(projectCertificationInventoryEO.getEndTime());
processInfoDetailEO.setProjectLawsInventoryId(projectCertificationInventoryEO.getId());
processInfoDetailEOList.add(processInfoDetailEO);
}
this.addProcessInfoDetailEO(processInfoDetailEOList,projectLibraryBase.getId(),CertificationFlowNodeEnum.ZRRJSRW.getKey());
// 更新该项目认证流程中,认证工程师的任务状态。
QueryWrapper<ProjectCertificationInventoryEO> queryCountWrap = new QueryWrapper<>();
queryCountWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId,projectLibraryBase.getId());
queryCountWrap.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList);
int notDoneCount = this.count(queryCountWrap);
// 如果还有 清单待校核、责任人拒绝 状态的数据,不做操作,如果没有 将这个项目认证流程的所有认证工程师待办任务转为已办
if(notDoneCount == 0){
QueryWrapper<ProcessInfoDetailEO> detailQueryWrapper = new QueryWrapper<>();
detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId());
detailQueryWrapper.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.RZGCSJSRW.getKey());
List<ProcessInfoDetailEO> detailEOList = this.processInfoDetailEOService.list(detailQueryWrapper);
for (ProcessInfoDetailEO processInfoDetailEO : detailEOList) {
processInfoDetailEO.setStatus(TaskStatusEnum.HAVE_DONE.getValue());
}
this.processInfoDetailEOService.updateBatchById(detailEOList);
}
// 认证工程师发起任务,将数据的状态更新为 任务待确认。
this.updateBatchById(projectCertificationInventoryEOList);
// 更新该项目认证流程中,认证工程师的任务状态。
// 如果还有 清单待校核、责任人拒绝 状态的数据,不做操作,如果没有 将这个项目认证流程的所有认证工程师待办任务转为已办
this.updateProcessInfoDetailStatus(projectLibraryBase,CertificationFlowNodeEnum.RZGCSJSRW.getKey(),flowStatusList);
}catch (Exception ex){
ex.printStackTrace();
log.error("认证工程师-发起认证清单任务失败:" + ex.getMessage());
@@ -179,6 +179,34 @@
process_info_detail pid
where pid.process_info_id = pi.id and pid.STATUS = 'NotDone' order by pid.end_time asc limit 1
) as end_time,
<!--(
case when flow_type = '21' then
(
SELECT
pci.end_time
FROM
project_certification_inventory pci
WHERE
pci.project_library_id = pi.id
AND ( pci.flow_status = 'List to be checked' OR pci.flow_status = 'Refusal of responsible person' )
ORDER BY
pci.end_time ASC
LIMIT 1
)
when flow_type = '10' then
(
SELECT
pid.end_time
FROM
process_info_detail pid
WHERE
pid.process_info_id = pi.id
AND pid.STATUS = 'NotDone'
ORDER BY
pid.end_time ASC
LIMIT 1
) end
)AS end_time,-->
pi.STATUS,
pi.prc_num,
pi.prc_name,
+18
View File
@@ -1406,4 +1406,22 @@ module.exports = {
missionRejection:'Mission Rejection',
turnToDo:'Turn To Do',
initiateTask:'Initiate a Task',
compliancereport:'Generate compliance report',
todocenter:'To-do center',
areYouReturnToStudio:'Are you sure to return to studio?',
confirmLaunchTask:'Confirm launch task ?',
conditionsNotMet:'Conditions not met',
onlyProcessStatusReturned:'Only the data whose process status is list to be checked and rejected by the responsible person can be returned',
onlyProcessReturned:'Only data with process status of list to be checked and rejected by responsible person can be initiated',
confirmToAcceptTheTask:'Confirm to accept the task ?',
confirmRejectTask:'Confirm Reject Task ?',
onlyDataStatusConfirmedSelected:'Only data with process status of task to be confirmed can be selected',
onlyDataStatusSubmittedCanBeSelected:'Only data with process status of result to be submitted can be selected',
operationWithoutPermission:'Operation without permission',
data:"'s data",
confirmApproval:'Confirm approval?',
confirmReturnForApproval:'Confirm return for approval ?',
onlyDataStatusResultReviewedCanBeSelected:'Only data with process status of result to be reviewed can be selected',
confirmResetProcess:'Confirm reset process?',
confirmUrging:'Confirm urging ?',
}
+18
View File
@@ -1507,4 +1507,22 @@ module.exports = {
missionRejection:'任务拒绝',
turnToDo:'转办',
initiateTask:'发起任务',
areYouReturnToStudio:'确认退回至studio吗?',
confirmLaunchTask:'确认发起任务?',
conditionsNotMet:'不满足条件',
onlyProcessStatusReturned:'只能退回流程状态为清单待校核和责任人拒绝的数据',
onlyProcessReturned:'只能发起流程状态为清单待校核和责任人拒绝的数据',
confirmToAcceptTheTask:'确认接受任务?',
confirmRejectTask:'确认拒绝任务?',
onlyDataStatusConfirmedSelected:'只能选择流程状态为任务待确认的数据',
onlyDataStatusSubmittedCanBeSelected:'只能选择流程状态为结果待提交的数据',
operationWithoutPermission:'没有权限操作',
data:"的数据",
compliancereport:'生成合规报告',
todocenter:'待办中心',
confirmApproval:'确认通过审批?',
confirmReturnForApproval:'确认退回审批?',
onlyDataStatusResultReviewedCanBeSelected:'只能选择流程状态为结果待审查的数据',
confirmResetProcess:'确认重置流程?',
confirmUrging:'确认催办',
}
@@ -11,18 +11,19 @@
</span>
</div>
<div class="Virtual-detail-text-right">
<!-- <div class="operator-text"-->
<!-- v-if="textTitle === $t('listOfRegulations')"-->
<!-- v-has="'projectComment:list'"-->
<!-- @click="commentClick">-->
<!-- <a-icon type="message"/>-->
<!-- {{$t('comment')}}-->
<!-- </div>-->
<div class="operator-text"
v-if="textTitle === $t('listOfRegulations')"
v-has="'projectComment:list'"
@click="commentClick">
<a-icon type="message"/>
{{$t('comment')}}
</div>
<div class="operator-text" v-has="'projectHistoryVersions:list'"
v-if="textTitle === $t('listOfRegulations')"
@click="historicalVersionClick">
<a-icon type="clock-circle"/>
{{$t('historicalVersion')}}
@click="todocenterClick">
<a-icon type="qrcode"/>
{{$t('todocenter')}}
</div>
<div class="operator-text" v-has="'projectLawsInventoryLog:page'"
v-if="textTitle === $t('listOfRegulations')"
@@ -30,6 +31,12 @@
<a-icon type="reload"/>
{{$t('UpdateLog')}}
</div>
<div class="operator-text" v-has="'projectHistoryVersions:list'"
v-if="textTitle === $t('listOfRegulations')"
@click="historicalVersionClick">
<a-icon type="clock-circle"/>
{{$t('historicalVersion')}}
</div>
<div class="operator-text" v-has="'projectLawsInventoryLog:page'"
v-if="textTitle === $t('certificationList') || textTitle === $t('listOfRegulations')"
@click="roleSwitchingClick">
@@ -241,6 +248,9 @@
} else if (this.$route.query.type == '105') {
this.textColor(this.$t('TaskParameterCollection'))
this.textTitle = this.$t('TaskParameterCollection')
}else if (this.$route.query.type == '106') {
this.textColor(this.$t('certificationList'))
this.textTitle = this.$t('certificationList')
}
} else {
if (this.userInfo().userRoleList && this.userInfo().userRoleList.length > 0) {
@@ -308,6 +318,10 @@
text[i].classList.add('Virtual-detail-left-text-color')
}
}
},
//待办中心跳转
todocenterClick(){
},
UpdateLogClick() {
this.$refs.updateLogRef.getList({ projectLibraryId: this.$route.query.id })
@@ -117,7 +117,7 @@
<a-popconfirm overlayClassName="popconfirm" placement="bottomRight">
<template slot="title" id="popconfirm">
<div style="height:320px;overflow:scroll;overflow-x: auto;">
<div>
<!-- 添加-->
<div @click="handleAdd"
v-if="roleSwitchingCode == 0 || roleSwitchingCode == 2"
@@ -186,45 +186,52 @@
</div>
<!-- 发起任务-->
<div @click="initiatingProcessClick" v-if="roleSwitchingCode == 2" class="operator-text">
<div @click="initiatingProcessClick('rzgcsjsrw',$t('confirmLaunchTask'))"
v-if="roleSwitchingCode == 2" class="operator-text">
<a-icon type="check-circle"/>
{{ $t('initiateTask') }}
</div>
<!-- 退回至Studio-->
<div @click="returnToStudioClick" v-if="roleSwitchingCode == 2" class="operator-text">
<div @click="returnToStudioClick('rzgcsthrw',$t('areYouReturnToStudio'))"
v-if="roleSwitchingCode == 2" class="operator-text">
<a-icon type="close-circle"/>
{{ $t('returnToStudio') }}
</div>
<!-- 审批通过-->
<div @click="ApprovedClick" v-if="roleSwitchingCode == 2" class="operator-text">
<div @click="ApprovedClick('rzgcssc_tg',$t('confirmApproval'))" v-if="roleSwitchingCode == 2"
class="operator-text">
<a-icon type="check-circle"/>
{{ $t('Approved') }}
</div>
<!-- 审批退回-->
<div @click="returnedForApprovalClick" v-if="roleSwitchingCode == 2" class="operator-text">
<div @click="ApprovedClick('rzgcssc_th',$t('confirmReturnForApproval'))" v-if="roleSwitchingCode == 2"
class="operator-text">
<a-icon type="close-circle"/>
{{ $t('returnedForApproval') }}
</div>
<!-- 任务接受-->
<div @click="missionAcceptedClick" v-if="roleSwitchingCode == 20 || roleSwitchingCode == 21"
<div @click="missionAcceptedClick('zrrjsrw',$t('confirmToAcceptTheTask'))"
v-if="roleSwitchingCode == 20 || roleSwitchingCode == 21"
class="operator-text">
<a-icon type="check-circle"/>
{{ $t('missionAccepted') }}
</div>
<!-- 任务退回-->
<div @click="missionRejectionClick" v-if="roleSwitchingCode == 20 || roleSwitchingCode == 21"
<div @click="missionAcceptedClick('zrrjjrw',$t('confirmRejectTask'))"
v-if="roleSwitchingCode == 20 || roleSwitchingCode == 21"
class="operator-text">
<a-icon type="close-circle"/>
{{ $t('missionRejection') }}
</div>
<!-- 提交-->
<div @click="submitClick" v-if="roleSwitchingCode == 20 || roleSwitchingCode == 21" class="operator-text">
<div @click="submitClick('zrrtjrw',$t('confirmSubmit'))"
v-if="roleSwitchingCode == 20 || roleSwitchingCode == 21" class="operator-text">
<a-icon type="check-circle"/>
{{ $t('submit') }}
</div>
@@ -342,9 +349,10 @@
<batSetting :url="url" ref="batSettingRef" @batSettingForm="batSettingForm"/>
<addModel ref="addModelRef" @addModelForm="addModelForm"/>
<modifyHistory ref="modifyHistoryRef"/>
<uploadFile ref="uploadFile" :disabled="disabled" @uploadSuccess="uploadSuccess"></uploadFile>
<uploadFile ref="uploadFile" :isMultiple="true" :disabled="disabled" @uploadSuccess="uploadSuccess"></uploadFile>
<TaskListModel @TaskListModelList="transferListForm" ref="TaskListModelRef"/>
<referenceDeliverablesList ref="referenceDeliverablesListRef" @referenceDeliverablesListForm="transferListForm"/>
<SelectedBy ref="SelectedByRef" :title="$t('turnToDo')" @SelectedByForm="SelectedByForm"></SelectedBy>
<a-modal
:title="listTitle"
:width="500"
@@ -427,6 +435,7 @@
import batSetting from './components/batSetting'
import modifyHistory from './components/modifyHistoryList'
import TaskListModel from '../TaskListModel'
import SelectedBy from '@/components/SelectedBy/index'
import referenceDeliverablesList from './components/referenceDeliverablesList'
import { getAction, postAction, downloadFile, deleteAction } from '@/api/manage'
import moment from 'moment'
@@ -444,7 +453,8 @@
modifyHistory,
uploadFile,
TaskListModel,
referenceDeliverablesList
referenceDeliverablesList,
SelectedBy
},
data() {
return {
@@ -486,7 +496,8 @@
deleteOne: '/project/projectCertificationInventoryEO/delete',
AndUserId: '/project/projectLibraryRoleRelEO/queryByProjectLibraryIdAndUserId',
AndUserIdEdit: '/project/projectLibraryRoleRelEO/edit',
saveBatch: '/project/projectCertificationInventoryEO/saveBatch'
saveBatch: '/project/projectCertificationInventoryEO/saveBatch',
questionUrl: ''
},
dataSource: [],
roleSwitchingCode: '',
@@ -698,11 +709,17 @@
},
onChange(page, pageSize) {
this.pageNo = page
if (this.roleSwitchingCode == 2) {
this.preservationClick()
}
this.replacePage()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
if (this.roleSwitchingCode == 2) {
this.preservationClick()
}
this.replacePage()
},
searchQuery() {
@@ -839,9 +856,33 @@
this.$message.warning(this.$t('selectLeastOne'))
}
},
//流程重置
processResetClick() {
let _this = this
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.$confirm({
content: _this.$t('confirmResetProcess'),
onOk() {
let idList = JSON.parse(JSON.stringify(_this.selectedRowKeys))
postAction(_this.url.deleteBatch, {
ids: idList.join(','),
projectLibraryId: _this.$route.query.id
}).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.selectedRowKeys = []
_this.getList()
} else {
_this.$message.warning(res.message)
}
})
}
})
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
//添加
handleAdd() {
this.$refs.addModelRef.addModel()
},
@@ -877,7 +918,7 @@
this.confirmLoading = false
this.getList()
} else {
this.$message.warning(this.$t('operationFailed'))
this.$message.warning(res.message)
this.confirmLoading = false
}
this.detailedSuccessList = []
@@ -889,16 +930,43 @@
this.formInline = {}
this.visible = false
},
//撤回
withdrawClick() {
},
//催办
questionClick() {
let _this = this
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.$confirm({
content: _this.$t('confirmUrging'),
onOk() {
let idList = JSON.parse(JSON.stringify(_this.selectedRowKeys))
postAction(_this.url.questionUrl, {
ids: idList.join(','),
projectLibraryId: _this.$route.query.id
}).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.selectedRowKeys = []
_this.getList()
} else {
_this.$message.warning(res.message)
}
})
}
})
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
transferListForm() {
this.pageNo = 1
this.getList()
this.selectedRowKeys = []
},
batSettingForm() {
this.pageNo = 1
@@ -908,6 +976,7 @@
addModelForm() {
this.pageNo = 1
this.getList()
this.selectedRowKeys = []
},
edit(item) {
this.$refs.addModelRef.editModel(JSON.parse(JSON.stringify(item)))
@@ -1032,39 +1101,36 @@
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
//发起流程
initiatingProcessClick() {
},
//退回至Studio
returnToStudioClick() {
},
//审批通过
ApprovedClick() {
},
//审批退回
returnedForApprovalClick() {
},
//任务接受
missionAcceptedClick() {
},
//任务退回
missionRejectionClick() {
},
//提交
submitClick() {
},
//转办
turnToDoClick() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
this.$refs.SelectedByRef.getPush()
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
SelectedByForm(userIds) {
let ids = JSON.parse(JSON.stringify(this.selectedRowKeys))
let query = {
userIds: userIds,
'projectLibraryId': this.$route.query.id,
'ids': ids.join(',')
}
postAction('/problemKnowledgeBase/problemKnowledgeBaseEO/forward', query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.$refs.SelectedByRef.visible = false
this.$refs.SelectedByRef.submitLoading = false
this.getList()
} else {
this.$message.warning(this.$t('operationFailed'))
this.$refs.SelectedByRef.submitLoading = false
}
})
},
clickButtonToUpload(item, index) {
this.$refs.uploadFile.perentHandleFunc()
this.$refs.uploadFile.visible = true
@@ -1089,30 +1155,231 @@
/** 赋值给当前对应的表单文件 */
this.dataSource[this.uploadIndex][this.uploadName] = attIdList.join(',')
this.dataSource = [...this.dataSource]
this.preservationClick()
},
CertificationProgressClick(val) {
let item = JSON.parse(JSON.stringify(val))
item.roleCode = this.roleSwitchingCode
this.$refs.TaskListModelRef.getData(item, this.$t('CertificationProgress'))
},
submitTask(value) {
//发起流程
initiatingProcessClick(value, prompt) {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
let query = {
'nodeKey': value,
'projectLibraryId': this.$route.query.id,
'ids': selectedRowKeys.join(',')
}
postAction('/project/projectCertificationInventoryEO/submitTask', query).then((res) => {
if (res.success) {
let ids = []
let notConditions = []
for (let i = 0; i < this.selectedRowKeysList.length; i++) {
if (this.selectedRowKeysList[i].flowStatus == 'List to be checked' ||
this.selectedRowKeysList[i].flowStatus == 'Refusal of responsible person') {
ids.push(this.selectedRowKeysList[i].id)
} else {
notConditions.push(this.selectedRowKeysList[i].inspectionItem)
}
})
}
let data = ''
if (notConditions && notConditions.length > 0) {
data = this.$t('inspectionItems') + '"' + notConditions.join('、') + '"' + this.$t('conditionsNotMet') + ',' + this.$t('onlyProcessReturned')
}
if (ids && ids.length > 0) {
this.submitTask(value, prompt, ids, notConditions, data)
} else {
this.failedMessage(data)
}
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
//退回至Studio
returnToStudioClick(value, prompt) {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let ids = []
let notConditions = []
for (let i = 0; i < this.selectedRowKeysList.length; i++) {
if (this.selectedRowKeysList[i].flowStatus == 'List to be checked' ||
this.selectedRowKeysList[i].flowStatus == 'Refusal of responsible person') {
ids.push(this.selectedRowKeysList[i].id)
} else {
notConditions.push(this.selectedRowKeysList[i].inspectionItem)
}
}
let data = ''
if (notConditions && notConditions.length > 0) {
data = this.$t('inspectionItems') + '"' + notConditions.join('、') + '"' + this.$t('conditionsNotMet') + ',' + this.$t('onlyProcessStatusReturned')
}
if (ids && ids.length > 0) {
this.submitTask(value, prompt, ids, notConditions, data)
} else {
this.failedMessage(data)
}
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
//责任人任务接受\拒绝
missionAcceptedClick(value, prompt) {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
if (this.roleSwitchingCode == 20) {
this.missionAcceptedClickJC(value, prompt)
return
}
let ids = []
let notConditions = []
for (let i = 0; i < this.selectedRowKeysList.length; i++) {
if (this.selectedRowKeysList[i].flowStatus == 'Task to be confirmed') {
ids.push(this.selectedRowKeysList[i].id)
} else {
notConditions.push(this.selectedRowKeysList[i].inspectionItem)
}
}
let data = ''
if (notConditions && notConditions.length > 0) {
data = this.$t('inspectionItems') + '"' + notConditions.join('、') + '"' + this.$t('conditionsNotMet') + ',' + this.$t('onlyDataStatusConfirmedSelected')
}
if (ids && ids.length > 0) {
this.submitTask(value, prompt, ids, notConditions, data)
} else {
this.failedMessage(data)
}
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
missionAcceptedClickJC(value, prompt) {
let ids = []
let notConditions = []
for (let i = 0; i < this.selectedRowKeysList.length; i++) {
if (this.selectedRowKeysList[i].flowStatus == 'Task to be confirmed' &&
this.selectedRowKeysList[i].dutyPersonName == this.userInfo().username) {
ids.push(this.selectedRowKeysList[i].id)
} else {
notConditions.push(this.selectedRowKeysList[i].inspectionItem)
}
}
let data = ''
if (notConditions && notConditions.length > 0) {
data = this.$t('operationWithoutPermission') + this.$t('inspectionItems') + '"' + notConditions.join('、') + '"' + this.$t('data')
}
if (ids && ids.length > 0) {
this.submitTask(value, prompt, ids, notConditions, data)
} else {
this.failedMessage(data)
}
},
//责任人提交
submitClick(value, prompt) {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let ids = []
let notConditions = []
if (this.roleSwitchingCode == 20) {
this.submitClickJC(value, prompt)
return
}
for (let i = 0; i < this.selectedRowKeysList.length; i++) {
if (this.selectedRowKeysList[i].flowStatus == 'Results to be submitted' ||
this.selectedRowKeysList[i].flowStatus == 'Review and return') {
ids.push(this.selectedRowKeysList[i].id)
} else {
notConditions.push(this.selectedRowKeysList[i].inspectionItem)
}
}
let data = ''
if (notConditions && notConditions.length > 0) {
data = this.$t('inspectionItems') + '"' + notConditions.join('、') + '"' + this.$t('conditionsNotMet') + ',' + this.$t('onlyDataStatusSubmittedCanBeSelected')
}
if (ids && ids.length > 0) {
this.submitTask(value, prompt, ids, notConditions, data)
} else {
this.failedMessage(data)
}
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
//接口人提交
submitClickJC(value, prompt) {
let ids = []
let notConditions = []
for (let i = 0; i < this.selectedRowKeysList.length; i++) {
if ((this.selectedRowKeysList[i].flowStatus == 'Results to be submitted' ||
this.selectedRowKeysList[i].flowStatus == 'Review and return') &&
this.selectedRowKeysList[i].dutyPersonName == this.userInfo().username) {
ids.push(this.selectedRowKeysList[i].id)
} else {
notConditions.push(this.selectedRowKeysList[i].inspectionItem)
}
}
let data = ''
if (notConditions && notConditions.length > 0) {
data = this.$t('operationWithoutPermission') + this.$t('inspectionItems') + '"' + notConditions.join('、') + '"' + this.$t('data')
}
if (ids && ids.length > 0) {
this.submitTask(value, prompt, ids, notConditions, data)
} else {
this.failedMessage(data)
}
},
//审批通过/退回
ApprovedClick(value, prompt) {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
let ids = []
let notConditions = []
for (let i = 0; i < this.selectedRowKeysList.length; i++) {
if (this.selectedRowKeysList[i].flowStatus == 'Results to be reviewed') {
ids.push(this.selectedRowKeysList[i].id)
} else {
notConditions.push(this.selectedRowKeysList[i].inspectionItem)
}
}
let data = ''
if (notConditions && notConditions.length > 0) {
data = this.$t('inspectionItems') + '"' + notConditions.join('、') + '"' + this.$t('conditionsNotMet') + ',' + this.$t('onlyDataStatusResultReviewedCanBeSelected')
}
if (ids && ids.length > 0) {
this.submitTask(value, prompt, ids, notConditions, data)
} else {
this.failedMessage(data)
}
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
failedMessage(data) {
let detailedWarningList = []
detailedWarningList.push(data)
this.$warning({
content: ( < div > { detailedWarningList } < /div>)
})
},
submitTask(value, prompt, ids, notConditions, data) {
let _this = this
this.$confirm({
content: prompt,
onOk() {
let query = {
'nodeKey': value,
'projectLibraryId': _this.$route.query.id,
'ids': ids.join(',')
}
postAction('/project/projectCertificationInventoryEO/submitTask', query).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.getList()
_this.selectedRowKeys = []
_this.selectedRowKeysList = []
if (notConditions && notConditions.length > 0) {
_this.failedMessage(data)
}
} else {
_this.$message.warning(_this.$t('operationFailed'))
}
})
}
})
}
}
}
@@ -228,30 +228,30 @@
</a-col>
</a-row>
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required" v-if="formInline.roleCodeIndex == 0">*</span>
<span class="title-text-text" :title="$t('certifiedEngineer')">{{$t('certifiedEngineer')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="'homologationEngineerId'">
<a-select :placeholder="$t('PleaseSelect')+$t('certifiedEngineer')"
class="box-input"
allowClear
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:disabled="formInline.roleCodeIndex == 0 ? false : true"
v-model="formInline.homologationEngineerId">
<a-select-option v-for="(item, key) in certificationEngineerList"
:key="key"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.name ">
{{ item.name}}
</span>
</a-select-option>
</a-select>
</a-form-model-item>
</div>
</a-col>
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="Required" v-if="formInline.roleCodeIndex == 0">*</span>-->
<!-- <span class="title-text-text" :title="$t('certifiedEngineer')">{{$t('certifiedEngineer')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" :prop="'homologationEngineerId'">-->
<!-- <a-select :placeholder="$t('PleaseSelect')+$t('certifiedEngineer')"-->
<!-- class="box-input"-->
<!-- allowClear-->
<!-- :getPopupContainer="triggerNode=> triggerNode.parentNode"-->
<!-- :disabled="formInline.roleCodeIndex == 0 ? false : true"-->
<!-- v-model="formInline.homologationEngineerId">-->
<!-- <a-select-option v-for="(item, key) in certificationEngineerList"-->
<!-- :key="key"-->
<!-- :value="item.value">-->
<!-- <span style="display: inline-block;width: 100%" :title=" item.name ">-->
<!-- {{ item.name}}-->
<!-- </span>-->
<!-- </a-select-option>-->
<!-- </a-select>-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -277,7 +277,7 @@
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
@@ -295,23 +295,23 @@
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
</a-row>
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="24">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text" :title="$t('remarks')">{{$t('remarks')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel-text" :prop="'remarks'">-->
<!-- <a-textarea-->
<!-- style="width: 100%"-->
<!-- :placeholder="$t('PleaseEnter')+$t('remarks')"-->
<!-- :disabled="false"-->
<!-- v-model="formInline.remark" :rows="4"/>-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- </a-row>-->
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('remarks')">{{$t('remarks')}}</span>
</div>
<a-form-model-item class="itemModel-text" :prop="'remarks'">
<a-textarea
style="width: 100%"
:placeholder="$t('PleaseEnter')+$t('remarks')"
:disabled="false"
v-model="formInline.remark" :rows="4"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<div class="header-text" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
@@ -324,36 +324,6 @@
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('Sponsor')">{{$t('Sponsor')}}</span>
</div>
<a-form-model-item class="itemModel" prop="designInitiatorId">
<a-select :placeholder="$t('PleaseSelect')+$t('Sponsor')"
:disabled="formInline.roleCodeIndex == 0 ? false : true"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
allowClear
v-model="formInline.designInitiatorId">
<a-select-option v-for="(item, key) in designInitiatorList"
:key="key"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.name ">
{{ item.name }}
</span>
</a-select-option>
</a-select>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.designInitiator"-->
<!-- :disabled="formInline.roleCode == 0 ? false : true"-->
<!-- @input="handleInput('designInitiator')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('Sponsor')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'fa1_qi3_ren2'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -383,30 +353,77 @@
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('cutoffTime')">{{$t('cutoffTime')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="'designDueDate'">
<a-form-model-item class="itemModel" :prop="'verifyDueDate'">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('cutoffTime')"
@change="dateChange({db_field_name:'designDueDate'})"
@change="dateChange({db_field_name:'verifyDueDate'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.designDueDate"
v-model="formInline.verifyDueDate"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('Sponsor')">{{$t('Sponsor')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" prop="designInitiatorId">-->
<!-- <a-select :placeholder="$t('PleaseSelect')+$t('Sponsor')"-->
<!-- :disabled="formInline.roleCodeIndex == 0 ? false : true"-->
<!-- :getPopupContainer="triggerNode=> triggerNode.parentNode"-->
<!-- class="box-input"-->
<!-- allowClear-->
<!-- v-model="formInline.designInitiatorId">-->
<!-- <a-select-option v-for="(item, key) in designInitiatorList"-->
<!-- :key="key"-->
<!-- :value="item.value">-->
<!-- <span style="display: inline-block;width: 100%" :title=" item.name ">-->
<!-- {{ item.name }}-->
<!-- </span>-->
<!-- </a-select-option>-->
<!-- </a-select>-->
<!-- &lt;!&ndash; <j-dict-select-tag class="box-input" v-model="formInline.designInitiator"&ndash;&gt;-->
<!-- &lt;!&ndash; :disabled="formInline.roleCode == 0 ? false : true"&ndash;&gt;-->
<!-- &lt;!&ndash; @input="handleInput('designInitiator')"&ndash;&gt;-->
<!-- &lt;!&ndash; :placeholder="$t('PleaseSelect')+$t('Sponsor')"&ndash;&gt;-->
<!-- &lt;!&ndash; :type="'select'"&ndash;&gt;-->
<!-- &lt;!&ndash; :triggerChange="false" :dictCode="'fa1_qi3_ren2'"/>&ndash;&gt;-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
</a-row>
<!-- <a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||-->
<!-- (formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.homologationEngineerId &&-->
<!-- formInline.homologationEngineerId == userInfoQuery.id) ||-->
<!-- (formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.regulationOwnerId &&-->
<!-- formInline.regulationOwnerId == userInfoQuery.id)">-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('cutoffTime')">{{$t('cutoffTime')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" :prop="'designDueDate'">-->
<!-- <a-date-picker class="box-input"-->
<!-- :placeholder="$t('PleaseSelect')+$t('cutoffTime')"-->
<!-- @change="dateChange({db_field_name:'designDueDate'})"-->
<!-- format="YYYY-MM-DD"-->
<!-- :getCalendarContainer="(trigger) => trigger.parentNode"-->
<!-- v-model="formInline.designDueDate"-->
<!-- style="width: 100%"/>-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.designInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
@@ -475,171 +492,171 @@
</div>
</a-col>
</a-row>
<div class="header-text" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
&nbsp;{{$t('PrehomoConfirmation')}}
</div>
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('Sponsor')">{{$t('Sponsor')}}</span>
</div>
<a-form-model-item class="itemModel" prop="prehomoInitiatorId">
<a-select :placeholder="$t('PleaseSelect')+$t('Sponsor')"
:disabled="formInline.roleCodeIndex == 0 ? false : true"
class="box-input"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
allowClear
v-model="formInline.prehomoInitiatorId">
<a-select-option v-for="(item, key) in prehomoInitiatorList"
:key="key"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.name ">
{{ item.name }}
</span>
</a-select-option>
</a-select>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.prehomoInitiator"-->
<!-- :disabled="formInline.roleCode == 0 ? false : true"-->
<!-- @input="handleInput('prehomoInitiator')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('Sponsor')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'fa1_qi3_ren2'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('personLiable')">{{$t('personLiable')}}</span>
</div>
<a-form-model-item class="itemModel" prop="prehomoDutyId">
<a-select :placeholder="$t('PleaseSelect')+$t('personLiable')"
class="box-input"
allowClear
:getPopupContainer="triggerNode=> triggerNode.parentNode"
v-model="formInline.prehomoDutyId">
<a-select-option v-for="(item, key) in prehomoDutyList"
:key="key"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.name ">
{{ item.name }}
</span>
</a-select-option>
</a-select>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.prehomoDuty"-->
<!-- :disabled="formInline.roleCode == 0 ? false : true"-->
<!-- @input="handleInput('prehomoDuty')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('personLiable')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'ze2_ren4_ren2'"/>-->
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('cutoffTime')">{{$t('cutoffTime')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="'prehomoDueDate'">
<a-date-picker class="box-input"
:placeholder="$t('PleaseSelect')+$t('cutoffTime')"
@change="dateChange({db_field_name:'prehomoDueDate'})"
format="YYYY-MM-DD"
:getCalendarContainer="(trigger) => trigger.parentNode"
v-model="formInline.prehomoDueDate"
style="width: 100%"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>
</div>
<a-form-model-item class="itemModel" prop="prehomoDeliverableType">
<a-tree-select
tree-node-filter-prop="title"
v-model="formInline.prehomoDeliverableType"
:maxTagCount="1"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
class="box-input"
style="width: 100%"
:tree-data="DeliverableTreeList"
tree-checkable
:placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"
/>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.prehomoDeliverableType"-->
<!-- :disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.prehomoDeliverableType ? true : false"-->
<!-- @input="handleInput('prehomoDeliverableType')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'deliverable_template'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('deliverableTemplate')">{{$t('deliverableTemplate')}}</span>
</div>
<a-form-model-item class="itemModel" prop="prehomoDeliverableTemplate">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('prehomoDeliverableTemplate')">
{{ (formInline.prehomoDeliverableTemplate === 'null' || formInline.prehomoDeliverableTemplate === ''
||
formInline.prehomoDeliverableTemplate == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('descriptionDeliverables')">{{$t('descriptionDeliverables')}}</span>
</div>
<a-form-model-item class="itemModel-text" :prop="'prehomoRemark'">
<a-textarea
style="width: 100%"
:placeholder="$t('PleaseEnter')+$t('descriptionDeliverables')"
v-model="formInline.prehomoRemark" :rows="4"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<!-- <div class="header-text" v-if="formInline.roleCodeIndex == 0 ||-->
<!-- (formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&-->
<!-- formInline.homologationEngineerId == userInfoQuery.id) ||-->
<!-- (formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&-->
<!-- formInline.regulationOwnerId == userInfoQuery.id)">-->
<!-- &nbsp;{{$t('PrehomoConfirmation')}}-->
<!-- </div>-->
<!-- <a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||-->
<!-- (formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&-->
<!-- formInline.homologationEngineerId == userInfoQuery.id) ||-->
<!-- (formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&-->
<!-- formInline.regulationOwnerId == userInfoQuery.id)">-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('Sponsor')">{{$t('Sponsor')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" prop="prehomoInitiatorId">-->
<!-- <a-select :placeholder="$t('PleaseSelect')+$t('Sponsor')"-->
<!-- :disabled="formInline.roleCodeIndex == 0 ? false : true"-->
<!-- class="box-input"-->
<!-- :getPopupContainer="triggerNode=> triggerNode.parentNode"-->
<!-- allowClear-->
<!-- v-model="formInline.prehomoInitiatorId">-->
<!-- <a-select-option v-for="(item, key) in prehomoInitiatorList"-->
<!-- :key="key"-->
<!-- :value="item.value">-->
<!-- <span style="display: inline-block;width: 100%" :title=" item.name ">-->
<!-- {{ item.name }}-->
<!-- </span>-->
<!-- </a-select-option>-->
<!-- </a-select>-->
<!-- &lt;!&ndash; <j-dict-select-tag class="box-input" v-model="formInline.prehomoInitiator"&ndash;&gt;-->
<!-- &lt;!&ndash; :disabled="formInline.roleCode == 0 ? false : true"&ndash;&gt;-->
<!-- &lt;!&ndash; @input="handleInput('prehomoInitiator')"&ndash;&gt;-->
<!-- &lt;!&ndash; :placeholder="$t('PleaseSelect')+$t('Sponsor')"&ndash;&gt;-->
<!-- &lt;!&ndash; :type="'select'"&ndash;&gt;-->
<!-- &lt;!&ndash; :triggerChange="false" :dictCode="'fa1_qi3_ren2'"/>&ndash;&gt;-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('personLiable')">{{$t('personLiable')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" prop="prehomoDutyId">-->
<!-- <a-select :placeholder="$t('PleaseSelect')+$t('personLiable')"-->
<!-- class="box-input"-->
<!-- allowClear-->
<!-- :getPopupContainer="triggerNode=> triggerNode.parentNode"-->
<!-- v-model="formInline.prehomoDutyId">-->
<!-- <a-select-option v-for="(item, key) in prehomoDutyList"-->
<!-- :key="key"-->
<!-- :value="item.value">-->
<!-- <span style="display: inline-block;width: 100%" :title=" item.name ">-->
<!-- {{ item.name }}-->
<!-- </span>-->
<!-- </a-select-option>-->
<!-- </a-select>-->
<!-- &lt;!&ndash; <j-dict-select-tag class="box-input" v-model="formInline.prehomoDuty"&ndash;&gt;-->
<!-- &lt;!&ndash; :disabled="formInline.roleCode == 0 ? false : true"&ndash;&gt;-->
<!-- &lt;!&ndash; @input="handleInput('prehomoDuty')"&ndash;&gt;-->
<!-- &lt;!&ndash; :placeholder="$t('PleaseSelect')+$t('personLiable')"&ndash;&gt;-->
<!-- &lt;!&ndash; :type="'select'"&ndash;&gt;-->
<!-- &lt;!&ndash; :triggerChange="false" :dictCode="'ze2_ren4_ren2'"/>&ndash;&gt;-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- <a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||-->
<!-- (formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&-->
<!-- formInline.homologationEngineerId == userInfoQuery.id) ||-->
<!-- (formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&-->
<!-- formInline.regulationOwnerId == userInfoQuery.id)">-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('cutoffTime')">{{$t('cutoffTime')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" :prop="'prehomoDueDate'">-->
<!-- <a-date-picker class="box-input"-->
<!-- :placeholder="$t('PleaseSelect')+$t('cutoffTime')"-->
<!-- @change="dateChange({db_field_name:'prehomoDueDate'})"-->
<!-- format="YYYY-MM-DD"-->
<!-- :getCalendarContainer="(trigger) => trigger.parentNode"-->
<!-- v-model="formInline.prehomoDueDate"-->
<!-- style="width: 100%"/>-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- <a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||-->
<!-- (formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&-->
<!-- formInline.homologationEngineerId == userInfoQuery.id) ||-->
<!-- (formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&-->
<!-- formInline.regulationOwnerId == userInfoQuery.id)">-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('typeOfDeliverables')">{{$t('typeOfDeliverables')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" prop="prehomoDeliverableType">-->
<!-- <a-tree-select-->
<!-- tree-node-filter-prop="title"-->
<!-- v-model="formInline.prehomoDeliverableType"-->
<!-- :maxTagCount="1"-->
<!-- :getPopupContainer="triggerNode=> triggerNode.parentNode"-->
<!-- class="box-input"-->
<!-- style="width: 100%"-->
<!-- :tree-data="DeliverableTreeList"-->
<!-- tree-checkable-->
<!-- :placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"-->
<!-- />-->
<!-- &lt;!&ndash; <j-dict-select-tag class="box-input" v-model="formInline.prehomoDeliverableType"&ndash;&gt;-->
<!-- &lt;!&ndash; :disabled="formInline.taskAffirmStatus != 'Not started' && !formInline.prehomoDeliverableType ? true : false"&ndash;&gt;-->
<!-- &lt;!&ndash; @input="handleInput('prehomoDeliverableType')"&ndash;&gt;-->
<!-- &lt;!&ndash; :placeholder="$t('PleaseSelect')+$t('typeOfDeliverables')"&ndash;&gt;-->
<!-- &lt;!&ndash; :type="'select'"&ndash;&gt;-->
<!-- &lt;!&ndash; :triggerChange="false" :dictCode="'deliverable_template'"/>&ndash;&gt;-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('deliverableTemplate')">{{$t('deliverableTemplate')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" prop="prehomoDeliverableTemplate">-->
<!-- <a-button type="primary" class="button-text"-->
<!-- @click="clickButtonToUpload('prehomoDeliverableTemplate')">-->
<!-- {{ (formInline.prehomoDeliverableTemplate === 'null' || formInline.prehomoDeliverableTemplate === ''-->
<!-- ||-->
<!-- formInline.prehomoDeliverableTemplate == null) ? $t('clickUpload') : $t('viewUploadedFiles')-->
<!-- }}-->
<!-- </a-button>-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- <a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||-->
<!-- (formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.homologationEngineerId &&-->
<!-- formInline.homologationEngineerId == userInfoQuery.id) ||-->
<!-- (formInline.roleCodeIndex == 4 && formInline.prehomoInitiatorId == formInline.regulationOwnerId &&-->
<!-- formInline.regulationOwnerId == userInfoQuery.id)">-->
<!-- <a-col :span="24">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('descriptionDeliverables')">{{$t('descriptionDeliverables')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel-text" :prop="'prehomoRemark'">-->
<!-- <a-textarea-->
<!-- style="width: 100%"-->
<!-- :placeholder="$t('PleaseEnter')+$t('descriptionDeliverables')"-->
<!-- v-model="formInline.prehomoRemark" :rows="4"/>-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<div class="header-text" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
@@ -652,36 +669,6 @@
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('Sponsor')">{{$t('Sponsor')}}</span>
</div>
<a-form-model-item class="itemModel" prop="verifyInitiatorId">
<a-select :placeholder="$t('PleaseSelect')+$t('Sponsor')"
class="box-input"
allowClear
:getPopupContainer="triggerNode=> triggerNode.parentNode"
:disabled="formInline.roleCodeIndex == 0 ? false : true"
v-model="formInline.verifyInitiatorId">
<a-select-option v-for="(item, key) in verifyInitiatorList"
:key="key"
:value="item.value">
<span style="display: inline-block;width: 100%" :title=" item.name ">
{{ item.name }}
</span>
</a-select-option>
</a-select>
<!-- <j-dict-select-tag class="box-input" v-model="formInline.verifyInitiator"-->
<!-- :disabled="formInline.roleCode == 0 ? false : true"-->
<!-- @input="handleInput('verifyInitiator')"-->
<!-- :placeholder="$t('PleaseSelect')+$t('Sponsor')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'fa1_qi3_ren2'"/>-->
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -711,12 +698,6 @@
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.regulationOwnerId &&
formInline.regulationOwnerId == userInfoQuery.id)">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
@@ -734,7 +715,44 @@
</a-form-model-item>
</div>
</a-col>
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('Sponsor')">{{$t('Sponsor')}}</span>-->
<!-- </div>-->
<!-- <a-form-model-item class="itemModel" prop="verifyInitiatorId">-->
<!-- <a-select :placeholder="$t('PleaseSelect')+$t('Sponsor')"-->
<!-- class="box-input"-->
<!-- allowClear-->
<!-- :getPopupContainer="triggerNode=> triggerNode.parentNode"-->
<!-- :disabled="formInline.roleCodeIndex == 0 ? false : true"-->
<!-- v-model="formInline.verifyInitiatorId">-->
<!-- <a-select-option v-for="(item, key) in verifyInitiatorList"-->
<!-- :key="key"-->
<!-- :value="item.value">-->
<!-- <span style="display: inline-block;width: 100%" :title=" item.name ">-->
<!-- {{ item.name }}-->
<!-- </span>-->
<!-- </a-select-option>-->
<!-- </a-select>-->
<!-- &lt;!&ndash; <j-dict-select-tag class="box-input" v-model="formInline.verifyInitiator"&ndash;&gt;-->
<!-- &lt;!&ndash; :disabled="formInline.roleCode == 0 ? false : true"&ndash;&gt;-->
<!-- &lt;!&ndash; @input="handleInput('verifyInitiator')"&ndash;&gt;-->
<!-- &lt;!&ndash; :placeholder="$t('PleaseSelect')+$t('Sponsor')"&ndash;&gt;-->
<!-- &lt;!&ndash; :type="'select'"&ndash;&gt;-->
<!-- &lt;!&ndash; :triggerChange="false" :dictCode="'fa1_qi3_ren2'"/>&ndash;&gt;-->
<!-- </a-form-model-item>-->
<!-- </div>-->
<!-- </a-col>-->
</a-row>
<!-- <a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||-->
<!-- (formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.homologationEngineerId &&-->
<!-- formInline.homologationEngineerId == userInfoQuery.id) ||-->
<!-- (formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.regulationOwnerId &&-->
<!-- formInline.regulationOwnerId == userInfoQuery.id)">-->
<!-- -->
<!-- </a-row>-->
<a-row :gutter="24" v-if="formInline.roleCodeIndex == 0 ||
(formInline.roleCodeIndex == 4 && formInline.verifyInitiatorId == formInline.homologationEngineerId &&
formInline.homologationEngineerId == userInfoQuery.id) ||
@@ -804,95 +822,95 @@
</div>
</a-col>
</a-row>
<div class="header-text" v-if="rejectCauseList && rejectCauseList.length > 0">
{{$t('listConfirmationRejectionReason')}}
</div>
<!-- <div class="header-text" v-if="rejectCauseList && rejectCauseList.length > 0">-->
<!-- {{$t('listConfirmationRejectionReason')}}-->
<!-- </div>-->
<div v-if="rejectCauseList && rejectCauseList.length > 0"
v-for="(item,index) in rejectCauseList">
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('rejectedBy')">{{$t('rejectedBy')}}</span>
</div>
<div class="itemModel-reject">
{{item.createBy ? item.createBy : '--'}}
</div>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('rejectionTime')">{{$t('rejectionTime')}}</span>
</div>
<div class="itemModel-reject">
{{item.rejectTime ? item.rejectTime : '--'}}
</div>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('rejectReason')">{{$t('rejectReason')}}</span>
</div>
<div class="itemModel-reject">
{{item.rejectCause ? item.rejectCause : '--'}}
</div>
</div>
</a-col>
</a-row>
</div>
<!-- <div v-if="rejectCauseList && rejectCauseList.length > 0"-->
<!-- v-for="(item,index) in rejectCauseList">-->
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('rejectedBy')">{{$t('rejectedBy')}}</span>-->
<!-- </div>-->
<!-- <div class="itemModel-reject">-->
<!-- {{item.createBy ? item.createBy : '&#45;&#45;'}}-->
<!-- </div>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('rejectionTime')">{{$t('rejectionTime')}}</span>-->
<!-- </div>-->
<!-- <div class="itemModel-reject">-->
<!-- {{item.rejectTime ? item.rejectTime : '&#45;&#45;'}}-->
<!-- </div>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="24">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('rejectReason')">{{$t('rejectReason')}}</span>-->
<!-- </div>-->
<!-- <div class="itemModel-reject">-->
<!-- {{item.rejectCause ? item.rejectCause : '&#45;&#45;'}}-->
<!-- </div>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- </div>-->
<div class="header-text" v-if="rejectCauseListOne && rejectCauseListOne.length > 0">
{{$t('taskConfirmationRejectionReason')}}
</div>
<!-- <div class="header-text" v-if="rejectCauseListOne && rejectCauseListOne.length > 0">-->
<!-- {{$t('taskConfirmationRejectionReason')}}-->
<!-- </div>-->
<div v-if="rejectCauseListOne && rejectCauseListOne.length > 0"
v-for="(item,index) in rejectCauseListOne">
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('rejectedBy')">{{$t('rejectedBy')}}</span>
</div>
<div class="itemModel-reject">
{{item.createBy ? item.createBy : '--'}}
</div>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('rejectionTime')">{{$t('rejectionTime')}}</span>
</div>
<div class="itemModel-reject">
{{item.rejectTime ? item.rejectTime : '--'}}
</div>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('rejectReason')">{{$t('rejectReason')}}</span>
</div>
<div class="itemModel-reject">
{{item.rejectCause ? item.rejectCause : '--'}}
</div>
</div>
</a-col>
</a-row>
</div>
<!-- <div v-if="rejectCauseListOne && rejectCauseListOne.length > 0"-->
<!-- v-for="(item,index) in rejectCauseListOne">-->
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('rejectedBy')">{{$t('rejectedBy')}}</span>-->
<!-- </div>-->
<!-- <div class="itemModel-reject">-->
<!-- {{item.createBy ? item.createBy : '&#45;&#45;'}}-->
<!-- </div>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- <a-col :span="12">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('rejectionTime')">{{$t('rejectionTime')}}</span>-->
<!-- </div>-->
<!-- <div class="itemModel-reject">-->
<!-- {{item.rejectTime ? item.rejectTime : '&#45;&#45;'}}-->
<!-- </div>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="24">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text">-->
<!-- <span class="title-text-text"-->
<!-- :title="$t('rejectReason')">{{$t('rejectReason')}}</span>-->
<!-- </div>-->
<!-- <div class="itemModel-reject">-->
<!-- {{item.rejectCause ? item.rejectCause : '&#45;&#45;'}}-->
<!-- </div>-->
<!-- </div>-->
<!-- </a-col>-->
<!-- </a-row>-->
<!-- </div>-->
</a-form-model>
</a-spin>
<div class="drawer-bootom-button">
@@ -97,7 +97,19 @@
<!-- v-if="(isRoleSwitching && !isDisplay) || (!isDisplay && roleSwitchingList.length > 1) || isDisplay"-->
<div class="table-operator"
style="overflow:hidden;margin-bottom: 20px">
<div style="float: right;margin-top: 1px; margin-left: 20px">
<div style="float: left;margin-bottom: 0px;margin-left: 20px" v-if="isDisplay">
<div @click="transferClick" class="operator-text">
<a-icon type="profile" />
{{ $t('Transfer') }}
</div>
<div class="operator-text" @click="bringInRelevantPersonnelClick">
<a-icon type="user" />
{{ $t('bringInRelevantPersonnel') }}
</div>
<div class="operator-text" @click="batSettingClick">
<a-icon type="setting" />
{{ $t('BatchSetting') }}
</div>
<a-popconfirm :visible="customizevisible" overlayClassName="popconfirmmize" placement="bottomRight">
<template slot="title" id="popconfirmmize">
<div style="height:320px;overflow:scroll;overflow-x: auto;">
@@ -126,64 +138,52 @@
{{ $t('customize') }}
</div>
</a-popconfirm>
</div>
<div style="float: left;margin-bottom: 0px;margin-left: 20px" v-if="isDisplay">
<div class="operator-text" @click="initiateListConfirmationcClick('清单')">
<a-icon type="solution" />
{{ $t('initiateListConfirmation') }}
</div>
<div class="operator-text" @click="initiateTaskConfirmationClick('任务')">
<a-icon type="file-protect" />
{{ $t('initiateTaskConfirmation') }}
</div>
</div>
<div style="float: right;margin-top: 1px;;margin-right: 20px" v-if="isDisplay">
<a-popconfirm overlayClassName="popconfirm" placement="bottomRight">
<template slot="title" id="popconfirm">
<div style="height:320px;overflow:scroll;overflow-x: auto;">
<div class="operator-text-title">
<ImportFile :url="url" :projectLibraryId=$route.query.id :isTrue="true" :accept="'.zip'"
@getList="getPersonnelList" />
<div @click="handleAdd" class="operator-text-title">
<a-icon type="plus" />
{{ $t('add') }}
</div>
<div @click="handleModule" class="operator-text-title">
<a-icon type="download" />
{{ $t('templateDownload') }}
</div>
<div @click="handleExport" v-has="'projectLawsInventory:exportData'" class="operator-text-title">
<a-icon type="export" :rotate="-90" />
{{ $t('export') }}
<div @click="copyClick" class="operator-text-title">
<a-icon type="copy" />
{{ $t('copy') }}
</div>
<div @click="handleDel" class="operator-text-title">
<a-icon type="delete" />
{{ $t('BatchDelete') }}
</div>
<div class="operator-text-title" @click="ExportReportClick">
<div @click="handleModule" class="operator-text-title">
<a-icon type="download" />
{{ $t('templateDownload') }}
</div>
<div class="operator-text-title">
<ImportFile :url="url" :projectLibraryId=$route.query.id :isTrue="true" :accept="'.zip'"
@getList="getPersonnelList" />
</div>
<div @click="handleExport" v-has="'projectLawsInventory:exportData'" class="operator-text-title">
<a-icon type="export" :rotate="-90" />
{{ $t('ExportReport') }}
</div>
<div class="operator-text-title" @click="batSettingClick">
<a-icon type="setting" />
{{ $t('batchSettingInformation') }}
</div>
<div class="operator-text-title" @click="batchSettingPersonnelClick">
<a-icon type="setting" />
{{ $t('batchSettingPersonnel') }}
</div>
<div class="operator-text-title" @click="questionClick">
<a-icon type="sound" />
{{ $t('question') }}
</div>
<div class="operator-text-title" @click="alterationClick">
<a-icon type="file-search" />
{{ $t('alteration') }}
{{ $t('export') }}
</div>
<div class="operator-text-title" @click="fixedPlateClick">
<a-icon type="pushpin" />
{{ $t('fixedPlate') }}
</div>
<div @click="copyClick" class="operator-text-title">
<a-icon type="copy" />
{{ $t('copy') }}
<div class="operator-text-title" @click="ExportReportClick">
<a-icon type="export" :rotate="-90" />
{{ $t('compliancereport') }}
</div>
<!-- <div class="operator-text-title" @click="batSettingClick">-->
<!-- <a-icon type="setting" />-->
<!-- {{ $t('batchSettingInformation') }}-->
<!-- </div>-->
<!-- <div class="operator-text-title" @click="batchSettingPersonnelClick">-->
<!-- <a-icon type="setting" />-->
<!-- {{ $t('batchSettingPersonnel') }}-->
<!-- </div>-->
<div class="operator-text-title" @click="alterationClick">
<a-icon type="file-search" />
{{ $t('processReset') }}
</div>
</div>
</template>
@@ -191,21 +191,28 @@
<span style="position: absolute;left: -13px;top: -4px">...</span>{{ $t('more') }}
</div>
</a-popconfirm>
<!-- <div class="operator-text" @click="initiateTaskConfirmationClick('任务')">-->
<!-- <a-icon type="file-protect" />-->
<!-- {{ $t('initiateTaskConfirmation') }}-->
<!-- </div>-->
</div>
<div style="float: right;margin-top: 1px;;margin-right: 20px" v-if="isDisplay">
<!-- <div class="operator-text" @click="customizeClick">-->
<!-- <a-icon type="setting"/>-->
<!-- {{ $t('customize') }}-->
<!-- </div>-->
<div class="operator-text" @click="bringInRelevantPersonnelClick">
<a-icon type="user" />
{{ $t('bringInRelevantPersonnel') }}
<div class="operator-text" @click="initiateListConfirmationcClick('清单')">
<a-icon type="solution" />
{{ $t('release') }}
</div>
<div @click="transferClick" class="operator-text">
<a-icon type="profile" />
{{ $t('Transfer') }}
<div class="operator-text" @click="withdrawnClick">
<a-icon type="rollback" />
{{ $t('withdraw') }}
</div>
<div @click="handleAdd" class="operator-text">
<a-icon type="plus" />
{{ $t('add') }}
<div class="operator-text" @click="questionClick">
<a-icon type="sound" />
{{ $t('question') }}
</div>
<!-- <div class="operator-text"-->
<!-- v-if="roleSwitchingList.length > 1"-->
@@ -229,10 +236,7 @@
<a-icon type="close-circle" />
{{ $t('overrule') }}
</div>
<div class="operator-text" @click="batSettingClick" v-if="isRoleSwitching">
<a-icon type="setting" />
{{ $t('batchSettingInformation') }}
</div>
<!-- <div class="operator-text"-->
<!-- v-if="roleSwitchingList.length > 1"-->
<!-- @click="roleSwitchingClick">-->
@@ -1545,7 +1549,7 @@ export default {
this.$message.warning(this.$t('OnlyOneSelected'))
} else {
let serialNumber = this.selectedRowKeysList[0].serialNumber
downloadFile(this.url.ExportReportUrl, this.$t('listOfRegulations') + this.$t('ExportReport') + '-' + serialNumber + '.docx', { id: selectedRowKeys.join(',') })
downloadFile(this.url.ExportReportUrl, this.$t('listOfRegulations') + this.$t('compliancereport') + '-' + serialNumber + '.docx', { id: selectedRowKeys.join(',') })
}
},
handleExport() {
@@ -1645,6 +1649,10 @@ export default {
} else {
this.$message.warning(this.$t('selectLeastOne'))
}
},
// 撤回
withdrawnClick(){
},
questionClick() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
@@ -28,6 +28,9 @@
</a>
<span v-else>--</span>
</span>
<span slot="taskStatus" slot-scope="text,record">
<span>{{text ? text : '--'}}</span>
</span>
</a-table>
<div class="page" v-if="dataSource && dataSource.length > 0">
<a-pagination
@@ -99,7 +102,8 @@
align: 'left',
dataIndex: 'statusShow',
ellipsis: true,
width: 170
width: 170,
scopedSlots: { customRender: 'taskStatus' }
},
{
title: this.$t('operation'),
@@ -174,6 +178,19 @@
}
})
window.open(newUrl.href, '_blank')
}else if (row.flowType == '21') {
let newUrl = this.$router.resolve({
path: '/ProjectDetails',
query: {
id: row.projectLibraryId,
projectName: row.projectName,
projectNameId: row.projectNameId,
targetMarket: row.targetMarket,
studioEngineer: row.studioEngineer,
type: '106'
}
})
window.open(newUrl.href, '_blank')
} else if (row.flowType == '2') {
row.taskId = row.taskId + ''
if (row.taskId.length > 30) {
@@ -316,7 +316,7 @@ export default {
item.state = 2
content = this.$t('confirmWithdraw')
}
item.id = val.id
item.ids = val.id
let _this = this
this.$confirm({
content: content,
@@ -187,6 +187,7 @@
:scroll="{x: '100%',y:'calc(100vh - 356px)'}"
rowKey="id"
:data-source="dataSource"
@change="tableOnChange"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:columns="columns">
<span slot="item" slot-scope="text,record">
@@ -520,13 +521,32 @@ export default {
editModelList() {
this.getList()
},
tableOnChange(pagination, filters, sorter) {
this.orderBy = sorter.order == 'ascend' ? '1' : '2'
if(sorter.columnKey == 'shi4Yong4Fan4Wei2_dictText'){
this.orderByField = 'shi4Yong4Fan4Wei2'
} else if(sorter.columnKey == 'state_dictText') {
this.orderByField = 'state'
} else if(sorter.columnKey == 'xin1Che1Xing2Shi2Shi1Ri4Qi1') {
this.orderByField = 'xin1_che1_xing2_shi2_shi1_ri4_qi1'
} else if(sorter.columnKey == 'implementTime') {
this.orderByField = 'implement_time'
} else if(sorter.columnKey == 'dutyTerritory_dictText') {
this.orderByField = 'dutyTerritory'
} else if(sorter.columnKey == 'attestationRank_dictText') {
this.orderByField = 'attestationRank'
} else{
this.orderByField = sorter.columnKey
}
this.getList()
},
getList() {
let query = {
...this.queryParam,
...this.queryParamQuery,
orderBy: this.orderBy,
orderByField: this.orderByField,
dummyInventoryBaseId: this.$route.query.id
authDummyInventoryBaseId: this.$route.query.id
}
this.loading = true
getAction(this.url.list,query).then((res) => {