1
1
<template >
2
- <ContentWrap >
3
- <!-- 第一步,通过流程定义的列表,选择对应的流程 -- >
4
- <div v-if = " !selectProcessInstance " >
5
- <XTable @register = " registerTable " >
6
- <!-- 流程分类 -- >
7
- <template #category_default = " { row } " >
8
- <DictTag :type =" DICT_TYPE.BPM_MODEL_CATEGORY" :value =" Number( row? .category) " />
2
+ <!-- 第一步,通过流程定义的列表,选择对应的流程 -- >
3
+ < ContentWrap v-if = " !selectProcessInstance " >
4
+ <el-table v-loading = " loading " :data = " list " >
5
+ <el-table-column label = " 流程名称 " align = " center " prop = " name " / >
6
+ < el-table-column label = " 流程分类" align = " center " prop = " category " >
7
+ <template #default = " scope " >
8
+ <dict-tag :type =" DICT_TYPE.BPM_MODEL_CATEGORY" :value =" scope. row.category" />
9
9
</template >
10
- <template #version_default =" { row } " >
11
- <el-tag v-if =" row" >v{{ row.version }}</el-tag >
10
+ </el-table-column >
11
+ <el-table-column label =" 流程版本" align =" center" prop =" version" >
12
+ <template #default =" scope " >
13
+ <el-tag >v{{ scope.row.version }}</el-tag >
12
14
</template >
13
- <template #actionbtns_default =" { row } " >
14
- <XTextButton preIcon =" ep:plus" title =" 选择" @click =" handleSelect(row)" />
15
+ </el-table-column >
16
+ <el-table-column label =" 流程描述" align =" center" prop =" description" />
17
+ <el-table-column label =" 操作" align =" center" >
18
+ <template #default =" scope " >
19
+ <el-button link type =" primary" @click =" handleSelect(scope.row)" >
20
+ <Icon icon =" ep:plus" /> 选择
21
+ </el-button >
15
22
</template >
16
- </XTable >
17
- </div >
18
- <!-- 第二步,填写表单,进行流程的提交 -->
19
- <div v-else >
20
- <el-card class =" box-card" >
21
- <div class =" clearfix" >
22
- <span class =" el-icon-document" >申请信息【{{ selectProcessInstance.name }}】</span >
23
- <XButton
24
- style =" float : right "
25
- type =" primary"
26
- preIcon =" ep:delete"
27
- title =" 选择其它流程"
28
- @click =" selectProcessInstance = undefined"
29
- />
30
- </div >
31
- <el-col :span =" 16" :offset =" 6" style =" margin-top : 20px " >
32
- <form-create
33
- :rule =" detailForm.rule"
34
- v-model:api =" fApi"
35
- :option =" detailForm.option"
36
- @submit =" submitForm"
37
- />
38
- </el-col >
39
- </el-card >
40
- <!-- 流程图预览 -->
41
- <ProcessInstanceBpmnViewer :bpmn-xml =" bpmnXML" />
42
- </div >
23
+ </el-table-column >
24
+ </el-table >
25
+ </ContentWrap >
26
+
27
+ <!-- 第二步,填写表单,进行流程的提交 -->
28
+ <ContentWrap v-else >
29
+ <el-card class =" box-card" >
30
+ <div class =" clearfix" >
31
+ <span class =" el-icon-document" >申请信息【{{ selectProcessInstance.name }}】</span >
32
+ <el-button style =" float : right " type =" primary" @click =" selectProcessInstance = undefined" >
33
+ <Icon icon =" ep:delete" /> 选择其它流程
34
+ </el-button >
35
+ </div >
36
+ <el-col :span =" 16" :offset =" 6" style =" margin-top : 20px " >
37
+ <form-create
38
+ :rule =" detailForm.rule"
39
+ v-model:api =" fApi"
40
+ :option =" detailForm.option"
41
+ @submit =" submitForm"
42
+ />
43
+ </el-col >
44
+ </el-card >
45
+ <!-- 流程图预览 -->
46
+ <ProcessInstanceBpmnViewer :bpmn-xml =" bpmnXML" />
43
47
</ContentWrap >
44
48
</template >
45
49
<script setup lang="ts">
46
50
import { DICT_TYPE } from ' @/utils/dict'
47
- // 业务相关的 import
48
- import { allSchemas } from ' ./process.create'
49
51
import * as DefinitionApi from ' @/api/bpm/definition'
50
52
import * as ProcessInstanceApi from ' @/api/bpm/processInstance'
51
53
import { setConfAndFields2 } from ' @/utils/formCreate'
@@ -55,28 +57,32 @@ const router = useRouter() // 路由
55
57
const message = useMessage () // 消息
56
58
57
59
// ========== 列表相关 ==========
58
-
59
- const [registerTable] = useXTable ({
60
- allSchemas: allSchemas ,
61
- params: {
62
- suspensionState: 1
63
- },
64
- getListApi: DefinitionApi .getProcessDefinitionList ,
65
- isList: true
60
+ const loading = ref (true ) // 列表的加载中
61
+ const list = ref ([]) // 列表的数据
62
+ const queryParams = reactive ({
63
+ suspensionState: 1
66
64
})
67
65
68
- // ========== 表单相关 ==========
66
+ /** 查询列表 */
67
+ const getList = async () => {
68
+ loading .value = true
69
+ try {
70
+ list .value = await DefinitionApi .getProcessDefinitionList (queryParams )
71
+ } finally {
72
+ loading .value = false
73
+ }
74
+ }
69
75
76
+ // ========== 表单相关 ==========
77
+ const bpmnXML = ref (null ) // BPMN 数据
70
78
const fApi = ref <ApiAttrs >()
71
-
72
- // 流程表单详情
73
79
const detailForm = ref ({
80
+ // 流程表单详情
74
81
rule: [],
75
82
option: {}
76
83
})
77
-
78
- // 流程表单
79
84
const selectProcessInstance = ref () // 选择的流程实例
85
+
80
86
/** 处理选择流程的按钮操作 **/
81
87
const handleSelect = async (row ) => {
82
88
// 设置选择的流程
@@ -86,11 +92,8 @@ const handleSelect = async (row) => {
86
92
if (row .formType == 10 ) {
87
93
// 设置表单
88
94
setConfAndFields2 (detailForm , row .formConf , row .formFields )
89
-
90
95
// 加载流程图
91
- DefinitionApi .getProcessDefinitionBpmnXML (row .id ).then ((response ) => {
92
- bpmnXML .value = response
93
- })
96
+ bpmnXML .value = await DefinitionApi .getProcessDefinitionBpmnXML (row .id )
94
97
// 情况二:业务表单
95
98
} else if (row .formCustomCreatePath ) {
96
99
await router .push ({
@@ -105,7 +108,6 @@ const submitForm = async (formData) => {
105
108
if (! fApi .value || ! selectProcessInstance .value ) {
106
109
return
107
110
}
108
-
109
111
// 提交请求
110
112
fApi .value .btn .loading (true )
111
113
try {
@@ -121,8 +123,8 @@ const submitForm = async (formData) => {
121
123
}
122
124
}
123
125
124
- // ========== 流程图相关 ==========
125
-
126
- // // BPMN 数据
127
- const bpmnXML = ref ( null )
126
+ /** 初始化 */
127
+ onMounted (() => {
128
+ getList ()
129
+ } )
128
130
</script >
0 commit comments