Skip to content

Commit ead7fa2

Browse files
YunaiVgitee-org
authored andcommitted
!694 fix: 修复bpm相关bug
Merge pull request !694 from SamllNorth_Lee/fix/bpm
2 parents 1cafde3 + 2511f32 commit ead7fa2

File tree

8 files changed

+7173
-5790
lines changed

8 files changed

+7173
-5790
lines changed

pnpm-lock.yaml

Lines changed: 7104 additions & 5774 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components/Icon/src/Icon.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ watch(
7575

7676
<template>
7777
<ElIcon :class="prefixCls" :color="color" :size="size">
78-
<svg v-if="isLocal" :class="getSvgClass" aria-hidden="true">
78+
<svg v-if="isLocal" :class="getSvgClass">
7979
<use :xlink:href="symbolId" />
8080
</svg>
8181

src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525

2626
<script setup lang="ts">
2727
import SimpleProcessModel from './SimpleProcessModel.vue'
28-
import { updateBpmSimpleModel, getBpmSimpleModel } from '@/api/bpm/simple'
2928
import { SimpleFlowNode, NodeType, NodeId, NODE_DEFAULT_TEXT } from './consts'
3029
import { getModel } from '@/api/bpm/model'
3130
import { getForm, FormVO } from '@/api/bpm/form'
@@ -35,6 +34,7 @@ import * as DeptApi from '@/api/system/dept'
3534
import * as PostApi from '@/api/system/post'
3635
import * as UserApi from '@/api/system/user'
3736
import * as UserGroupApi from '@/api/bpm/userGroup'
37+
import { BpmModelFormType } from '@/utils/constants'
3838
3939
defineOptions({
4040
name: 'SimpleProcessDesigner'
@@ -168,7 +168,7 @@ onMounted(async () => {
168168
const bpmnModel = await getModel(props.modelId)
169169
if (bpmnModel) {
170170
formType.value = bpmnModel.formType
171-
if (formType.value === 10) {
171+
if (formType.value === BpmModelFormType.NORMAL && bpmnModel.formId) {
172172
const bpmnForm = (await getForm(bpmnModel.formId)) as unknown as FormVO
173173
formFields.value = bpmnForm?.fields
174174
}

src/utils/index.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,3 +449,18 @@ export function jsonParse(str: string) {
449449
return ''
450450
}
451451
}
452+
453+
/**
454+
* 截取字符串
455+
*
456+
* @param name
457+
* @param start
458+
* @param end
459+
*/
460+
461+
export const sliceName = (name: string,start: number, end : number) => {
462+
if (name.length > end) {
463+
return name.slice(start, end)
464+
}
465+
return name
466+
}

src/views/bpm/model/CategoryDraggableModel.vue

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@
8888
/>
8989
</el-tooltip>
9090
<el-image v-if="row.icon" :src="row.icon" class="h-38px w-38px mr-10px rounded" />
91+
<div v-else class="flow-icon">
92+
<span style="font-size: 12px; color: #fff">{{ sliceName(row.name,0,2) }}</span>
93+
</div>
9194
{{ row.name }}
9295
</div>
9396
</template>
@@ -249,6 +252,11 @@
249252
</div>
250253
</template>
251254
</Dialog>
255+
256+
<!-- 弹窗:表单详情 -->
257+
<Dialog title="表单详情" :fullscreen="true" v-model="formDetailVisible">
258+
<form-create :rule="formDetailPreview.rule" :option="formDetailPreview.option" />
259+
</Dialog>
252260
</template>
253261

254262
<script lang="ts" setup>
@@ -265,6 +273,7 @@ import { useAppStore } from '@/store/modules/app'
265273
import { cloneDeep, isEqual } from 'lodash-es'
266274
import { useTagsView } from '@/hooks/web/useTagsView'
267275
import { useDebounceFn } from '@vueuse/core'
276+
import { sliceName } from '@/utils/index'
268277
269278
defineOptions({ name: 'BpmModel' })
270279
@@ -437,11 +446,10 @@ const handleChangeState = async (row: any) => {
437446
/** 发布流程 */
438447
const handleDeploy = async (row: any) => {
439448
try {
440-
// 删除的二次确认
441-
await message.confirm('是否部署该流程!!')
449+
await message.confirm('是否确认发布该流程?')
442450
// 发起部署
443451
await ModelApi.deployModel(row.id)
444-
message.success(t('部署成功'))
452+
message.success(t('发布成功'))
445453
// 刷新列表
446454
emit('success')
447455
} catch {}
@@ -464,7 +472,7 @@ const formDetailPreview = ref({
464472
option: {}
465473
})
466474
const handleFormDetail = async (row: any) => {
467-
if (row.formType == 10) {
475+
if (row.formType == BpmModelFormType.NORMAL) {
468476
// 设置表单
469477
const data = await FormApi.getForm(row.formId)
470478
setConfAndFields2(formDetailPreview, data.conf, data.fields)
@@ -617,6 +625,17 @@ watchEffect(() => {
617625
}
618626
</style>
619627
<style lang="scss" scoped>
628+
.flow-icon {
629+
display: flex;
630+
width: 38px;
631+
height: 38px;
632+
margin-right: 10px;
633+
background-color: var(--el-color-primary);
634+
border-radius: 0.25rem;
635+
align-items: center;
636+
justify-content: center;
637+
}
638+
620639
.category-draggable-model {
621640
:deep(.el-table__cell) {
622641
overflow: hidden;

src/views/bpm/model/form/BasicInfo.vue

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
class="!w-440px"
77
v-model="modelData.key"
88
:disabled="!!modelData.id"
9-
placeholder="请输入流标标识"
9+
placeholder="请输入流程标识,以字母或下划线开头"
1010
/>
1111
<el-tooltip
1212
class="item"
@@ -41,7 +41,7 @@
4141
/>
4242
</el-select>
4343
</el-form-item>
44-
<el-form-item label="流程图标" prop="icon" class="mb-20px">
44+
<el-form-item label="流程图标" class="mb-20px">
4545
<UploadImg v-model="modelData.icon" :limit="1" height="64px" width="64px" />
4646
</el-form-item>
4747
<el-form-item label="流程描述" prop="description" class="mb-20px">
@@ -155,7 +155,6 @@ const rules = {
155155
name: [{ required: true, message: '流程名称不能为空', trigger: 'blur' }],
156156
key: [{ required: true, message: '流程标识不能为空', trigger: 'blur' }],
157157
category: [{ required: true, message: '流程分类不能为空', trigger: 'blur' }],
158-
icon: [{ required: true, message: '流程图标不能为空', trigger: 'blur' }],
159158
type: [{ required: true, message: '是否可见不能为空', trigger: 'blur' }],
160159
visible: [{ required: true, message: '是否可见不能为空', trigger: 'blur' }],
161160
managerUserIds: [{ required: true, message: '流程管理员不能为空', trigger: 'blur' }]

src/views/bpm/model/form/index.vue

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -285,9 +285,8 @@ const handleSave = async () => {
285285
} else {
286286
// 新增场景
287287
formData.value.id = await ModelApi.createModel(modelData)
288-
message.success('新增成功')
289288
try {
290-
await message.confirm('创建流程成功,是否继续编辑?')
289+
await message.confirm('流程创建成功,是否继续编辑?')
291290
// 用户点击继续编辑,跳转到编辑页面
292291
await nextTick()
293292
// 先删除当前页签
@@ -317,7 +316,6 @@ const handleDeploy = async () => {
317316
if (!formData.value.id) {
318317
await message.confirm('是否确认发布该流程?')
319318
}
320-
321319
// 校验所有步骤
322320
await validateAllSteps()
323321

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

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,16 @@
5858
>
5959
<template #default>
6060
<div class="flex">
61-
<el-image :src="definition.icon" class="w-32px h-32px" />
61+
<el-image
62+
v-if="definition.icon"
63+
:src="definition.icon"
64+
class="w-32px h-32px"
65+
/>
66+
<div v-else class="flow-icon">
67+
<span style="font-size: 12px; color: #fff">{{
68+
sliceName(definition.name,0,2)
69+
}}</span>
70+
</div>
6271
<el-text class="!ml-10px" size="large">{{ definition.name }}</el-text>
6372
</div>
6473
</template>
@@ -88,6 +97,7 @@ import * as ProcessInstanceApi from '@/api/bpm/processInstance'
8897
import { CategoryApi, CategoryVO } from '@/api/bpm/category'
8998
import ProcessDefinitionDetail from './ProcessDefinitionDetail.vue'
9099
import { groupBy } from 'lodash-es'
100+
import { sliceName } from '@/utils/index'
91101
92102
defineOptions({ name: 'BpmProcessInstanceCreate' })
93103
@@ -282,13 +292,25 @@ onMounted(() => {
282292
</script>
283293

284294
<style lang="scss" scoped>
295+
.flow-icon {
296+
display: flex;
297+
width: 32px;
298+
height: 32px;
299+
margin-right: 10px;
300+
background-color: var(--el-color-primary);
301+
border-radius: 0.25rem;
302+
align-items: center;
303+
justify-content: center;
304+
}
305+
285306
.process-definition-container::before {
286-
content: '';
287-
border-left: 1px solid #e6e6e6;
288307
position: absolute;
289308
left: 20.8%;
290309
height: 100%;
310+
border-left: 1px solid #e6e6e6;
311+
content: '';
291312
}
313+
292314
:deep() {
293315
.definition-item-card {
294316
.el-card__body {

0 commit comments

Comments
 (0)