Skip to content

Commit 55da358

Browse files
committed
【功能修改】发起流程时,如果是 Simple 模型展示 Simple 流程图
1 parent 65f0b2f commit 55da358

File tree

2 files changed

+52
-56
lines changed

2 files changed

+52
-56
lines changed

src/views/bpm/processInstance/create/ProcessDefinitionDetail.vue

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,17 @@
7171
<!-- 流程图 -->
7272
<el-tab-pane label="流程图" name="diagram">
7373
<div class="form-scroll-area">
74-
<!-- 流程图预览 -->
75-
<ProcessInstanceBpmnViewer :bpmn-xml="bpmnXML" />
74+
<!-- BPMN 流程图预览 -->
75+
<ProcessInstanceBpmnViewer
76+
:bpmn-xml="bpmnXML"
77+
v-if="BpmModelType.BPMN === selectProcessDefinition.modelType"
78+
/>
79+
80+
<!-- Simple 流程图预览 -->
81+
<ProcessInstanceSimpleViewer
82+
:simple-json="simpleJson"
83+
v-if="BpmModelType.SIMPLE === selectProcessDefinition.modelType"
84+
/>
7685
</div>
7786
</el-tab-pane>
7887
</el-tabs>
@@ -98,7 +107,9 @@
98107
</template>
99108
<script lang="ts" setup>
100109
import { decodeFields, setConfAndFields2 } from '@/utils/formCreate'
110+
import { BpmModelType } from '@/utils/constants'
101111
import ProcessInstanceBpmnViewer from '../detail/ProcessInstanceBpmnViewer.vue'
112+
import ProcessInstanceSimpleViewer from '../detail/ProcessInstanceSimpleViewer.vue'
102113
import ProcessInstanceTimeline from '../detail/ProcessInstanceTimeline.vue'
103114
import type { ApiAttrs } from '@form-create/element-ui/types/config'
104115
import { useTagsViewStore } from '@/store/modules/tagsView'
@@ -127,6 +138,7 @@ const startUserSelectAssignees = ref({}) // 发起人选择审批人的数据
127138
const startUserSelectAssigneesFormRules = ref({}) // 发起人选择审批人的表单 Rules
128139
const userList = ref<any[]>([]) // 用户列表
129140
const bpmnXML: any = ref(null) // BPMN 数据
141+
const simpleJson = ref<string|undefined>() // Simple 设计器数据 json 格式
130142
/** 当前的Tab */
131143
const activeTab = ref('form')
132144
const emit = defineEmits(['cancel'])
@@ -162,6 +174,7 @@ const initProcessInfo = async (row: any, formVariables?: any) => {
162174
const processDefinitionDetail = await DefinitionApi.getProcessDefinition(row.id)
163175
if (processDefinitionDetail) {
164176
bpmnXML.value = processDefinitionDetail.bpmnXml
177+
simpleJson.value = processDefinitionDetail.simpleModel
165178
startUserSelectTasks.value = processDefinitionDetail.startUserSelectTasks
166179
167180
// 设置指定审批人

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

Lines changed: 37 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
<template>
22
<div v-loading="loading" class="mb-20px">
3-
<SimpleProcessViewer :flow-node="simpleModel" :tasks="tasks" :process-instance="processInstance"/>
3+
<SimpleProcessViewer
4+
:flow-node="simpleModel"
5+
:tasks="tasks"
6+
:process-instance="processInstance"
7+
/>
48
</div>
59
</template>
610
<script lang="ts" setup>
@@ -12,72 +16,51 @@ defineOptions({ name: 'BpmProcessInstanceSimpleViewer' })
1216
1317
const props = defineProps({
1418
loading: propTypes.bool.def(false), // 是否加载中
15-
modelView: propTypes.object
19+
modelView: propTypes.object,
20+
simpleJson: propTypes.string // Simple 模型结构数据 (json 格式)
1621
})
1722
const simpleModel = ref()
1823
// 用户任务
1924
const tasks = ref([])
2025
// 流程实例
2126
const processInstance = ref()
22-
// /** 只有 loading 完成时,才去加载流程列表 */
23-
// watch(
24-
// () => props.loading,
25-
// async (value) => {
26-
// if (value && props.id) {
27-
// const modelView = await ProcessInstanceApi.getProcessInstanceBpmnModelView(props.id)
28-
// if (modelView) {
29-
// tasks.value = modelView.tasks
30-
// processInstance.value = modelView.processInstance
31-
// // 已经拒绝的活动节点编号集合,只包括 UserTask
32-
// const rejectedTaskActivityIds: string[] = modelView.rejectedTaskActivityIds
33-
// // 进行中的活动节点编号集合, 只包括 UserTask
34-
// const unfinishedTaskActivityIds: string[] = modelView.unfinishedTaskActivityIds
35-
// // 已经完成的活动节点编号集合, 包括 UserTask、Gateway 等
36-
// const finishedActivityIds: string[] = modelView.finishedTaskActivityIds
37-
// // 已经完成的连线节点编号集合,只包括 SequenceFlow
38-
// const finishedSequenceFlowActivityIds: string[] = modelView.finishedSequenceFlowActivityIds
39-
// setSimpleModelNodeTaskStatus(
40-
// modelView.simpleModel,
41-
// modelView.processInstance.status,
42-
// rejectedTaskActivityIds,
43-
// unfinishedTaskActivityIds,
44-
// finishedActivityIds,
45-
// finishedSequenceFlowActivityIds
46-
// )
47-
// simpleModel.value = modelView.simpleModel
48-
// }
49-
// }
50-
// }
51-
// )
27+
28+
/** 监控模型视图 包括任务列表、进行中的活动节点编号等 */
5229
watch(
5330
() => props.modelView,
5431
async (newModelView) => {
5532
if (newModelView) {
56-
if (newModelView) {
57-
tasks.value = newModelView.tasks
58-
processInstance.value = newModelView.processInstance
59-
// 已经拒绝的活动节点编号集合,只包括 UserTask
60-
const rejectedTaskActivityIds: string[] = newModelView.rejectedTaskActivityIds
61-
// 进行中的活动节点编号集合, 只包括 UserTask
62-
const unfinishedTaskActivityIds: string[] = newModelView.unfinishedTaskActivityIds
63-
// 已经完成的活动节点编号集合, 包括 UserTask、Gateway 等
64-
const finishedActivityIds: string[] = newModelView.finishedTaskActivityIds
65-
// 已经完成的连线节点编号集合,只包括 SequenceFlow
66-
const finishedSequenceFlowActivityIds: string[] = newModelView.finishedSequenceFlowActivityIds
67-
setSimpleModelNodeTaskStatus(
68-
newModelView.simpleModel,
69-
newModelView.processInstance.status,
70-
rejectedTaskActivityIds,
71-
unfinishedTaskActivityIds,
72-
finishedActivityIds,
73-
finishedSequenceFlowActivityIds
74-
)
75-
simpleModel.value = newModelView.simpleModel
76-
}
33+
tasks.value = newModelView.tasks
34+
processInstance.value = newModelView.processInstance
35+
// 已经拒绝的活动节点编号集合,只包括 UserTask
36+
const rejectedTaskActivityIds: string[] = newModelView.rejectedTaskActivityIds
37+
// 进行中的活动节点编号集合, 只包括 UserTask
38+
const unfinishedTaskActivityIds: string[] = newModelView.unfinishedTaskActivityIds
39+
// 已经完成的活动节点编号集合, 包括 UserTask、Gateway 等
40+
const finishedActivityIds: string[] = newModelView.finishedTaskActivityIds
41+
// 已经完成的连线节点编号集合,只包括 SequenceFlow
42+
const finishedSequenceFlowActivityIds: string[] = newModelView.finishedSequenceFlowActivityIds
43+
setSimpleModelNodeTaskStatus(
44+
newModelView.simpleModel,
45+
newModelView.processInstance.status,
46+
rejectedTaskActivityIds,
47+
unfinishedTaskActivityIds,
48+
finishedActivityIds,
49+
finishedSequenceFlowActivityIds
50+
)
51+
simpleModel.value = newModelView.simpleModel
52+
}
53+
}
54+
)
55+
/** 监控模型结构数据 */
56+
watch(
57+
() => props.simpleJson,
58+
async (value) => {
59+
if (value) {
60+
simpleModel.value = JSON.parse(value)
7761
}
7862
}
7963
)
80-
8164
const setSimpleModelNodeTaskStatus = (
8265
simpleModel: SimpleFlowNode | undefined,
8366
processStatus: number,

0 commit comments

Comments
 (0)