From c5b3c121c979174010cd685a0829638b7cef2380 Mon Sep 17 00:00:00 2001
From: wangzk <wangzk@hitopim.com>
Date: 星期五, 29 三月 2024 17:26:56 +0800
Subject: [PATCH] add 工作流挂节点路由表单
---
src/views/workflow/task/taskWaiting.vue | 16 +++++++++++++---
src/types/bpmn/panel.d.ts | 1 +
src/api/workflow/task/types.ts | 1 +
src/components/BpmnDesign/panel/TaskPanel.vue | 5 ++++-
src/components/BpmnDesign/hooks/usePanel.ts | 6 ++++--
5 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/src/api/workflow/task/types.ts b/src/api/workflow/task/types.ts
index 1a7629b..412b0aa 100644
--- a/src/api/workflow/task/types.ts
+++ b/src/api/workflow/task/types.ts
@@ -37,6 +37,7 @@
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 9168fe2..e9032f1 100644
--- a/src/components/BpmnDesign/hooks/usePanel.ts
+++ b/src/components/BpmnDesign/hooks/usePanel.ts
@@ -115,7 +115,9 @@
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 @@
createModdleElement,
idChange,
nameChange,
-
+ formKeyChange,
getExtensionElements,
getPropertiesElements
};
diff --git a/src/components/BpmnDesign/panel/TaskPanel.vue b/src/components/BpmnDesign/panel/TaskPanel.vue
index 9e247f8..5a23702 100644
--- a/src/components/BpmnDesign/panel/TaskPanel.vue
+++ b/src/components/BpmnDesign/panel/TaskPanel.vue
@@ -21,6 +21,9 @@
<el-form-item v-if="showConfig.skipExpression" prop="skipExpression" label="璺宠繃琛ㄨ揪寮�">
<el-input v-model="formData.skipExpression" @change="skipExpressionChange"> </el-input>
</el-form-item>
+ <el-form-item prop="formKey" label="琛ㄥ崟鍦板潃">
+ <el-input v-model="formData.formKey" @change="formKeyChange" placeholder="褰撳墠鑺傜偣琛ㄥ崟璺敱濡傦細/demo/leaveEdit/index"> </el-input>
+ </el-form-item>
</div>
</el-collapse-item>
<el-collapse-item name="2">
@@ -243,7 +246,7 @@
element: ModdleElement;
}
const props = withDefaults(defineProps<PropType>(), {});
-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 fc5fbe5..3179261 100644
--- a/src/types/bpmn/panel.d.ts
+++ b/src/types/bpmn/panel.d.ts
@@ -34,6 +34,7 @@
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 99a1a64..29a52a2 100644
--- a/src/views/workflow/task/taskWaiting.vue
+++ b/src/views/workflow/task/taskWaiting.vue
@@ -135,7 +135,17 @@
};
//鍔炵悊
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 @@
type: 'approval',
taskId: row.id
}
- })
- }else{
+ });
+ } else {
proxy?.$modal.msgError('璇峰埌娴佺▼瀹氫箟鑿滃崟閰嶇疆璺敱锛�');
}
};
--
Gitblit v1.9.3