Skip to content

Commit bcecf5c

Browse files
committed
【功能优化】BPM:优化 model 历史的展示
1 parent 21b6532 commit bcecf5c

File tree

3 files changed

+57
-46
lines changed

3 files changed

+57
-46
lines changed

src/router/modules/remaining.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
280280
},
281281
{
282282
path: 'manager/definition',
283-
component: () => import('@/views/bpm/definition/index.vue'),
283+
component: () => import('@/views/bpm/model/definition/index.vue'),
284284
name: 'BpmProcessDefinition',
285285
meta: {
286286
noCache: true,

src/views/bpm/model/CategoryDraggableModel.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@
113113
</el-text>
114114
</template>
115115
</el-table-column>
116-
<el-table-column label="流程类型" prop="modelType" min-width="120">
116+
<el-table-column label="流程类型" prop="type" min-width="120">
117117
<template #default="{ row }">
118118
<dict-tag :value="row.type" :type="DICT_TYPE.BPM_MODEL_TYPE" />
119119
</template>

src/views/bpm/definition/index.vue renamed to src/views/bpm/model/definition/index.vue

Lines changed: 55 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,60 @@
33

44
<ContentWrap>
55
<el-table v-loading="loading" :data="list">
6-
<el-table-column label="定义编号" align="center" prop="id" width="400" />
7-
<el-table-column label="流程名称" align="center" prop="name" width="200">
8-
<template #default="scope">
9-
<el-button type="primary" link @click="handleBpmnDetail(scope.row)">
10-
<span>{{ scope.row.name }}</span>
11-
</el-button>
6+
<el-table-column label="定义编号" align="center" prop="id" min-width="250" />
7+
<el-table-column label="流程名称" align="center" prop="name" min-width="150" />
8+
<el-table-column label="流程图标" align="center" min-width="50">
9+
<template #default="{ row }">
10+
<el-image v-if="row.icon" :src="row.icon" class="h-24px w-24pxrounded" />
11+
</template>
12+
</el-table-column>
13+
<el-table-column label="可见范围" prop="startUserIds" min-width="100">
14+
<template #default="{ row }">
15+
<el-text v-if="!row.startUsers?.length"> 全部可见 </el-text>
16+
<el-text v-else-if="row.startUsers.length === 1">
17+
{{ row.startUsers[0].nickname }}
18+
</el-text>
19+
<el-text v-else>
20+
<el-tooltip
21+
class="box-item"
22+
effect="dark"
23+
placement="top"
24+
:content="row.startUsers.map((user: any) => user.nickname).join('、')"
25+
>
26+
{{ row.startUsers[0].nickname }}等 {{ row.startUsers.length }} 人可见
27+
</el-tooltip>
28+
</el-text>
29+
</template>
30+
</el-table-column>
31+
<el-table-column label="流程类型" prop="modelType" min-width="120">
32+
<template #default="{ row }">
33+
<dict-tag :value="row.modelType" :type="DICT_TYPE.BPM_MODEL_TYPE" />
1234
</template>
1335
</el-table-column>
14-
<el-table-column label="定义分类" align="center" prop="categoryName" width="100" />
15-
<el-table-column label="表单信息" align="center" prop="formType" width="200">
36+
<el-table-column label="表单信息" prop="formType" min-width="150">
1637
<template #default="scope">
1738
<el-button
18-
v-if="scope.row.formType === 10"
39+
v-if="scope.row.formType === BpmModelFormType.NORMAL"
1940
type="primary"
2041
link
2142
@click="handleFormDetail(scope.row)"
2243
>
2344
<span>{{ scope.row.formName }}</span>
2445
</el-button>
25-
<el-button v-else type="primary" link @click="handleFormDetail(scope.row)">
46+
<el-button
47+
v-else-if="scope.row.formType === BpmModelFormType.CUSTOM"
48+
type="primary"
49+
link
50+
@click="handleFormDetail(scope.row)"
51+
>
2652
<span>{{ scope.row.formCustomCreatePath }}</span>
2753
</el-button>
54+
<label v-else>暂无表单</label>
2855
</template>
2956
</el-table-column>
30-
<el-table-column label="流程版本" align="center" prop="processDefinition.version" width="80">
57+
<el-table-column label="流程版本" align="center" min-width="80">
3158
<template #default="scope">
32-
<el-tag v-if="scope.row">v{{ scope.row.version }}</el-tag>
33-
<el-tag type="warning" v-else>未部署</el-tag>
34-
</template>
35-
</el-table-column>
36-
<el-table-column label="状态" align="center" prop="version" width="80">
37-
<template #default="scope">
38-
<el-tag type="success" v-if="scope.row.suspensionState === 1">激活</el-tag>
39-
<el-tag type="warning" v-if="scope.row.suspensionState === 2">挂起</el-tag>
59+
<el-tag>v{{ scope.row.version }}</el-tag>
4060
</template>
4161
</el-table-column>
4262
<el-table-column
@@ -46,13 +66,6 @@
4666
width="180"
4767
:formatter="dateFormatter"
4868
/>
49-
<el-table-column
50-
label="定义描述"
51-
align="center"
52-
prop="description"
53-
width="300"
54-
show-overflow-tooltip
55-
/>
5669
</el-table>
5770
<!-- 分页 -->
5871
<Pagination
@@ -67,18 +80,14 @@
6780
<Dialog title="表单详情" v-model="formDetailVisible" width="800">
6881
<form-create :rule="formDetailPreview.rule" :option="formDetailPreview.option" />
6982
</Dialog>
70-
71-
<!-- 弹窗:流程模型图的预览 -->
72-
<Dialog title="流程图" v-model="bpmnDetailVisible" width="800">
73-
<MyProcessViewer style="height: 700px" key="designer" :xml="bpmnXml" />
74-
</Dialog>
7583
</template>
7684

7785
<script lang="ts" setup>
7886
import { dateFormatter } from '@/utils/formatTime'
79-
import { MyProcessViewer } from '@/components/bpmnProcessDesigner/package'
8087
import * as DefinitionApi from '@/api/bpm/definition'
8188
import { setConfAndFields2 } from '@/utils/formCreate'
89+
import { DICT_TYPE } from '@/utils/dict'
90+
import { BpmModelFormType } from '@/utils/constants'
8291
8392
defineOptions({ name: 'BpmProcessDefinition' })
8493
@@ -113,7 +122,7 @@ const formDetailPreview = ref({
113122
option: {}
114123
})
115124
const handleFormDetail = async (row: any) => {
116-
if (row.formType == 10) {
125+
if (row.formType == BpmModelFormType.NORMAL) {
117126
// 设置表单
118127
setConfAndFields2(formDetailPreview, row.formConf, row.formFields)
119128
// 弹窗打开
@@ -125,19 +134,21 @@ const handleFormDetail = async (row: any) => {
125134
}
126135
}
127136
128-
/** 流程图的详情按钮操作 */
129-
const bpmnDetailVisible = ref(false)
130-
const bpmnXml = ref('')
131-
const handleBpmnDetail = async (row: any) => {
132-
// 设置可见
133-
bpmnXml.value = ''
134-
bpmnDetailVisible.value = true
135-
// 加载 BPMN XML
136-
bpmnXml.value = (await DefinitionApi.getProcessDefinition(row.id))?.bpmnXml
137-
}
138-
139137
/** 初始化 **/
140138
onMounted(() => {
141139
getList()
142140
})
143141
</script>
142+
143+
<style lang="scss" scoped>
144+
.flow-icon {
145+
display: flex;
146+
width: 38px;
147+
height: 38px;
148+
margin-right: 10px;
149+
background-color: var(--el-color-primary);
150+
border-radius: 0.25rem;
151+
align-items: center;
152+
justify-content: center;
153+
}
154+
</style>

0 commit comments

Comments
 (0)