Commit 3f6a5f06fa660f49d492f6511bfece64442b076d

Authored by YunaiV
1 parent 64a1d1f0

BPM 模型重构 7:增加任务分配规则的列表 UI 界面

yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/controller/definition/BpmTaskAssignRuleController.java
1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition; 1 package cn.iocoder.yudao.adminserver.modules.bpm.controller.definition;
2 2
  3 +import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.rule.BpmTaskAssignRuleCreateReqVO;
3 import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.rule.BpmTaskAssignRuleRespVO; 4 import cn.iocoder.yudao.adminserver.modules.bpm.controller.definition.vo.rule.BpmTaskAssignRuleRespVO;
4 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; 5 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
5 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 6 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
6 import io.swagger.annotations.Api; 7 import io.swagger.annotations.Api;
7 import org.springframework.validation.annotation.Validated; 8 import org.springframework.validation.annotation.Validated;
8 -import org.springframework.web.bind.annotation.GetMapping;  
9 -import org.springframework.web.bind.annotation.RequestMapping;  
10 -import org.springframework.web.bind.annotation.RequestParam;  
11 -import org.springframework.web.bind.annotation.RestController; 9 +import org.springframework.web.bind.annotation.*;
12 10
13 import javax.annotation.Resource; 11 import javax.annotation.Resource;
  12 +import javax.validation.Valid;
14 import java.util.List; 13 import java.util.List;
15 14
16 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 15 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@@ -31,4 +30,14 @@ public class BpmTaskAssignRuleController { @@ -31,4 +30,14 @@ public class BpmTaskAssignRuleController {
31 return success(taskAssignRuleService.getTaskAssignRuleList(modelId, processDefinitionId)); 30 return success(taskAssignRuleService.getTaskAssignRuleList(modelId, processDefinitionId));
32 } 31 }
33 32
  33 + @PostMapping("/create")
  34 + public CommonResult<String> createTaskAssignRule(@Valid @RequestBody BpmTaskAssignRuleCreateReqVO reqVO) {
  35 + return success("1024");
  36 + }
  37 +
  38 + @PutMapping("/update")
  39 + public CommonResult<Boolean> updateTaskAssignRule(@Valid @RequestBody BpmTaskAssignRuleCreateReqVO reqVO) {
  40 + return success(true);
  41 + }
  42 +
34 } 43 }
yudao-admin-ui/src/api/bpm/taskAssignRule.js
@@ -7,3 +7,19 @@ export function getTaskAssignRuleList(query) { @@ -7,3 +7,19 @@ export function getTaskAssignRuleList(query) {
7 params: query 7 params: query
8 }) 8 })
9 } 9 }
  10 +
  11 +export function createTaskAssignRule(data) {
  12 + return request({
  13 + url: '/bpm/task-assign-rule/create',
  14 + method: 'post',
  15 + data: data
  16 + })
  17 +}
  18 +
  19 +export function updateTaskAssignRule(data) {
  20 + return request({
  21 + url: '/bpm/task-assign-rule/update',
  22 + method: 'put',
  23 + data: data
  24 + })
  25 +}
yudao-admin-ui/src/views/bpm/model/index.vue
@@ -222,7 +222,7 @@ @@ -222,7 +222,7 @@
222 </el-dialog> 222 </el-dialog>
223 <!-- 添加/修改弹窗 --> 223 <!-- 添加/修改弹窗 -->
224 <el-dialog title="修改任务规则" :visible.sync="taskAssignRule.open" width="500px" append-to-body> 224 <el-dialog title="修改任务规则" :visible.sync="taskAssignRule.open" width="500px" append-to-body>
225 - <el-form ref="form" :model="taskAssignRule.form" :rules="taskAssignRule.rules" label-width="110px"> 225 + <el-form ref="taskAssignRuleForm" :model="taskAssignRule.form" :rules="taskAssignRule.rules" label-width="110px">
226 <el-form-item label="任务名称" prop="taskDefinitionName"> 226 <el-form-item label="任务名称" prop="taskDefinitionName">
227 <el-input v-model="taskAssignRule.form.taskDefinitionName" disabled /> 227 <el-input v-model="taskAssignRule.form.taskDefinitionName" disabled />
228 </el-form-item> 228 </el-form-item>
@@ -235,14 +235,14 @@ @@ -235,14 +235,14 @@
235 </el-select> 235 </el-select>
236 </el-form-item> 236 </el-form-item>
237 <el-form-item v-if="taskAssignRule.form.type === 10" label="指定角色" prop="roleIds"> 237 <el-form-item v-if="taskAssignRule.form.type === 10" label="指定角色" prop="roleIds">
238 - <el-select v-model="form.formId" clearable style="width: 100%"> 238 + <el-select v-model="taskAssignRule.form.roleIds" multiple clearable style="width: 100%">
239 <el-option v-for="item in taskAssignRule.roleOptions" :key="parseInt(item.id)" :label="item.name" :value="parseInt(item.id)" /> 239 <el-option v-for="item in taskAssignRule.roleOptions" :key="parseInt(item.id)" :label="item.name" :value="parseInt(item.id)" />
240 </el-select> 240 </el-select>
241 </el-form-item> 241 </el-form-item>
242 </el-form> 242 </el-form>
243 <div slot="footer" class="dialog-footer"> 243 <div slot="footer" class="dialog-footer">
244 - <el-button type="primary" @click="submitForm">确 定</el-button>  
245 - <el-button @click="cancel">取 消</el-button> 244 + <el-button type="primary" @click="submitAssignRuleForm">确 定</el-button>
  245 + <el-button @click="cancelAssignRuleForm">取 消</el-button>
246 </div> 246 </div>
247 </el-dialog> 247 </el-dialog>
248 </div> 248 </div>
@@ -263,7 +263,7 @@ import {getForm, getSimpleForms} from &quot;@/api/bpm/form&quot;; @@ -263,7 +263,7 @@ import {getForm, getSimpleForms} from &quot;@/api/bpm/form&quot;;
263 import {decodeFields} from "@/utils/formGenerator"; 263 import {decodeFields} from "@/utils/formGenerator";
264 import Parser from '@/components/parser/Parser' 264 import Parser from '@/components/parser/Parser'
265 import {getBaseHeader} from "@/utils/request"; 265 import {getBaseHeader} from "@/utils/request";
266 -import {getTaskAssignRuleList} from "@/api/bpm/taskAssignRule"; 266 +import {createTaskAssignRule, getTaskAssignRuleList, updateTaskAssignRule} from "@/api/bpm/taskAssignRule";
267 import {listSimpleRoles} from "@/api/system/role"; 267 import {listSimpleRoles} from "@/api/system/role";
268 268
269 export default { 269 export default {
@@ -597,6 +597,9 @@ export default { @@ -597,6 +597,9 @@ export default {
597 }, 597 },
598 /** 处理修改任务分配规则的按钮操作 */ 598 /** 处理修改任务分配规则的按钮操作 */
599 handleUpdateTaskAssignRule(row) { 599 handleUpdateTaskAssignRule(row) {
  600 + // 先重置标识
  601 + this.resetAssignRuleForm();
  602 + // 设置表单
600 this.taskAssignRule.form = { 603 this.taskAssignRule.form = {
601 ...row, 604 ...row,
602 options: [] 605 options: []
@@ -606,6 +609,48 @@ export default { @@ -606,6 +609,48 @@ export default {
606 this.taskAssignRule.form.role = row.options; 609 this.taskAssignRule.form.role = row.options;
607 } 610 }
608 this.taskAssignRule.open = true; 611 this.taskAssignRule.open = true;
  612 + },
  613 + /** 提交任务分配规则的表单 */
  614 + submitAssignRuleForm() {
  615 + this.$refs["taskAssignRuleForm"].validate(valid => {
  616 + if (valid) {
  617 + // 构建表单
  618 + let form = {
  619 + ...this.taskAssignRule.form,
  620 + taskDefinitionName: undefined,
  621 + };
  622 + if (form.type === 10) {
  623 + form.options = form.roleIds;
  624 + }
  625 + form.roleIds = undefined;
  626 + // 新增
  627 + if (!form.id) {
  628 + createTaskAssignRule(form).then(response => {
  629 + this.msgSuccess("修改成功");
  630 + this.taskAssignRule.open = false;
  631 + this.doGetTaskAssignRuleList();
  632 + });
  633 + // 修改
  634 + } else {
  635 + form.taskDefinitionKey = undefined; // 无法修改
  636 + updateTaskAssignRule(form).then(response => {
  637 + this.msgSuccess("修改成功");
  638 + this.taskAssignRule.open = false;
  639 + this.doGetTaskAssignRuleList();
  640 + });
  641 + }
  642 + }
  643 + });
  644 + },
  645 + /** 取消任务分配规则的表单 */
  646 + cancelAssignRuleForm() {
  647 + this.taskAssignRule.open = false;
  648 + this.resetAssignRuleForm();
  649 + },
  650 + // 表单重置
  651 + resetAssignRuleForm() {
  652 + this.taskAssignRule.form = {};
  653 + this.resetForm("taskAssignRuleForm");
609 } 654 }
610 } 655 }
611 }; 656 };