Commit a829e8d083380bca2db19fb411a4655fd8f3f02b
1 parent
3f90e79d
初步完善模型发布流程
Showing
9 changed files
with
236 additions
and
148 deletions
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/workflow/ModelController.java
| 1 | package cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow; | 1 | package cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow; |
| 2 | 2 | ||
| 3 | -import cn.hutool.core.util.StrUtil; | ||
| 4 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.FileResp; | 3 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.FileResp; |
| 5 | -import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.TodoTaskRespVO; | ||
| 6 | -import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelCreateVO; | ||
| 7 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelPageReqVo; | 4 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelPageReqVo; |
| 8 | -import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelRespVo; | ||
| 9 | -import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelUpdateVO; | 5 | +import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelVO; |
| 10 | import cn.iocoder.yudao.adminserver.modules.bpm.service.workflow.BpmModelService; | 6 | import cn.iocoder.yudao.adminserver.modules.bpm.service.workflow.BpmModelService; |
| 11 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 7 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 12 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 8 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 13 | import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; | 9 | import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; |
| 14 | -import com.fasterxml.jackson.databind.ObjectMapper; | ||
| 15 | -import com.fasterxml.jackson.databind.node.ObjectNode; | ||
| 16 | import io.swagger.annotations.Api; | 10 | import io.swagger.annotations.Api; |
| 17 | import io.swagger.annotations.ApiOperation; | 11 | import io.swagger.annotations.ApiOperation; |
| 18 | import lombok.RequiredArgsConstructor; | 12 | import lombok.RequiredArgsConstructor; |
| 19 | import lombok.extern.slf4j.Slf4j; | 13 | import lombok.extern.slf4j.Slf4j; |
| 20 | -import org.activiti.engine.*; | ||
| 21 | import org.activiti.engine.repository.Model; | 14 | import org.activiti.engine.repository.Model; |
| 22 | -import org.springframework.beans.factory.annotation.Autowired; | ||
| 23 | -import org.springframework.stereotype.Controller; | ||
| 24 | import org.springframework.web.bind.annotation.*; | 15 | import org.springframework.web.bind.annotation.*; |
| 25 | 16 | ||
| 26 | -import javax.servlet.http.HttpServletRequest; | ||
| 27 | import javax.servlet.http.HttpServletResponse; | 17 | import javax.servlet.http.HttpServletResponse; |
| 28 | import java.io.IOException; | 18 | import java.io.IOException; |
| 29 | -import java.io.UnsupportedEncodingException; | ||
| 30 | 19 | ||
| 31 | /** | 20 | /** |
| 32 | * 工作流模型 | 21 | * 工作流模型 |
| @@ -49,14 +38,14 @@ public class ModelController { | @@ -49,14 +38,14 @@ public class ModelController { | ||
| 49 | 38 | ||
| 50 | @PostMapping("/create") | 39 | @PostMapping("/create") |
| 51 | @ApiOperation(value = "新建模型") | 40 | @ApiOperation(value = "新建模型") |
| 52 | - public CommonResult<String> newModel(@RequestBody ModelCreateVO modelCreateVO) { | ||
| 53 | - return bpmModelService.newModel(modelCreateVO); | 41 | + public CommonResult<String> newModel(@RequestBody ModelVO modelVO) { |
| 42 | + return bpmModelService.newModel(modelVO); | ||
| 54 | } | 43 | } |
| 55 | 44 | ||
| 56 | @PostMapping("/update") | 45 | @PostMapping("/update") |
| 57 | @ApiOperation(value = "修改模型属性") | 46 | @ApiOperation(value = "修改模型属性") |
| 58 | - public CommonResult<String> updateModel(@RequestBody ModelUpdateVO modelUpdateVO) { | ||
| 59 | - return bpmModelService.updateModel(modelUpdateVO); | 47 | + public CommonResult<String> updateModel(@RequestBody ModelVO modelVO) { |
| 48 | + return bpmModelService.updateModel(modelVO); | ||
| 60 | } | 49 | } |
| 61 | 50 | ||
| 62 | @PostMapping("/delete") | 51 | @PostMapping("/delete") |
| @@ -72,9 +61,9 @@ public class ModelController { | @@ -72,9 +61,9 @@ public class ModelController { | ||
| 72 | } | 61 | } |
| 73 | 62 | ||
| 74 | @GetMapping("/exportBpmnXml") | 63 | @GetMapping("/exportBpmnXml") |
| 75 | - @ApiOperation(value = "导出模型") | ||
| 76 | - public void export(@RequestParam String deploymentId, HttpServletResponse response) throws IOException { | ||
| 77 | - FileResp fileResp = bpmModelService.exportBpmnXml(deploymentId); | 64 | + @ApiOperation(value = "导出模型Xml") |
| 65 | + public void export(@RequestParam String modelId, HttpServletResponse response) throws IOException { | ||
| 66 | + FileResp fileResp = bpmModelService.exportBpmnXml(modelId); | ||
| 78 | ServletUtils.writeAttachment(response, fileResp.getFileName(), fileResp.getFileByte()); | 67 | ServletUtils.writeAttachment(response, fileResp.getFileName(), fileResp.getFileByte()); |
| 79 | } | 68 | } |
| 80 | 69 |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/workflow/vo/model/ModelCreateVO.java deleted
| 1 | -package cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model; | ||
| 2 | - | ||
| 3 | -import io.swagger.annotations.ApiModelProperty; | ||
| 4 | -import lombok.Data; | ||
| 5 | - | ||
| 6 | -/** | ||
| 7 | - * 新增模型 VO | ||
| 8 | - * @author yunlongn | ||
| 9 | - */ | ||
| 10 | -@Data | ||
| 11 | -public class ModelCreateVO { | ||
| 12 | - | ||
| 13 | - @ApiModelProperty(value = "模型名字", required = true) | ||
| 14 | - private String name; | ||
| 15 | - | ||
| 16 | - @ApiModelProperty(value = "模型描述") | ||
| 17 | - private String description; | ||
| 18 | - | ||
| 19 | - @ApiModelProperty(value = "版本号") | ||
| 20 | - private Integer revision; | ||
| 21 | - | ||
| 22 | - @ApiModelProperty(value = "key值") | ||
| 23 | - private String key; | ||
| 24 | -} |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/workflow/vo/model/ModelUpdateVO.java renamed to yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/workflow/vo/model/ModelVO.java
| @@ -8,9 +8,9 @@ import lombok.Data; | @@ -8,9 +8,9 @@ import lombok.Data; | ||
| 8 | * @author yunlongn | 8 | * @author yunlongn |
| 9 | */ | 9 | */ |
| 10 | @Data | 10 | @Data |
| 11 | -public class ModelUpdateVO { | 11 | +public class ModelVO { |
| 12 | 12 | ||
| 13 | - @ApiModelProperty(value = "模型Id", required = true) | 13 | + @ApiModelProperty(value = "模型Id") |
| 14 | private String id; | 14 | private String id; |
| 15 | 15 | ||
| 16 | @ApiModelProperty(value = "模型名字", required = true) | 16 | @ApiModelProperty(value = "模型名字", required = true) |
| @@ -27,6 +27,4 @@ public class ModelUpdateVO { | @@ -27,6 +27,4 @@ public class ModelUpdateVO { | ||
| 27 | 27 | ||
| 28 | @ApiModelProperty(value = "bpmnXml") | 28 | @ApiModelProperty(value = "bpmnXml") |
| 29 | private String bpmnXml; | 29 | private String bpmnXml; |
| 30 | - | ||
| 31 | - | ||
| 32 | } | 30 | } |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/workflow/BpmModelService.java
| 1 | package cn.iocoder.yudao.adminserver.modules.bpm.service.workflow; | 1 | package cn.iocoder.yudao.adminserver.modules.bpm.service.workflow; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.FileResp; | 3 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.FileResp; |
| 4 | -import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelCreateVO; | ||
| 5 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelPageReqVo; | 4 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelPageReqVo; |
| 6 | -import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelRespVo; | ||
| 7 | -import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelUpdateVO; | 5 | +import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelVO; |
| 8 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 6 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 9 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 7 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 10 | import org.activiti.engine.repository.Model; | 8 | import org.activiti.engine.repository.Model; |
| 11 | 9 | ||
| 12 | -import javax.servlet.http.HttpServletResponse; | ||
| 13 | - | ||
| 14 | /** | 10 | /** |
| 15 | * 工作流模型接口 | 11 | * 工作流模型接口 |
| 16 | * @author yunlongn | 12 | * @author yunlongn |
| @@ -27,16 +23,16 @@ public interface BpmModelService { | @@ -27,16 +23,16 @@ public interface BpmModelService { | ||
| 27 | 23 | ||
| 28 | /** | 24 | /** |
| 29 | * 新增一个模型 | 25 | * 新增一个模型 |
| 30 | - * @param modelCreateVO 模型对象 | 26 | + * @param modelVO 模型对象 |
| 31 | * @return 返回成功 | 27 | * @return 返回成功 |
| 32 | */ | 28 | */ |
| 33 | - CommonResult<String> newModel(ModelCreateVO modelCreateVO); | 29 | + CommonResult<String> newModel(ModelVO modelVO); |
| 34 | /** | 30 | /** |
| 35 | * 修改模型属性,填充bpmn数据 | 31 | * 修改模型属性,填充bpmn数据 |
| 36 | - * @param modelUpdateVO 模型对象 | 32 | + * @param modelVO 模型对象 |
| 37 | * @return 返回成功 | 33 | * @return 返回成功 |
| 38 | */ | 34 | */ |
| 39 | - CommonResult<String> updateModel(ModelUpdateVO modelUpdateVO); | 35 | + CommonResult<String> updateModel(ModelVO modelVO); |
| 40 | 36 | ||
| 41 | /** | 37 | /** |
| 42 | * 部署模型 使模型成为一个 process | 38 | * 部署模型 使模型成为一个 process |
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/workflow/impl/BpmModelServiceImpl.java
| 1 | package cn.iocoder.yudao.adminserver.modules.bpm.service.workflow.impl; | 1 | package cn.iocoder.yudao.adminserver.modules.bpm.service.workflow.impl; |
| 2 | 2 | ||
| 3 | -import cn.hutool.core.io.IoUtil; | ||
| 4 | import cn.hutool.core.util.StrUtil; | 3 | import cn.hutool.core.util.StrUtil; |
| 5 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.FileResp; | 4 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.FileResp; |
| 6 | -import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelCreateVO; | ||
| 7 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelPageReqVo; | 5 | import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelPageReqVo; |
| 8 | -import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelRespVo; | ||
| 9 | -import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelUpdateVO; | 6 | +import cn.iocoder.yudao.adminserver.modules.bpm.controller.workflow.vo.model.ModelVO; |
| 10 | import cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants; | 7 | import cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants; |
| 11 | import cn.iocoder.yudao.adminserver.modules.bpm.service.workflow.BpmModelService; | 8 | import cn.iocoder.yudao.adminserver.modules.bpm.service.workflow.BpmModelService; |
| 12 | import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; | 9 | import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; |
| @@ -15,26 +12,20 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; | @@ -15,26 +12,20 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 15 | import cn.iocoder.yudao.framework.common.util.json.JsonUtils; | 12 | import cn.iocoder.yudao.framework.common.util.json.JsonUtils; |
| 16 | import lombok.RequiredArgsConstructor; | 13 | import lombok.RequiredArgsConstructor; |
| 17 | import lombok.extern.slf4j.Slf4j; | 14 | import lombok.extern.slf4j.Slf4j; |
| 18 | -import org.activiti.api.runtime.shared.query.Pageable; | ||
| 19 | import org.activiti.bpmn.converter.BpmnXMLConverter; | 15 | import org.activiti.bpmn.converter.BpmnXMLConverter; |
| 20 | import org.activiti.bpmn.model.BpmnModel; | 16 | import org.activiti.bpmn.model.BpmnModel; |
| 21 | import org.activiti.engine.RepositoryService; | 17 | import org.activiti.engine.RepositoryService; |
| 22 | import org.activiti.engine.repository.Deployment; | 18 | import org.activiti.engine.repository.Deployment; |
| 23 | import org.activiti.engine.repository.Model; | 19 | import org.activiti.engine.repository.Model; |
| 24 | import org.activiti.engine.repository.ModelQuery; | 20 | import org.activiti.engine.repository.ModelQuery; |
| 25 | -import org.activiti.engine.repository.ProcessDefinition; | ||
| 26 | import org.apache.commons.lang3.exception.ExceptionUtils; | 21 | import org.apache.commons.lang3.exception.ExceptionUtils; |
| 27 | import org.springframework.stereotype.Service; | 22 | import org.springframework.stereotype.Service; |
| 28 | import org.springframework.util.ObjectUtils; | 23 | import org.springframework.util.ObjectUtils; |
| 29 | 24 | ||
| 30 | -import javax.servlet.http.HttpServletResponse; | ||
| 31 | import javax.xml.stream.XMLInputFactory; | 25 | import javax.xml.stream.XMLInputFactory; |
| 32 | import javax.xml.stream.XMLStreamReader; | 26 | import javax.xml.stream.XMLStreamReader; |
| 33 | import java.io.ByteArrayInputStream; | 27 | import java.io.ByteArrayInputStream; |
| 34 | -import java.io.IOException; | ||
| 35 | -import java.io.InputStream; | ||
| 36 | import java.io.InputStreamReader; | 28 | import java.io.InputStreamReader; |
| 37 | -import java.net.URLEncoder; | ||
| 38 | import java.nio.charset.StandardCharsets; | 29 | import java.nio.charset.StandardCharsets; |
| 39 | import java.util.List; | 30 | import java.util.List; |
| 40 | import java.util.Optional; | 31 | import java.util.Optional; |
| @@ -64,64 +55,67 @@ public class BpmModelServiceImpl implements BpmModelService { | @@ -64,64 +55,67 @@ public class BpmModelServiceImpl implements BpmModelService { | ||
| 64 | } | 55 | } |
| 65 | 56 | ||
| 66 | @Override | 57 | @Override |
| 67 | - public CommonResult<String> newModel(ModelCreateVO modelCreateVO) { | 58 | + public CommonResult<String> newModel(ModelVO modelVO) { |
| 68 | try { | 59 | try { |
| 69 | //初始化一个空模型 | 60 | //初始化一个空模型 |
| 70 | Model model = repositoryService.newModel(); | 61 | Model model = repositoryService.newModel(); |
| 71 | - String name = Optional.ofNullable(modelCreateVO.getName()).orElse("new-process"); | 62 | + String name = Optional.ofNullable(modelVO.getName()).orElse("new-process"); |
| 72 | //设置一些默认信息 | 63 | //设置一些默认信息 |
| 73 | model.setName(name); | 64 | model.setName(name); |
| 74 | - model.setKey(Optional.ofNullable(modelCreateVO.getKey()).orElse("processKey")); | ||
| 75 | - model.setMetaInfo(JsonUtils.toJsonString(modelCreateVO)); | 65 | + model.setKey(Optional.ofNullable(modelVO.getKey()).orElse("processKey")); |
| 66 | + model.setMetaInfo(JsonUtils.toJsonString(modelVO)); | ||
| 76 | repositoryService.saveModel(model); | 67 | repositoryService.saveModel(model); |
| 77 | - return CommonResult.success("保存成功"); | 68 | + if (!ObjectUtils.isEmpty(modelVO.getBpmnXml())) { |
| 69 | + repositoryService.addModelEditorSource(model.getId(), modelVO.getBpmnXml().getBytes(StandardCharsets.UTF_8)); | ||
| 70 | + } | ||
| 71 | + return CommonResult.success(model.getId()); | ||
| 78 | }catch (Exception e){ | 72 | }catch (Exception e){ |
| 79 | - log.info("模型创建失败!modelCreateVO = {} e = {} ", modelCreateVO, ExceptionUtils.getStackTrace(e)); | 73 | + log.info("模型创建失败!modelVO = {} e = {} ", modelVO, ExceptionUtils.getStackTrace(e)); |
| 80 | throw ServiceExceptionUtil.exception(BpmErrorCodeConstants.BPMN_MODEL_ERROR); | 74 | throw ServiceExceptionUtil.exception(BpmErrorCodeConstants.BPMN_MODEL_ERROR); |
| 81 | } | 75 | } |
| 82 | 76 | ||
| 83 | } | 77 | } |
| 84 | 78 | ||
| 85 | @Override | 79 | @Override |
| 86 | - public CommonResult<String> updateModel(ModelUpdateVO modelUpdateVO) { | 80 | + public CommonResult<String> updateModel(ModelVO modelVO) { |
| 87 | try { | 81 | try { |
| 88 | - Model model = repositoryService.getModel(modelUpdateVO.getId()); | 82 | + Model model = repositoryService.getModel(modelVO.getId()); |
| 89 | if (ObjectUtils.isEmpty(model)) { | 83 | if (ObjectUtils.isEmpty(model)) { |
| 90 | throw ServiceExceptionUtil.exception(BpmErrorCodeConstants.BPMN_MODEL_EDITOR_SOURCE_NOT_EXISTS); | 84 | throw ServiceExceptionUtil.exception(BpmErrorCodeConstants.BPMN_MODEL_EDITOR_SOURCE_NOT_EXISTS); |
| 91 | } | 85 | } |
| 92 | // 只能修改名字跟描述 | 86 | // 只能修改名字跟描述 |
| 93 | - ModelCreateVO modelCreateVO = JsonUtils.parseObject(model.getMetaInfo(), ModelCreateVO.class); | 87 | + ModelVO modelCreateVO = JsonUtils.parseObject(model.getMetaInfo(), ModelVO.class); |
| 94 | if (ObjectUtils.isEmpty(modelCreateVO)) { | 88 | if (ObjectUtils.isEmpty(modelCreateVO)) { |
| 95 | - modelCreateVO = new ModelCreateVO(); | 89 | + modelCreateVO = new ModelVO(); |
| 96 | } | 90 | } |
| 97 | - modelCreateVO.setName(modelUpdateVO.getName()); | ||
| 98 | - modelCreateVO.setDescription(modelUpdateVO.getDescription()); | 91 | + modelCreateVO.setName(modelVO.getName()); |
| 92 | + modelCreateVO.setDescription(modelVO.getDescription()); | ||
| 99 | model.setMetaInfo(JsonUtils.toJsonString(modelCreateVO)); | 93 | model.setMetaInfo(JsonUtils.toJsonString(modelCreateVO)); |
| 100 | - model.setName(modelUpdateVO.getName()); | 94 | + model.setName(modelVO.getName()); |
| 95 | + model.setKey(modelVO.getKey()); | ||
| 101 | // 更新模型 | 96 | // 更新模型 |
| 102 | repositoryService.saveModel(model); | 97 | repositoryService.saveModel(model); |
| 103 | 98 | ||
| 104 | - repositoryService.addModelEditorSource(model.getId(), modelUpdateVO.getBpmnXml().getBytes(StandardCharsets.UTF_8)); | 99 | + repositoryService.addModelEditorSource(model.getId(), modelVO.getBpmnXml().getBytes(StandardCharsets.UTF_8)); |
| 105 | 100 | ||
| 106 | return CommonResult.success("保存成功"); | 101 | return CommonResult.success("保存成功"); |
| 107 | }catch (Exception e){ | 102 | }catch (Exception e){ |
| 108 | - log.info("模型更新失败!modelUpdateVO = {} e = {} ", modelUpdateVO, ExceptionUtils.getStackTrace(e)); | 103 | + log.info("模型更新失败!modelVO = {}", modelVO, e); |
| 109 | throw ServiceExceptionUtil.exception(BpmErrorCodeConstants.BPMN_MODEL_ERROR); | 104 | throw ServiceExceptionUtil.exception(BpmErrorCodeConstants.BPMN_MODEL_ERROR); |
| 110 | } | 105 | } |
| 111 | } | 106 | } |
| 112 | 107 | ||
| 113 | @Override | 108 | @Override |
| 114 | public CommonResult<String> deploy(String modelId) { | 109 | public CommonResult<String> deploy(String modelId) { |
| 115 | - // 获取模型 | ||
| 116 | - Model modelData = repositoryService.getModel(modelId); | ||
| 117 | - if (ObjectUtils.isEmpty(modelData)) { | ||
| 118 | - throw ServiceExceptionUtil.exception(BpmErrorCodeConstants.BPMN_MODEL_EDITOR_SOURCE_NOT_EXISTS); | ||
| 119 | - } | ||
| 120 | - byte[] bytes = repositoryService.getModelEditorSource(modelData.getId()); | ||
| 121 | - if (bytes == null) { | ||
| 122 | - throw ServiceExceptionUtil.exception(BpmErrorCodeConstants.BPMN_MODEL_EDITOR_SOURCE_NOT_EXISTS); | ||
| 123 | - } | ||
| 124 | try { | 110 | try { |
| 111 | + Model modelData = repositoryService.getModel(modelId); | ||
| 112 | + if (ObjectUtils.isEmpty(modelData)) { | ||
| 113 | + throw ServiceExceptionUtil.exception(BpmErrorCodeConstants.BPMN_MODEL_EDITOR_SOURCE_NOT_EXISTS); | ||
| 114 | + } | ||
| 115 | + byte[] bytes = repositoryService.getModelEditorSource(modelData.getId()); | ||
| 116 | + if (bytes == null) { | ||
| 117 | + throw ServiceExceptionUtil.exception(BpmErrorCodeConstants.BPMN_MODEL_EDITOR_SOURCE_NOT_EXISTS); | ||
| 118 | + } | ||
| 125 | // 将xml转换为流 | 119 | // 将xml转换为流 |
| 126 | ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes); | 120 | ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes); |
| 127 | XMLInputFactory xif = XMLInputFactory.newInstance(); | 121 | XMLInputFactory xif = XMLInputFactory.newInstance(); |
| @@ -148,21 +142,21 @@ public class BpmModelServiceImpl implements BpmModelService { | @@ -148,21 +142,21 @@ public class BpmModelServiceImpl implements BpmModelService { | ||
| 148 | } | 142 | } |
| 149 | 143 | ||
| 150 | @Override | 144 | @Override |
| 151 | - public FileResp exportBpmnXml(String deploymentId) { | ||
| 152 | - | ||
| 153 | - // 查询流程定义 | ||
| 154 | - ProcessDefinition pd = repositoryService.createProcessDefinitionQuery().deploymentId(deploymentId).singleResult(); | ||
| 155 | - if (ObjectUtils.isEmpty(pd)) { | ||
| 156 | - throw ServiceExceptionUtil.exception(BpmErrorCodeConstants.BPMN_PROCESS_DEFINITION_NOT_EXISTS); | 145 | + public FileResp exportBpmnXml(String modelId) { |
| 146 | + try { | ||
| 147 | + Model modelData = repositoryService.getModel(modelId); | ||
| 148 | + if (ObjectUtils.isEmpty(modelData)) { | ||
| 149 | + throw ServiceExceptionUtil.exception(BpmErrorCodeConstants.BPMN_MODEL_EDITOR_SOURCE_NOT_EXISTS); | ||
| 150 | + } | ||
| 151 | + byte[] bytes = repositoryService.getModelEditorSource(modelData.getId()); | ||
| 152 | + FileResp fileResp = new FileResp(); | ||
| 153 | + fileResp.setFileName(String.format("%s.bpmn", Optional.ofNullable(modelData.getName()).orElse("流程图"))); | ||
| 154 | + fileResp.setFileByte(bytes); | ||
| 155 | + return fileResp; | ||
| 156 | + } catch (Exception e) { | ||
| 157 | + log.info("模型部署失败!modelId = {} e = {} ", modelId, ExceptionUtils.getStackTrace(e)); | ||
| 158 | + throw ServiceExceptionUtil.exception(BpmErrorCodeConstants.BPMN_MODEL_ERROR); | ||
| 157 | } | 159 | } |
| 158 | - String resourceName = Optional.ofNullable(pd.getDiagramResourceName()).orElse(pd.getResourceName()); | ||
| 159 | - InputStream inputStream = repositoryService.getResourceAsStream(deploymentId, | ||
| 160 | - resourceName); | ||
| 161 | - FileResp fileResp = new FileResp(); | ||
| 162 | - | ||
| 163 | - fileResp.setFileName(String.format("%s.bpmn", Optional.ofNullable(pd.getName()).orElse("流程图"))); | ||
| 164 | - fileResp.setFileByte(IoUtil.readBytes(inputStream)); | ||
| 165 | - return fileResp; | ||
| 166 | } | 160 | } |
| 167 | 161 | ||
| 168 | @Override | 162 | @Override |
yudao-admin-ui/src/api/bpm/model.js
| @@ -8,3 +8,41 @@ export function page(query) { | @@ -8,3 +8,41 @@ export function page(query) { | ||
| 8 | params: query | 8 | params: query |
| 9 | }) | 9 | }) |
| 10 | } | 10 | } |
| 11 | +export function exportBpmnXml(query) { | ||
| 12 | + return request({ | ||
| 13 | + url: '/workflow/models/exportBpmnXml', | ||
| 14 | + method: 'get', | ||
| 15 | + params: query | ||
| 16 | + }) | ||
| 17 | +} | ||
| 18 | + | ||
| 19 | +export function modelUpdate(data) { | ||
| 20 | + return request({ | ||
| 21 | + url: '/workflow/models/update', | ||
| 22 | + method: 'POST', | ||
| 23 | + data: data | ||
| 24 | + }) | ||
| 25 | +} | ||
| 26 | + | ||
| 27 | +export function modelSave(data) { | ||
| 28 | + return request({ | ||
| 29 | + url: '/workflow/models/create', | ||
| 30 | + method: 'POST', | ||
| 31 | + data: data | ||
| 32 | + }) | ||
| 33 | +} | ||
| 34 | + | ||
| 35 | +export function modelDelete(data) { | ||
| 36 | + return request({ | ||
| 37 | + url: '/workflow/models/delete?modelId='+ data.modelId, | ||
| 38 | + method: 'POST', | ||
| 39 | + data: data | ||
| 40 | + }) | ||
| 41 | +} | ||
| 42 | +export function modelDeploy(data) { | ||
| 43 | + return request({ | ||
| 44 | + url: '/workflow/models/deploy?modelId='+ data.modelId, | ||
| 45 | + method: 'POST', | ||
| 46 | + data: data | ||
| 47 | + }) | ||
| 48 | +} |
yudao-admin-ui/src/components/bpmn/Header.vue
| @@ -2,10 +2,7 @@ | @@ -2,10 +2,7 @@ | ||
| 2 | <div> | 2 | <div> |
| 3 | <el-button-group> | 3 | <el-button-group> |
| 4 | <el-tooltip class="item" effect="dark" content="保存并发布" placement="bottom"> | 4 | <el-tooltip class="item" effect="dark" content="保存并发布" placement="bottom"> |
| 5 | - <el-button type="primary" size="small" @click="deploy"><i class="fa fa-save"> 保存并发布</i></el-button> | ||
| 6 | - </el-tooltip> | ||
| 7 | - <el-tooltip class="item" effect="dark" content="保存草稿" placement="bottom"> | ||
| 8 | - <el-button type="primary" size="small" @click="save"><i class="fa fa-save"> 保存草稿</i></el-button> | 5 | + <el-button type="primary" size="small" @click="save"><i class="fa fa-save"> 保存</i></el-button> |
| 9 | </el-tooltip> | 6 | </el-tooltip> |
| 10 | <el-tooltip class="item" effect="dark" content="打开流程文件" placement="bottom"> | 7 | <el-tooltip class="item" effect="dark" content="打开流程文件" placement="bottom"> |
| 11 | <el-button type="primary" size="small" @click="importXml"><i class="fa fa-folder-open"></i></el-button> | 8 | <el-button type="primary" size="small" @click="importXml"><i class="fa fa-folder-open"></i></el-button> |
| @@ -32,10 +29,13 @@ | @@ -32,10 +29,13 @@ | ||
| 32 | <el-tooltip class="item" effect="dark" content="缩小" placement="bottom"> | 29 | <el-tooltip class="item" effect="dark" content="缩小" placement="bottom"> |
| 33 | <el-button size="small" @click="zoom(-0.05)"><i class="fa fa-search-minus"></i></el-button> | 30 | <el-button size="small" @click="zoom(-0.05)"><i class="fa fa-search-minus"></i></el-button> |
| 34 | </el-tooltip> | 31 | </el-tooltip> |
| 35 | - <el-tooltip class="item" effect="dark" content="重置" placement="bottom"> | 32 | + <el-tooltip class="item" effect="dark" content="重置大小" placement="bottom"> |
| 36 | <el-button size="small" @click="zoom(0)"><i class="fa fa-arrows"></i></el-button> | 33 | <el-button size="small" @click="zoom(0)"><i class="fa fa-arrows"></i></el-button> |
| 37 | </el-tooltip> | 34 | </el-tooltip> |
| 38 | </el-button-group> | 35 | </el-button-group> |
| 36 | + | ||
| 37 | + <div class="closeClass" @click="beforeClose()"><i class="el-icon-close"></i></div> | ||
| 38 | + | ||
| 39 | </div> | 39 | </div> |
| 40 | </template> | 40 | </template> |
| 41 | 41 | ||
| @@ -74,15 +74,15 @@ | @@ -74,15 +74,15 @@ | ||
| 74 | } | 74 | } |
| 75 | _svg = svg; | 75 | _svg = svg; |
| 76 | }) | 76 | }) |
| 77 | - that.post(this.Apis.deployProcess, { | ||
| 78 | - processKey: "s1111", | ||
| 79 | - processName: "阿达达", | ||
| 80 | - resourceName: "test01", | ||
| 81 | - xml: _xml, | ||
| 82 | - svg: _svg | ||
| 83 | - }, function (data) { | ||
| 84 | - console.log(data) | ||
| 85 | - }); | 77 | + // that.post(this.Apis.deployProcess, { |
| 78 | + // processKey: "s1111", | ||
| 79 | + // processName: "阿达达", | ||
| 80 | + // resourceName: "test01", | ||
| 81 | + // xml: _xml, | ||
| 82 | + // svg: _svg | ||
| 83 | + // }, function (data) { | ||
| 84 | + // console.log(data) | ||
| 85 | + // }); | ||
| 86 | }, | 86 | }, |
| 87 | save(){ | 87 | save(){ |
| 88 | let that = this; | 88 | let that = this; |
| @@ -129,11 +129,24 @@ | @@ -129,11 +129,24 @@ | ||
| 129 | let newScale = !val ? 1.0 : ((this.scale + val) <= 0.2) ? 0.2 : (this.scale + val); | 129 | let newScale = !val ? 1.0 : ((this.scale + val) <= 0.2) ? 0.2 : (this.scale + val); |
| 130 | this.modeler.get('canvas').zoom(newScale); | 130 | this.modeler.get('canvas').zoom(newScale); |
| 131 | this.scale = newScale; | 131 | this.scale = newScale; |
| 132 | + }, | ||
| 133 | + beforeClose(val) { | ||
| 134 | + this.$emit("beforeClose"); | ||
| 132 | } | 135 | } |
| 133 | } | 136 | } |
| 134 | } | 137 | } |
| 135 | </script> | 138 | </script> |
| 136 | 139 | ||
| 137 | <style scoped> | 140 | <style scoped> |
| 141 | +.closeClass{ | ||
| 142 | + | ||
| 143 | + float: right; | ||
| 144 | + width: 50px; | ||
| 145 | + height: 50px; | ||
| 146 | + font-size: 20px; | ||
| 147 | +} | ||
| 138 | 148 | ||
| 149 | +.closeClass:hover{ | ||
| 150 | + cursor:pointer; | ||
| 151 | +} | ||
| 139 | </style> | 152 | </style> |
yudao-admin-ui/src/components/bpmn/VueBpmn.vue
| @@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
| 4 | <el-row> | 4 | <el-row> |
| 5 | <el-col :span="24"> | 5 | <el-col :span="24"> |
| 6 | <vue-header class="bpmn-viewer-header" :processData="initData" :modeler="bpmnModeler" @restart="restart" @importXml="importXml" | 6 | <vue-header class="bpmn-viewer-header" :processData="initData" :modeler="bpmnModeler" @restart="restart" @importXml="importXml" |
| 7 | - @handleExportSvg="handleExportSvg" @handleExportBpmn="handleExportBpmn" @processSave="processSave"></vue-header> | 7 | + @handleExportSvg="handleExportSvg" @handleExportBpmn="handleExportBpmn" @processSave="processSave" @beforeClose="beforeClose"></vue-header> |
| 8 | </el-col> | 8 | </el-col> |
| 9 | </el-row> | 9 | </el-row> |
| 10 | <el-row style="margin-left: 1%"> | 10 | <el-row style="margin-left: 1%"> |
| @@ -61,6 +61,7 @@ | @@ -61,6 +61,7 @@ | ||
| 61 | }, | 61 | }, |
| 62 | props: { | 62 | props: { |
| 63 | product: String, | 63 | product: String, |
| 64 | + bpmnData: Object, | ||
| 64 | bpmnXml: { | 65 | bpmnXml: { |
| 65 | type: String, | 66 | type: String, |
| 66 | required: false | 67 | required: false |
| @@ -80,8 +81,13 @@ | @@ -80,8 +81,13 @@ | ||
| 80 | mounted() { | 81 | mounted() { |
| 81 | let processId = new Date().getTime(); | 82 | let processId = new Date().getTime(); |
| 82 | this.initTemplate = templateXml.initTemplate(processId) | 83 | this.initTemplate = templateXml.initTemplate(processId) |
| 83 | - this.initData = {key: "process" + processId, name: "流程" + processId, xml: this.initTemplate} | ||
| 84 | - if (this.bpmnXml != null) { | 84 | + |
| 85 | + this.initData = { | ||
| 86 | + key: this.bpmnData.key ? this.bpmnData.key : "process" + processId, | ||
| 87 | + name: this.bpmnData.name ? this.bpmnData.name : "流程" + processId, | ||
| 88 | + description: this.bpmnData.metaInfo ? JSON.parse(this.bpmnData.metaInfo).description : "" , | ||
| 89 | + xml: this.initTemplate} | ||
| 90 | + if (this.bpmnXml != null && this.bpmnXml !== "") { | ||
| 85 | this.initTemplate = this.bpmnXml | 91 | this.initTemplate = this.bpmnXml |
| 86 | } | 92 | } |
| 87 | this.init(); | 93 | this.init(); |
| @@ -205,14 +211,21 @@ | @@ -205,14 +211,21 @@ | ||
| 205 | }, | 211 | }, |
| 206 | processSave(data){ | 212 | processSave(data){ |
| 207 | let initData = this.initData; | 213 | let initData = this.initData; |
| 208 | - data.procId = initData.key; | ||
| 209 | - data.name = initData.name; | ||
| 210 | - this.$emit("processSave",data); | 214 | + const dataXml = this.bpmnData |
| 215 | + dataXml.bpmnXml = this.xmlShow; | ||
| 216 | + dataXml.name = initData.name; | ||
| 217 | + dataXml.key = initData.key; | ||
| 218 | + dataXml.description = initData.description; | ||
| 219 | + this.$emit("processSave",dataXml); | ||
| 211 | }, | 220 | }, |
| 212 | restart() { | 221 | restart() { |
| 213 | let processId = new Date().getTime(); | 222 | let processId = new Date().getTime(); |
| 214 | this.initTemplate = templateXml.initTemplate(processId) | 223 | this.initTemplate = templateXml.initTemplate(processId) |
| 215 | - this.initData = {key: "process" + processId, name: "流程" + processId, xml: this.initTemplate} | 224 | + this.initData = { |
| 225 | + key: this.bpmnData.key ? this.bpmnData.key : "process" + processId, | ||
| 226 | + name: this.bpmnData.name ? this.bpmnData.name : "流程" + processId, | ||
| 227 | + description: this.bpmnData.metaInfo ? JSON.parse(this.bpmnData.metaInfo).description : "" , | ||
| 228 | + xml: this.initTemplate} | ||
| 216 | this.initDiagram(this.initTemplate) | 229 | this.initDiagram(this.initTemplate) |
| 217 | }, | 230 | }, |
| 218 | importXml() { | 231 | importXml() { |
| @@ -244,6 +257,9 @@ | @@ -244,6 +257,9 @@ | ||
| 244 | } | 257 | } |
| 245 | } | 258 | } |
| 246 | return moddleExtensions; | 259 | return moddleExtensions; |
| 260 | + }, | ||
| 261 | + beforeClose() { | ||
| 262 | + this.$emit("beforeClose"); | ||
| 247 | } | 263 | } |
| 248 | } | 264 | } |
| 249 | } | 265 | } |
yudao-admin-ui/src/views/bpm/model/index.vue
| @@ -10,17 +10,18 @@ | @@ -10,17 +10,18 @@ | ||
| 10 | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> | 10 | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| 11 | </el-form-item> | 11 | </el-form-item> |
| 12 | </el-form> | 12 | </el-form> |
| 13 | - | ||
| 14 | <el-row :gutter="10" class="mb8"> | 13 | <el-row :gutter="10" class="mb8"> |
| 15 | <el-col :span="1.5"> | 14 | <el-col :span="1.5"> |
| 16 | - <el-button type="warning" icon="el-icon-download" size="mini" @click="handleExport" | ||
| 17 | - v-hasPermi="['system:login-log:export']">导出</el-button> | ||
| 18 | - <el-button type="warning" icon="el-icon-download" size="mini" @click="openBpmn" | ||
| 19 | - v-hasPermi="['system:login-log:export']">新建</el-button> | 15 | + <el-button |
| 16 | + type="primary" | ||
| 17 | + icon="el-icon-plus" | ||
| 18 | + size="mini" | ||
| 19 | + @click="openBpmn" | ||
| 20 | + v-hasPermi="['infra:config:create']" | ||
| 21 | + >新建流程</el-button> | ||
| 20 | </el-col> | 22 | </el-col> |
| 21 | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> | 23 | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| 22 | </el-row> | 24 | </el-row> |
| 23 | - | ||
| 24 | <el-table v-loading="loading" :data="list"> | 25 | <el-table v-loading="loading" :data="list"> |
| 25 | <el-table-column label="ID" align="center" prop="id" /> | 26 | <el-table-column label="ID" align="center" prop="id" /> |
| 26 | <el-table-column label="name" align="center" prop="metaInfo" > | 27 | <el-table-column label="name" align="center" prop="metaInfo" > |
| @@ -33,18 +34,30 @@ | @@ -33,18 +34,30 @@ | ||
| 33 | <span>{{ JSON.parse(scope.row.metaInfo).description }}</span> | 34 | <span>{{ JSON.parse(scope.row.metaInfo).description }}</span> |
| 34 | </template> | 35 | </template> |
| 35 | </el-table-column> | 36 | </el-table-column> |
| 37 | + <el-table-column label="创建时间" align="center" prop="createTime" > | ||
| 38 | + <template slot-scope="scope"> | ||
| 39 | + <span>{{ parseTime(scope.row.createTime) }}</span> | ||
| 40 | + </template> | ||
| 41 | + </el-table-column> | ||
| 42 | + <el-table-column label="操作" align="center" > | ||
| 43 | + <template slot-scope="scope"> | ||
| 44 | + <el-button size="mini" type="text" icon="el-icon-setting" @click="change(scope.row)">设计流程</el-button> | ||
| 45 | + <el-button size="mini" type="text" icon="el-icon-delete" @click="modelDelete(scope.row)">删除</el-button> | ||
| 46 | + <el-button size="mini" type="text" icon="el-icon-thumb" @click="modelDeploy(scope.row)">发布</el-button> | ||
| 47 | + </template> | ||
| 48 | + </el-table-column> | ||
| 36 | </el-table> | 49 | </el-table> |
| 37 | 50 | ||
| 38 | <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" | 51 | <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" |
| 39 | @pagination="getList"/> | 52 | @pagination="getList"/> |
| 40 | - <el-dialog title="新建流程" :visible.sync="showBpmnBool" :before-close="close" :fullscreen="true"> | ||
| 41 | - <vue-bpmn product="activiti" @processSave="processSave"></vue-bpmn> | 53 | + <el-dialog :visible.sync="showBpmnBool" :before-close="close" :fullscreen="true"> |
| 54 | + <vue-bpmn v-if="showBpmnBool" product="activiti" @processSave="processSave" :bpmnXml="bpmnXML" :bpmnData="bpmnData" @beforeClose="close"></vue-bpmn> | ||
| 42 | </el-dialog> | 55 | </el-dialog> |
| 43 | </div> | 56 | </div> |
| 44 | </template> | 57 | </template> |
| 45 | 58 | ||
| 46 | <script> | 59 | <script> |
| 47 | -import { page } from "@/api/bpm/model"; | 60 | +import { page, exportBpmnXml, modelUpdate, modelSave, modelDelete, modelDeploy } from "@/api/bpm/model"; |
| 48 | import VueBpmn from "@/components/bpmn/VueBpmn"; | 61 | import VueBpmn from "@/components/bpmn/VueBpmn"; |
| 49 | 62 | ||
| 50 | export default { | 63 | export default { |
| @@ -61,6 +74,7 @@ export default { | @@ -61,6 +74,7 @@ export default { | ||
| 61 | // 表格数据 | 74 | // 表格数据 |
| 62 | list: [], | 75 | list: [], |
| 63 | bpmnXML: null, | 76 | bpmnXML: null, |
| 77 | + bpmnData: {}, | ||
| 64 | // 查询参数 | 78 | // 查询参数 |
| 65 | queryParams: { | 79 | queryParams: { |
| 66 | pageNo: 1, | 80 | pageNo: 1, |
| @@ -98,27 +112,81 @@ export default { | @@ -98,27 +112,81 @@ export default { | ||
| 98 | this.resetForm("queryForm"); | 112 | this.resetForm("queryForm"); |
| 99 | this.handleQuery(); | 113 | this.handleQuery(); |
| 100 | }, | 114 | }, |
| 101 | - /** 导出按钮操作 */ | ||
| 102 | - handleExport() { | ||
| 103 | - const queryParams = this.queryParams; | ||
| 104 | - this.$confirm('是否确认导出所有操作日志数据项?', "警告", { | ||
| 105 | - confirmButtonText: "确定", | ||
| 106 | - cancelButtonText: "取消", | ||
| 107 | - type: "warning" | ||
| 108 | - }).then(function() { | ||
| 109 | - return exportLoginLog(queryParams); | ||
| 110 | - }).then(response => { | ||
| 111 | - this.downloadExcel(response, '登录日志.xls'); | 115 | + processSave(data) { |
| 116 | + const that = this; | ||
| 117 | + // 如果存在id 说明是修改 | ||
| 118 | + if (data.id) { | ||
| 119 | + let postData = JSON.parse(data.metaInfo) | ||
| 120 | + postData.bpmnXml = data.bpmnXml | ||
| 121 | + postData.id = data.id | ||
| 122 | + postData.name = data.name | ||
| 123 | + postData.key = data.key | ||
| 124 | + postData.description = data.description | ||
| 125 | + modelUpdate(postData).then(response => { | ||
| 126 | + this.msgSuccess("保存成功"); | ||
| 112 | }) | 127 | }) |
| 113 | - }, | ||
| 114 | - processSave() { | ||
| 115 | - console.log("processSave") | 128 | + this.showBpmnBool = false |
| 129 | + this.getList(); | ||
| 130 | + return | ||
| 131 | + } | ||
| 132 | + modelSave(data).then(response => { | ||
| 133 | + that.bpmnData.id = response.data | ||
| 134 | + this.msgSuccess("保存成功"); | ||
| 135 | + }) | ||
| 136 | + | ||
| 137 | + this.showBpmnBool = false | ||
| 138 | + this.getList(); | ||
| 116 | }, | 139 | }, |
| 117 | openBpmn() { | 140 | openBpmn() { |
| 141 | + this.bpmnData = {} | ||
| 142 | + this.bpmnXML = "" | ||
| 118 | this.showBpmnBool = true | 143 | this.showBpmnBool = true |
| 119 | }, | 144 | }, |
| 120 | close() { | 145 | close() { |
| 121 | this.showBpmnBool = false | 146 | this.showBpmnBool = false |
| 147 | + this.getList(); | ||
| 148 | + }, | ||
| 149 | + change(row) { | ||
| 150 | + const that = this; | ||
| 151 | + this.bpmnXML = "" | ||
| 152 | + this.bpmnData = {} | ||
| 153 | + exportBpmnXml({ | ||
| 154 | + modelId: row.id | ||
| 155 | + }).then(response => { | ||
| 156 | + that.bpmnXML = response | ||
| 157 | + that.bpmnData = row | ||
| 158 | + that.showBpmnBool = true | ||
| 159 | + }) | ||
| 160 | + }, | ||
| 161 | + modelDelete(row) { | ||
| 162 | + const that = this; | ||
| 163 | + this.$confirm('是否删除该流程!!', "警告", { | ||
| 164 | + confirmButtonText: "确定", | ||
| 165 | + cancelButtonText: "取消", | ||
| 166 | + type: "warning" | ||
| 167 | + }).then(function() { | ||
| 168 | + modelDelete({ | ||
| 169 | + modelId: row.id | ||
| 170 | + }).then(response => { | ||
| 171 | + that.getList(); | ||
| 172 | + that.msgSuccess("删除成功"); | ||
| 173 | + }) | ||
| 174 | + }) | ||
| 175 | + }, | ||
| 176 | + modelDeploy(row) { | ||
| 177 | + const that = this; | ||
| 178 | + this.$confirm('是否部署该流程!!', "提示", { | ||
| 179 | + confirmButtonText: "确定", | ||
| 180 | + cancelButtonText: "取消", | ||
| 181 | + type: "success" | ||
| 182 | + }).then(function() { | ||
| 183 | + modelDeploy({ | ||
| 184 | + modelId: row.id | ||
| 185 | + }).then(response => { | ||
| 186 | + that.getList(); | ||
| 187 | + that.msgSuccess("部署成功"); | ||
| 188 | + }) | ||
| 189 | + }) | ||
| 122 | } | 190 | } |
| 123 | } | 191 | } |
| 124 | }; | 192 | }; |