1
1
<template >
2
2
<ContentWrap >
3
- <!-- 列表 -->
4
- <XTable @register =" registerTable" >
5
- <!-- 流程名称 -->
6
- <template #name_default =" { row } " >
7
- <XTextButton :title =" row.name" @click =" handleBpmnDetail(row.id)" />
8
- </template >
9
- <!-- 流程分类 -->
10
- <template #category_default =" { row } " >
11
- <DictTag :type =" DICT_TYPE.BPM_MODEL_CATEGORY" :value =" Number(row?.category)" />
12
- </template >
13
- <!-- 表单信息 -->
14
- <template #formId_default =" { row } " >
15
- <XTextButton
16
- v-if =" row.formType === 10"
17
- :title =" row.formName"
18
- @click =" handleFormDetail(row)"
19
- />
20
- <XTextButton v-else :title =" row.formCustomCreatePath" @click =" handleFormDetail(row)" />
21
- </template >
22
- <!-- 流程版本 -->
23
- <template #version_default =" { row } " >
24
- <el-tag >v{{ row.version }}</el-tag >
25
- </template >
26
- <!-- 激活状态 -->
27
- <template #suspensionState_default =" { row } " >
28
- <el-tag type =" success" v-if =" row.suspensionState === 1" >激活</el-tag >
29
- <el-tag type =" warning" v-if =" row.suspensionState === 2" >挂起</el-tag >
30
- </template >
31
- <!-- 操作 -->
32
- <template #actionbtns_default =" { row } " >
33
- <XTextButton
34
- preIcon =" ep:user"
35
- title =" 分配规则"
36
- v-hasPermi =" ['bpm:task-assign-rule:query']"
37
- @click =" handleAssignRule(row)"
38
- />
39
- </template >
40
- </XTable >
41
-
42
- <!-- 表单详情的弹窗 -->
43
- <XModal v-model =" formDetailVisible" width =" 800" title =" 表单详情" :show-footer =" false" >
44
- <form-create
45
- :rule =" formDetailPreview.rule"
46
- :option =" formDetailPreview.option"
47
- v-if =" formDetailVisible"
3
+ <el-table v-loading =" loading" :data =" list" >
4
+ <el-table-column label =" 定义编号" align =" center" prop =" id" width =" 400" />
5
+ <el-table-column label =" 流程名称" align =" center" prop =" name" width =" 200" >
6
+ <template #default =" scope " >
7
+ <el-button type =" text" @click =" handleBpmnDetail(scope.row)" >
8
+ <span >{{ scope.row.name }}</span >
9
+ </el-button >
10
+ </template >
11
+ </el-table-column >
12
+ <el-table-column label =" 定义分类" align =" center" prop =" category" width =" 100" >
13
+ <template #default =" scope " >
14
+ <dict-tag :type =" DICT_TYPE.BPM_MODEL_CATEGORY" :value =" scope.row.category" />
15
+ </template >
16
+ </el-table-column >
17
+ <el-table-column label =" 表单信息" align =" center" prop =" formType" width =" 200" >
18
+ <template #default =" scope " >
19
+ <el-button
20
+ v-if =" scope.row.formType === 10"
21
+ type =" text"
22
+ @click =" handleFormDetail(scope.row)"
23
+ >
24
+ <span >{{ scope.row.formName }}</span >
25
+ </el-button >
26
+ <el-button v-else type =" text" @click =" handleFormDetail(scope.row)" >
27
+ <span >{{ scope.row.formCustomCreatePath }}</span >
28
+ </el-button >
29
+ </template >
30
+ </el-table-column >
31
+ <el-table-column label =" 流程版本" align =" center" prop =" processDefinition.version" width =" 80" >
32
+ <template #default =" scope " >
33
+ <el-tag v-if =" scope.row" >v{{ scope.row.version }}</el-tag >
34
+ <el-tag type =" warning" v-else >未部署</el-tag >
35
+ </template >
36
+ </el-table-column >
37
+ <el-table-column label =" 状态" align =" center" prop =" version" width =" 80" >
38
+ <template #default =" scope " >
39
+ <el-tag type =" success" v-if =" scope.row.suspensionState === 1" >激活</el-tag >
40
+ <el-tag type =" warning" v-if =" scope.row.suspensionState === 2" >挂起</el-tag >
41
+ </template >
42
+ </el-table-column >
43
+ <el-table-column
44
+ label =" 部署时间"
45
+ align =" center"
46
+ prop =" deploymentTime"
47
+ width =" 180"
48
+ :formatter =" dateFormatter"
48
49
/>
49
- </XModal >
50
- <!-- 流程模型图的预览 -->
51
- <XModal title =" 流程图" v-model =" showBpmnOpen" width =" 80%" height =" 90%" >
52
- <my-process-viewer
53
- key =" designer"
54
- v-model =" bpmnXML"
55
- :value =" bpmnXML"
56
- v-bind =" bpmnControlForm"
57
- :prefix =" bpmnControlForm.prefix"
50
+ <el-table-column
51
+ label =" 定义描述"
52
+ align =" center"
53
+ prop =" description"
54
+ width =" 300"
55
+ show-overflow-tooltip
58
56
/>
59
- </XModal >
57
+ <el-table-column label =" 操作" align =" center" width =" 150" fixed =" right" >
58
+ <template #default =" scope " >
59
+ <el-button
60
+ link
61
+ type =" primary"
62
+ @click =" handleAssignRule(scope.row)"
63
+ v-hasPermi =" ['bpm:task-assign-rule:query']"
64
+ >
65
+ 分配规则
66
+ </el-button >
67
+ </template >
68
+ </el-table-column >
69
+ </el-table >
70
+ <!-- 分页 -->
71
+ <Pagination
72
+ :total =" total"
73
+ v-model:page =" queryParams.pageNo"
74
+ v-model:limit =" queryParams.pageSize"
75
+ @pagination =" getList"
76
+ />
60
77
</ContentWrap >
78
+
79
+ <!-- 弹窗:表单详情 -->
80
+ <Dialog title =" 表单详情" v-model =" formDetailVisible" width =" 800" >
81
+ <form-create :rule =" formDetailPreview.rule" :option =" formDetailPreview.option" />
82
+ </Dialog >
83
+
84
+ <!-- 弹窗:流程模型图的预览 -->
85
+ <Dialog title =" 流程图" v-model =" bpmnDetailVisible" width =" 800" >
86
+ <my-process-viewer
87
+ key =" designer"
88
+ v-model =" bpmnXML"
89
+ :value =" bpmnXML"
90
+ v-bind =" bpmnControlForm"
91
+ :prefix =" bpmnControlForm.prefix"
92
+ />
93
+ </Dialog >
61
94
</template >
62
- <script setup lang="ts">
63
- // 业务相关的 import
95
+
96
+ <script setup lang="ts" name="Form">
97
+ import { DICT_TYPE } from ' @/utils/dict'
98
+ import { dateFormatter } from ' @/utils/formatTime'
64
99
import * as DefinitionApi from ' @/api/bpm/definition'
65
- // import * as ModelApi from '@/api/bpm/model'
66
- import { allSchemas } from ' ./definition.data'
67
100
import { setConfAndFields2 } from ' @/utils/formCreate'
68
- import { DICT_TYPE } from ' @/utils/dict'
69
-
70
- const bpmnXML = ref (null )
71
- const showBpmnOpen = ref (false )
72
- const bpmnControlForm = ref ({
73
- prefix: ' flowable'
74
- })
75
- // const message = useMessage() // 消息弹窗
76
- const router = useRouter () // 路由
101
+ const { push } = useRouter () // 路由
77
102
const { query } = useRoute () // 查询参数
78
103
79
- // ========== 列表相关 ==========
104
+ const loading = ref (true ) // 列表的加载中
105
+ const total = ref (0 ) // 列表的总页数
106
+ const list = ref ([]) // 列表的数据
80
107
const queryParams = reactive ({
108
+ pageNo: 1 ,
109
+ pageSize: 10 ,
81
110
key: query .key
82
111
})
83
- const [registerTable] = useXTable ({
84
- allSchemas: allSchemas ,
85
- getListApi: DefinitionApi .getProcessDefinitionPageApi ,
86
- params: queryParams
87
- })
88
112
89
- // 流程表单的详情按钮操作
113
+ /** 查询参数列表 */
114
+ const getList = async () => {
115
+ loading .value = true
116
+ try {
117
+ const data = await DefinitionApi .getProcessDefinitionPage (queryParams )
118
+ list .value = data .list
119
+ total .value = data .total
120
+ } finally {
121
+ loading .value = false
122
+ }
123
+ }
124
+
125
+ /** 点击任务分配按钮 */
126
+ const handleAssignRule = (row ) => {
127
+ push ({
128
+ name: ' BpmTaskAssignRuleList' ,
129
+ query: {
130
+ modelId: row .id
131
+ }
132
+ })
133
+ }
134
+
135
+ /** 流程表单的详情按钮操作 */
90
136
const formDetailVisible = ref (false )
91
137
const formDetailPreview = ref ({
92
138
rule: [],
@@ -99,32 +145,25 @@ const handleFormDetail = async (row) => {
99
145
// 弹窗打开
100
146
formDetailVisible .value = true
101
147
} else {
102
- await router . push ({
148
+ await push ({
103
149
path: row .formCustomCreatePath
104
150
})
105
151
}
106
152
}
107
153
108
- // 流程图的详情按钮操作
109
- const handleBpmnDetail = (row ) => {
110
- // TODO 芋艿:流程组件开发中
111
- console .log (row )
112
- DefinitionApi .getProcessDefinitionBpmnXMLApi (row ).then ((response ) => {
113
- console .log (response , ' response' )
114
- bpmnXML .value = response
115
- // 弹窗打开
116
- showBpmnOpen .value = true
117
- })
118
- // message.success('流程组件开发中,预计 2 月底完成')
154
+ /** 流程图的详情按钮操作 */
155
+ const bpmnDetailVisible = ref (false )
156
+ const bpmnXML = ref (null )
157
+ const bpmnControlForm = ref ({
158
+ prefix: ' flowable'
159
+ })
160
+ const handleBpmnDetail = async (row ) => {
161
+ bpmnXML .value = await DefinitionApi .getProcessDefinitionBpmnXML (row .id )
162
+ bpmnDetailVisible .value = true
119
163
}
120
164
121
- // 点击任务分配按钮
122
- const handleAssignRule = (row ) => {
123
- router .push ({
124
- name: ' BpmTaskAssignRuleList' ,
125
- query: {
126
- processDefinitionId: row .id
127
- }
128
- })
129
- }
165
+ /** 初始化 **/
166
+ onMounted (() => {
167
+ getList ()
168
+ })
130
169
</script >
0 commit comments