diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json b/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json index 5544b2d061e83754e2e04418b64c1c7f3cbc8159..c60b524a1dffd7034c1e775bb7744014672cef83 100644 --- a/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json +++ b/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json @@ -1305,8 +1305,31 @@ "isAttr": true } ] + }, + { + "name": "FieldsPermission", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:UserTask"] + }, + "properties": [ + { + "name": "flowable:field", + "type": "String", + "isAttr": true + }, + { + "name": "flowable:title", + "type": "String", + "isAttr": true + }, + { + "name": "flowable:permission", + "type": "String", + "isAttr": true + } + ] } - ], "emumerations": [] } diff --git a/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue b/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue index 96e8b0807d5a0f47e47203b4ef7fcf918ed172f6..825dcb7d1082d27ac1acfc7ed91590d735ca0d47 100644 --- a/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue +++ b/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue @@ -54,8 +54,8 @@ - - + + diff --git a/src/components/bpmnProcessDesigner/package/penal/custom-config/ElementCustomConfig.vue b/src/components/bpmnProcessDesigner/package/penal/custom-config/ElementCustomConfig.vue index 9cf7e96632ca9e1ab2b90d4de3b025aedcc31074..9d8b3f57fb96dc448412c50d93491e6948b61d57 100644 --- a/src/components/bpmnProcessDesigner/package/penal/custom-config/ElementCustomConfig.vue +++ b/src/components/bpmnProcessDesigner/package/penal/custom-config/ElementCustomConfig.vue @@ -1,452 +1,41 @@ - - + diff --git a/src/components/bpmnProcessDesigner/package/penal/custom-config/components/BoundaryEventTimer.vue b/src/components/bpmnProcessDesigner/package/penal/custom-config/components/BoundaryEventTimer.vue new file mode 100644 index 0000000000000000000000000000000000000000..81ba670c5d9dd031046f585da9acbb70b8e2d7b6 --- /dev/null +++ b/src/components/bpmnProcessDesigner/package/penal/custom-config/components/BoundaryEventTimer.vue @@ -0,0 +1,13 @@ + + + + + diff --git a/src/components/bpmnProcessDesigner/package/penal/custom-config/components/UserTask.vue b/src/components/bpmnProcessDesigner/package/penal/custom-config/components/UserTask.vue new file mode 100644 index 0000000000000000000000000000000000000000..c592ed5ff5b1438711fea7a11733d13b79e18f97 --- /dev/null +++ b/src/components/bpmnProcessDesigner/package/penal/custom-config/components/UserTask.vue @@ -0,0 +1,656 @@ + + + + + + diff --git a/src/components/bpmnProcessDesigner/package/penal/custom-config/data.ts b/src/components/bpmnProcessDesigner/package/penal/custom-config/data.ts new file mode 100644 index 0000000000000000000000000000000000000000..8870f0217c9df33ff8189a5d2f9f90e990ceec3d --- /dev/null +++ b/src/components/bpmnProcessDesigner/package/penal/custom-config/data.ts @@ -0,0 +1,13 @@ +import UserTask from './components/UserTask.vue' +import BoundaryEventTimer from './components/BoundaryEventTimer.vue' + +export const CustomConfigMap = { + UserTask: { + name: '用户任务', + componet: UserTask + }, + BoundaryEventTimerEventDefinition: { + name: '定时边界事件(非中断)', + componet: BoundaryEventTimer + } +} diff --git a/src/views/bpm/model/editor/index.vue b/src/views/bpm/model/editor/index.vue index 3e773691a7b213db2357176ffc2fa56a39cc5ed4..1a41a50cc5b4ea047c121caa590ed471a4cd0e1c 100644 --- a/src/views/bpm/model/editor/index.vue +++ b/src/views/bpm/model/editor/index.vue @@ -31,6 +31,7 @@ import CustomContentPadProvider from '@/components/bpmnProcessDesigner/package/d // 自定义左侧菜单(修改 默认任务 为 用户任务) import CustomPaletteProvider from '@/components/bpmnProcessDesigner/package/designer/plugins/palette' import * as ModelApi from '@/api/bpm/model' +import { getForm, FormVO } from '@/api/bpm/form' defineOptions({ name: 'BpmModelEditor' }) @@ -38,6 +39,12 @@ const router = useRouter() // 路由 const { query } = useRoute() // 路由的查询 const message = useMessage() // 国际化 +// 表单信息 +const formFields = ref([]) +const formType = ref(20) +provide('formFields', formFields) +provide('formType', formType) + const xmlString = ref(undefined) // BPMN XML const modeler = ref(null) // BPMN Modeler const controlForm = ref({ @@ -99,6 +106,13 @@ onMounted(async () => { ` } + + formType.value = data.formType + if (data.formType === 10) { + const bpmnForm = (await getForm(data.formId)) as unknown as FormVO + formFields.value = bpmnForm?.fields + } + model.value = { ...data, bpmnXml: undefined // 清空 bpmnXml 属性