+
@@ -112,6 +112,7 @@ const perviewXMLShow = ref(false);
const perviewSVGShow = ref(false);
const xmlStr = ref('');
const svgData = ref('');
+const loading = ref(false);
const panelBarClick = () => {
// 延迟执行,否则会导致面板收起时,属性面板不显示
@@ -285,7 +286,8 @@ const saveXml = async () => {
xml: xml,
svg: svg,
key: process.id,
- name: process.name
+ name: process.name,
+ loading: loading
};
emit('saveCallBack', data);
};
diff --git a/src/views/workflow/model/design.vue b/src/views/workflow/model/design.vue
index 0f6b118d..78b104f0 100644
--- a/src/views/workflow/model/design.vue
+++ b/src/views/workflow/model/design.vue
@@ -33,6 +33,7 @@ const open = async (id) => {
//保存模型
const saveCallBack = async (data) => {
await proxy?.$modal.confirm('是否确认保存?');
+ data.loading.value = true;
modelForm.value.id = modelId.value;
modelForm.value.xml = data.xml;
modelForm.value.svg = data.svg;
@@ -45,6 +46,7 @@ const saveCallBack = async (data) => {
emit('closeCallBack', data);
}
});
+ data.loading.value = false;
};
/**
diff --git a/vite.config.ts b/vite.config.ts
index 99ea8e81..e1e29511 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -65,9 +65,12 @@ export default defineConfig(({ mode, command }: ConfigEnv): UserConfig => {
'echarts',
'vue-i18n',
'@vueup/vue-quill',
+ 'bpmn-js/lib/Viewer',
'bpmn-js/lib/Modeler.js',
'bpmn-js-properties-panel',
'min-dash',
+ 'diagram-js/lib/navigation/movecanvas',
+ 'diagram-js/lib/navigation/zoomscroll',
'bpmn-js/lib/features/palette/PaletteProvider',
'bpmn-js/lib/features/context-pad/ContextPadProvider',
'diagram-js/lib/draw/BaseRenderer',
--
Gitee
From 3b4f171d9fb0ee2193a636bbd15f82c3b7c6bcdd Mon Sep 17 00:00:00 2001
From: LiuHao
Date: Fri, 8 Mar 2024 14:56:44 +0800
Subject: [PATCH 054/134] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E7=B1=BB?=
=?UTF-8?q?=E5=9E=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/workflow/task/index.ts | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/src/api/workflow/task/index.ts b/src/api/workflow/task/index.ts
index 7b496c0a..03265e11 100644
--- a/src/api/workflow/task/index.ts
+++ b/src/api/workflow/task/index.ts
@@ -1,6 +1,7 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { TaskQuery, TaskVO } from '@/api/workflow/task/types';
+
/**
* 查询待办列表
* @param query
@@ -71,7 +72,7 @@ export const getPageByAllTaskFinish = (query: TaskQuery): AxiosPromise
* @param data
* @returns {*}
*/
-export const startWorkFlow = (data: object) => {
+export const startWorkFlow = (data: object): any => {
return request({
url: '/workflow/task/startWorkFlow',
method: 'post',
@@ -97,7 +98,7 @@ export const completeTask = (data: object) => {
* @param taskId
* @returns {*}
*/
-export const claim = (taskId: string) => {
+export const claim = (taskId: string): any => {
return request({
url: '/workflow/task/claim/' + taskId,
method: 'post'
@@ -109,7 +110,7 @@ export const claim = (taskId: string) => {
* @param taskId
* @returns {*}
*/
-export const returnTask = (taskId: string) => {
+export const returnTask = (taskId: string): any => {
return request({
url: '/workflow/task/returnTask/' + taskId,
method: 'post'
@@ -118,10 +119,10 @@ export const returnTask = (taskId: string) => {
/**
* 任务驳回
- * @param taskId
+ * @param data
* @returns {*}
*/
-export const backProcess = (data: object) => {
+export const backProcess = (data: any): any => {
return request({
url: '/workflow/task/backProcess',
method: 'post',
@@ -146,7 +147,7 @@ export const getTaskById = (taskId: string) => {
* @param data
* @returns
*/
-export const addMultiInstanceExecution = (data: object) => {
+export const addMultiInstanceExecution = (data: any) => {
return request({
url: '/workflow/task/addMultiInstanceExecution',
method: 'post',
@@ -159,7 +160,7 @@ export const addMultiInstanceExecution = (data: object) => {
* @param data
* @returns
*/
-export const deleteMultiInstanceExecution = (data: object) => {
+export const deleteMultiInstanceExecution = (data: any) => {
return request({
url: '/workflow/task/deleteMultiInstanceExecution',
method: 'post',
@@ -173,7 +174,7 @@ export const deleteMultiInstanceExecution = (data: object) => {
* @param userId
* @returns
*/
-export const updateAssignee = (taskIds: Array,userId: string) => {
+export const updateAssignee = (taskIds: Array, userId: string) => {
return request({
url: `/workflow/task/updateAssignee/${taskIds}/${userId}`,
method: 'put'
@@ -182,11 +183,9 @@ export const updateAssignee = (taskIds: Array,userId: string) => {
/**
* 转办任务
- * @param taskIds
- * @param userId
* @returns
*/
-export const transferTask = (data: object) => {
+export const transferTask = (data: any) => {
return request({
url: `/workflow/task/transferTask`,
method: 'post',
--
Gitee
From b8eb2dcb401e9dcb1dc3e68be223cc597b6679f4 Mon Sep 17 00:00:00 2001
From: LiuHao
Date: Fri, 8 Mar 2024 15:00:01 +0800
Subject: [PATCH 055/134] =?UTF-8?q?update=20=E5=A2=9E=E5=8A=A0=E9=BB=98?=
=?UTF-8?q?=E8=AE=A4=E5=AF=BC=E5=87=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/workflow/processInstance/index.ts | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/src/api/workflow/processInstance/index.ts b/src/api/workflow/processInstance/index.ts
index 869245ec..9a417c1b 100644
--- a/src/api/workflow/processInstance/index.ts
+++ b/src/api/workflow/processInstance/index.ts
@@ -41,9 +41,9 @@ export const getHistoryImage = (processInstanceId: string) => {
/**
* 通过流程实例id获取历史流程图运行中,历史等节点
*/
-export const getHistoryList = (processInstanceId: string) => {
+export const getHistoryList = (instanceId: string) => {
return request({
- url: `/workflow/processInstance/getHistoryList/${processInstanceId}` + '?t' + Math.random(),
+ url: `/workflow/processInstance/getHistoryList/${instanceId}` + '?t' + Math.random(),
method: 'get'
});
};
@@ -121,3 +121,16 @@ export const cancelProcessApply = (processInstanceId: string) => {
method: 'post'
});
};
+
+export default {
+ getPageByRunning,
+ getPageByFinish,
+ getHistoryImage,
+ getHistoryList,
+ getHistoryRecord,
+ deleteRunInstance,
+ deleteRunAndHisInstance,
+ deleteFinishAndHisInstance,
+ getPageByCurrent,
+ cancelProcessApply
+};
--
Gitee
From 1dd9983f0fc8aeab4a72d0d0ad4d152d763fdc28 Mon Sep 17 00:00:00 2001
From: LiuHao
Date: Fri, 8 Mar 2024 15:59:27 +0800
Subject: [PATCH 056/134] =?UTF-8?q?update=20=20=E6=B5=81=E7=A8=8B=E5=9B=BE?=
=?UTF-8?q?=E5=92=8C=E5=AE=A1=E6=89=B9=E4=BF=A1=E6=81=AF=E5=88=86=E5=BC=80?=
=?UTF-8?q?=E5=B1=95=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/Process/approvalRecord.vue | 156 ++++++++++++----------
1 file changed, 87 insertions(+), 69 deletions(-)
diff --git a/src/components/Process/approvalRecord.vue b/src/components/Process/approvalRecord.vue
index eb402281..2c43dc52 100644
--- a/src/components/Process/approvalRecord.vue
+++ b/src/components/Process/approvalRecord.vue
@@ -1,37 +1,50 @@
-
-
-
-
-
-
-
审批人员: {{ nodeInfo.nickName }}
-
节点状态:{{ nodeInfo.status }}
-
开始时间:{{ nodeInfo.startTime }}
-
结束时间:{{ nodeInfo.endTime }}
-
审批耗时:{{ nodeInfo.runDuration }}
+
+
+
+
+
+
+
+
+
审批人员: {{ nodeInfo.nickName }}
+
节点状态:{{ nodeInfo.status }}
+
开始时间:{{ nodeInfo.startTime }}
+
结束时间:{{ nodeInfo.endTime }}
+
审批耗时:{{ nodeInfo.runDuration }}
+
+
+
-
-
-
-
-
+
+
+
+
@@ -43,44 +56,47 @@
-
-
- 附件
-
-
-
-
-
- 下载
-
-
-
-
-
+
+
+ 附件
+
+
+
+
+
+ 下载
+
+
+
+
-
-
-
-
+
+
+
+
+
+
--
Gitee
From d1c199d4bf895e3a1c8ecfbb1414c44c4a0fc718 Mon Sep 17 00:00:00 2001
From: LiuHao
Date: Fri, 8 Mar 2024 18:22:28 +0800
Subject: [PATCH 058/134] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E6=B5=81?=
=?UTF-8?q?=E7=A8=8B=E9=A2=84=E8=A7=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/workflow/processInstance/index.ts | 2 +-
src/components/BpmnView/index.vue | 140 +++++++++--------
src/components/Process/approvalRecord.vue | 176 ++++++++++++----------
3 files changed, 172 insertions(+), 146 deletions(-)
diff --git a/src/api/workflow/processInstance/index.ts b/src/api/workflow/processInstance/index.ts
index 9a417c1b..80f122f1 100644
--- a/src/api/workflow/processInstance/index.ts
+++ b/src/api/workflow/processInstance/index.ts
@@ -41,7 +41,7 @@ export const getHistoryImage = (processInstanceId: string) => {
/**
* 通过流程实例id获取历史流程图运行中,历史等节点
*/
-export const getHistoryList = (instanceId: string) => {
+export const getHistoryList = (instanceId: string): AxiosPromise> => {
return request({
url: `/workflow/processInstance/getHistoryList/${instanceId}` + '?t' + Math.random(),
method: 'get'
diff --git a/src/components/BpmnView/index.vue b/src/components/BpmnView/index.vue
index ee0eaa62..75a89cd0 100644
--- a/src/components/BpmnView/index.vue
+++ b/src/components/BpmnView/index.vue
@@ -1,37 +1,35 @@
-
-
-
-
--
Gitee
From fb94a4d79c0883a543ce42379c5e6998c3cf5e6f Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: Mon, 11 Mar 2024 21:03:00 +0800
Subject: [PATCH 065/134] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E5=B7=B2?=
=?UTF-8?q?=E5=8A=9E=E5=88=97=E8=A1=A8=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=AE=A1?=
=?UTF-8?q?=E6=89=B9=E8=AE=B0=E5=BD=95=E5=8A=A0=E8=BD=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/Process/approvalRecord.vue | 3 ++-
src/views/workflow/task/taskFinish.vue | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/components/Process/approvalRecord.vue b/src/components/Process/approvalRecord.vue
index 5da0a568..2ef5d73a 100644
--- a/src/components/Process/approvalRecord.vue
+++ b/src/components/Process/approvalRecord.vue
@@ -5,7 +5,7 @@
-
+
@@ -67,6 +67,7 @@ const bpmnViewRef = ref();
const init = async (instanceId: string) => {
visible.value = true;
loading.value = true;
+ tabActiveName.value = 'bpmn'
historyList.value = [];
processApi.getHistoryRecord(instanceId).then((resp) => {
historyList.value = resp.data.historyRecordList;
diff --git a/src/views/workflow/task/taskFinish.vue b/src/views/workflow/task/taskFinish.vue
index 0b092ea9..fd9ce6ec 100644
--- a/src/views/workflow/task/taskFinish.vue
+++ b/src/views/workflow/task/taskFinish.vue
@@ -41,7 +41,7 @@
-
+
审批记录
--
Gitee
From f9b8922bedb50edee9b18f5586a0fff3d878c5fa Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: Mon, 11 Mar 2024 21:14:22 +0800
Subject: [PATCH 066/134] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E5=85=A8?=
=?UTF-8?q?=E9=83=A8=E5=B7=B2=E5=8A=9E=E5=BC=80=E5=A7=8B=E6=97=B6=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/workflow/task/allTaskWaiting.vue | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/views/workflow/task/allTaskWaiting.vue b/src/views/workflow/task/allTaskWaiting.vue
index cee2d269..2d8ef674 100644
--- a/src/views/workflow/task/allTaskWaiting.vue
+++ b/src/views/workflow/task/allTaskWaiting.vue
@@ -70,7 +70,8 @@
已完成
-
+
+
--
Gitee
From 7666f724dfb0e4fb0804f91c7f1f89b9904d6909 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=84=BF=E4=B8=B6?= <1319542051@qq.com>
Date: Tue, 12 Mar 2024 15:48:42 +0000
Subject: [PATCH 067/134] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E5=AF=BC?=
=?UTF-8?q?=E5=85=A5=E6=A8=A1=E5=9E=8B=E9=80=89=E6=8B=A9=E6=B5=81=E7=A8=8B?=
=?UTF-8?q?=E7=B1=BB=E5=88=AB=E6=96=B9=E5=BC=8F(=E6=94=B9=E4=B8=BA?=
=?UTF-8?q?=E8=A1=A8=E5=8D=95=E5=86=85=E4=B8=8B=E6=8B=89=E6=A1=86)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: 愿丶 <1319542051@qq.com>
---
.../workflow/processDefinition/index.vue | 35 +++++++++++++------
1 file changed, 25 insertions(+), 10 deletions(-)
diff --git a/src/views/workflow/processDefinition/index.vue b/src/views/workflow/processDefinition/index.vue
index 4eca9801..6a04f8ac 100644
--- a/src/views/workflow/processDefinition/index.vue
+++ b/src/views/workflow/processDefinition/index.vue
@@ -125,12 +125,25 @@
+
+ *请选择部署流程分类:
+
+
-
- 点击上传,选择BPMN流程文件
- 仅支持 .zip、.bpmn20.xml、bpmn 格式文件
- PS:如若部署请部署从本项目模型管理导出的数据
-
+
+
点击上传,选择BPMN流程文件
+
仅支持 .zip、.bpmn20.xml、bpmn 格式文件
+
PS:如若部署请部署从本项目模型管理导出的数据
+
@@ -232,6 +245,8 @@ const processDefinitionHistoryList = ref([]);
const url = ref([]);
const categoryOptions = ref([]);
const categoryName = ref('');
+/** 部署文件分类选择 */
+const selectCategory = ref();
const uploadDialog = reactive({
visible: false,
@@ -382,21 +397,21 @@ const handleConvertToModel = async (row: ProcessDefinitionVO) => {
//部署文件
const handerDeployProcessFile = (data: UploadRequestOptions): XMLHttpRequest => {
let formData = new FormData();
- if (queryParams.value.categoryCode === 'ALL') {
+ if (selectCategory.value === 'ALL') {
proxy?.$modal.msgError('顶级节点不可作为分类!');
return;
}
- if (!queryParams.value.categoryCode) {
+ if (!selectCategory.value) {
proxy?.$modal.msgError('请选择左侧要上传的分类!');
return;
}
- uploadDialogLoading.value = true
+ uploadDialogLoading.value = true;
formData.append('file', data.file);
- formData.append('categoryCode', queryParams.value.categoryCode);
+ formData.append('categoryCode', selectCategory.value);
deployProcessFile(formData).then(() => {
uploadDialog.visible = false;
proxy?.$modal.msgSuccess('部署成功');
- uploadDialogLoading.value = false
+ uploadDialogLoading.value = false;
handleQuery();
});
};
--
Gitee
From eb364873d236e6bd0aec2c7ad8ad6bdaeafe75f3 Mon Sep 17 00:00:00 2001
From: dhb52
Date: Wed, 13 Mar 2024 01:18:49 +0800
Subject: [PATCH 068/134] =?UTF-8?q?=E2=9C=A8=20EasyRetry=20Server=20?=
=?UTF-8?q?=E6=89=A9=E5=B1=95=E6=A8=A1=E5=9D=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.env.development | 3 +++
.env.production | 3 +++
src/types/env.d.ts | 3 ++-
src/views/monitor/easyretry/index.vue | 9 +++++++++
4 files changed, 17 insertions(+), 1 deletion(-)
create mode 100644 src/views/monitor/easyretry/index.vue
diff --git a/.env.development b/.env.development
index ad47825c..eb5837f2 100644
--- a/.env.development
+++ b/.env.development
@@ -16,6 +16,9 @@ VITE_APP_MONITRO_ADMIN = 'http://localhost:9090/admin/applications'
# powerjob 控制台地址
VITE_APP_POWERJOB_ADMIN = 'http://localhost:7700/'
+# easyretry 控制台地址
+VITE_APP_EASYRETRY_ADMIN = 'http://localhost:8800/easy-retry'
+
VITE_APP_PORT = 80
# 接口加密功能开关(如需关闭 后端也必须对应关闭)
diff --git a/.env.production b/.env.production
index c15308fd..26844c32 100644
--- a/.env.production
+++ b/.env.production
@@ -13,6 +13,9 @@ VITE_APP_MONITRO_ADMIN = '/admin/applications'
# powerjob 控制台地址
VITE_APP_POWERJOB_ADMIN = '/powerjob'
+# easyretry 控制台地址
+VITE_APP_EASYRETRY_ADMIN = '/easy-retry'
+
# 生产环境
VITE_APP_BASE_API = '/prod-api'
diff --git a/src/types/env.d.ts b/src/types/env.d.ts
index 5b18a8e7..bfc37ccf 100644
--- a/src/types/env.d.ts
+++ b/src/types/env.d.ts
@@ -13,8 +13,9 @@ interface ImportMetaEnv {
VITE_APP_CONTEXT_PATH: string;
VITE_APP_MONITRO_ADMIN: string;
VITE_APP_POWERJOB_ADMIN: string;
+ VITE_APP_EASYRETRY_ADMIN: string;
VITE_APP_ENV: string;
- VITE_APP_ENCRYPT: string
+ VITE_APP_ENCRYPT: string;
VITE_APP_RSA_PUBLIC_KEY: string;
VITE_APP_RSA_PRIVATE_KEY: string;
VITE_APP_CLIENT_ID: string;
diff --git a/src/views/monitor/easyretry/index.vue b/src/views/monitor/easyretry/index.vue
new file mode 100644
index 00000000..d561f220
--- /dev/null
+++ b/src/views/monitor/easyretry/index.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
--
Gitee
From e4f18452c7498641efe8ab370c4c31adcc81064c Mon Sep 17 00:00:00 2001
From: dhb52
Date: Thu, 14 Mar 2024 16:42:00 +0000
Subject: [PATCH 069/134] fix: if(captchaEnabled) => if(captchaEnabled.value)
Signed-off-by: dhb52
---
src/views/register.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/views/register.vue b/src/views/register.vue
index a27a72ac..cb340fe3 100644
--- a/src/views/register.vue
+++ b/src/views/register.vue
@@ -121,7 +121,7 @@ const handleRegister = () => {
await router.push('/login');
} else {
loading.value = false;
- if (captchaEnabled) {
+ if (captchaEnabled.value) {
getCode();
}
}
--
Gitee
From 1edc9537659f11fdd28aab6256045fc238eb22dc Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: Sat, 16 Mar 2024 19:35:13 +0800
Subject: [PATCH 070/134] =?UTF-8?q?fix=20=E4=BF=AE=E6=94=B9=E5=B7=B2?=
=?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BB=BB=E5=8A=A1=E6=9F=A5=E7=9C=8B=E6=B5=81?=
=?UTF-8?q?=E7=A8=8B=E5=8F=98=E9=87=8F=E9=94=99=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/workflow/task/allTaskWaiting.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/views/workflow/task/allTaskWaiting.vue b/src/views/workflow/task/allTaskWaiting.vue
index 2d8ef674..dfaf7c9d 100644
--- a/src/views/workflow/task/allTaskWaiting.vue
+++ b/src/views/workflow/task/allTaskWaiting.vue
@@ -84,7 +84,7 @@
减签
-
+
流程变量
--
Gitee
From 3a3f873834eb49038471287db8991c6c9cbb83e9 Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: Sat, 16 Mar 2024 22:01:35 +0800
Subject: [PATCH 071/134] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E6=A8=A1?=
=?UTF-8?q?=E5=9E=8Bzip=E5=AF=BC=E5=87=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/workflow/model/index.vue | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/views/workflow/model/index.vue b/src/views/workflow/model/index.vue
index 93cd675a..c8cfda07 100644
--- a/src/views/workflow/model/index.vue
+++ b/src/views/workflow/model/index.vue
@@ -45,11 +45,14 @@
新增
- 修改
+ 修改
删除
+
+ 导出
+
@@ -71,9 +74,9 @@
设计流程
-
+
@@ -324,8 +327,8 @@ const clickDesign = async (id: string) => {
await designRef.value.open(id);
};
// 导出流程模型
-const clickExportZip = (data: any) => {
- proxy?.$download.zip('/workflow/model/export/zip/' + data.id, data.name + '-' + data.key);
+const clickExportZip = () => {
+ proxy?.$download.zip('/workflow/model/export/zip/' + ids.value, "模型");
};
/** 查询流程分类下拉树结构 */
const getTreeselect = async () => {
--
Gitee
From ade0b3e29e6aa92ab5ce7ce1fef7c730ec954123 Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: Sat, 16 Mar 2024 22:02:45 +0800
Subject: [PATCH 072/134] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E6=A8=A1?=
=?UTF-8?q?=E5=9E=8B=E5=AF=BC=E5=87=BA=E6=8C=89=E9=92=AE=E4=BD=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/workflow/model/index.vue | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)
diff --git a/src/views/workflow/model/index.vue b/src/views/workflow/model/index.vue
index c8cfda07..26550c39 100644
--- a/src/views/workflow/model/index.vue
+++ b/src/views/workflow/model/index.vue
@@ -74,9 +74,9 @@
设计流程
-
+
+ 删除
+
@@ -84,9 +84,6 @@
流程部署
-
- 删除
-
--
Gitee
From 00a7a8ce23c041e08b60a0ea7f81a951122326c4 Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: Sun, 17 Mar 2024 18:26:22 +0800
Subject: [PATCH 073/134] =?UTF-8?q?add=20=E6=B7=BB=E5=8A=A0=E6=B5=81?=
=?UTF-8?q?=E7=A8=8B=E8=87=AA=E7=94=B1=E9=A9=B3=E5=9B=9E=E8=8A=82=E7=82=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/workflow/task/index.ts | 11 ++++
src/components/Process/submitVerify.vue | 68 ++++++++++++++++++++++---
2 files changed, 73 insertions(+), 6 deletions(-)
diff --git a/src/api/workflow/task/index.ts b/src/api/workflow/task/index.ts
index aabdd152..07b183d9 100644
--- a/src/api/workflow/task/index.ts
+++ b/src/api/workflow/task/index.ts
@@ -215,3 +215,14 @@ export const getInstanceVariable = (taskId: string) => {
method: 'get'
});
};
+
+/**
+ * 获取可驳回得任务节点
+ * @returns
+ */
+export const getTaskNodeList = (processInstanceId: string) => {
+ return request({
+ url: `/workflow/task/getTaskNodeList/${processInstanceId}`,
+ method: 'get'
+ });
+};
diff --git a/src/components/Process/submitVerify.vue b/src/components/Process/submitVerify.vue
index ead353bc..0d7e4138 100644
--- a/src/components/Process/submitVerify.vue
+++ b/src/components/Process/submitVerify.vue
@@ -28,7 +28,7 @@
加签
减签
终止
- 退回
+ 退回
取消
@@ -38,6 +38,39 @@
+
+
+
+
+
+
+
+
+
+
+
+ 站内信
+ 邮件
+ 短信
+
+
+
+
+
+
+
+
+
+
+
@@ -45,7 +78,7 @@
import { ref } from 'vue';
import { ComponentInternalInstance } from 'vue';
import { ElForm } from 'element-plus';
-import { completeTask, backProcess, getTaskById,transferTask,terminationTask } from '@/api/workflow/task';
+import { completeTask, backProcess, getTaskById,transferTask,terminationTask,getTaskNodeList } from '@/api/workflow/task';
import UserSelect from '@/components/UserSelect';
import MultiInstanceUser from '@/components/Process/multiInstanceUser.vue';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
@@ -74,7 +107,11 @@ const selectCopyUserList = ref([]);
const selectCopyUserIds = ref(undefined);
//是否多选人员
const userMultiple = ref(false);
-
+// 驳回是否显示
+const backVisible = ref(false);
+const backLoading = ref(true);
+// 可驳回得任务节点
+const taskNodeList = ref([]);
//任务
const task = ref({
id: undefined,
@@ -116,6 +153,13 @@ const form = ref>({
messageType: ['1'],
wfCopyList: []
});
+const backForm = ref>({
+ taskId: undefined,
+ targetActivityId: undefined,
+ message: undefined,
+ variables: {},
+ messageType: ['1']
+});
const closeDialog = () => {
dialog.visible = false
}
@@ -165,14 +209,26 @@ const handleCompleteTask = async () => {
proxy?.$modal.msgSuccess('操作成功');
};
+/** 驳回弹窗打开 */
+const handleBackProcessOpen = async () => {
+ backForm.value = {}
+ backForm.value.messageType = ['1']
+ backVisible.value = true
+ backLoading.value = true
+ let data = await getTaskNodeList(task.value.processInstanceId)
+ taskNodeList.value = data.data
+ backLoading.value = false
+ backForm.value.targetActivityId = taskNodeList.value[0].nodeId
+}
/** 驳回流程 */
const handleBackProcess = async () => {
- form.value.taskId = taskId.value;
+ backForm.value.taskId = taskId.value;
await proxy?.$modal.confirm('是否确认驳回到申请人?');
loading.value = true;
- buttonLoading.value = true;
- await backProcess(form.value).finally(() => (loading.value = false));
+ backLoading.value = true;
+ await backProcess(backForm.value).finally(() => (loading.value = false));
dialog.visible = false;
+ backLoading.value = false
emits('submitCallback');
proxy?.$modal.msgSuccess('操作成功');
};
--
Gitee
From 1c0e614d7da8f62ac52080a60b364f419c0d6795 Mon Sep 17 00:00:00 2001
From: LiuHao
Date: Mon, 18 Mar 2024 10:44:21 +0800
Subject: [PATCH 074/134] =?UTF-8?q?update=20=E6=96=B0=E5=A2=9E=E6=B1=A0/?=
=?UTF-8?q?=E5=8F=82=E4=B8=8E=E8=80=85=E9=9D=A2=E6=9D=BF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/BpmnDesign/assets/lang/zh.ts | 10 +++-
.../BpmnDesign/assets/style/index.scss | 51 +++++++++++++++++++
.../BpmnDesign/panel/ParticipantPanel.vue | 40 +++++++++++++++
src/components/BpmnDesign/panel/index.vue | 2 +
4 files changed, 101 insertions(+), 2 deletions(-)
create mode 100644 src/components/BpmnDesign/panel/ParticipantPanel.vue
diff --git a/src/components/BpmnDesign/assets/lang/zh.ts b/src/components/BpmnDesign/assets/lang/zh.ts
index 61921a5d..44e2c866 100644
--- a/src/components/BpmnDesign/assets/lang/zh.ts
+++ b/src/components/BpmnDesign/assets/lang/zh.ts
@@ -16,7 +16,12 @@ export const NodeName = {
'bpmn:ParallelGateway': '并行网关',
'bpmn:InclusiveGateway': '相容网关',
'bpmn:ComplexGateway': '复杂网关',
- 'bpmn:EventBasedGateway': '事件网关'
+ 'bpmn:EventBasedGateway': '事件网关',
+ 'bpmn:Participant': '池/参与者',
+ 'bpmn:SubProcess': '子流程',
+ 'bpmn:DataObjectReference': '数据对象引用',
+ 'bpmn:DataStoreReference': '数据存储引用',
+ 'bpmn:Group': '组'
};
export default {
@@ -114,5 +119,6 @@ export default {
'Append message intermediate catch event': '追加中间消息捕获事件',
'Append timer intermediate catch event': '追加中间定时捕获事件',
'Append conditional intermediate catch event': '追加中间条件捕获事件',
- 'Append signal intermediate catch event': '追加中间信号捕获事件'
+ 'Append signal intermediate catch event': '追加中间信号捕获事件',
+ 'flow elements must be children of pools/participants': '流程元素必须是池/参与者的子元素'
};
diff --git a/src/components/BpmnDesign/assets/style/index.scss b/src/components/BpmnDesign/assets/style/index.scss
index d3ce3797..130b842a 100644
--- a/src/components/BpmnDesign/assets/style/index.scss
+++ b/src/components/BpmnDesign/assets/style/index.scss
@@ -227,4 +227,55 @@
opacity: 0.8;
}
}
+ .bpmn-icon-data-object {
+ &:hover {
+ &:after {
+ content: '创建数据对象';
+ position: absolute;
+ left: 45px;
+ width: 120px;
+ font-size: 15px;
+ font-weight: bold;
+ color: #3a84de;
+ border-radius: 2px;
+ border: 1px solid #cccccc;
+ background-color: #fafafa;
+ opacity: 0.8;
+ }
+ }
+ }
+ .bpmn-icon-data-store {
+ &:hover {
+ &:after {
+ content: '创建数据存储';
+ position: absolute;
+ left: 100px;
+ width: 120px;
+ font-size: 15px;
+ font-weight: bold;
+ color: #3a84de;
+ border-radius: 2px;
+ border: 1px solid #cccccc;
+ background-color: #fafafa;
+ opacity: 0.8;
+ }
+ }
+ }
+ .bpmn-icon-group {
+ &:hover {
+ &:after {
+ content: '创建分组';
+ position: absolute;
+ left: 100px;
+ width: 100px;
+ font-size: 15px;
+ font-weight: bold;
+ color: #3a84de;
+ border-radius: 2px;
+ border: 1px solid #cccccc;
+ background-color: #fafafa;
+ opacity: 0.8;
+ }
+ }
+ }
}
diff --git a/src/components/BpmnDesign/panel/ParticipantPanel.vue b/src/components/BpmnDesign/panel/ParticipantPanel.vue
new file mode 100644
index 00000000..7dd5474a
--- /dev/null
+++ b/src/components/BpmnDesign/panel/ParticipantPanel.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/BpmnDesign/panel/index.vue b/src/components/BpmnDesign/panel/index.vue
index 6c2d1466..6ba7fee8 100644
--- a/src/components/BpmnDesign/panel/index.vue
+++ b/src/components/BpmnDesign/panel/index.vue
@@ -11,6 +11,7 @@ import ProcessPanel from './ProcessPanel.vue';
import StartEndPanel from './StartEndPanel.vue';
import GatewayPanel from './GatewayPanel.vue';
import SequenceFlowPanel from './SequenceFlowPanel.vue';
+import ParticipantPanel from './ParticipantPanel.vue';
import { Modeler, ModdleElement } from 'bpmn';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
interface propsType {
@@ -45,6 +46,7 @@ const component = computed(() => {
if (sequenceType.includes(type)) return SequenceFlowPanel;
if (gatewayType.includes(type)) return GatewayPanel;
if (processType.includes(type)) return ProcessPanel;
+ if (type === 'bpmn:Participant') return ParticipantPanel;
//return proxy?.$modal.msgWarning('面板开发中....');
});
--
Gitee
From a9cd5684b288013767a96754b3c3a8b6733089b9 Mon Sep 17 00:00:00 2001
From: LiuHao
Date: Mon, 18 Mar 2024 10:56:12 +0800
Subject: [PATCH 075/134] =?UTF-8?q?update=20=E6=96=B0=E5=A2=9E=E9=A2=84?=
=?UTF-8?q?=E7=BC=96=E8=AF=91=E5=92=8C=E7=BF=BB=E8=AF=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/BpmnDesign/assets/lang/zh.ts | 2 ++
vite.config.ts | 1 +
2 files changed, 3 insertions(+)
diff --git a/src/components/BpmnDesign/assets/lang/zh.ts b/src/components/BpmnDesign/assets/lang/zh.ts
index 44e2c866..ee0c5de3 100644
--- a/src/components/BpmnDesign/assets/lang/zh.ts
+++ b/src/components/BpmnDesign/assets/lang/zh.ts
@@ -62,6 +62,8 @@ export default {
'Event-based gateway': '事件网关',
'Exclusive gateway': '互斥网关',
'Empty pool/participant (removes content)': '清空池/参与者 (删除内容)',
+ 'Empty pool/participant': '清空池/参与者',
+ 'Expanded pool/participant': '展开池/参与者',
'Inclusive gateway': '相容网关',
'Intermediate throw event': '中间抛出事件',
'Loop': '循环',
diff --git a/vite.config.ts b/vite.config.ts
index e1e29511..060054a6 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -76,6 +76,7 @@ export default defineConfig(({ mode, command }: ConfigEnv): UserConfig => {
'diagram-js/lib/draw/BaseRenderer',
'tiny-svg',
+ 'element-plus/es/components/text/style/css',
'element-plus/es/components/collapse-item/style/css',
'element-plus/es/components/collapse/style/css',
'element-plus/es/components/space/style/css',
--
Gitee
From 5dcfee4c071d22aba34b31923dc63c47cfb8d7cc Mon Sep 17 00:00:00 2001
From: LiuHao
Date: Mon, 18 Mar 2024 11:52:44 +0800
Subject: [PATCH 076/134] =?UTF-8?q?update=20=E6=B5=81=E7=A8=8B=E9=83=A8?=
=?UTF-8?q?=E7=BD=B2=E6=94=AF=E6=8C=81=E5=A4=9A=E9=80=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/workflow/processDefinition/index.ts | 6 ++-
.../workflow/processDefinition/index.vue | 46 ++++++++++++-------
2 files changed, 34 insertions(+), 18 deletions(-)
diff --git a/src/api/workflow/processDefinition/index.ts b/src/api/workflow/processDefinition/index.ts
index 23951e27..605012a3 100644
--- a/src/api/workflow/processDefinition/index.ts
+++ b/src/api/workflow/processDefinition/index.ts
@@ -93,7 +93,10 @@ export function deployProcessFile(data: any) {
return request({
url: '/workflow/processDefinition/deployByFile',
method: 'post',
- data: data
+ data: data,
+ headers: {
+ repeatSubmit: false
+ }
});
}
@@ -109,4 +112,3 @@ export const migrationDefinition = (currentProcessDefinitionId: string, fromProc
method: 'put'
});
};
-
diff --git a/src/views/workflow/processDefinition/index.vue b/src/views/workflow/processDefinition/index.vue
index 6a04f8ac..df630dcb 100644
--- a/src/views/workflow/processDefinition/index.vue
+++ b/src/views/workflow/processDefinition/index.vue
@@ -138,11 +138,18 @@
style="width: 240px"
/>
-
-
- 点击上传,选择BPMN流程文件
- 仅支持 .zip、.bpmn20.xml、bpmn 格式文件
- PS:如若部署请部署从本项目模型管理导出的数据
+
+
+ 点击上传,选择BPMN流程文件
+ 仅支持 .zip、.bpmn20.xml、bpmn 格式文件
+ PS:如若部署请部署从本项目模型管理导出的数据
@@ -394,25 +401,32 @@ const handleConvertToModel = async (row: ProcessDefinitionVO) => {
proxy?.$modal.msgSuccess('操作成功');
};
-//部署文件
-const handerDeployProcessFile = (data: UploadRequestOptions): XMLHttpRequest => {
- let formData = new FormData();
+//上传文件前的钩子
+const handlerBeforeUpload = () => {
if (selectCategory.value === 'ALL') {
proxy?.$modal.msgError('顶级节点不可作为分类!');
- return;
+ return false;
}
if (!selectCategory.value) {
proxy?.$modal.msgError('请选择左侧要上传的分类!');
- return;
+ return false;
}
+};
+//部署文件
+const handerDeployProcessFile = (data: UploadRequestOptions): XMLHttpRequest => {
+ let formData = new FormData();
uploadDialogLoading.value = true;
formData.append('file', data.file);
formData.append('categoryCode', selectCategory.value);
- deployProcessFile(formData).then(() => {
- uploadDialog.visible = false;
- proxy?.$modal.msgSuccess('部署成功');
- uploadDialogLoading.value = false;
- handleQuery();
- });
+ deployProcessFile(formData)
+ .then(() => {
+ uploadDialog.visible = false;
+ proxy?.$modal.msgSuccess('部署成功');
+ handleQuery();
+ })
+ .finally(() => {
+ uploadDialogLoading.value = false;
+ });
+ return;
};
--
Gitee
From bc4358f4eb2af57a6bf3d6f03f01f71b962adfad Mon Sep 17 00:00:00 2001
From: LiuHao
Date: Mon, 18 Mar 2024 12:19:52 +0800
Subject: [PATCH 077/134] =?UTF-8?q?update=20=E6=B5=81=E7=A8=8B=E9=83=A8?=
=?UTF-8?q?=E7=BD=B2=E6=94=AF=E6=8C=81=E5=A4=9A=E9=80=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../assets/module/Palette/CustomPaletteProvider.ts | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/src/components/BpmnDesign/assets/module/Palette/CustomPaletteProvider.ts b/src/components/BpmnDesign/assets/module/Palette/CustomPaletteProvider.ts
index 38f1cea4..8556d9b9 100644
--- a/src/components/BpmnDesign/assets/module/Palette/CustomPaletteProvider.ts
+++ b/src/components/BpmnDesign/assets/module/Palette/CustomPaletteProvider.ts
@@ -22,17 +22,7 @@ class CustomPaletteProvider extends PaletteProvider {
private readonly _translate: any;
constructor(palette, create, elementFactory, spaceTool, lassoTool, handTool, globalConnect, translate) {
- super(
- palette,
- create,
- elementFactory,
- spaceTool,
- lassoTool,
- handTool,
- globalConnect,
- translate
- // 2000
- );
+ super(palette, create, elementFactory, spaceTool, lassoTool, handTool, globalConnect, translate);
this._palette = palette;
this._create = create;
this._elementFactory = elementFactory;
--
Gitee
From b6415c21be85643f05fc01425f6cc37800d8a1f4 Mon Sep 17 00:00:00 2001
From: LiuHao
Date: Mon, 18 Mar 2024 13:55:57 +0800
Subject: [PATCH 078/134] =?UTF-8?q?update=20=E6=96=B0=E5=A2=9E=E5=AD=90?=
=?UTF-8?q?=E6=B5=81=E7=A8=8B=E9=9D=A2=E6=9D=BF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../BpmnDesign/panel/SubProcessPanel.vue | 66 +++++++++++++++++++
src/components/BpmnDesign/panel/index.vue | 2 +
2 files changed, 68 insertions(+)
create mode 100644 src/components/BpmnDesign/panel/SubProcessPanel.vue
diff --git a/src/components/BpmnDesign/panel/SubProcessPanel.vue b/src/components/BpmnDesign/panel/SubProcessPanel.vue
new file mode 100644
index 00000000..cf32fc6d
--- /dev/null
+++ b/src/components/BpmnDesign/panel/SubProcessPanel.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+ 常规
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 执行监听器
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/BpmnDesign/panel/index.vue b/src/components/BpmnDesign/panel/index.vue
index 6ba7fee8..c282723d 100644
--- a/src/components/BpmnDesign/panel/index.vue
+++ b/src/components/BpmnDesign/panel/index.vue
@@ -12,6 +12,7 @@ import StartEndPanel from './StartEndPanel.vue';
import GatewayPanel from './GatewayPanel.vue';
import SequenceFlowPanel from './SequenceFlowPanel.vue';
import ParticipantPanel from './ParticipantPanel.vue';
+import SubProcessPanel from './SubProcessPanel.vue';
import { Modeler, ModdleElement } from 'bpmn';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
interface propsType {
@@ -47,6 +48,7 @@ const component = computed(() => {
if (gatewayType.includes(type)) return GatewayPanel;
if (processType.includes(type)) return ProcessPanel;
if (type === 'bpmn:Participant') return ParticipantPanel;
+ if (type === 'bpmn:SubProcess') return SubProcessPanel;
//return proxy?.$modal.msgWarning('面板开发中....');
});
--
Gitee
From 12458177beca5e17d68d74935751bf7add47f31b Mon Sep 17 00:00:00 2001
From: LiuHao
Date: Mon, 18 Mar 2024 13:56:16 +0800
Subject: [PATCH 079/134] =?UTF-8?q?update=20=E6=9B=B4=E6=96=B0=E5=BC=80?=
=?UTF-8?q?=E5=A7=8B=E9=9D=A2=E6=9D=BF=E5=92=8C=E6=B3=B3=E9=81=93=E9=9D=A2?=
=?UTF-8?q?=E6=9D=BF=E6=A0=B7=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../BpmnDesign/panel/ParticipantPanel.vue | 48 ++++++++++++++-----
.../BpmnDesign/panel/StartEndPanel.vue | 48 ++++++++++++++-----
2 files changed, 74 insertions(+), 22 deletions(-)
diff --git a/src/components/BpmnDesign/panel/ParticipantPanel.vue b/src/components/BpmnDesign/panel/ParticipantPanel.vue
index 7dd5474a..cf32fc6d 100644
--- a/src/components/BpmnDesign/panel/ParticipantPanel.vue
+++ b/src/components/BpmnDesign/panel/ParticipantPanel.vue
@@ -1,15 +1,41 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ 常规
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 执行监听器
+
+
+
+
+
+
+
--
Gitee
From 0c39b593ce6c001500850cb9fd3ca8f1d32757d5 Mon Sep 17 00:00:00 2001
From: LiuHao
Date: Mon, 18 Mar 2024 14:18:30 +0800
Subject: [PATCH 082/134] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=E9=9D=A2?=
=?UTF-8?q?=E6=9D=BF=E7=B1=BB=E5=9E=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../BpmnDesign/panel/ParticipantPanel.vue | 9 +++++----
src/types/bpmn/panel.d.ts | 16 ++++++++++++++++
2 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/src/components/BpmnDesign/panel/ParticipantPanel.vue b/src/components/BpmnDesign/panel/ParticipantPanel.vue
index cf32fc6d..24cb9dc4 100644
--- a/src/components/BpmnDesign/panel/ParticipantPanel.vue
+++ b/src/components/BpmnDesign/panel/ParticipantPanel.vue
@@ -13,10 +13,10 @@
-
+
-
+
@@ -42,11 +42,12 @@
import useParseElement from '@/components/BpmnDesign/hooks/useParseElement';
import usePanel from '@/components/BpmnDesign/hooks/usePanel';
import { ModdleElement } from 'bpmn';
-import { StartEndPanel } from 'bpmnDesign';
+import { ParticipantPanel } from 'bpmnDesign';
interface PropType {
element: ModdleElement;
}
+
const props = withDefaults(defineProps(), {});
const { nameChange, idChange } = usePanel({
element: toRaw(props.element)
@@ -55,7 +56,7 @@ const { parseData } = useParseElement({
element: toRaw(props.element)
});
-const formData = ref(parseData());
+const formData = ref(parseData());
const currentCollapseItem = ref(['1', '2']);
const formRules = ref({
id: [{ required: true, message: '请输入', trigger: 'blur' }],
diff --git a/src/types/bpmn/panel.d.ts b/src/types/bpmn/panel.d.ts
index 0d0cac45..fc5fbe55 100644
--- a/src/types/bpmn/panel.d.ts
+++ b/src/types/bpmn/panel.d.ts
@@ -72,4 +72,20 @@ declare module 'bpmnDesign' {
conditionExpressionValue: string;
skipExpression: string;
}
+
+ export interface ParticipantPanel extends BasePanel {}
+ export interface SubProcessPanel extends BasePanel {
+ multiInstanceType: MultiInstanceTypeEnum;
+ collection?: string;
+ elementVariable?: string;
+ completionCondition?: string;
+ loopCharacteristics?: {
+ collection: string;
+ elementVariable: string;
+ isSequential: boolean;
+ completionCondition: {
+ body: string;
+ };
+ };
+ }
}
--
Gitee
From 4253b2afbb0307a9a92e0a053b0e4757558252e1 Mon Sep 17 00:00:00 2001
From: LiuHao
Date: Mon, 18 Mar 2024 14:19:30 +0800
Subject: [PATCH 083/134] =?UTF-8?q?update=20=E5=A2=9E=E5=8A=A0=E5=AD=90?=
=?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=A4=9A=E5=AE=9E=E4=BE=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../BpmnDesign/panel/SubProcessPanel.vue | 190 +++++++++++++++---
1 file changed, 158 insertions(+), 32 deletions(-)
diff --git a/src/components/BpmnDesign/panel/SubProcessPanel.vue b/src/components/BpmnDesign/panel/SubProcessPanel.vue
index cf32fc6d..03100726 100644
--- a/src/components/BpmnDesign/panel/SubProcessPanel.vue
+++ b/src/components/BpmnDesign/panel/SubProcessPanel.vue
@@ -1,62 +1,188 @@
-
-
-
-
-
-
-
- 常规
-
-
-
-
+
+
+
+
+
+
+
+
+ 常规
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+ 执行监听器
+
+
+
+
+
+
+
+
+
+
+
+
+ 多实例
+
+
+
+
+
+
+
+
-
-
-
-
-
-
- 执行监听器
+
+
+
+
+ 集合
+
+
+
+ 属性会作为表达式进行解析。如果表达式解析为字符串而不是一个集合,
+ 不论是因为本身配置的就是静态字符串值,还是表达式计算结果为字符串,
+ 这个字符串都会被当做变量名,并从流程变量中用于获取实际的集合。
+
+
+
+
+
+
+
+
+
+ 元素变量
+
+
+
+ 每创建一个用户任务前,先以该元素变量为label,集合中的一项为value,
+ 创建(局部)流程变量,该局部流程变量被用于指派用户任务。
+ 一般来说,该字符串应与指定人员变量相同。
+
+
+
+
+
+
+
+
+
+ 完成条件
+
+
+
+ 多实例活动在所有实例都完成时结束,然而也可以指定一个表达式,在每个实例
+ 结束时进行计算。当表达式计算为true时,将销毁所有剩余的实例,并结束多实例
+ 活动,继续执行流程。例如 ${nrOfCompletedInstances/nrOfInstances >= 0.6 },
+ 表示当任务完成60%时,该节点就算完成
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
diff --git a/src/views/workflow/model/index.vue b/src/views/workflow/model/index.vue
index 26550c39..c738e782 100644
--- a/src/views/workflow/model/index.vue
+++ b/src/views/workflow/model/index.vue
@@ -57,18 +57,18 @@
-
+
-
+
v{{ scope.row.version }}.0
-
-
-
+
+
+
diff --git a/src/views/workflow/processDefinition/index.vue b/src/views/workflow/processDefinition/index.vue
index df630dcb..a99478f4 100644
--- a/src/views/workflow/processDefinition/index.vue
+++ b/src/views/workflow/processDefinition/index.vue
@@ -53,12 +53,12 @@
-
+
-
-
-
-
+
+
+
+
v{{ scope.row.version }}.0
@@ -71,14 +71,14 @@
{{ scope.row.diagramResourceName }}
-
+
激活
挂起
-
+
@@ -101,9 +101,17 @@
转换模型
-
- 历史版本
-
+
+
+ 更多
+
+
+
+ 历史版本
+ 表单配置
+
+
+
@@ -158,8 +166,8 @@
-
-
+
+
v{{ scope.row.version }}.0
@@ -208,6 +216,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -224,8 +255,10 @@ import {
} from '@/api/workflow/processDefinition';
import ProcessPreview from './components/processPreview.vue';
import { listCategory } from '@/api/workflow/category';
+import { getByDefId,saveOrUpdate } from '@/api/workflow/formDefinition';
import { CategoryVO } from '@/api/workflow/category/types';
import { ProcessDefinitionQuery, ProcessDefinitionVO } from '@/api/workflow/processDefinition/types';
+import { FormDefinitionForm } from '@/api/workflow/formDefinition/types';
import { UploadRequestOptions } from 'element-plus';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
@@ -254,6 +287,7 @@ const categoryOptions = ref([]);
const categoryName = ref('');
/** 部署文件分类选择 */
const selectCategory = ref();
+const formDefinitionForm = ref({});
const uploadDialog = reactive({
visible: false,
@@ -265,6 +299,11 @@ const processDefinitionDialog = reactive({
title: '历史版本'
});
+const formDialog = reactive({
+ visible: false,
+ title: '表单配置'
+});
+
// 查询参数
const queryParams = ref({
pageNum: 1,
@@ -429,4 +468,28 @@ const handerDeployProcessFile = (data: UploadRequestOptions): XMLHttpRequest =>
});
return;
};
+//打开表单配置
+const handleFormOpen = async (row: ProcessDefinitionVO) => {
+ formDialog.visible = true
+ formDefinitionForm.value.processKey = row.key
+ formDefinitionForm.value.definitionId = row.id
+ const resp = await getByDefId(row.id)
+ if(resp.data){
+ formDefinitionForm.value = resp.data
+ }else{
+ formDefinitionForm.value.path = undefined
+ formDefinitionForm.value.remark = undefined
+ }
+}
+//保存表单
+const handlerSaveForm = async () => {
+ await proxy?.$modal.confirm('是否确认保存?');
+ saveOrUpdate(formDefinitionForm.value).then(resp=>{
+ if(resp.code === 200){
+ proxy?.$modal.msgSuccess('操作成功');
+ formDialog.visible = false
+ getList();
+ }
+ })
+}
diff --git a/src/views/workflow/processInstance/index.vue b/src/views/workflow/processInstance/index.vue
index eafc609b..19e57f78 100644
--- a/src/views/workflow/processInstance/index.vue
+++ b/src/views/workflow/processInstance/index.vue
@@ -56,12 +56,11 @@
-
+
-
-
-
-
+
+
+
v{{ scope.row.processDefinitionVersion }}.0
@@ -127,7 +126,7 @@
-
+
diff --git a/src/views/workflow/task/allTaskWaiting.vue b/src/views/workflow/task/allTaskWaiting.vue
index dfaf7c9d..8d5836f7 100644
--- a/src/views/workflow/task/allTaskWaiting.vue
+++ b/src/views/workflow/task/allTaskWaiting.vue
@@ -39,9 +39,9 @@
-
+
-
+
diff --git a/src/views/workflow/task/myDocument.vue b/src/views/workflow/task/myDocument.vue
index 4597a2a7..1e71f1fd 100644
--- a/src/views/workflow/task/myDocument.vue
+++ b/src/views/workflow/task/myDocument.vue
@@ -42,9 +42,9 @@
-
+
-
+
diff --git a/src/views/workflow/task/taskCopyList.vue b/src/views/workflow/task/taskCopyList.vue
index 112c95bb..5d22b0b6 100644
--- a/src/views/workflow/task/taskCopyList.vue
+++ b/src/views/workflow/task/taskCopyList.vue
@@ -28,9 +28,9 @@
-
+
-
+
diff --git a/src/views/workflow/task/taskFinish.vue b/src/views/workflow/task/taskFinish.vue
index fd9ce6ec..8bc870fb 100644
--- a/src/views/workflow/task/taskFinish.vue
+++ b/src/views/workflow/task/taskFinish.vue
@@ -28,9 +28,9 @@
-
+
-
+
diff --git a/src/views/workflow/task/taskWaiting.vue b/src/views/workflow/task/taskWaiting.vue
index a6443bda..8ef3c039 100644
--- a/src/views/workflow/task/taskWaiting.vue
+++ b/src/views/workflow/task/taskWaiting.vue
@@ -28,9 +28,9 @@
-
+
-
+
@@ -54,22 +54,14 @@
-
+
-
-
- 审批记录
-
-
- 办理
-
-
- 归还
-
-
- 认领
-
-
+ 办理
+ 归还
+ 认领
@@ -81,22 +73,13 @@
@pagination="handleQuery"
/>
-
-
-
-
--
Gitee
From 66a31b620bab3defbdb336bceb1f3e37a902ac90 Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: Thu, 21 Mar 2024 21:20:42 +0800
Subject: [PATCH 094/134] =?UTF-8?q?add=20=E6=B7=BB=E5=8A=A0=E5=B7=B2?=
=?UTF-8?q?=E5=8A=9E=E6=9F=A5=E7=9C=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/workflow/task/taskFinish.vue | 26 +++++++++++---------------
1 file changed, 11 insertions(+), 15 deletions(-)
diff --git a/src/views/workflow/task/taskFinish.vue b/src/views/workflow/task/taskFinish.vue
index 8bc870fb..6869dfd7 100644
--- a/src/views/workflow/task/taskFinish.vue
+++ b/src/views/workflow/task/taskFinish.vue
@@ -42,9 +42,9 @@
-
+
- 审批记录
+ 查看
@@ -56,17 +56,13 @@
@pagination="handleQuery"
/>
-
-
--
Gitee
From ad8565d29aae8b8333b8615e7db76643df234cde Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: Thu, 21 Mar 2024 21:49:34 +0800
Subject: [PATCH 095/134] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E6=88=91?=
=?UTF-8?q?=E7=9A=84=E5=8F=91=E8=B5=B7=EF=BC=8C=E6=B5=81=E7=A8=8B=E5=AE=9A?=
=?UTF-8?q?=E4=B9=89=E6=8C=89=E9=92=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/workflow/leave/leaveEdit.vue | 2 +-
.../workflow/processDefinition/index.vue | 3 +
src/views/workflow/task/myDocument.vue | 72 ++++++++++---------
3 files changed, 43 insertions(+), 34 deletions(-)
diff --git a/src/views/workflow/leave/leaveEdit.vue b/src/views/workflow/leave/leaveEdit.vue
index 61909ea8..6569e933 100644
--- a/src/views/workflow/leave/leaveEdit.vue
+++ b/src/views/workflow/leave/leaveEdit.vue
@@ -5,7 +5,7 @@
暂存
提 交
diff --git a/src/views/workflow/processDefinition/index.vue b/src/views/workflow/processDefinition/index.vue
index a99478f4..6dfee4f1 100644
--- a/src/views/workflow/processDefinition/index.vue
+++ b/src/views/workflow/processDefinition/index.vue
@@ -211,6 +211,9 @@
转换模型
+
+ 表单配置
+
diff --git a/src/views/workflow/task/myDocument.vue b/src/views/workflow/task/myDocument.vue
index 1e71f1fd..4a4300be 100644
--- a/src/views/workflow/task/myDocument.vue
+++ b/src/views/workflow/task/myDocument.vue
@@ -64,28 +64,36 @@
-
+
-
-
- 审批记录
-
-
- 删除
-
-
- 撤销
-
-
- 提交
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -99,8 +107,6 @@
-
-
@@ -108,15 +114,9 @@
--
Gitee
From 31f4219f3d7fc041ba6ec2d11084e7e0f61ffdb8 Mon Sep 17 00:00:00 2001
From: songgaoshuai <1742057357@qq.com>
Date: Fri, 22 Mar 2024 11:32:58 +0800
Subject: [PATCH 096/134] =?UTF-8?q?fix=E4=BF=AE=E5=A4=8D=E5=B7=B2=E5=8A=9E?=
=?UTF-8?q?=E5=8F=82=E6=95=B0=E4=BC=A0=E9=94=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/workflow/task/taskFinish.vue | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/views/workflow/task/taskFinish.vue b/src/views/workflow/task/taskFinish.vue
index 6869dfd7..67fd3c09 100644
--- a/src/views/workflow/task/taskFinish.vue
+++ b/src/views/workflow/task/taskFinish.vue
@@ -44,7 +44,7 @@
- 查看
+ 查看
@@ -115,7 +115,7 @@ const getFinishList = () => {
/** 查看按钮操作 */
const handleView = (row) => {
proxy.$tab.closePage(proxy.$route);
- proxy.$router.push(`/demo/leaveEdit/index/${row.id}/view`);
+ proxy.$router.push(`/demo/leaveEdit/index/${row.businessKey}/view`);
};
onMounted(() => {
--
Gitee
From d186c800f041e1f9c7e9ca8356544ce41f9673e2 Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: Fri, 22 Mar 2024 23:42:30 +0800
Subject: [PATCH 097/134] =?UTF-8?q?add=20=E6=B7=BB=E5=8A=A0=E6=B5=81?=
=?UTF-8?q?=E7=A8=8B=E5=AE=9E=E4=BE=8B=EF=BC=8C=E5=85=A8=E9=83=A8=E5=BE=85?=
=?UTF-8?q?=E5=8A=9E=E8=A1=A8=E5=8D=95=E6=9F=A5=E7=9C=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/workflow/processInstance/index.vue | 68 ++++++++++----------
src/views/workflow/task/allTaskWaiting.vue | 45 +++++++------
src/views/workflow/task/taskCopyList.vue | 10 ++-
src/views/workflow/task/taskFinish.vue | 10 ++-
4 files changed, 76 insertions(+), 57 deletions(-)
diff --git a/src/views/workflow/processInstance/index.vue b/src/views/workflow/processInstance/index.vue
index 19e57f78..8a4ba4a6 100644
--- a/src/views/workflow/processInstance/index.vue
+++ b/src/views/workflow/processInstance/index.vue
@@ -77,17 +77,21 @@
-
+
-
-
- 审批记录
-
+
- 删除
+
+
+
+ 取消
+ 确认
+
+
+ 作废
+
+
-
-
切换版本
+
+
-
-
-
- 取消
- 确认
-
-
- 作废
-
-
+ 查看
+
+
+ 删除
@@ -146,8 +146,6 @@
-
-
@@ -160,12 +158,10 @@ import {
deleteRunInstance
} from '@/api/workflow/processInstance';
import { getListByKey, migrationDefinition } from '@/api/workflow/processDefinition';
-import ApprovalRecord from '@/components/Process/approvalRecord.vue';
import { listCategory } from '@/api/workflow/category';
import { CategoryVO } from '@/api/workflow/category/types';
import { ProcessInstanceQuery, ProcessInstanceVO } from '@/api/workflow/processInstance/types';
//审批记录组件
-const approvalRecordRef = ref
>();
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const queryFormRef = ref();
const categoryTreeRef = ref();
@@ -213,11 +209,6 @@ const queryParams = ref({
categoryCode: undefined
});
-onMounted(() => {
- getProcessInstanceRunningList();
- getTreeselect();
-});
-
/** 节点单击事件 */
const handleNodeClick = (data: CategoryVO) => {
queryParams.value.categoryCode = data.categoryCode;
@@ -250,12 +241,6 @@ const getTreeselect = async () => {
categoryOptions.value.push(data);
};
-//审批记录
-const handleApprovalRecord = (row: any) => {
- if (approvalRecordRef.value) {
- approvalRecordRef.value.init(row.id);
- }
-};
/** 搜索按钮操作 */
const handleQuery = () => {
if ('running' === tab.value) {
@@ -312,6 +297,7 @@ const handleDelete = async (row: any) => {
proxy?.$modal.msgSuccess('删除成功');
};
const changeTab = async (data: string) => {
+ processInstanceList.value = []
queryParams.value.pageNum = 1;
if ('running' === data) {
getProcessInstanceRunningList();
@@ -359,4 +345,20 @@ const handleChange = async (id: string) => {
loading.value = false;
});
};
+/** 查看按钮操作 */
+const handleView = (row) => {
+ if(row.wfFormDefinitionVo){
+ proxy.$tab.closePage(proxy.$route);
+ proxy.$router.push({
+ path: `${row.wfFormDefinitionVo.path}/${row.businessKey}/view`
+ })
+ }else{
+ proxy?.$modal.msgError('请到流程定义菜单配置路由!');
+ }
+};
+
+onMounted(() => {
+ getProcessInstanceRunningList();
+ getTreeselect();
+});
diff --git a/src/views/workflow/task/allTaskWaiting.vue b/src/views/workflow/task/allTaskWaiting.vue
index 8d5836f7..009c7973 100644
--- a/src/views/workflow/task/allTaskWaiting.vue
+++ b/src/views/workflow/task/allTaskWaiting.vue
@@ -72,20 +72,22 @@
-
+
- 审批记录
+ 查看
-
- 加签
+
+ 流程变量
-
+
+
+
减签
-
- 流程变量
+
+ 加签
@@ -99,8 +101,6 @@
@pagination="handleQuery"
/>
-
-
@@ -126,12 +126,10 @@
diff --git a/src/views/workflow/task/taskCopyList.vue b/src/views/workflow/task/taskCopyList.vue
index db7e22f8..0902294b 100644
--- a/src/views/workflow/task/taskCopyList.vue
+++ b/src/views/workflow/task/taskCopyList.vue
@@ -127,8 +127,14 @@ const getTaskCopyList = () => {
/** 查看按钮操作 */
const handleView = (row) => {
- proxy.$tab.closePage(proxy.$route);
- proxy.$router.push(`/demo/leaveEdit/index/${row.id}/view`);
+ if(row.wfFormDefinitionVo){
+ proxy.$tab.closePage(proxy.$route);
+ proxy.$router.push({
+ path: `${row.wfFormDefinitionVo.path}/${row.businessKey}/view`
+ })
+ }else{
+ proxy?.$modal.msgError('请到流程定义菜单配置路由!');
+ }
};
diff --git a/src/views/workflow/task/taskFinish.vue b/src/views/workflow/task/taskFinish.vue
index 67fd3c09..8be09d1f 100644
--- a/src/views/workflow/task/taskFinish.vue
+++ b/src/views/workflow/task/taskFinish.vue
@@ -114,8 +114,14 @@ const getFinishList = () => {
};
/** 查看按钮操作 */
const handleView = (row) => {
- proxy.$tab.closePage(proxy.$route);
- proxy.$router.push(`/demo/leaveEdit/index/${row.businessKey}/view`);
+ if(row.wfFormDefinitionVo){
+ proxy.$tab.closePage(proxy.$route);
+ proxy.$router.push({
+ path: `${row.wfFormDefinitionVo.path}/${row.businessKey}/view`
+ })
+ }else{
+ proxy?.$modal.msgError('请到流程定义菜单配置路由!');
+ }
};
onMounted(() => {
--
Gitee
From cd129aa949dff285cda41080523eb89b1f7b68be Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: Sun, 24 Mar 2024 15:13:05 +0800
Subject: [PATCH 098/134] =?UTF-8?q?update=20=E8=B7=AF=E7=94=B1=E8=B7=B3?=
=?UTF-8?q?=E8=BD=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/router/index.ts | 2 +-
src/views/workflow/leave/index.vue | 22 ++++++++++-
src/views/workflow/leave/leaveEdit.vue | 41 ++++++++++----------
src/views/workflow/processInstance/index.vue | 6 ++-
src/views/workflow/task/allTaskWaiting.vue | 6 ++-
src/views/workflow/task/myDocument.vue | 6 ++-
src/views/workflow/task/taskCopyList.vue | 6 ++-
src/views/workflow/task/taskFinish.vue | 6 ++-
src/views/workflow/task/taskWaiting.vue | 4 +-
9 files changed, 69 insertions(+), 30 deletions(-)
diff --git a/src/router/index.ts b/src/router/index.ts
index e028834c..45bb1e6d 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -170,7 +170,7 @@ export const dynamicRoutes: RouteRecordRaw[] = [
permissions: ['demo:leave:edit'],
children: [
{
- path: 'index/:id/:type',
+ path: 'index',
component: () => import('@/views/workflow/leave/leaveEdit.vue'),
name: 'leaveEdit',
meta: { title: '请假申请', activeMenu: '/demo/leave',noCache:true },
diff --git a/src/views/workflow/leave/index.vue b/src/views/workflow/leave/index.vue
index c7baae2c..4f7c8e11 100644
--- a/src/views/workflow/leave/index.vue
+++ b/src/views/workflow/leave/index.vue
@@ -175,18 +175,36 @@ const handleSelectionChange = (selection: LeaveVO[]) => {
const handleAdd = () => {
proxy.$tab.closePage(proxy.$route);
proxy.$router.push(`/demo/leaveEdit/index/add/add`);
+ proxy.$router.push({
+ path: `/demo/leaveEdit/index`,
+ query: {
+ type: 'add'
+ }
+ })
};
/** 修改按钮操作 */
const handleUpdate = (row?: LeaveVO) => {
proxy.$tab.closePage(proxy.$route);
- proxy.$router.push(`/demo/leaveEdit/index/${row.id}/update`);;
+ proxy.$router.push({
+ path: `/demo/leaveEdit/index`,
+ query: {
+ id: row.id,
+ type: 'update'
+ }
+ })
};
/** 查看按钮操作 */
const handleView = (row?: LeaveVO) => {
proxy.$tab.closePage(proxy.$route);
- proxy.$router.push(`/demo/leaveEdit/index/${row.id}/view`);
+ proxy.$router.push({
+ path: `/demo/leaveEdit/index`,
+ query: {
+ id: row.id,
+ type: 'view'
+ }
+ })
};
/** 删除按钮操作 */
diff --git a/src/views/workflow/leave/leaveEdit.vue b/src/views/workflow/leave/leaveEdit.vue
index 6569e933..58934a49 100644
--- a/src/views/workflow/leave/leaveEdit.vue
+++ b/src/views/workflow/leave/leaveEdit.vue
@@ -1,25 +1,23 @@
-
-
-
-
- 暂存
- 提 交
- 审批
- 流程进度
-
-
- 返回
-
-
-
-
+
+
+ 暂存
+ 提 交
+ 审批
+ 流程进度
+
+
+ 返回
+
+
+
+
@@ -225,12 +223,13 @@ const goBack = () => {
}
//审批
const approvalVerifyOpen = async () => {
- submitVerifyRef.value.openDialog(proxy.$route.query.taskId);
+ submitVerifyRef.value.openDialog(routeParams.value.taskId);
};
onMounted(() => {
nextTick(async () => {
- routeParams.value = proxy?.$route.params
+ routeParams.value = proxy.$route.query
reset();
+ loading.value = false
if (routeParams.value.type === 'update' || routeParams.value.type === 'view' || routeParams.value.type === 'approval') {
getInfo()
}
diff --git a/src/views/workflow/processInstance/index.vue b/src/views/workflow/processInstance/index.vue
index 8a4ba4a6..88746c7b 100644
--- a/src/views/workflow/processInstance/index.vue
+++ b/src/views/workflow/processInstance/index.vue
@@ -350,7 +350,11 @@ const handleView = (row) => {
if(row.wfFormDefinitionVo){
proxy.$tab.closePage(proxy.$route);
proxy.$router.push({
- path: `${row.wfFormDefinitionVo.path}/${row.businessKey}/view`
+ path: `${row.wfFormDefinitionVo.path}`,
+ query: {
+ id: row.businessKey,
+ type: 'view'
+ }
})
}else{
proxy?.$modal.msgError('请到流程定义菜单配置路由!');
diff --git a/src/views/workflow/task/allTaskWaiting.vue b/src/views/workflow/task/allTaskWaiting.vue
index 009c7973..eee62633 100644
--- a/src/views/workflow/task/allTaskWaiting.vue
+++ b/src/views/workflow/task/allTaskWaiting.vue
@@ -263,7 +263,11 @@ const handleView = (row) => {
if(row.wfFormDefinitionVo){
proxy.$tab.closePage(proxy.$route);
proxy.$router.push({
- path: `${row.wfFormDefinitionVo.path}/${row.businessKey}/view`
+ path: `${row.wfFormDefinitionVo.path}`,
+ query: {
+ id: row.businessKey,
+ type: 'view'
+ }
})
}else{
proxy?.$modal.msgError('请到流程定义菜单配置路由!');
diff --git a/src/views/workflow/task/myDocument.vue b/src/views/workflow/task/myDocument.vue
index 4a4300be..9328934b 100644
--- a/src/views/workflow/task/myDocument.vue
+++ b/src/views/workflow/task/myDocument.vue
@@ -253,7 +253,11 @@ const handleOpen = async (row,type) => {
if(row.wfFormDefinitionVo){
proxy.$tab.closePage(proxy.$route);
proxy.$router.push({
- path: `${row.wfFormDefinitionVo.path}/${row.businessKey}/${type}`
+ path: `${row.wfFormDefinitionVo.path}`,
+ query: {
+ id: row.businessKey,
+ type: type
+ }
})
}else{
proxy?.$modal.msgError('请到流程定义菜单配置路由!');
diff --git a/src/views/workflow/task/taskCopyList.vue b/src/views/workflow/task/taskCopyList.vue
index 0902294b..54e8f1e4 100644
--- a/src/views/workflow/task/taskCopyList.vue
+++ b/src/views/workflow/task/taskCopyList.vue
@@ -130,7 +130,11 @@ const handleView = (row) => {
if(row.wfFormDefinitionVo){
proxy.$tab.closePage(proxy.$route);
proxy.$router.push({
- path: `${row.wfFormDefinitionVo.path}/${row.businessKey}/view`
+ path: `${row.wfFormDefinitionVo.path}`,
+ query: {
+ id: row.businessKey,
+ type: 'view'
+ }
})
}else{
proxy?.$modal.msgError('请到流程定义菜单配置路由!');
diff --git a/src/views/workflow/task/taskFinish.vue b/src/views/workflow/task/taskFinish.vue
index 8be09d1f..a1315b25 100644
--- a/src/views/workflow/task/taskFinish.vue
+++ b/src/views/workflow/task/taskFinish.vue
@@ -117,7 +117,11 @@ const handleView = (row) => {
if(row.wfFormDefinitionVo){
proxy.$tab.closePage(proxy.$route);
proxy.$router.push({
- path: `${row.wfFormDefinitionVo.path}/${row.businessKey}/view`
+ path: `${row.wfFormDefinitionVo.path}`,
+ query: {
+ id: row.businessKey,
+ type: 'view'
+ }
})
}else{
proxy?.$modal.msgError('请到流程定义菜单配置路由!');
diff --git a/src/views/workflow/task/taskWaiting.vue b/src/views/workflow/task/taskWaiting.vue
index 8ef3c039..99a1a644 100644
--- a/src/views/workflow/task/taskWaiting.vue
+++ b/src/views/workflow/task/taskWaiting.vue
@@ -138,8 +138,10 @@ const handleOpen = async (row: TaskVO) => {
if(row.wfFormDefinitionVo){
proxy.$tab.closePage(proxy.$route);
proxy.$router.push({
- path: `${row.wfFormDefinitionVo.path}/${row.businessKey}/approval`,
+ path: `${row.wfFormDefinitionVo.path}`,
query: {
+ id: row.businessKey,
+ type: 'approval',
taskId: row.id
}
})
--
Gitee
From ceb6243cd0691dbe941ed01e3dad04de23339b96 Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: Sun, 24 Mar 2024 15:16:44 +0800
Subject: [PATCH 099/134] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E7=A4=BA?=
=?UTF-8?q?=E4=BE=8Bkey?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/workflow/leave/leaveEdit.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/views/workflow/leave/leaveEdit.vue b/src/views/workflow/leave/leaveEdit.vue
index 58934a49..124c09a8 100644
--- a/src/views/workflow/leave/leaveEdit.vue
+++ b/src/views/workflow/leave/leaveEdit.vue
@@ -190,7 +190,7 @@ const submitForm = (status: string) => {
//提交申请
const handleStartWorkFlow = async (data: LeaveVO) => {
- submitFormData.value.processKey = 'test';
+ submitFormData.value.processKey = 'leave1';
submitFormData.value.businessKey = data.id;
//流程变量
taskVariables.value = {
--
Gitee
From f6727d80b8384a6ba5068581d940515af631b840 Mon Sep 17 00:00:00 2001
From: LiuHao
Date: Tue, 19 Mar 2024 16:01:43 +0800
Subject: [PATCH 100/134] =?UTF-8?q?update=20=E5=8D=87=E7=BA=A7=E4=BE=9D?=
=?UTF-8?q?=E8=B5=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 62 ++++++++++++++++++++++++++--------------------------
1 file changed, 31 insertions(+), 31 deletions(-)
diff --git a/package.json b/package.json
index 751bd6f5..31f76672 100644
--- a/package.json
+++ b/package.json
@@ -33,7 +33,7 @@
"crypto-js": "4.2.0",
"diagram-js": "12.3.0",
"didi": "9.0.2",
- "echarts": "5.4.3",
+ "echarts": "5.5.0",
"element-plus": "2.4.4",
"file-saver": "2.0.5",
"fuse.js": "7.0.0",
@@ -46,58 +46,58 @@
"path-browserify": "1.0.1",
"path-to-regexp": "6.2.1",
"pinia": "2.1.7",
- "preact": "10.19.3",
+ "preact": "10.19.7",
"screenfull": "6.0.2",
"vform3-builds": "3.0.10",
- "vue": "3.4.13",
+ "vue": "3.4.21",
"vue-cropper": "1.1.1",
- "vue-i18n": "9.9.0",
- "vue-router": "4.2.5",
+ "vue-i18n": "9.10.2",
+ "vue-router": "4.3.0",
"vue-types": "5.1.1",
- "vxe-table": "4.5.18",
+ "vxe-table": "4.5.21",
"zeebe-bpmn-moddle": "1.0.0"
},
"devDependencies": {
- "@iconify/json": "2.2.168",
- "@intlify/unplugin-vue-i18n": "2.0.0",
- "@types/crypto-js": "4.2.1",
+ "@iconify/json": "2.2.193",
+ "@intlify/unplugin-vue-i18n": "3.0.1",
+ "@types/crypto-js": "4.2.2",
"@types/file-saver": "2.0.7",
"@types/js-cookie": "3.0.6",
"@types/node": "18.14.2",
"@types/nprogress": "0.2.3",
"@types/path-browserify": "1.0.2",
- "@typescript-eslint/eslint-plugin": "6.18.1",
- "@typescript-eslint/parser": "6.18.1",
- "@unocss/preset-attributify": "0.58.3",
- "@unocss/preset-icons": "0.58.3",
- "@unocss/preset-uno": "0.58.3",
+ "@typescript-eslint/eslint-plugin": "7.3.1",
+ "@typescript-eslint/parser": "7.3.1",
+ "@unocss/preset-attributify": "0.58.6",
+ "@unocss/preset-icons": "0.58.6",
+ "@unocss/preset-uno": "0.58.6",
"@vitejs/plugin-vue": "5.0.3",
- "@vue/compiler-sfc": "3.4.13",
- "autoprefixer": "10.4.16",
- "eslint": "8.56.0",
+ "@vue/compiler-sfc": "3.4.21",
+ "autoprefixer": "10.4.18",
+ "eslint": "8.57.0",
"eslint-config-prettier": "9.1.0",
"eslint-define-config": "2.1.0",
"eslint-plugin-prettier": "5.1.3",
"eslint-plugin-promise": "6.1.1",
"eslint-plugin-node": "11.1.0",
"eslint-plugin-import": "2.29.1",
- "eslint-plugin-vue": "9.20.1",
+ "eslint-plugin-vue": "9.23.0",
"fast-glob": "3.3.2",
- "husky": "8.0.3",
- "postcss": "8.4.33",
- "prettier": "3.2.2",
- "sass": "1.69.7",
- "typescript": "5.3.3",
- "unocss": "0.58.3",
- "unplugin-auto-import": "0.17.3",
- "unplugin-icons": "0.18.2",
+ "husky": "9.0.11",
+ "postcss": "8.4.36",
+ "prettier": "3.2.5",
+ "sass": "1.72.0",
+ "typescript": "5.4.2",
+ "unocss": "0.58.6",
+ "unplugin-auto-import": "0.17.5",
+ "unplugin-icons": "0.18.5",
"unplugin-vue-components": "0.26.0",
- "unplugin-vue-setup-extend-plus": "1.0.0",
- "vite": "5.0.11",
+ "unplugin-vue-setup-extend-plus": "1.0.1",
+ "vite": "5.1.6",
"vite-plugin-compression": "0.5.1",
"vite-plugin-svg-icons": "2.0.1",
- "vitest": "1.2.0",
- "vue-eslint-parser": "9.4.0",
- "vue-tsc": "1.8.27"
+ "vitest": "1.4.0",
+ "vue-eslint-parser": "9.4.2",
+ "vue-tsc": "2.0.6"
}
}
--
Gitee
From c417c6debefef2e722bd1bbbf24ca117433bed06 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?=
<15040126243@163.com>
Date: Tue, 26 Mar 2024 18:43:45 +0800
Subject: [PATCH 101/134] =?UTF-8?q?update=20=E5=8D=87=E7=BA=A7=20element?=
=?UTF-8?q?=20vite=20=E7=89=88=E6=9C=AC=20=E6=9C=80=E4=BD=8Enodejs?=
=?UTF-8?q?=E7=89=88=E6=9C=AC=E6=8F=90=E5=8D=87=E5=88=B018.18.0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package.json | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 31f76672..78cc4b5d 100644
--- a/package.json
+++ b/package.json
@@ -26,7 +26,7 @@
"@vueuse/core": "10.7.2",
"animate.css": "4.1.1",
"await-to-js": "3.0.0",
- "axios": "1.6.5",
+ "axios": "1.6.8",
"bpmn-js": "16.4.0",
"camunda-bpmn-js-behaviors": "1.2.2",
"camunda-bpmn-moddle": "7.0.1",
@@ -34,7 +34,7 @@
"diagram-js": "12.3.0",
"didi": "9.0.2",
"echarts": "5.5.0",
- "element-plus": "2.4.4",
+ "element-plus": "2.6.2",
"file-saver": "2.0.5",
"fuse.js": "7.0.0",
"highlight.js": "11.9.0",
@@ -63,7 +63,7 @@
"@types/crypto-js": "4.2.2",
"@types/file-saver": "2.0.7",
"@types/js-cookie": "3.0.6",
- "@types/node": "18.14.2",
+ "@types/node": "18.18.2",
"@types/nprogress": "0.2.3",
"@types/path-browserify": "1.0.2",
"@typescript-eslint/eslint-plugin": "7.3.1",
@@ -87,13 +87,13 @@
"postcss": "8.4.36",
"prettier": "3.2.5",
"sass": "1.72.0",
- "typescript": "5.4.2",
+ "typescript": "5.4.3",
"unocss": "0.58.6",
"unplugin-auto-import": "0.17.5",
"unplugin-icons": "0.18.5",
"unplugin-vue-components": "0.26.0",
"unplugin-vue-setup-extend-plus": "1.0.1",
- "vite": "5.1.6",
+ "vite": "5.2.6",
"vite-plugin-compression": "0.5.1",
"vite-plugin-svg-icons": "2.0.1",
"vitest": "1.4.0",
--
Gitee
From c5b3c121c979174010cd685a0829638b7cef2380 Mon Sep 17 00:00:00 2001
From: wangzk
Date: Fri, 29 Mar 2024 17:26:56 +0800
Subject: [PATCH 102/134] =?UTF-8?q?add=20=E5=B7=A5=E4=BD=9C=E6=B5=81?=
=?UTF-8?q?=E6=8C=82=E8=8A=82=E7=82=B9=E8=B7=AF=E7=94=B1=E8=A1=A8=E5=8D=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/workflow/task/types.ts | 1 +
src/components/BpmnDesign/hooks/usePanel.ts | 6 ++++--
src/components/BpmnDesign/panel/TaskPanel.vue | 5 ++++-
src/types/bpmn/panel.d.ts | 1 +
src/views/workflow/task/taskWaiting.vue | 16 +++++++++++++---
5 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/src/api/workflow/task/types.ts b/src/api/workflow/task/types.ts
index 1a7629b5..412b0aa3 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 9168fe22..e9032f1f 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 9e247f86..5a23702e 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 fc5fbe55..31792617 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 99a1a644..29a52a28 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('请到流程定义菜单配置路由!');
}
};
--
Gitee
From 2ea1807f34479f683f4fc3691dfccf4146b94706 Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: Sun, 31 Mar 2024 15:34:54 +0800
Subject: [PATCH 103/134] =?UTF-8?q?add=20=E6=B7=BB=E5=8A=A0=E8=A1=A8?=
=?UTF-8?q?=E5=8D=95=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../index.ts | 14 +-
.../types.ts | 36 ++-
src/api/workflow/formManage/index.ts | 76 ++++++
src/api/workflow/formManage/types.ts | 75 ++++++
src/api/workflow/nodeConfig/index.ts | 63 +++++
src/api/workflow/nodeConfig/types.ts | 43 +++
src/api/workflow/task/types.ts | 6 +-
src/api/workflow/workflowCommon/index.ts | 49 ++++
src/api/workflow/workflowCommon/types.ts | 10 +
src/components/BpmnDesign/panel/TaskPanel.vue | 25 +-
src/views/workflow/formManage/index.vue | 249 ++++++++++++++++++
.../workflow/processDefinition/index.vue | 39 ++-
src/views/workflow/processInstance/index.vue | 22 +-
src/views/workflow/task/allTaskWaiting.vue | 26 +-
src/views/workflow/task/myDocument.vue | 22 +-
src/views/workflow/task/taskCopyList.vue | 24 +-
src/views/workflow/task/taskFinish.vue | 26 +-
src/views/workflow/task/taskWaiting.vue | 36 +--
18 files changed, 713 insertions(+), 128 deletions(-)
rename src/api/workflow/{formDefinition => definitionConfig}/index.ts (49%)
rename src/api/workflow/{formDefinition => definitionConfig}/types.ts (53%)
create mode 100644 src/api/workflow/formManage/index.ts
create mode 100644 src/api/workflow/formManage/types.ts
create mode 100644 src/api/workflow/nodeConfig/index.ts
create mode 100644 src/api/workflow/nodeConfig/types.ts
create mode 100644 src/api/workflow/workflowCommon/index.ts
create mode 100644 src/api/workflow/workflowCommon/types.ts
create mode 100644 src/views/workflow/formManage/index.vue
diff --git a/src/api/workflow/formDefinition/index.ts b/src/api/workflow/definitionConfig/index.ts
similarity index 49%
rename from src/api/workflow/formDefinition/index.ts
rename to src/api/workflow/definitionConfig/index.ts
index 7eed53db..44c3e85d 100644
--- a/src/api/workflow/formDefinition/index.ts
+++ b/src/api/workflow/definitionConfig/index.ts
@@ -1,15 +1,15 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
-import { FormDefinitionVO, FormDefinitionForm, FormDefinitionQuery } from '@/api/workflow/formDefinition/types';
+import { DefinitionConfigVO, DefinitionConfigForm } from '@/api/workflow/definitionConfig/types';
/**
* 查询表单配置详细
* @param id
*/
-export const getByDefId = (definitionId: string | number): AxiosPromise => {
+export const getByDefId = (definitionId: string | number): AxiosPromise => {
return request({
- url: '/workflow/formDefinition/getByDefId/' + definitionId,
+ url: '/workflow/definitionConfig/getByDefId/' + definitionId,
method: 'get'
});
};
@@ -18,9 +18,9 @@ export const getByDefId = (definitionId: string | number): AxiosPromise {
+export const saveOrUpdate = (data: DefinitionConfigForm) => {
return request({
- url: '/workflow/formDefinition/saveOrUpdate',
+ url: '/workflow/definitionConfig/saveOrUpdate',
method: 'post',
data: data
});
@@ -30,9 +30,9 @@ export const saveOrUpdate = (data: FormDefinitionForm) => {
* 删除表单配置
* @param id
*/
-export const delFormDefinition = (id: string | number | Array) => {
+export const deldefinitionConfig = (id: string | number | Array) => {
return request({
- url: '/workflow/formDefinition/' + id,
+ url: '/workflow/definitionConfig/' + id,
method: 'delete'
});
};
diff --git a/src/api/workflow/formDefinition/types.ts b/src/api/workflow/definitionConfig/types.ts
similarity index 53%
rename from src/api/workflow/formDefinition/types.ts
rename to src/api/workflow/definitionConfig/types.ts
index 5a8f37bf..836e7f4e 100644
--- a/src/api/workflow/formDefinition/types.ts
+++ b/src/api/workflow/definitionConfig/types.ts
@@ -1,13 +1,15 @@
-export interface FormDefinitionVO {
+import { FormManageVO } from '@/api/workflow/formManage/types';
+
+export interface DefinitionConfigVO {
/**
* 主键
*/
id: string | number;
/**
- * 路由地址
+ * 表单ID
*/
- path: string;
+ formId?: string | number;
/**
* 流程定义ID
@@ -24,18 +26,23 @@ export interface FormDefinitionVO {
*/
remark: string;
+ /**
+ * 表单管理
+ */
+ wfFormManageVo: FormManageVO;
+
}
-export interface FormDefinitionForm extends BaseEntity {
+export interface DefinitionConfigForm extends BaseEntity {
/**
* 主键
*/
id?: string | number;
/**
- * 路由地址
+ * 表单ID
*/
- path?: string;
+ formId?: string | number;
/**
* 流程定义ID
@@ -52,14 +59,20 @@ export interface FormDefinitionForm extends BaseEntity {
*/
remark?: string;
+ /**
+ * 表单管理
+ */
+ wfFormManageVo: FormManageVO;
+
+
}
-export interface FormDefinitionQuery extends PageQuery {
+export interface DefinitionConfigQuery extends PageQuery {
/**
- * 路由地址
+ * 表单ID
*/
- path?: string;
+ formId?: string | number;
/**
* 流程定义ID
@@ -72,9 +85,10 @@ export interface FormDefinitionQuery extends PageQuery {
processKey?: string;
/**
- * 日期范围参数
+ * 表单管理
*/
- params?: any;
+ wfFormManageVo: FormManageVO;
+
}
diff --git a/src/api/workflow/formManage/index.ts b/src/api/workflow/formManage/index.ts
new file mode 100644
index 00000000..c2930cfe
--- /dev/null
+++ b/src/api/workflow/formManage/index.ts
@@ -0,0 +1,76 @@
+import request from '@/utils/request';
+import { AxiosPromise } from 'axios';
+import { FormManageVO, FormManageForm, FormManageQuery } from '@/api/workflow/formManage/types';
+
+/**
+ * 查询表单管理列表
+ * @param query
+ * @returns {*}
+ */
+
+export const listFormManage = (query?: FormManageQuery): AxiosPromise => {
+ return request({
+ url: '/workflow/formManage/list',
+ method: 'get',
+ params: query
+ });
+};
+
+/**
+ * 查询表单管理列表
+ * @param query
+ * @returns {*}
+ */
+
+export const selectListFormManage = (): AxiosPromise => {
+ return request({
+ url: '/workflow/formManage/list/selectList',
+ method: 'get',
+ });
+};
+
+/**
+ * 查询表单管理详细
+ * @param id
+ */
+export const getFormManage = (id: string | number): AxiosPromise => {
+ return request({
+ url: '/workflow/formManage/' + id,
+ method: 'get'
+ });
+};
+
+/**
+ * 新增表单管理
+ * @param data
+ */
+export const addFormManage = (data: FormManageForm) => {
+ return request({
+ url: '/workflow/formManage',
+ method: 'post',
+ data: data
+ });
+};
+
+/**
+ * 修改表单管理
+ * @param data
+ */
+export const updateFormManage = (data: FormManageForm) => {
+ return request({
+ url: '/workflow/formManage',
+ method: 'put',
+ data: data
+ });
+};
+
+/**
+ * 删除表单管理
+ * @param id
+ */
+export const delFormManage = (id: string | number | Array) => {
+ return request({
+ url: '/workflow/formManage/' + id,
+ method: 'delete'
+ });
+};
diff --git a/src/api/workflow/formManage/types.ts b/src/api/workflow/formManage/types.ts
new file mode 100644
index 00000000..38db96fc
--- /dev/null
+++ b/src/api/workflow/formManage/types.ts
@@ -0,0 +1,75 @@
+export interface FormManageVO {
+ /**
+ * 主键
+ */
+ id: string | number;
+
+ /**
+ * 表单名称
+ */
+ formName: string;
+
+ /**
+ * 表单类型
+ */
+ formType: string;
+ /**
+ * 表单类型名称
+ */
+ formTypeName: string;
+
+ /**
+ * 路由地址/表单ID
+ */
+ router: string;
+
+ /**
+ * 备注
+ */
+ remork: string;
+
+}
+
+export interface FormManageForm extends BaseEntity {
+ /**
+ * 主键
+ */
+ id?: string | number;
+
+ /**
+ * 表单名称
+ */
+ formName?: string;
+
+ /**
+ * 表单类型
+ */
+ formType?: string;
+
+ /**
+ * 路由地址/表单ID
+ */
+ router?: string;
+
+ /**
+ * 备注
+ */
+ remork?: string;
+
+}
+
+export interface FormManageQuery extends PageQuery {
+
+ /**
+ * 表单名称
+ */
+ formName?: string;
+
+ /**
+ * 表单类型
+ */
+ formType?: string;
+}
+
+
+
diff --git a/src/api/workflow/nodeConfig/index.ts b/src/api/workflow/nodeConfig/index.ts
new file mode 100644
index 00000000..3270c17e
--- /dev/null
+++ b/src/api/workflow/nodeConfig/index.ts
@@ -0,0 +1,63 @@
+import request from '@/utils/request';
+import { AxiosPromise } from 'axios';
+import { NodeConfigVO, NodeConfigForm, NodeConfigQuery } from '@/api/workflow/nodeConfig/types';
+
+/**
+ * 查询节点配置列表
+ * @param query
+ * @returns {*}
+ */
+
+export const listNodeConfig = (query?: NodeConfigQuery): AxiosPromise => {
+ return request({
+ url: '/workflow/nodeConfig/list',
+ method: 'get',
+ params: query
+ });
+};
+
+/**
+ * 查询节点配置详细
+ * @param id
+ */
+export const getNodeConfig = (id: string | number): AxiosPromise => {
+ return request({
+ url: '/workflow/nodeConfig/' + id,
+ method: 'get'
+ });
+};
+
+/**
+ * 新增节点配置
+ * @param data
+ */
+export const addNodeConfig = (data: NodeConfigForm) => {
+ return request({
+ url: '/workflow/nodeConfig',
+ method: 'post',
+ data: data
+ });
+};
+
+/**
+ * 修改节点配置
+ * @param data
+ */
+export const updateNodeConfig = (data: NodeConfigForm) => {
+ return request({
+ url: '/workflow/nodeConfig',
+ method: 'put',
+ data: data
+ });
+};
+
+/**
+ * 删除节点配置
+ * @param id
+ */
+export const delNodeConfig = (id: string | number | Array) => {
+ return request({
+ url: '/workflow/nodeConfig/' + id,
+ method: 'delete'
+ });
+};
diff --git a/src/api/workflow/nodeConfig/types.ts b/src/api/workflow/nodeConfig/types.ts
new file mode 100644
index 00000000..4e3a60b3
--- /dev/null
+++ b/src/api/workflow/nodeConfig/types.ts
@@ -0,0 +1,43 @@
+import { FormManageVO } from '@/api/workflow/formManage/types';
+
+export interface NodeConfigVO {
+ /**
+ * 主键
+ */
+ id: string | number;
+
+ /**
+ * 表单id
+ */
+ formId: string | number;
+
+ /**
+ * 表单类型
+ */
+ formType: string;
+
+ /**
+ * 节点名称
+ */
+ nodeName: string;
+
+ /**
+ * 节点id
+ */
+ nodeId: string | number;
+
+ /**
+ * 流程定义id
+ */
+ definitionId: string | number;
+
+ /**
+ * 表单管理
+ */
+ wfFormManageVo: FormManageVO;
+
+}
+
+
+
+
diff --git a/src/api/workflow/task/types.ts b/src/api/workflow/task/types.ts
index 412b0aa3..2e39d06b 100644
--- a/src/api/workflow/task/types.ts
+++ b/src/api/workflow/task/types.ts
@@ -1,3 +1,5 @@
+import { NodeConfigVO } from '@/api/workflow/nodeConfig/types';
+import { DefinitionConfigVO } from '@/api/workflow/definitionConfig/types';
export interface TaskQuery extends PageQuery {
name?: string;
processDefinitionKey?: string;
@@ -37,8 +39,8 @@ export interface TaskVO extends BaseEntity {
participantVo: ParticipantVo;
multiInstance: boolean;
businessKey: string;
- formKey: string;
- wfFormDefinitionVo: any;
+ wfNodeConfigVo: NodeConfigVO;
+ wfDefinitionConfigVo: DefinitionConfigVO;
}
export interface VariableVo {
diff --git a/src/api/workflow/workflowCommon/index.ts b/src/api/workflow/workflowCommon/index.ts
new file mode 100644
index 00000000..b2846b25
--- /dev/null
+++ b/src/api/workflow/workflowCommon/index.ts
@@ -0,0 +1,49 @@
+import { RouterJumpVo } from '@/api/workflow/workflowCommon/types';
+
+export default {
+ routerJump(routerJumpVo: RouterJumpVo,proxy){
+ if (routerJumpVo.wfNodeConfigVo && routerJumpVo.wfNodeConfigVo.formType === 'static' && routerJumpVo.wfNodeConfigVo.wfFormManageVo) {
+ proxy.$tab.closePage(proxy.$route);
+ proxy.$router.push({
+ path: `${routerJumpVo.wfNodeConfigVo.wfFormManageVo.router}`,
+ query: {
+ id: routerJumpVo.businessKey,
+ type: routerJumpVo.type,
+ taskId: routerJumpVo.taskId
+ }
+ });
+ } else if (routerJumpVo.wfNodeConfigVo && routerJumpVo.wfNodeConfigVo.formType === 'dynamic' && routerJumpVo.wfNodeConfigVo.wfFormManageVo) {
+ proxy.$tab.closePage(proxy.$route);
+ proxy.$router.push({
+ path: `${routerJumpVo.wfNodeConfigVo.wfFormManageVo.router}`,
+ query: {
+ id: routerJumpVo.businessKey,
+ type: routerJumpVo.type,
+ taskId: routerJumpVo.taskId
+ }
+ });
+ }else if (routerJumpVo.wfDefinitionConfigVo && routerJumpVo.wfDefinitionConfigVo.wfFormManageVo && routerJumpVo.wfDefinitionConfigVo.wfFormManageVo.formType === 'static') {
+ proxy.$tab.closePage(proxy.$route);
+ proxy.$router.push({
+ path: `${routerJumpVo.wfDefinitionConfigVo.wfFormManageVo.router}`,
+ query: {
+ id: routerJumpVo.businessKey,
+ type: routerJumpVo.type,
+ taskId: routerJumpVo.taskId
+ }
+ });
+ }else if (routerJumpVo.wfDefinitionConfigVo && routerJumpVo.wfDefinitionConfigVo.wfFormManageVo && routerJumpVo.wfDefinitionConfigVo.wfFormManageVo.formType === 'dynamic') {
+ proxy.$tab.closePage(proxy.$route);
+ proxy.$router.push({
+ path: `${routerJumpVo.wfDefinitionConfigVo.wfFormManageVo.router}`,
+ query: {
+ id: routerJumpVo.businessKey,
+ type: routerJumpVo.type,
+ taskId: routerJumpVo.taskId
+ }
+ });
+ } else {
+ proxy?.$modal.msgError('请到流程定义菜单配置路由!');
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/api/workflow/workflowCommon/types.ts b/src/api/workflow/workflowCommon/types.ts
new file mode 100644
index 00000000..698c849c
--- /dev/null
+++ b/src/api/workflow/workflowCommon/types.ts
@@ -0,0 +1,10 @@
+import { NodeConfigVO } from '@/api/workflow/nodeConfig/types';
+import { DefinitionConfigVO } from '@/api/workflow/definitionConfig/types';
+
+export interface RouterJumpVo {
+ wfDefinitionConfigVo: DefinitionConfigVO;
+ wfNodeConfigVo: NodeConfigVO;
+ businessKey: string;
+ taskId: string;
+ type: string;
+}
\ No newline at end of file
diff --git a/src/components/BpmnDesign/panel/TaskPanel.vue b/src/components/BpmnDesign/panel/TaskPanel.vue
index 5a23702e..fbd4669c 100644
--- a/src/components/BpmnDesign/panel/TaskPanel.vue
+++ b/src/components/BpmnDesign/panel/TaskPanel.vue
@@ -21,8 +21,10 @@
-
-
+
+
+
+
@@ -239,9 +241,10 @@ import { TaskPanel } from 'bpmnDesign';
import { AllocationTypeEnum, MultiInstanceTypeEnum, SpecifyDescEnum } from '@/enums/bpmn/IndexEnums';
import { UserVO } from '@/api/system/user/types';
import { RoleVO } from '@/api/system/role/types';
-
-const { proxy } = getCurrentInstance() as ComponentInternalInstance;
-
+import { selectListFormManage } from '@/api/workflow/formManage';
+import { FormManageVO } from '@/api/workflow/formManage/types';
+const formManageList = ref