diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfTaskController.java index e1eff0f7..6482b92c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfTaskController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/workflow/WfTaskController.java @@ -1,5 +1,6 @@ package com.ruoyi.web.controller.workflow; +import cn.hutool.core.util.ObjectUtil; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.TableDataInfo; @@ -135,14 +136,20 @@ public class WfTaskController { @ApiOperation(value = "委派任务") @PostMapping(value = "/delegate") public R delegate(@RequestBody WfTaskBo bo) { + if (ObjectUtil.hasNull(bo.getTaskId(), bo.getUserId())) { + return R.fail("参数错误!"); + } flowTaskService.delegateTask(bo); return R.ok(); } @ApiOperation(value = "转办任务") - @PostMapping(value = "/assign") - public R assign(@RequestBody WfTaskBo bo) { - flowTaskService.assignTask(bo); + @PostMapping(value = "/transfer") + public R transfer(@RequestBody WfTaskBo bo) { + if (ObjectUtil.hasNull(bo.getTaskId(), bo.getUserId())) { + return R.fail("参数错误!"); + } + flowTaskService.transferTask(bo); return R.ok(); } diff --git a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/common/enums/FlowComment.java b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/common/enums/FlowComment.java index 7065dfa9..69c29600 100644 --- a/ruoyi-flowable/src/main/java/com/ruoyi/flowable/common/enums/FlowComment.java +++ b/ruoyi-flowable/src/main/java/com/ruoyi/flowable/common/enums/FlowComment.java @@ -11,12 +11,12 @@ public enum FlowComment { /** * 说明 */ - NORMAL("1", "正常意见"), - REBACK("2", "退回意见"), - REJECT("3", "驳回意见"), - DELEGATE("4", "委派意见"), - ASSIGN("5", "转办意见"), - STOP("6", "终止流程"); + NORMAL("1", "正常"), + REBACK("2", "退回"), + REJECT("3", "驳回"), + DELEGATE("4", "委派"), + TRANSFER("5", "转办"), + STOP("6", "终止"); /** * 类型 diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/vo/WfCommentVo.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/vo/WfCommentVo.java new file mode 100644 index 00000000..566e765d --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/vo/WfCommentVo.java @@ -0,0 +1,32 @@ +package com.ruoyi.workflow.domain.vo; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.util.Date; + +/** + * @author konbai + * @createTime 2022/4/4 02:03 + */ +@Data +@ApiModel("流程批复视图对象") +public class WfCommentVo { + + /** + * 审批类别 + */ + private String type; + + /** + * 批复内容 + */ + private String message; + + /** + * 批复时间 + */ + private Date time; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/vo/WfTaskVo.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/vo/WfTaskVo.java index 0acdfcd8..20e6b5a0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/vo/WfTaskVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/domain/vo/WfTaskVo.java @@ -6,9 +6,11 @@ import com.ruoyi.workflow.domain.dto.WfCommentDto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.flowable.engine.task.Comment; import java.io.Serializable; import java.util.Date; +import java.util.List; /** * 工作流任务视图对象 @@ -84,6 +86,9 @@ public class WfTaskVo implements Serializable { @ApiModelProperty("任务意见") private WfCommentDto comment; + @ApiModelProperty("任务意见") + private List commentList; + @ApiModelProperty("候选执行人") private String candidate; diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfTaskService.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfTaskService.java index 389e398d..46f04d53 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfTaskService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/IWfTaskService.java @@ -84,7 +84,7 @@ public interface IWfTaskService { * * @param bo 请求实体参数 */ - void assignTask(WfTaskBo bo); + void transferTask(WfTaskBo bo); /** * 我发起的流程 diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfInstanceServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfInstanceServiceImpl.java index 9c7dcbae..5ae39498 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfInstanceServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfInstanceServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.workflow.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.BetweenFormatter; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; @@ -13,7 +14,6 @@ import com.ruoyi.flowable.factory.FlowServiceFactory; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; import com.ruoyi.workflow.domain.bo.WfTaskBo; -import com.ruoyi.workflow.domain.dto.WfCommentDto; import com.ruoyi.workflow.domain.vo.WfFormVo; import com.ruoyi.workflow.domain.vo.WfTaskVo; import com.ruoyi.workflow.service.IWfDeployFormService; @@ -21,11 +21,11 @@ import com.ruoyi.workflow.service.IWfInstanceService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.flowable.common.engine.api.FlowableObjectNotFoundException; -import org.flowable.engine.history.HistoricActivityInstance; import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.task.Comment; import org.flowable.identitylink.api.history.HistoricIdentityLink; import org.flowable.task.api.Task; +import org.flowable.task.api.history.HistoricTaskInstance; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -130,58 +130,61 @@ public class WfInstanceServiceImpl extends FlowServiceFactory implements IWfInst public Map queryDetailProcess(String procInsId, String deployId) { Map map = new HashMap<>(); if (StringUtils.isNotBlank(procInsId)) { - List list = historyService - .createHistoricActivityInstanceQuery() + List taskInstanceList = historyService.createHistoricTaskInstanceQuery() .processInstanceId(procInsId) - .orderByHistoricActivityInstanceStartTime() - .desc().list(); - List hisFlowList = new ArrayList<>(); - for (HistoricActivityInstance histIns : list) { - if (StringUtils.isNotBlank(histIns.getTaskId())) { - WfTaskVo flowTask = new WfTaskVo(); - flowTask.setProcDefId(histIns.getProcessDefinitionId()); - flowTask.setTaskId(histIns.getTaskId()); - flowTask.setTaskName(histIns.getActivityName()); - flowTask.setCreateTime(histIns.getStartTime()); - flowTask.setFinishTime(histIns.getEndTime()); - if (StringUtils.isNotBlank(histIns.getAssignee())) { - SysUser user = userService.selectUserById(Long.parseLong(histIns.getAssignee())); - flowTask.setAssigneeId(user.getUserId()); - flowTask.setAssigneeName(user.getNickName()); - flowTask.setDeptName(user.getDept().getDeptName()); - } - // 展示审批人员 - List linksForTask = historyService.getHistoricIdentityLinksForTask(histIns.getTaskId()); - StringBuilder stringBuilder = new StringBuilder(); - for (HistoricIdentityLink identityLink : linksForTask) { - if ("candidate".equals(identityLink.getType())) { - if (StringUtils.isNotBlank(identityLink.getUserId())) { - SysUser user = userService.selectUserById(Long.parseLong(identityLink.getUserId())); - stringBuilder.append(user.getNickName()).append(","); - } - if (StringUtils.isNotBlank(identityLink.getGroupId())) { - SysRole role = roleService.selectRoleById(Long.parseLong(identityLink.getGroupId())); - stringBuilder.append(role.getRoleName()).append(","); - } - } - } - if (StringUtils.isNotBlank(stringBuilder)) { - flowTask.setCandidate(stringBuilder.substring(0, stringBuilder.length() - 1)); - } - if (ObjectUtil.isNotNull(histIns.getDurationInMillis())) { - flowTask.setDuration(DateUtil.formatBetween(histIns.getDurationInMillis(), BetweenFormatter.Level.SECOND)); - } - // 获取意见评论内容 - List commentList = taskService.getProcessInstanceComments(histIns.getProcessInstanceId()); - commentList.forEach(comment -> { - if (histIns.getTaskId().equals(comment.getTaskId())) { - flowTask.setComment(WfCommentDto.builder().type(comment.getType()).comment(comment.getFullMessage()).build()); - } - }); - hisFlowList.add(flowTask); + .orderByHistoricTaskInstanceStartTime().desc() + .list(); + List commentList = taskService.getProcessInstanceComments(procInsId); + List taskVoList = new ArrayList<>(taskInstanceList.size()); + taskInstanceList.forEach(taskInstance -> { + WfTaskVo taskVo = new WfTaskVo(); + taskVo.setProcDefId(taskInstance.getProcessDefinitionId()); + taskVo.setTaskId(taskInstance.getId()); + taskVo.setTaskName(taskInstance.getName()); + taskVo.setCreateTime(taskInstance.getStartTime()); + taskVo.setFinishTime(taskInstance.getEndTime()); + if (StringUtils.isNotBlank(taskInstance.getAssignee())) { + SysUser user = userService.selectUserById(Long.parseLong(taskInstance.getAssignee())); + taskVo.setAssigneeId(user.getUserId()); + taskVo.setAssigneeName(user.getNickName()); + taskVo.setDeptName(user.getDept().getDeptName()); } - } - map.put("flowList", hisFlowList); + // 展示审批人员 + List linksForTask = historyService.getHistoricIdentityLinksForTask(taskInstance.getId()); + StringBuilder stringBuilder = new StringBuilder(); + for (HistoricIdentityLink identityLink : linksForTask) { + if ("candidate".equals(identityLink.getType())) { + if (StringUtils.isNotBlank(identityLink.getUserId())) { + SysUser user = userService.selectUserById(Long.parseLong(identityLink.getUserId())); + stringBuilder.append(user.getNickName()).append(","); + } + if (StringUtils.isNotBlank(identityLink.getGroupId())) { + SysRole role = roleService.selectRoleById(Long.parseLong(identityLink.getGroupId())); + stringBuilder.append(role.getRoleName()).append(","); + } + } + } + if (StringUtils.isNotBlank(stringBuilder)) { + taskVo.setCandidate(stringBuilder.substring(0, stringBuilder.length() - 1)); + } + if (ObjectUtil.isNotNull(taskInstance.getDurationInMillis())) { + taskVo.setDuration(DateUtil.formatBetween(taskInstance.getDurationInMillis(), BetweenFormatter.Level.SECOND)); + } + // 获取意见评论内容 + if (CollUtil.isNotEmpty(commentList)) { + List comments = new ArrayList<>(); + // commentList.stream().filter(comment -> taskInstance.getId().equals(comment.getTaskId())).collect(Collectors.toList()); + for (Comment comment : commentList) { + if (comment.getTaskId().equals(taskInstance.getId())) { + comments.add(comment); + // taskVo.setComment(WfCommentDto.builder().type(comment.getType()).comment(comment.getFullMessage()).build()); + } + } + taskVo.setCommentList(comments); + } + taskVoList.add(taskVo); + }); + map.put("flowList", taskVoList); // // 查询当前任务是否完成 // List taskList = taskService.createTaskQuery().processInstanceId(procInsId).list(); // if (CollectionUtils.isNotEmpty(taskList)) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java index e64e1abf..35150dea 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/workflow/service/impl/WfTaskServiceImpl.java @@ -14,6 +14,7 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.JsonUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.flowable.common.constant.ProcessConstants; import com.ruoyi.flowable.common.enums.FlowComment; import com.ruoyi.flowable.factory.FlowServiceFactory; @@ -33,7 +34,6 @@ import com.ruoyi.workflow.service.IWfTaskService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang3.StringUtils; import org.flowable.bpmn.model.Process; import org.flowable.bpmn.model.*; import org.flowable.common.engine.api.FlowableException; @@ -84,26 +84,26 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ /** * 完成任务 * - * @param taskVo 请求实体参数 + * @param taskBo 请求实体参数 */ @Transactional(rollbackFor = Exception.class) @Override - public void complete(WfTaskBo taskVo) { - Task task = taskService.createTaskQuery().taskId(taskVo.getTaskId()).singleResult(); + public void complete(WfTaskBo taskBo) { + Task task = taskService.createTaskQuery().taskId(taskBo.getTaskId()).singleResult(); if (Objects.isNull(task)) { throw new ServiceException("任务不存在"); } if (DelegationState.PENDING.equals(task.getDelegationState())) { - taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.DELEGATE.getType(), taskVo.getComment()); - taskService.resolveTask(taskVo.getTaskId(), taskVo.getValues()); + taskService.addComment(taskBo.getTaskId(), taskBo.getInstanceId(), FlowComment.DELEGATE.getType(), taskBo.getComment()); + taskService.resolveTask(taskBo.getTaskId(), taskBo.getValues()); } else { - taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.NORMAL.getType(), taskVo.getComment()); + taskService.addComment(taskBo.getTaskId(), taskBo.getInstanceId(), FlowComment.NORMAL.getType(), taskBo.getComment()); Long userId = LoginHelper.getUserId(); - taskService.setAssignee(taskVo.getTaskId(), userId.toString()); - if (ObjectUtil.isNotEmpty(taskVo.getValues())) { - taskService.complete(taskVo.getTaskId(), taskVo.getValues()); + taskService.setAssignee(taskBo.getTaskId(), userId.toString()); + if (ObjectUtil.isNotEmpty(taskBo.getValues())) { + taskService.complete(taskBo.getTaskId(), taskBo.getValues()); } else { - taskService.complete(taskVo.getTaskId()); + taskService.complete(taskBo.getTaskId()); } } } @@ -115,11 +115,14 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ */ @Override public void taskReject(WfTaskBo bo) { - if (taskService.createTaskQuery().taskId(bo.getTaskId()).singleResult().isSuspended()) { - throw new RuntimeException("任务处于挂起状态"); - } // 当前任务 task Task task = taskService.createTaskQuery().taskId(bo.getTaskId()).singleResult(); + if (ObjectUtil.isNull(task)) { + throw new RuntimeException("获取任务信息异常!"); + } + if (task.isSuspended()) { + throw new RuntimeException("任务处于挂起状态"); + } // 获取流程定义信息 ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(task.getProcessDefinitionId()).singleResult(); // 获取所有节点信息 @@ -240,11 +243,14 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ @Transactional(rollbackFor = Exception.class) @Override public void taskReturn(WfTaskBo bo) { - if (taskService.createTaskQuery().taskId(bo.getTaskId()).singleResult().isSuspended()) { - throw new RuntimeException("任务处于挂起状态"); - } // 当前任务 task Task task = taskService.createTaskQuery().taskId(bo.getTaskId()).singleResult(); + if (ObjectUtil.isNull(task)) { + throw new RuntimeException("获取任务信息异常!"); + } + if (task.isSuspended()) { + throw new RuntimeException("任务处于挂起状态"); + } // 获取流程定义信息 ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(task.getProcessDefinitionId()).singleResult(); // 获取所有节点信息 @@ -394,7 +400,28 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ @Override @Transactional(rollbackFor = Exception.class) public void delegateTask(WfTaskBo bo) { - taskService.delegateTask(bo.getTaskId(), bo.getAssignee()); + // 当前任务 task + Task task = taskService.createTaskQuery().taskId(bo.getTaskId()).singleResult(); + if (ObjectUtil.isEmpty(task)) { + throw new ServiceException("获取任务失败!"); + } + StringBuilder commentBuilder = new StringBuilder(LoginHelper.getNickName()) + .append("->"); + SysUser user = sysUserService.selectUserById(Long.parseLong(bo.getUserId())); + if (ObjectUtil.isNotNull(user)) { + commentBuilder.append(user.getNickName()); + } else { + commentBuilder.append(bo.getUserId()); + } + if (StringUtils.isNotBlank(bo.getComment())) { + commentBuilder.append(": ").append(bo.getComment()); + } + // 添加审批意见 + taskService.addComment(bo.getTaskId(), task.getProcessInstanceId(), FlowComment.DELEGATE.getType(), commentBuilder.toString()); + // 设置办理人为当前登录人 + taskService.setOwner(bo.getTaskId(), LoginHelper.getUserId().toString()); + // 执行委派 + taskService.delegateTask(bo.getTaskId(), bo.getUserId()); } @@ -405,8 +432,29 @@ public class WfTaskServiceImpl extends FlowServiceFactory implements IWfTaskServ */ @Override @Transactional(rollbackFor = Exception.class) - public void assignTask(WfTaskBo bo) { - taskService.setAssignee(bo.getTaskId(), bo.getComment()); + public void transferTask(WfTaskBo bo) { + // 当前任务 task + Task task = taskService.createTaskQuery().taskId(bo.getTaskId()).singleResult(); + if (ObjectUtil.isEmpty(task)) { + throw new ServiceException("获取任务失败!"); + } + StringBuilder commentBuilder = new StringBuilder(LoginHelper.getNickName()) + .append("->"); + SysUser user = sysUserService.selectUserById(Long.parseLong(bo.getUserId())); + if (ObjectUtil.isNotNull(user)) { + commentBuilder.append(user.getNickName()); + } else { + commentBuilder.append(bo.getUserId()); + } + if (StringUtils.isNotBlank(bo.getComment())) { + commentBuilder.append(": ").append(bo.getComment()); + } + // 添加审批意见 + taskService.addComment(bo.getTaskId(), task.getProcessInstanceId(), FlowComment.TRANSFER.getType(), commentBuilder.toString()); + // 设置拥有者为当前登录人 + taskService.setOwner(bo.getTaskId(), LoginHelper.getUserId().toString()); + // 转办任务 + taskService.setAssignee(bo.getTaskId(), bo.getUserId()); } /** diff --git a/ruoyi-ui/src/api/workflow/todo.js b/ruoyi-ui/src/api/workflow/todo.js index c1f85cfc..56f94384 100644 --- a/ruoyi-ui/src/api/workflow/todo.js +++ b/ruoyi-ui/src/api/workflow/todo.js @@ -27,6 +27,15 @@ export function delegate(data) { }) } +// 转办任务 +export function transfer(data) { + return request({ + url: '/workflow/task/transfer', + method: 'post', + data: data + }) +} + // 退回任务 export function returnTask(data) { return request({ diff --git a/ruoyi-ui/src/views/workflow/work/detail.vue b/ruoyi-ui/src/views/workflow/work/detail.vue index dd592691..92b426f3 100644 --- a/ruoyi-ui/src/views/workflow/work/detail.vue +++ b/ruoyi-ui/src/views/workflow/work/detail.vue @@ -12,18 +12,27 @@ - - - 通过 - - - + + + 通过 + + + 委派 + + + 转办 + + + + + 退回 + + 驳回 - @@ -42,44 +51,29 @@ + - +
- +

{{ item.taskName }}

- - - - - - - - - -

- {{ item.comment.comment }} - {{ item.comment.comment }} - {{ item.comment.comment }} -

+ + + {{ item.assigneeName || '-'}} + {{ item.candidate || '-'}} + {{ item.createTime || '-'}} + {{ item.finishTime || '-' }} + {{ item.duration || '-'}} + +
+ + {{ commentType(comment.type) }} + {{ comment.time }} + + {{ comment.fullMessage }} +
@@ -87,6 +81,7 @@ + - 取 消 - 确 定 - + 取 消 + 确 定 + - + + + + + +
+ 部门列表 +
+
+ + +
+
+
+ + + + + + + + + + + +
+ + 取 消 + 确 定 + 确 定 + +
@@ -123,7 +164,7 @@ import { getDetailInstance } from '@/api/workflow/instance' import Parser from '@/utils/generator/parser' import { definitionStart, getFlowViewer, getProcessVariables, readXml } from '@/api/workflow/definition' -import { complete, delegate, getNextFlowNode, rejectTask, returnList, returnTask } from '@/api/workflow/todo' +import { complete, delegate, transfer,getNextFlowNode, rejectTask, returnList, returnTask } from '@/api/workflow/todo' import { treeselect } from '@/api/system/dept' import ProcessViewer from '@/components/ProcessViewer' import '@riophae/vue-treeselect/dist/vue-treeselect.css' @@ -138,6 +179,30 @@ export default { Treeselect }, props: {}, + computed: { + commentType() { + return val => { + switch (val) { + case '1': return '通过' + case '2': return '退回' + case '3': return '驳回' + case '4': return '委派' + case '5': return '转办' + } + } + }, + approveTypeTag() { + return val => { + switch (val) { + case '1': return 'success' + case '2': return 'warning' + case '3': return 'danger' + case '4': return 'primary' + case '5': return 'success' + } + } + } + }, data() { return { height: document.documentElement.clientHeight - 205 + 'px;', @@ -165,6 +230,7 @@ export default { queryParams: { deptId: undefined }, + total: 0, // 遮罩层 loading: true, flowRecordList: [], @@ -188,6 +254,7 @@ export default { rules: { comment: [{ required: true, message: '请输入审批意见', trigger: 'blur' }], }, + currentUserId: null, userDataList:[], // 流程候选人 assignee: null, formConf: {}, // 默认表单数据 @@ -201,7 +268,8 @@ export default { returnOpen: false, rejectOpen: false, rejectTitle: null, - delegateOpen: false, + userDialogTitle: '', + userOpen: false, userData:[], }; }, @@ -321,6 +389,7 @@ export default { const params = {procInsId: procInsId, deployId: deployId} getDetailInstance(params).then(res => { this.flowRecordList = res.data.flowList; + console.log("res flowList => ", this.flowRecordList) // 流程过程中不存在初始化表单 直接读取的流程变量中存储的表单值 if (res.data.formData) { this.formConf = res.data.formData; @@ -386,7 +455,26 @@ export default { } }); }, - + /** 委派任务 */ + handleDelegate() { + this.$refs["taskForm"].validate(valid => { + if (valid) { + this.userDialogTitle = '委派任务' + this.userOpen = true; + this.getTreeSelect(); + } + }) + }, + /** 转办任务 */ + handleTransfer(){ + this.$refs["taskForm"].validate(valid => { + if (valid) { + this.userDialogTitle = '转办任务' + this.userOpen = true; + this.getTreeSelect(); + } + }) + }, /** 驳回任务 */ handleReject() { this.$refs["taskForm"].validate(valid => { @@ -398,8 +486,8 @@ export default { } }); }, - handleAssign(){ - + changeCurrentUser(val) { + this.currentUserId = val.userId }, /** 返回页面 */ goBack() { @@ -446,6 +534,36 @@ export default { } } }, + submitDelegate() { + if (!this.taskForm.comment) { + this.$modal.msgError("请输入审批意见"); + return false; + } + if (!this.currentUserId) { + this.$modal.msgError("请选择委派用户"); + return false; + } + this.taskForm.userId = this.currentUserId; + delegate(this.taskForm).then(res => { + this.$modal.msgSuccess(res.msg); + this.goBack(); + }); + }, + submitTransfer() { + if (!this.taskForm.comment) { + this.$modal.msgError("请输入审批意见"); + return false; + } + if (!this.currentUserId) { + this.$modal.msgError("请选择受理用户"); + return false; + } + this.taskForm.userId = this.currentUserId; + transfer(this.taskForm).then(res => { + this.$modal.msgSuccess(res.msg); + this.goBack(); + }); + }, /** 可退回任务列表 */ handleReturn() { this.$refs['taskForm'].validate(valid => { @@ -473,32 +591,7 @@ export default { }); } }); - }, - /** 取消回退任务按钮 */ - cancelTask() { - this.taskForm.returnTaskShow = false; - this.taskForm.defaultTaskShow = true; - this.taskForm.sendUserShow = true; - this.returnTaskList = []; - }, - /** 委派任务 */ - submitDeleteTask() { - this.$refs["taskForm"].validate(valid => { - if (valid) { - delegate(this.taskForm).then(response => { - this.$modal.msgSuccess(response.msg); - this.goBack(); - }); - } - }); - }, - /** 取消回退任务按钮 */ - cancelDelegateTask() { - this.taskForm.delegateTaskOpen = false; - this.taskForm.defaultTaskShow = true; - this.taskForm.sendUserShow = true; - this.returnTaskList = []; - }, + } } };