diff --git a/src/api/workflow/task/types.ts b/src/api/workflow/task/types.ts index 1a7629b54be169f44d577fb323d59a3b9890d9e8..412b0aa3b5cbb4b2f357493e5239eaed7cbb6d5a 100644 --- a/src/api/workflow/task/types.ts +++ b/src/api/workflow/task/types.ts @@ -37,6 +37,7 @@ export interface TaskVO extends BaseEntity { participantVo: ParticipantVo; multiInstance: boolean; businessKey: string; + formKey: string; wfFormDefinitionVo: any; } diff --git a/src/components/BpmnDesign/hooks/usePanel.ts b/src/components/BpmnDesign/hooks/usePanel.ts index 9168fe222cc9e89175b83afeb717e2a66affac21..e9032f1f7cf0518ddc75891d4bf1bdce92898e8a 100644 --- a/src/components/BpmnDesign/hooks/usePanel.ts +++ b/src/components/BpmnDesign/hooks/usePanel.ts @@ -115,7 +115,9 @@ export default (ops: Options) => { updateProperties({ name: newVal }); } }; - + const formKeyChange = (newVal: string) => { + updateProperties({ formKey: newVal }); + }; const constant = { MultiInstanceType: [ { id: '373d4b81-a0d1-4eb8-8685-0d2fb1b468e2', label: '无', value: MultiInstanceTypeEnum.NONE }, @@ -136,7 +138,7 @@ export default (ops: Options) => { createModdleElement, idChange, nameChange, - + formKeyChange, getExtensionElements, getPropertiesElements }; diff --git a/src/components/BpmnDesign/panel/TaskPanel.vue b/src/components/BpmnDesign/panel/TaskPanel.vue index 9e247f868148b7b373d85d98a0a7905b3fdf21b4..5a23702e70182f8cdedba4fb7ab3c3c047a35cd4 100644 --- a/src/components/BpmnDesign/panel/TaskPanel.vue +++ b/src/components/BpmnDesign/panel/TaskPanel.vue @@ -21,6 +21,9 @@ + + + @@ -243,7 +246,7 @@ interface PropType { element: ModdleElement; } const props = withDefaults(defineProps(), {}); -const { showConfig, nameChange, idChange, updateProperties, getExtensionElements, createModdleElement, constant } = usePanel({ +const { showConfig, nameChange, formKeyChange, idChange, updateProperties, getExtensionElements, createModdleElement, constant } = usePanel({ element: toRaw(props.element) }); const { parseData } = useParseElement({ diff --git a/src/types/bpmn/panel.d.ts b/src/types/bpmn/panel.d.ts index fc5fbe55a4d13e90473ab888a4b7cfd6344fbc8e..317926173113ca947f2c842c24cfee54a0b1630e 100644 --- a/src/types/bpmn/panel.d.ts +++ b/src/types/bpmn/panel.d.ts @@ -34,6 +34,7 @@ declare module 'bpmnDesign' { multiInstanceType: MultiInstanceTypeEnum; async?: boolean; priority?: number; + formKey?: string; skipExpression?: string; isForCompensation?: boolean; triggerServiceTask?: boolean; diff --git a/src/views/workflow/task/taskWaiting.vue b/src/views/workflow/task/taskWaiting.vue index 99a1a6446a8b025a0983634659159513fa52dda4..29a52a284b657e9bde67dd191596b0ad01806674 100644 --- a/src/views/workflow/task/taskWaiting.vue +++ b/src/views/workflow/task/taskWaiting.vue @@ -135,7 +135,17 @@ const getWaitingList = () => { }; //办理 const handleOpen = async (row: TaskVO) => { - if(row.wfFormDefinitionVo){ + if (row.formKey != null) { + proxy.$tab.closePage(proxy.$route); + proxy.$router.push({ + path: `${row.formKey}`, + query: { + id: row.businessKey, + type: 'approval', + taskId: row.id + } + }); + } else if (row.wfFormDefinitionVo) { proxy.$tab.closePage(proxy.$route); proxy.$router.push({ path: `${row.wfFormDefinitionVo.path}`, @@ -144,8 +154,8 @@ const handleOpen = async (row: TaskVO) => { type: 'approval', taskId: row.id } - }) - }else{ + }); + } else { proxy?.$modal.msgError('请到流程定义菜单配置路由!'); } };