Skip to content

Commit 0f812db

Browse files
committed
feat: 添加节点类型以区分不同节点
1 parent 666fb16 commit 0f812db

File tree

7 files changed

+40
-17
lines changed

7 files changed

+40
-17
lines changed

src/assets/svgs/bpm/handle.svg

+1
Loading

src/components/SimpleProcessDesignerV2/src/NodeHandler.vue

+2-3
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
</div>
1616
<div class="handler-item-text">审批人</div>
1717
</div>
18-
<!-- TODO @lesan:办理人增加自定义 icon 哈,可以换 jason 怎么弄! -->
1918
<div class="handler-item" @click="addNode(NodeType.TRANSACTOR_NODE)">
20-
<div class="approve handler-item-icon">
21-
<span class="iconfont icon-approve icon-size"></span>
19+
<div class="handle handler-item-icon">
20+
<span class="iconfont icon-handle icon-size"></span>
2221
</div>
2322
<div class="handler-item-text">办理人</div>
2423
</div>

src/components/SimpleProcessDesignerV2/src/nodes-config/UserTaskNodeConfig.vue

+9-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
<!-- TODO @lesan:涉及到“审批”关键字,需要换成“办理”,建议通过一个变量控制哈 -->
21
<template>
32
<el-drawer
43
:append-to-body="true"
@@ -40,10 +39,10 @@
4039
</el-radio-group>
4140
</div>
4241
<el-tabs type="border-card" v-model="activeTabName" v-if="approveType === ApproveType.USER">
43-
<el-tab-pane label="审批人" name="user">
42+
<el-tab-pane :label="`${nodeTypeName}人`" name="user">
4443
<div>
4544
<el-form ref="formRef" :model="configForm" label-position="top" :rules="formRules">
46-
<el-form-item label="审批人设置" prop="candidateStrategy">
45+
<el-form-item :label="`${nodeTypeName}人设置`" prop="candidateStrategy">
4746
<el-radio-group
4847
v-model="configForm.candidateStrategy"
4948
@change="changeCandidateStrategy"
@@ -226,7 +225,7 @@
226225
style="width: 100%"
227226
/>
228227
</el-form-item>
229-
<el-form-item label="多人审批方式" prop="approveMethod">
228+
<el-form-item :label="`多人${nodeTypeName}方式`" prop="approveMethod">
230229
<el-radio-group v-model="configForm.approveMethod" @change="approveMethodChanged">
231230
<div class="flex-col">
232231
<div
@@ -350,7 +349,7 @@
350349
</el-form-item>
351350
</div>
352351

353-
<el-divider content-position="left">审批人为空时</el-divider>
352+
<el-divider content-position="left">{{ nodeTypeName }}人为空时</el-divider>
354353
<el-form-item prop="assignEmptyHandlerType">
355354
<el-radio-group v-model="configForm.assignEmptyHandlerType">
356355
<div class="flex-col">
@@ -449,7 +448,6 @@
449448
</div>
450449
</div>
451450
</el-tab-pane>
452-
<!-- TODO @lesan:办理时,应该还是有字段权限 -->
453451
<el-tab-pane label="表单字段权限" name="fields" v-if="formType === 10">
454452
<div class="field-setting-pane">
455453
<div class="field-setting-desc">字段权限</div>
@@ -681,6 +679,11 @@ const {
681679
682680
const userTaskListenerRef = ref()
683681
682+
// 节点类型名称
683+
const nodeTypeName = computed(() => {
684+
return currentNode.value.type === NodeType.TRANSACTOR_NODE ? '办理' : '审批'
685+
})
686+
684687
// 保存配置
685688
const saveConfig = async () => {
686689
// activeTabName.value = 'user'

src/components/SimpleProcessDesignerV2/src/nodes/UserTaskNode.vue

+7-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,13 @@
99
]"
1010
>
1111
<div class="node-title-container">
12-
<div class="node-title-icon user-task"><span class="iconfont icon-approve"></span></div>
12+
<div
13+
:class="`node-title-icon ${currentNode.type === NodeType.TRANSACTOR_NODE ? 'transactor-task' : 'user-task'}`"
14+
>
15+
<span
16+
:class="`iconfont ${currentNode.type === NodeType.TRANSACTOR_NODE ? 'icon-handle' : 'icon-approve'}`"
17+
></span>
18+
</div>
1319
<input
1420
v-if="!readonly && showInput"
1521
type="text"

src/components/SimpleProcessDesignerV2/theme/simple-process-designer.scss

+9-1
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,10 @@
177177
color: #ca3a31
178178
}
179179

180+
.handle {
181+
color: #330099;
182+
}
183+
180184
.handler-item-text {
181185
margin-top: 4px;
182186
width: 80px;
@@ -290,10 +294,14 @@
290294
&.trigger-node {
291295
color: #3373d2;
292296
}
293-
297+
294298
&.router-node {
295299
color: #ca3a31
296300
}
301+
302+
&.transactor-task {
303+
color: #330099;
304+
}
297305
}
298306

299307
.node-title {

src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue

+9-4
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,10 @@
3636
:rule="approveForm.rule"
3737
/>
3838
</el-card>
39-
<!-- TODO @lesan:需要分成“审批”和“办理”意见,包括 label、placeholder、rule 校验 -->
40-
<el-form-item label="审批意见" prop="reason">
39+
<el-form-item :label="`${taskName}意见`" prop="reason">
4140
<el-input
4241
v-model="approveReasonForm.reason"
43-
placeholder="请输入审批意见"
42+
:placeholder="`请输入${taskName}意见`"
4443
type="textarea"
4544
:rows="4"
4645
/>
@@ -505,6 +504,7 @@ import * as TaskApi from '@/api/bpm/task'
505504
import * as ProcessInstanceApi from '@/api/bpm/processInstance'
506505
import * as UserApi from '@/api/system/user'
507506
import {
507+
NodeType,
508508
OPERATION_BUTTON_NAME,
509509
OperationButtonType
510510
} from '@/components/SimpleProcessDesignerV2/src/consts'
@@ -559,7 +559,9 @@ const approveReasonForm = reactive({
559559
})
560560
const approveReasonRule = computed(() => {
561561
return {
562-
reason: [{ required: reasonRequire.value, message: '审批意见不能为空', trigger: 'blur' }],
562+
reason: [
563+
{ required: reasonRequire.value, message: taskName + '意见不能为空', trigger: 'blur' }
564+
],
563565
signPicUrl: [{ required: true, message: '签名不能为空', trigger: 'change' }]
564566
}
565567
})
@@ -968,11 +970,14 @@ const getButtonDisplayName = (btnType: OperationButtonType) => {
968970
return displayName
969971
}
970972
973+
const taskName = ref('审批')
974+
971975
const loadTodoTask = (task: any) => {
972976
approveForm.value = {}
973977
approveFormFApi.value = {}
974978
runningTask.value = task
975979
reasonRequire.value = task?.reasonRequire ?? false
980+
taskName.value = task?.nodeType === NodeType.TRANSACTOR_NODE ? '办理' : '审批'
976981
// 处理 approve 表单.
977982
if (task && task.formId && task.formConf) {
978983
const tempApproveForm = {}

src/views/bpm/processInstance/detail/ProcessInstanceTimeline.vue

+3-2
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ import copySvg from '@/assets/svgs/bpm/copy.svg'
180180
import conditionSvg from '@/assets/svgs/bpm/condition.svg'
181181
import parallelSvg from '@/assets/svgs/bpm/parallel.svg'
182182
import finishSvg from '@/assets/svgs/bpm/finish.svg'
183+
import handleSvg from '@/assets/svgs/bpm/handle.svg'
183184

184185
defineOptions({ name: 'BpmProcessInstanceTimeline' })
185186
withDefaults(
@@ -241,8 +242,8 @@ const nodeTypeSvgMap = {
241242
[NodeType.START_USER_NODE]: { color: '#909398', svg: starterSvg },
242243
// 审批人节点
243244
[NodeType.USER_TASK_NODE]: { color: '#ff943e', svg: auditorSvg },
244-
// 办理人节点 TODO @lesan:
245-
[NodeType.TRANSACTOR_NODE]: { color: '#ff943e', svg: auditorSvg },
245+
// 办理人节点
246+
[NodeType.TRANSACTOR_NODE]: { color: '#ff943e', svg: handleSvg },
246247
// 抄送人节点
247248
[NodeType.COPY_TASK_NODE]: { color: '#3296fb', svg: copySvg },
248249
// 条件分支节点

0 commit comments

Comments
 (0)