Commit 1294506a95e851830fdfe2f5fe06b6f2d5eec7d3

Authored by YunaiV
1 parent df91c3ce

优化流程 Model 的更新逻辑

yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/model/BpmModelController.java
1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.model; 1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.model;
2 2
3 -import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelCreateReqVO;  
4 -import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelPageItemRespVO;  
5 -import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelRespVO;  
6 -import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.ModelPageReqVO; 3 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*;
7 import cn.iocoder.yudao.adminserver.modules.bpm.service.model.BpmModelService; 4 import cn.iocoder.yudao.adminserver.modules.bpm.service.model.BpmModelService;
8 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 5 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
9 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -49,16 +46,19 @@ public class BpmModelController { @@ -49,16 +46,19 @@ public class BpmModelController {
49 return success(bpmModelService.createModel(createRetVO)); 46 return success(bpmModelService.createModel(createRetVO));
50 } 47 }
51 48
52 - @PostMapping("/update")  
53 - @ApiOperation(value = "修改模型属性")  
54 - public CommonResult<String> updateModel(@RequestBody BpmModelCreateReqVO modelVO) {  
55 - return bpmModelService.updateModel(modelVO); 49 + @PutMapping("/update")
  50 + @ApiOperation(value = "修改模型")
  51 + public CommonResult<Boolean> updateModel(@RequestBody BpmModelUpdateReqVO modelVO) {
  52 + bpmModelService.updateModel(modelVO);
  53 + return success(true);
56 } 54 }
57 55
58 - @PostMapping("/delete")  
59 - @ApiOperation(value = "删除模型")  
60 - public CommonResult<String> deleteModel(@RequestParam String modelId) {  
61 - return bpmModelService.deleteModel(modelId); 56 + @DeleteMapping("/delete")
  57 + @ApiOperation("删除模型")
  58 + @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = String.class)
  59 + public CommonResult<Boolean> deleteModel(@RequestParam("id") String id) {
  60 + bpmModelService.deleteModel(id);
  61 + return success(true);
62 } 62 }
63 63
64 @PostMapping("/deploy") 64 @PostMapping("/deploy")
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/model/vo/BpmModelRespVO.java
@@ -6,14 +6,15 @@ import lombok.Data; @@ -6,14 +6,15 @@ import lombok.Data;
6 import lombok.EqualsAndHashCode; 6 import lombok.EqualsAndHashCode;
7 import lombok.ToString; 7 import lombok.ToString;
8 8
9 -import javax.validation.constraints.NotEmpty;  
10 -  
11 @ApiModel("流程模型的创建 Request VO") 9 @ApiModel("流程模型的创建 Request VO")
12 @Data 10 @Data
13 @EqualsAndHashCode(callSuper = true) 11 @EqualsAndHashCode(callSuper = true)
14 @ToString(callSuper = true) 12 @ToString(callSuper = true)
15 public class BpmModelRespVO extends BpmModelBaseVO { 13 public class BpmModelRespVO extends BpmModelBaseVO {
16 14
  15 + @ApiModelProperty(value = "编号", required = true, example = "1024")
  16 + private String id;
  17 +
17 @ApiModelProperty(value = "BPMN XML", required = true) 18 @ApiModelProperty(value = "BPMN XML", required = true)
18 private String bpmnXml; 19 private String bpmnXml;
19 20
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/model/vo/BpmModelUpdateReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo;
  2 +
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +import lombok.Data;
  6 +import lombok.EqualsAndHashCode;
  7 +import lombok.ToString;
  8 +
  9 +import javax.validation.constraints.NotEmpty;
  10 +
  11 +@ApiModel("流程模型的更新 Request VO")
  12 +@Data
  13 +@EqualsAndHashCode(callSuper = true)
  14 +@ToString(callSuper = true)
  15 +public class BpmModelUpdateReqVO extends BpmModelBaseVO {
  16 +
  17 + @ApiModelProperty(value = "编号", required = true, example = "1024")
  18 + @NotEmpty(message = "编号不能为空")
  19 + private String id;
  20 +
  21 + @ApiModelProperty(value = "BPMN XML", required = true)
  22 + @NotEmpty(message = "BPMN XML 不能为空")
  23 + private String bpmnXml;
  24 +
  25 +}
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/model/ModelConvert.java
@@ -3,6 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.convert.model; @@ -3,6 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.convert.model;
3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelCreateReqVO; 3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelCreateReqVO;
4 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelPageItemRespVO; 4 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelPageItemRespVO;
5 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelRespVO; 5 import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelRespVO;
  6 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelUpdateReqVO;
6 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.form.BpmFormDO; 7 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.form.BpmFormDO;
7 import cn.iocoder.yudao.adminserver.modules.bpm.service.model.dto.BpmModelMetaInfoRespDTO; 8 import cn.iocoder.yudao.adminserver.modules.bpm.service.model.dto.BpmModelMetaInfoRespDTO;
8 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 9 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
@@ -64,6 +65,12 @@ public interface ModelConvert { @@ -64,6 +65,12 @@ public interface ModelConvert {
64 model.setMetaInfo(JsonUtils.toJsonString(this.buildMetaInfo(bean.getDescription(), bean.getFormId()))); 65 model.setMetaInfo(JsonUtils.toJsonString(this.buildMetaInfo(bean.getDescription(), bean.getFormId())));
65 } 66 }
66 67
  68 + default void copy(Model model, BpmModelUpdateReqVO bean) {
  69 + model.setName(bean.getName());
  70 + model.setCategory(bean.getCategory());
  71 + model.setMetaInfo(JsonUtils.toJsonString(this.buildMetaInfo(bean.getDescription(), bean.getFormId())));
  72 + }
  73 +
67 default BpmModelMetaInfoRespDTO buildMetaInfo(String description, Long formId) { 74 default BpmModelMetaInfoRespDTO buildMetaInfo(String description, Long formId) {
68 BpmModelMetaInfoRespDTO metaInfo = new BpmModelMetaInfoRespDTO(); 75 BpmModelMetaInfoRespDTO metaInfo = new BpmModelMetaInfoRespDTO();
69 metaInfo.setDescription(description); 76 metaInfo.setDescription(description);
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/BpmErrorCodeConstants.java
@@ -25,8 +25,8 @@ public interface BpmErrorCodeConstants { @@ -25,8 +25,8 @@ public interface BpmErrorCodeConstants {
25 25
26 // ========== OA 工作流模块 1-009-002-000 ========== 26 // ========== OA 工作流模块 1-009-002-000 ==========
27 ErrorCode BPM_MODEL_KEY_EXISTS = new ErrorCode(1009002000, "已经存在流程标识为【{}】的流程"); 27 ErrorCode BPM_MODEL_KEY_EXISTS = new ErrorCode(1009002000, "已经存在流程标识为【{}】的流程");
  28 + ErrorCode BPMN_MODEL_NOT_EXISTS = new ErrorCode(1009002001, "流程模型不存在");
28 29
29 - ErrorCode BPMN_MODEL_EDITOR_SOURCE_NOT_EXISTS = new ErrorCode(1004001001, "模型数据为空,请先成功设计流程并保存");  
30 ErrorCode BPMN_MODEL_ERROR = new ErrorCode(1004001002, "工作流模型异常"); 30 ErrorCode BPMN_MODEL_ERROR = new ErrorCode(1004001002, "工作流模型异常");
31 ErrorCode BPMN_MODEL_PROCESS_NOT_EXISTS = new ErrorCode(1004001009, "流程数据为空"); 31 ErrorCode BPMN_MODEL_PROCESS_NOT_EXISTS = new ErrorCode(1004001009, "流程数据为空");
32 ErrorCode BPMN_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1004001004, "流程定义不存在"); 32 ErrorCode BPMN_PROCESS_DEFINITION_NOT_EXISTS = new ErrorCode(1004001004, "流程定义不存在");
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/model/BpmModelService.java
1 package cn.iocoder.yudao.adminserver.modules.bpm.service.model; 1 package cn.iocoder.yudao.adminserver.modules.bpm.service.model;
2 2
3 -import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelCreateReqVO;  
4 -import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelPageItemRespVO;  
5 -import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelRespVO;  
6 -import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.ModelPageReqVO; 3 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*;
7 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
8 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 6
  7 +import javax.validation.Valid;
  8 +
10 /** 9 /**
11 * 流程模型接口 10 * 流程模型接口
12 * 11 *
@@ -30,22 +29,20 @@ public interface BpmModelService { @@ -30,22 +29,20 @@ public interface BpmModelService {
30 */ 29 */
31 BpmModelRespVO getModel(String id); 30 BpmModelRespVO getModel(String id);
32 31
33 - // TODO @Li:不用返回 CommonResult  
34 - // TODO @Li:createBpmModal。  
35 /** 32 /**
36 * 创建流程模型 33 * 创建流程模型
37 * 34 *
38 * @param modelVO 创建信息 35 * @param modelVO 创建信息
39 * @return 创建的流程模型的编号 36 * @return 创建的流程模型的编号
40 */ 37 */
41 - String createModel(BpmModelCreateReqVO modelVO); 38 + String createModel(@Valid BpmModelCreateReqVO modelVO);
42 39
43 /** 40 /**
44 - * 修改模型属性,填充bpmn数据  
45 - * @param modelVO 模型对象  
46 - * @return 返回成功 41 + * 修改流程模型
  42 + *
  43 + * @param updateReqVO 更新信息
47 */ 44 */
48 - CommonResult<String> updateModel(BpmModelCreateReqVO modelVO); 45 + void updateModel(@Valid BpmModelUpdateReqVO updateReqVO);
49 46
50 /** 47 /**
51 * 部署模型 使模型成为一个 process 48 * 部署模型 使模型成为一个 process
@@ -56,9 +53,9 @@ public interface BpmModelService { @@ -56,9 +53,9 @@ public interface BpmModelService {
56 53
57 /** 54 /**
58 * 删除模型 55 * 删除模型
59 - * @param modelId 模型Id  
60 - * @return 返回成功 56 + *
  57 + * @param id 编号
61 */ 58 */
62 - CommonResult<String> deleteModel(String modelId); 59 + void deleteModel(String id);
63 60
64 } 61 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/model/impl/BpmModelServiceImpl.java
@@ -2,10 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.service.model.impl; @@ -2,10 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.service.model.impl;
2 2
3 import cn.hutool.core.util.ArrayUtil; 3 import cn.hutool.core.util.ArrayUtil;
4 import cn.hutool.core.util.StrUtil; 4 import cn.hutool.core.util.StrUtil;
5 -import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelCreateReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelPageItemRespVO;  
7 -import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.BpmModelRespVO;  
8 -import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.ModelPageReqVO; 5 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.model.vo.*;
9 import cn.iocoder.yudao.adminserver.modules.bpm.convert.model.ModelConvert; 6 import cn.iocoder.yudao.adminserver.modules.bpm.convert.model.ModelConvert;
10 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.form.BpmFormDO; 7 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.form.BpmFormDO;
11 import cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants; 8 import cn.iocoder.yudao.adminserver.modules.bpm.enums.BpmErrorCodeConstants;
@@ -115,6 +112,7 @@ public class BpmModelServiceImpl implements BpmModelService { @@ -115,6 +112,7 @@ public class BpmModelServiceImpl implements BpmModelService {
115 if (keyModel != null) { 112 if (keyModel != null) {
116 throw exception(BPM_MODEL_KEY_EXISTS); 113 throw exception(BPM_MODEL_KEY_EXISTS);
117 } 114 }
  115 + // TODO @芋艿:需要校验下 key 的格式
118 116
119 // 创建流程定义 117 // 创建流程定义
120 Model model = repositoryService.newModel(); 118 Model model = repositoryService.newModel();
@@ -139,53 +137,22 @@ public class BpmModelServiceImpl implements BpmModelService { @@ -139,53 +137,22 @@ public class BpmModelServiceImpl implements BpmModelService {
139 // return definition.getId(); 137 // return definition.getId();
140 // } 138 // }
141 139
142 -// @Override  
143 -// @Transactional(rollbackFor = Exception.class) // 因为进行多个 activiti 操作,所以开启事务  
144 -// public String createModel(BpmModelCreateReqVO createReqVO) {  
145 -// // 校验流程标识已经存在  
146 -// Model keyModel = this.getModelByKey(createReqVO.getKey());  
147 -// if (keyModel != null) {  
148 -// throw exception(BPM_MODEL_KEY_EXISTS);  
149 -// }  
150 -//  
151 -// // 创建流程定义  
152 -// Model model = repositoryService.newModel();  
153 -// ModelConvert.INSTANCE.copy(model, createReqVO);  
154 -// // 保存流程定义  
155 -// repositoryService.saveModel(model);  
156 -// // 添加 BPMN XML  
157 -// repositoryService.addModelEditorSource(model.getId(), StrUtil.utf8Bytes(createReqVO.getBpmnXml()));  
158 -// return model.getId();  
159 -// }  
160 -  
161 @Override 140 @Override
162 - public CommonResult<String> updateModel(BpmModelCreateReqVO modelVO) {  
163 -// try {  
164 -// Model model = repositoryService.getModel(modelVO.getId());  
165 -// if (ObjectUtils.isEmpty(model)) {  
166 -// throw ServiceExceptionUtil.exception(BpmErrorCodeConstants.BPMN_MODEL_EDITOR_SOURCE_NOT_EXISTS);  
167 -// }  
168 -// // 只能修改名字跟描述  
169 -// BpmModelCreateReqVO modelCreateVO = JsonUtils.parseObject(model.getMetaInfo(), BpmModelCreateReqVO.class);  
170 -// if (ObjectUtils.isEmpty(modelCreateVO)) {  
171 -// modelCreateVO = new BpmModelCreateReqVO();  
172 -// }  
173 -// modelCreateVO.setName(modelVO.getName());  
174 -// modelCreateVO.setDescription(modelVO.getDescription());  
175 -// model.setMetaInfo(JsonUtils.toJsonString(modelCreateVO));  
176 -// model.setName(modelVO.getName());  
177 -// model.setKey(modelVO.getKey());  
178 -// // 更新模型  
179 -// repositoryService.saveModel(model);  
180 -//  
181 -// repositoryService.addModelEditorSource(model.getId(), modelVO.getBpmnXml().getBytes(StandardCharsets.UTF_8));  
182 -//  
183 -// return CommonResult.success("保存成功");  
184 -// }catch (Exception e){  
185 -// log.info("模型更新失败!modelVO = {}", modelVO, e);  
186 -// throw ServiceExceptionUtil.exception(BpmErrorCodeConstants.BPMN_MODEL_ERROR);  
187 -// }  
188 - return null; 141 + @Transactional(rollbackFor = Exception.class) // 因为进行多个 activiti 操作,所以开启事务
  142 + public void updateModel(BpmModelUpdateReqVO updateReqVO) {
  143 + // 校验流程模型存在
  144 + Model model = repositoryService.getModel(updateReqVO.getId());
  145 + if (model == null) {
  146 + throw exception(BpmErrorCodeConstants.BPMN_MODEL_NOT_EXISTS);
  147 + }
  148 + // TODO @芋艿:需要校验下 key 的格式
  149 +
  150 + // 修改流程定义
  151 + ModelConvert.INSTANCE.copy(model, updateReqVO);
  152 + // 更新模型
  153 + repositoryService.saveModel(model);
  154 + // 更新 BPMN XML
  155 + repositoryService.addModelEditorSource(model.getId(), StrUtil.utf8Bytes(updateReqVO.getBpmnXml()));
189 } 156 }
190 157
191 @Override 158 @Override
@@ -193,11 +160,11 @@ public class BpmModelServiceImpl implements BpmModelService { @@ -193,11 +160,11 @@ public class BpmModelServiceImpl implements BpmModelService {
193 try { 160 try {
194 Model modelData = repositoryService.getModel(modelId); 161 Model modelData = repositoryService.getModel(modelId);
195 if (ObjectUtils.isEmpty(modelData)) { 162 if (ObjectUtils.isEmpty(modelData)) {
196 - throw exception(BpmErrorCodeConstants.BPMN_MODEL_EDITOR_SOURCE_NOT_EXISTS); 163 + throw exception(BpmErrorCodeConstants.BPMN_MODEL_NOT_EXISTS);
197 } 164 }
198 byte[] bytes = repositoryService.getModelEditorSource(modelData.getId()); 165 byte[] bytes = repositoryService.getModelEditorSource(modelData.getId());
199 if (bytes == null) { 166 if (bytes == null) {
200 - throw exception(BpmErrorCodeConstants.BPMN_MODEL_EDITOR_SOURCE_NOT_EXISTS); 167 + throw exception(BpmErrorCodeConstants.BPMN_MODEL_NOT_EXISTS);
201 } 168 }
202 // 将xml转换为流 169 // 将xml转换为流
203 // TODO @Li:这里是标准逻辑,看看 hutool 有没工具类提供。如果没有,咱自己封装一个 170 // TODO @Li:这里是标准逻辑,看看 hutool 有没工具类提供。如果没有,咱自己封装一个
@@ -226,10 +193,14 @@ public class BpmModelServiceImpl implements BpmModelService { @@ -226,10 +193,14 @@ public class BpmModelServiceImpl implements BpmModelService {
226 } 193 }
227 194
228 @Override 195 @Override
229 - public CommonResult<String> deleteModel(String modelId) {  
230 - // TODO @Li:activitie 是逻辑删除么?  
231 - repositoryService.deleteModel(modelId);  
232 - return CommonResult.success("删除成功"); 196 + public void deleteModel(String id) {
  197 + // 校验流程模型存在
  198 + Model model = repositoryService.getModel(id);
  199 + if (model == null) {
  200 + throw exception(BpmErrorCodeConstants.BPMN_MODEL_NOT_EXISTS);
  201 + }
  202 + // 执行删除
  203 + repositoryService.deleteModel(id);
233 } 204 }
234 205
235 private Model getModelByKey(String key) { 206 private Model getModelByKey(String key) {
yudao-admin-ui/src/api/bpm/model.js
1 import request from '@/utils/request' 1 import request from '@/utils/request'
2 2
3 -export function page(query) { 3 +export function getModelPage(query) {
4 return request({ 4 return request({
5 url: '/bpm/model/page', 5 url: '/bpm/model/page',
6 method: 'get', 6 method: 'get',
@@ -15,15 +15,15 @@ export function getModel(id) { @@ -15,15 +15,15 @@ export function getModel(id) {
15 }) 15 })
16 } 16 }
17 17
18 -export function modelUpdate(data) { 18 +export function updateModel(data) {
19 return request({ 19 return request({
20 url: '/bpm/model/update', 20 url: '/bpm/model/update',
21 - method: 'POST', 21 + method: 'PUT',
22 data: data 22 data: data
23 }) 23 })
24 } 24 }
25 25
26 -export function modelSave(data) { 26 +export function createModel(data) {
27 return request({ 27 return request({
28 url: '/bpm/model/create', 28 url: '/bpm/model/create',
29 method: 'POST', 29 method: 'POST',
@@ -31,15 +31,14 @@ export function modelSave(data) { @@ -31,15 +31,14 @@ export function modelSave(data) {
31 }) 31 })
32 } 32 }
33 33
34 -export function modelDelete(data) { 34 +export function deleteModel(id) {
35 return request({ 35 return request({
36 - url: '/bpm/model/delete?modelId='+ data.modelId,  
37 - method: 'POST',  
38 - data: data 36 + url: '/bpm/model/delete?id=' + id,
  37 + method: 'DELETE'
39 }) 38 })
40 } 39 }
41 40
42 -export function modelDeploy(data) { 41 +export function deployModel(data) {
43 return request({ 42 return request({
44 url: '/bpm/model/deploy?modelId='+ data.modelId, 43 url: '/bpm/model/deploy?modelId='+ data.modelId,
45 method: 'POST', 44 method: 'POST',
yudao-admin-ui/src/views/bpm/model/index.vue
@@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
16 <!-- 操作工具栏 --> 16 <!-- 操作工具栏 -->
17 <el-row :gutter="10" class="mb8"> 17 <el-row :gutter="10" class="mb8">
18 <el-col :span="1.5"> 18 <el-col :span="1.5">
19 - <el-button type="primary" icon="el-icon-plus" size="mini" @click="openBpmn" 19 + <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd"
20 v-hasPermi="['infra:config:create']">新建流程</el-button> 20 v-hasPermi="['infra:config:create']">新建流程</el-button>
21 </el-col> 21 </el-col>
22 <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> 22 <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -38,26 +38,26 @@ @@ -38,26 +38,26 @@
38 </el-table-column> 38 </el-table-column>
39 <el-table-column label="操作" align="center" width="240"> 39 <el-table-column label="操作" align="center" width="240">
40 <template slot-scope="scope"> 40 <template slot-scope="scope">
41 - <el-button size="mini" type="text" icon="el-icon-setting" @click="change(scope.row)">设计流程</el-button> 41 + <el-button size="mini" type="text" icon="el-icon-setting" @click="handleUpdate(scope.row)">设计流程</el-button>
42 <el-button size="mini" type="text" icon="el-icon-delete" @click="modelDelete(scope.row)">删除</el-button> 42 <el-button size="mini" type="text" icon="el-icon-delete" @click="modelDelete(scope.row)">删除</el-button>
43 <el-button size="mini" type="text" icon="el-icon-thumb" @click="modelDeploy(scope.row)">发布</el-button> 43 <el-button size="mini" type="text" icon="el-icon-thumb" @click="modelDeploy(scope.row)">发布</el-button>
44 </template> 44 </template>
45 </el-table-column> 45 </el-table-column>
46 </el-table> 46 </el-table>
47 - 47 + <!-- 分页组件 -->
48 <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" 48 <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
49 @pagination="getList"/> 49 @pagination="getList"/>
50 50
51 -  
52 - <el-dialog class="bpmnclass dialogClass" :visible.sync="showBpmnBool" :before-close="close" :fullscreen="true">  
53 - <vue-bpmn v-if="showBpmnBool" product="activiti" @processSave="processSave"  
54 - :bpmnXml="bpmnXML" :bpmnData="bpmnData" @beforeClose="close" /> 51 + <!-- 流程编辑器 -->
  52 + <el-dialog class="bpmnclass dialogClass" :visible.sync="showBpmnOpen" :before-cancel="cancel" :fullscreen="true">
  53 + <vue-bpmn v-if="showBpmnOpen" product="activiti" @processSave="processSave"
  54 + :bpmnXml="bpmnXML" :bpmnData="bpmnData" @beforeClose="cancel" />
55 </el-dialog> 55 </el-dialog>
56 </div> 56 </div>
57 </template> 57 </template>
58 58
59 <script> 59 <script>
60 -import {modelDelete, modelDeploy, modelSave, modelUpdate, page, getModel} from "@/api/bpm/model"; 60 +import {deleteModel, deployModel, createModel, updateModel, getModelPage, getModel} from "@/api/bpm/model";
61 import VueBpmn from "@/components/bpmn/VueBpmn"; 61 import VueBpmn from "@/components/bpmn/VueBpmn";
62 62
63 export default { 63 export default {
@@ -68,7 +68,6 @@ export default { @@ -68,7 +68,6 @@ export default {
68 loading: true, 68 loading: true,
69 // 显示搜索条件 69 // 显示搜索条件
70 showSearch: true, 70 showSearch: true,
71 - showBpmnBool: false,  
72 // 总条数 71 // 总条数
73 total: 0, 72 total: 0,
74 // 表格数据 73 // 表格数据
@@ -79,6 +78,7 @@ export default { @@ -79,6 +78,7 @@ export default {
79 pageSize: 10 78 pageSize: 10
80 }, 79 },
81 // BPMN 数据 80 // BPMN 数据
  81 + showBpmnOpen: false,
82 bpmnXML: null, 82 bpmnXML: null,
83 bpmnData: {}, 83 bpmnData: {},
84 }; 84 };
@@ -88,19 +88,20 @@ export default { @@ -88,19 +88,20 @@ export default {
88 this.getList(); 88 this.getList();
89 }, 89 },
90 methods: { 90 methods: {
91 - /** 查询登录日志列表 */ 91 + /** 查询流程模型列表 */
92 getList() { 92 getList() {
93 this.loading = true; 93 this.loading = true;
94 - page(this.queryParams).then(response => { 94 + getModelPage(this.queryParams).then(response => {
95 this.list = response.data.list; 95 this.list = response.data.list;
96 this.total = response.data.total; 96 this.total = response.data.total;
97 this.loading = false; 97 this.loading = false;
98 } 98 }
99 ); 99 );
100 }, 100 },
101 - // 登录状态字典翻译  
102 - statusFormat(row, column) {  
103 - return this.selectDictLabel(this.statusOptions, row.status); 101 + // 表单重置
  102 + reset() {
  103 + this.bpmnData = {}
  104 + this.bpmnXML = ""
104 }, 105 },
105 /** 搜索按钮操作 */ 106 /** 搜索按钮操作 */
106 handleQuery() { 107 handleQuery() {
@@ -114,49 +115,48 @@ export default { @@ -114,49 +115,48 @@ export default {
114 this.handleQuery(); 115 this.handleQuery();
115 }, 116 },
116 processSave(data) { 117 processSave(data) {
117 - const that = this;  
118 - // 如果存在id 说明是修改 118 + // 修改的提交
119 if (data.id) { 119 if (data.id) {
120 - let postData = JSON.parse(data.metaInfo)  
121 - postData.bpmnXml = data.bpmnXml  
122 - postData.id = data.id  
123 - postData.name = data.name  
124 - postData.key = data.key  
125 - postData.description = data.description  
126 - modelUpdate(postData).then(response => {  
127 - this.msgSuccess("保存成功"); 120 + updateModel(data).then(response => {
  121 + this.msgSuccess("修改成功");
  122 + // 关闭弹窗,刷新列表
  123 + this.showBpmnOpen = false
  124 + this.getList();
128 }) 125 })
129 - this.showBpmnBool = false  
130 - this.getList();  
131 return 126 return
132 } 127 }
133 - modelSave(data).then(response => {  
134 - that.bpmnData.id = response.data 128 + // 添加的提交
  129 + createModel(data).then(response => {
  130 + this.bpmnData.id = response.data
135 this.msgSuccess("保存成功"); 131 this.msgSuccess("保存成功");
  132 + // 关闭弹窗,刷新列表
  133 + this.showBpmnOpen = false
  134 + this.getList();
136 }) 135 })
137 -  
138 - this.showBpmnBool = false  
139 - this.getList();  
140 }, 136 },
141 - openBpmn() {  
142 - this.bpmnData = {}  
143 - this.bpmnXML = ""  
144 - this.showBpmnBool = true 137 + handleAdd() {
  138 + // 重置 Model 信息
  139 + this.reset()
  140 + // 打开弹窗
  141 + this.showBpmnOpen = true
145 }, 142 },
146 - close() {  
147 - this.showBpmnBool = false  
148 - this.getList(); 143 + cancel() {
  144 + // 打开弹窗
  145 + this.showBpmnOpen = false
  146 + // 重置 Model 信息
  147 + this.reset()
  148 + // 刷新列表
  149 + this.getList()
149 }, 150 },
150 - change(row) { 151 + handleUpdate(row) {
151 // 重置 Model 信息 152 // 重置 Model 信息
152 - this.bpmnXML = ""  
153 - this.bpmnData = {} 153 + this.reset()
154 // 获得 Model 信息 154 // 获得 Model 信息
155 getModel(row.id).then(response => { 155 getModel(row.id).then(response => {
156 this.bpmnXML = response.data.bpmnXml 156 this.bpmnXML = response.data.bpmnXml
157 this.bpmnData = response.data 157 this.bpmnData = response.data
158 // 打开弹窗 158 // 打开弹窗
159 - this.showBpmnBool = true 159 + this.showBpmnOpen = true
160 }) 160 })
161 }, 161 },
162 modelDelete(row) { 162 modelDelete(row) {
@@ -166,9 +166,7 @@ export default { @@ -166,9 +166,7 @@ export default {
166 cancelButtonText: "取消", 166 cancelButtonText: "取消",
167 type: "warning" 167 type: "warning"
168 }).then(function() { 168 }).then(function() {
169 - modelDelete({  
170 - modelId: row.id  
171 - }).then(response => { 169 + deleteModel(row.id).then(response => {
172 that.getList(); 170 that.getList();
173 that.msgSuccess("删除成功"); 171 that.msgSuccess("删除成功");
174 }) 172 })
@@ -181,7 +179,7 @@ export default { @@ -181,7 +179,7 @@ export default {
181 cancelButtonText: "取消", 179 cancelButtonText: "取消",
182 type: "success" 180 type: "success"
183 }).then(function() { 181 }).then(function() {
184 - modelDeploy({ 182 + deployModel({
185 modelId: row.id 183 modelId: row.id
186 }).then(response => { 184 }).then(response => {
187 that.getList(); 185 that.getList();
yudao-admin-ui/src/views/bpm/processDefinition/index.vue
@@ -33,8 +33,8 @@ @@ -33,8 +33,8 @@
33 <el-table-column label="操作" align="center" > 33 <el-table-column label="操作" align="center" >
34 <template slot-scope="scope"> 34 <template slot-scope="scope">
35 <!-- <el-button size="mini" type="text" icon="el-icon-setting" @click="change(scope.row)">设计流程</el-button>--> 35 <!-- <el-button size="mini" type="text" icon="el-icon-setting" @click="change(scope.row)">设计流程</el-button>-->
36 -<!-- <el-button size="mini" type="text" icon="el-icon-delete" @click="modelDelete(scope.row)">删除</el-button>-->  
37 -<!-- <el-button size="mini" type="text" icon="el-icon-thumb" @click="modelDeploy(scope.row)">发布</el-button>--> 36 +<!-- <el-button size="mini" type="text" icon="el-icon-delete" @click="deleteModel(scope.row)">删除</el-button>-->
  37 +<!-- <el-button size="mini" type="text" icon="el-icon-thumb" @click="deployModel(scope.row)">发布</el-button>-->
38 </template> 38 </template>
39 </el-table-column> 39 </el-table-column>
40 </el-table> 40 </el-table>
@@ -114,14 +114,14 @@ export default { @@ -114,14 +114,14 @@ export default {
114 postData.name = data.name 114 postData.name = data.name
115 postData.key = data.key 115 postData.key = data.key
116 postData.description = data.description 116 postData.description = data.description
117 - modelUpdate(postData).then(response => { 117 + updateModel(postData).then(response => {
118 this.msgSuccess("保存成功"); 118 this.msgSuccess("保存成功");
119 }) 119 })
120 this.showBpmnBool = false 120 this.showBpmnBool = false
121 this.getList(); 121 this.getList();
122 return 122 return
123 } 123 }
124 - modelSave(data).then(response => { 124 + createModel(data).then(response => {
125 that.bpmnData.id = response.data 125 that.bpmnData.id = response.data
126 this.msgSuccess("保存成功"); 126 this.msgSuccess("保存成功");
127 }) 127 })
@@ -151,7 +151,7 @@ export default { @@ -151,7 +151,7 @@ export default {
151 cancelButtonText: "取消", 151 cancelButtonText: "取消",
152 type: "warning" 152 type: "warning"
153 }).then(function() { 153 }).then(function() {
154 - modelDelete({ 154 + deleteModel({
155 modelId: row.id 155 modelId: row.id
156 }).then(response => { 156 }).then(response => {
157 that.getList(); 157 that.getList();
@@ -166,7 +166,7 @@ export default { @@ -166,7 +166,7 @@ export default {
166 cancelButtonText: "取消", 166 cancelButtonText: "取消",
167 type: "success" 167 type: "success"
168 }).then(function() { 168 }).then(function() {
169 - modelDeploy({ 169 + deployModel({
170 modelId: row.id 170 modelId: row.id
171 }).then(response => { 171 }).then(response => {
172 that.getList(); 172 that.getList();