feat(流程管理): 新增 流程设计器对"服务任务"支持
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="panel-tab__content">
|
<div class="panel-tab__content">
|
||||||
<el-form size="mini" label-width="90px" @submit.native.prevent>
|
<el-form size="mini" label-width="96px" @submit.native.prevent>
|
||||||
<!-- <el-form-item label="异步延续">-->
|
<!-- <el-form-item label="异步延续">-->
|
||||||
<!-- <el-checkbox v-model="taskConfigForm.asyncBefore" label="异步前" @change="changeTaskAsync" />-->
|
<!-- <el-checkbox v-model="taskConfigForm.asyncBefore" label="异步前" @change="changeTaskAsync" />-->
|
||||||
<!-- <el-checkbox v-model="taskConfigForm.asyncAfter" label="异步后" @change="changeTaskAsync" />-->
|
<!-- <el-checkbox v-model="taskConfigForm.asyncAfter" label="异步后" @change="changeTaskAsync" />-->
|
||||||
@@ -13,12 +13,13 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import UserTask from "./task-components/UserTask";
|
import UserTask from "./task-components/UserTask";
|
||||||
|
import ServiceTask from "./task-components/ServiceTask";
|
||||||
import ScriptTask from "./task-components/ScriptTask";
|
import ScriptTask from "./task-components/ScriptTask";
|
||||||
import ReceiveTask from "./task-components/ReceiveTask";
|
import ReceiveTask from "./task-components/ReceiveTask";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "ElementTaskConfig",
|
name: "ElementTaskConfig",
|
||||||
components: { UserTask, ScriptTask, ReceiveTask },
|
components: { UserTask, ServiceTask, ScriptTask, ReceiveTask },
|
||||||
props: {
|
props: {
|
||||||
id: String,
|
id: String,
|
||||||
type: String
|
type: String
|
||||||
@@ -36,6 +37,7 @@ export default {
|
|||||||
// 接收消息任务,需要在全局下插入新的消息实例,并在该节点下的 messageRef 属性绑定该实例
|
// 接收消息任务,需要在全局下插入新的消息实例,并在该节点下的 messageRef 属性绑定该实例
|
||||||
// 发送任务、服务任务、业务规则任务共用一个相同配置
|
// 发送任务、服务任务、业务规则任务共用一个相同配置
|
||||||
UserTask: "UserTask", // 用户任务配置
|
UserTask: "UserTask", // 用户任务配置
|
||||||
|
ServiceTask: "ServiceTask", // 服务任务配置
|
||||||
ScriptTask: "ScriptTask", // 脚本任务配置
|
ScriptTask: "ScriptTask", // 脚本任务配置
|
||||||
ReceiveTask: "ReceiveTask" // 消息接收任务
|
ReceiveTask: "ReceiveTask" // 消息接收任务
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,86 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-form-item label="执行类型" key="executeType">
|
||||||
|
<el-select v-model="serviceTaskForm.executeType">
|
||||||
|
<el-option label="Java类" value="class" />
|
||||||
|
<el-option label="表达式" value="expression" />
|
||||||
|
<el-option label="代理表达式" value="delegateExpression" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="serviceTaskForm.executeType === 'class'"
|
||||||
|
label="Java类"
|
||||||
|
prop="class"
|
||||||
|
key="execute-class"
|
||||||
|
>
|
||||||
|
<el-input v-model="serviceTaskForm.class" clearable @change="updateElementTask" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="serviceTaskForm.executeType === 'expression'"
|
||||||
|
label="表达式"
|
||||||
|
prop="expression"
|
||||||
|
key="execute-expression"
|
||||||
|
>
|
||||||
|
<el-input v-model="serviceTaskForm.expression" clearable @change="updateElementTask" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item
|
||||||
|
v-if="serviceTaskForm.executeType === 'delegateExpression'"
|
||||||
|
label="代理表达式"
|
||||||
|
prop="delegateExpression"
|
||||||
|
key="execute-delegate"
|
||||||
|
>
|
||||||
|
<el-input v-model="serviceTaskForm.delegateExpression" clearable @change="updateElementTask" />
|
||||||
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "ServiceTask",
|
||||||
|
props: {
|
||||||
|
id: String,
|
||||||
|
type: String
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
defaultTaskForm: {
|
||||||
|
executeType: "",
|
||||||
|
class: "",
|
||||||
|
expression: "",
|
||||||
|
delegateExpression: ""
|
||||||
|
},
|
||||||
|
serviceTaskForm: {}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
id: {
|
||||||
|
immediate: true,
|
||||||
|
handler() {
|
||||||
|
this.bpmnElement = window.bpmnInstances.bpmnElement;
|
||||||
|
this.$nextTick(() => this.resetTaskForm());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
resetTaskForm() {
|
||||||
|
for (let key in this.defaultTaskForm) {
|
||||||
|
let value = this.bpmnElement?.businessObject[key] || this.defaultTaskForm[key];
|
||||||
|
if (value) this.$set(this.serviceTaskForm, "executeType", key);
|
||||||
|
this.$set(this.serviceTaskForm, key, value);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
updateElementTask() {
|
||||||
|
let taskAttr = Object.create(null);
|
||||||
|
const type = this.serviceTaskForm.executeType;
|
||||||
|
for (let key in this.serviceTaskForm) {
|
||||||
|
if (key !== 'executeType' && key !== type) taskAttr[key] = null;
|
||||||
|
}
|
||||||
|
taskAttr[type] = this.serviceTaskForm[type] || "";
|
||||||
|
window.bpmnInstances.modeling.updateProperties(this.bpmnElement, taskAttr);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
beforeDestroy() {
|
||||||
|
this.bpmnElement = null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
Reference in New Issue
Block a user