Skip to content

Commit ab8761d

Browse files
committed
fix: [BPM 工作流] Simple 模型创建时不能设置字段权限问题修复
1 parent 2b44f1d commit ab8761d

File tree

4 files changed

+61
-30
lines changed

4 files changed

+61
-30
lines changed

src/components/SimpleProcessDesignerV2/src/SimpleProcessDesigner.vue

Lines changed: 50 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@
2626
<script setup lang="ts">
2727
import SimpleProcessModel from './SimpleProcessModel.vue'
2828
import { SimpleFlowNode, NodeType, NodeId, NODE_DEFAULT_TEXT } from './consts'
29-
import { getModel } from '@/api/bpm/model'
30-
import { getForm, FormVO } from '@/api/bpm/form'
29+
import { getForm } from '@/api/bpm/form'
3130
import { handleTree } from '@/utils/tree'
3231
import * as RoleApi from '@/api/system/role'
3332
import * as DeptApi from '@/api/system/dept'
@@ -43,17 +42,21 @@ defineOptions({
4342
const emits = defineEmits(['success']) // 保存成功事件
4443
4544
const props = defineProps({
46-
modelId: {
45+
modelName: {
4746
type: String,
4847
required: false
4948
},
50-
modelKey: {
51-
type: String,
52-
required: false
49+
// 流程表单 ID
50+
modelFormId: {
51+
type: Number,
52+
required: false,
53+
default: undefined,
5354
},
54-
modelName: {
55-
type: String,
56-
required: false
55+
// 表单类型
56+
modelFormType: {
57+
type: Number,
58+
required: false,
59+
default: BpmModelFormType.NORMAL,
5760
},
5861
// 可发起流程的人员编号
5962
startUserIds: {
@@ -70,7 +73,31 @@ const props = defineProps({
7073
const processData = inject('processData') as Ref
7174
const loading = ref(false)
7275
const formFields = ref<string[]>([])
73-
const formType = ref(20)
76+
const formType = ref(props.modelFormType);
77+
78+
// 监听 modelFormType 变化
79+
watch(
80+
() => props.modelFormType,
81+
(newVal) => {
82+
formType.value = newVal;
83+
},
84+
);
85+
86+
// 监听 modelFormId 变化
87+
watch(
88+
() => props.modelFormId,
89+
async (newVal) => {
90+
if (newVal) {
91+
const form = await getForm(newVal);
92+
formFields.value = form?.fields;
93+
} else {
94+
// 如果 modelFormId 为空,清空表单字段
95+
formFields.value = [];
96+
}
97+
},
98+
{ immediate: true },
99+
);
100+
74101
const roleOptions = ref<RoleApi.RoleVO[]>([]) // 角色列表
75102
const postOptions = ref<PostApi.PostVO[]>([]) // 岗位列表
76103
const userOptions = ref<UserApi.UserVO[]>([]) // 用户列表
@@ -90,6 +117,8 @@ provide('startUserIds', props.startUserIds)
90117
provide('startDeptIds', props.startDeptIds)
91118
provide('tasks', [])
92119
provide('processInstance', {})
120+
121+
93122
const message = useMessage() // 国际化
94123
const processNodeTree = ref<SimpleFlowNode | undefined>()
95124
provide('processNodeTree', processNodeTree)
@@ -169,17 +198,17 @@ const validateNode = (node: SimpleFlowNode | undefined, errorNodes: SimpleFlowNo
169198
onMounted(async () => {
170199
try {
171200
loading.value = true
172-
// 获取表单字段
173-
if (props.modelId) {
174-
const bpmnModel = await getModel(props.modelId)
175-
if (bpmnModel) {
176-
formType.value = bpmnModel.formType
177-
if (formType.value === BpmModelFormType.NORMAL && bpmnModel.formId) {
178-
const bpmnForm = (await getForm(bpmnModel.formId)) as unknown as FormVO
179-
formFields.value = bpmnForm?.fields
180-
}
181-
}
182-
}
201+
// // 获取表单字段
202+
// if (props.modelId) {
203+
// const bpmnModel = await getModel(props.modelId)
204+
// if (bpmnModel) {
205+
// formType.value = bpmnModel.formType
206+
// if (formType.value === BpmModelFormType.NORMAL && bpmnModel.formId) {
207+
// const bpmnForm = (await getForm(bpmnModel.formId)) as unknown as FormVO
208+
// formFields.value = bpmnForm?.fields
209+
// }
210+
// }
211+
// }
183212
// 获得角色列表
184213
roleOptions.value = await RoleApi.getSimpleRoleList()
185214
// 获得岗位列表

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414
<template v-else>
1515
<SimpleModelDesign
1616
v-if="showDesigner"
17-
:model-id="modelData.id"
18-
:model-key="modelData.key"
1917
:model-name="modelData.name"
18+
:model-form-id="modelData.formId"
19+
:model-form-type="modelData.formType"
2020
:start-user-ids="modelData.startUserIds"
2121
:start-dept-ids="modelData.startDeptIds"
2222
@success="handleDesignSuccess"

src/views/bpm/model/index.vue

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,15 +209,18 @@ onActivated(() => {
209209

210210
<style lang="scss" scoped>
211211
:deep() {
212-
.el-table--fit .el-table__inner-wrapper:before {
212+
.el-table--fit .el-table__inner-wrapper::before {
213213
height: 0;
214214
}
215+
215216
.el-card {
216217
border-radius: 8px;
217218
}
219+
218220
.el-form--inline .el-form-item {
219221
margin-right: 10px;
220222
}
223+
221224
.el-divider--horizontal {
222225
margin-top: 6px;
223226
}

src/views/bpm/simple/SimpleModelDesign.vue

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
<template>
22
<ContentWrap :bodyStyle="{ padding: '20px 16px' }">
33
<SimpleProcessDesigner
4-
:model-id="modelId"
5-
:model-key="modelKey"
6-
:model-name="modelName"
7-
@success="handleSuccess"
4+
:model-form-id="modelFormId"
5+
:model-form-type="modelFormType"
86
:start-user-ids="startUserIds"
97
:start-dept-ids="startDeptIds"
8+
@success="handleSuccess"
109
ref="designerRef"
1110
/>
1211
</ContentWrap>
@@ -19,9 +18,9 @@ defineOptions({
1918
})
2019
2120
defineProps<{
22-
modelId?: string
23-
modelKey?: string
2421
modelName?: string
22+
modelFormId?: number
23+
modelFormType?: number
2524
startUserIds?: number[]
2625
startDeptIds?: number[]
2726
}>()

0 commit comments

Comments
 (0)