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('请到流程定义菜单配置路由!');
}
};