fix: [BPM 工作流] Simple 模型创建时不能设置字段权限问题修复

This commit is contained in:
jason 2025-07-22 07:17:20 +08:00
parent 2b44f1d6dc
commit ab8761d44c
4 changed files with 62 additions and 31 deletions

View File

@ -26,8 +26,7 @@
<script setup lang="ts">
import SimpleProcessModel from './SimpleProcessModel.vue'
import { SimpleFlowNode, NodeType, NodeId, NODE_DEFAULT_TEXT } from './consts'
import { getModel } from '@/api/bpm/model'
import { getForm, FormVO } from '@/api/bpm/form'
import { getForm } from '@/api/bpm/form'
import { handleTree } from '@/utils/tree'
import * as RoleApi from '@/api/system/role'
import * as DeptApi from '@/api/system/dept'
@ -43,18 +42,22 @@ defineOptions({
const emits = defineEmits(['success']) //
const props = defineProps({
modelId: {
type: String,
required: false
},
modelKey: {
type: String,
required: false
},
modelName: {
type: String,
required: false
},
// ID
modelFormId: {
type: Number,
required: false,
default: undefined,
},
//
modelFormType: {
type: Number,
required: false,
default: BpmModelFormType.NORMAL,
},
//
startUserIds: {
type: Array,
@ -70,7 +73,31 @@ const props = defineProps({
const processData = inject('processData') as Ref
const loading = ref(false)
const formFields = ref<string[]>([])
const formType = ref(20)
const formType = ref(props.modelFormType);
// modelFormType
watch(
() => props.modelFormType,
(newVal) => {
formType.value = newVal;
},
);
// modelFormId
watch(
() => props.modelFormId,
async (newVal) => {
if (newVal) {
const form = await getForm(newVal);
formFields.value = form?.fields;
} else {
// modelFormId
formFields.value = [];
}
},
{ immediate: true },
);
const roleOptions = ref<RoleApi.RoleVO[]>([]) //
const postOptions = ref<PostApi.PostVO[]>([]) //
const userOptions = ref<UserApi.UserVO[]>([]) //
@ -90,6 +117,8 @@ provide('startUserIds', props.startUserIds)
provide('startDeptIds', props.startDeptIds)
provide('tasks', [])
provide('processInstance', {})
const message = useMessage() //
const processNodeTree = ref<SimpleFlowNode | undefined>()
provide('processNodeTree', processNodeTree)
@ -169,17 +198,17 @@ const validateNode = (node: SimpleFlowNode | undefined, errorNodes: SimpleFlowNo
onMounted(async () => {
try {
loading.value = true
//
if (props.modelId) {
const bpmnModel = await getModel(props.modelId)
if (bpmnModel) {
formType.value = bpmnModel.formType
if (formType.value === BpmModelFormType.NORMAL && bpmnModel.formId) {
const bpmnForm = (await getForm(bpmnModel.formId)) as unknown as FormVO
formFields.value = bpmnForm?.fields
}
}
}
// //
// if (props.modelId) {
// const bpmnModel = await getModel(props.modelId)
// if (bpmnModel) {
// formType.value = bpmnModel.formType
// if (formType.value === BpmModelFormType.NORMAL && bpmnModel.formId) {
// const bpmnForm = (await getForm(bpmnModel.formId)) as unknown as FormVO
// formFields.value = bpmnForm?.fields
// }
// }
// }
//
roleOptions.value = await RoleApi.getSimpleRoleList()
//

View File

@ -14,9 +14,9 @@
<template v-else>
<SimpleModelDesign
v-if="showDesigner"
:model-id="modelData.id"
:model-key="modelData.key"
:model-name="modelData.name"
:model-form-id="modelData.formId"
:model-form-type="modelData.formType"
:start-user-ids="modelData.startUserIds"
:start-dept-ids="modelData.startDeptIds"
@success="handleDesignSuccess"

View File

@ -209,15 +209,18 @@ onActivated(() => {
<style lang="scss" scoped>
:deep() {
.el-table--fit .el-table__inner-wrapper:before {
.el-table--fit .el-table__inner-wrapper::before {
height: 0;
}
.el-card {
border-radius: 8px;
}
.el-form--inline .el-form-item {
margin-right: 10px;
}
.el-divider--horizontal {
margin-top: 6px;
}

View File

@ -1,12 +1,11 @@
<template>
<ContentWrap :bodyStyle="{ padding: '20px 16px' }">
<SimpleProcessDesigner
:model-id="modelId"
:model-key="modelKey"
:model-name="modelName"
@success="handleSuccess"
:model-form-id="modelFormId"
:model-form-type="modelFormType"
:start-user-ids="startUserIds"
:start-dept-ids="startDeptIds"
@success="handleSuccess"
ref="designerRef"
/>
</ContentWrap>
@ -19,9 +18,9 @@ defineOptions({
})
defineProps<{
modelId?: string
modelKey?: string
modelName?: string
modelFormId?: number
modelFormType?: number
startUserIds?: number[]
startDeptIds?: number[]
}>()