From d16194b794994a8ee3f8e78c82ec540da9527bab Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 20 Mar 2024 21:33:48 +0800 Subject: [PATCH] =?UTF-8?q?BPM=EF=BC=9A=E4=BC=98=E5=8C=96=20task=20?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E8=AF=A6=E6=83=85=E7=95=8C=E9=9D=A2=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BC=80=E5=A7=8B=E6=97=B6=E9=97=B4=E3=80=81?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E6=97=B6=E9=97=B4=E7=9A=84=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/bpm/form/index.ts | 4 +- src/api/bpm/leave/index.ts | 2 +- .../package/designer/ProcessViewer.vue | 58 ++++++++++++------- .../package/penal/form/ElementForm.vue | 2 +- src/utils/dict.ts | 2 +- src/views/bpm/model/ModelForm.vue | 2 +- src/views/bpm/model/ModelImportForm.vue | 1 + src/views/bpm/oa/leave/index.vue | 15 +++-- .../detail/ProcessInstanceTaskList.vue | 57 +++++++++--------- .../detail/dialog/TaskSignList.vue | 2 +- .../bpm/processInstance/detail/index.vue | 7 ++- src/views/bpm/task/done/index.vue | 2 +- 12 files changed, 93 insertions(+), 61 deletions(-) diff --git a/src/api/bpm/form/index.ts b/src/api/bpm/form/index.ts index 142ed24c..7fce11fc 100644 --- a/src/api/bpm/form/index.ts +++ b/src/api/bpm/form/index.ts @@ -49,8 +49,8 @@ export const getFormPage = async (params) => { } // 获得动态表单的精简列表 -export const getSimpleFormList = async () => { +export const getFormSimpleList = async () => { return await request.get({ - url: '/bpm/form/list-all-simple' + url: '/bpm/form/simple-list' }) } diff --git a/src/api/bpm/leave/index.ts b/src/api/bpm/leave/index.ts index d4fe8d58..4f374b2f 100644 --- a/src/api/bpm/leave/index.ts +++ b/src/api/bpm/leave/index.ts @@ -2,7 +2,7 @@ import request from '@/config/axios' export type LeaveVO = { id: number - result: number + status: number type: number reason: string processInstanceId: string diff --git a/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue b/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue index f5646355..485b9795 100644 --- a/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue +++ b/src/components/bpmnProcessDesigner/package/designer/ProcessViewer.vue @@ -115,7 +115,7 @@ const highlightDiagram = async () => { if (!task) { return } - //进行中的任务已经高亮过了,则不高亮后面的任务了 + // 进行中的任务已经高亮过了,则不高亮后面的任务了 if (findProcessTask) { removeTaskDefinitionKeyList.push(n.id) return @@ -194,6 +194,7 @@ const highlightDiagram = async () => { }) } else if (n.$type === 'bpmn:StartEvent') { // 开始节点 + canvas.addMarker(n.id, 'highlight') n.outgoing?.forEach((nn) => { // outgoing 例如说【bpmn:SequenceFlow】连线 // 获得连线是否有指向目标。如果有,则进行高亮 @@ -223,40 +224,49 @@ const highlightDiagram = async () => { canvas.addMarker(out.id, getResultCss(2)) }) } + } else if (n.$type === 'bpmn:SequenceFlow') { + let targetActivity = activityList.find((m: any) => m.key === n.targetRef.id) + if (targetActivity) { + canvas.addMarker(n.id, getActivityHighlightCss(targetActivity)) + } } }) if (!isEmpty(removeTaskDefinitionKeyList)) { - // TODO 芋艿:后面 .definitionKey 再看 taskList.value = taskList.value.filter( - (item) => !removeTaskDefinitionKeyList.includes(item.definitionKey) + (item) => !removeTaskDefinitionKeyList.includes(item.taskDefinitionKey) ) } } + const getActivityHighlightCss = (activity) => { return activity.endTime ? 'highlight' : 'highlight-todo' } -const getResultCss = (result) => { - if (result === 1) { + +const getResultCss = (status) => { + if (status === 1) { // 审批中 return 'highlight-todo' - } else if (result === 2) { + } else if (status === 2) { // 已通过 return 'highlight' - } else if (result === 3) { + } else if (status === 3) { // 不通过 return 'highlight-reject' - } else if (result === 4) { + } else if (status === 4) { // 已取消 return 'highlight-cancel' - } else if (result === 5) { + } else if (status === 5) { // 退回 return 'highlight-return' - } else if (result === 6) { + } else if (status === 6) { // 委派 - return 'highlight-return' - } else if (result === 7 || result === 8 || result === 9) { - // 待后加签任务完成/待前加签任务完成/待前置任务完成 - return 'highlight-return' + return 'highlight-todo' + } else if (status === 7) { + // 审批通过中 + return 'highlight-todo' + } else if (status === 0) { + // 待审批 + return 'highlight-todo' } return '' } @@ -297,10 +307,10 @@ const elementHover = (element) => { !elementOverlayIds.value && (elementOverlayIds.value = {}) !overlays.value && (overlays.value = bpmnModeler.get('overlays')) // 展示信息 - console.log(activityLists.value, 'activityLists.value') - console.log(element.value, 'element.value') + // console.log(activityLists.value, 'activityLists.value') + // console.log(element.value, 'element.value') const activity = activityLists.value.find((m) => m.key === element.value.id) - console.log(activity, 'activityactivityactivityactivity') + // console.log(activity, 'activityactivityactivityactivity') if (!activity) { return } @@ -314,12 +324,11 @@ const elementHover = (element) => {

部门:${processInstance.value.startUser.deptName}

创建时间:${formatDate(processInstance.value.createTime)}` } else if (element.value.type === 'bpmn:UserTask') { - // debugger let task = taskList.value.find((m) => m.id === activity.taskId) // 找到活动对应的 taskId if (!task) { return } - let optionData = getIntDictOptions(DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT) + let optionData = getIntDictOptions(DICT_TYPE.BPM_TASK_STATUS) let dataResult = '' optionData.forEach((element) => { if (element.value == task.status) { @@ -352,7 +361,7 @@ const elementHover = (element) => { } console.log(html) } else if (element.value.type === 'bpmn:EndEvent' && processInstance.value) { - let optionData = getIntDictOptions(DICT_TYPE.BPM_PROCESS_INSTANCE_RESULT) + let optionData = getIntDictOptions(DICT_TYPE.BPM_TASK_STATUS) let dataResult = '' optionData.forEach((element) => { if (element.value == processInstance.value.status) { @@ -375,6 +384,7 @@ const elementHover = (element) => { }) } } + // 流程图的元素被 out const elementOut = (element) => { toRaw(overlays.value).remove({ element }) @@ -390,6 +400,7 @@ onMounted(() => { // 初始模型的监听器 initModelListeners() }) + onBeforeUnmount(() => { // this.$once('hook:beforeDestroy', () => { // }) @@ -428,7 +439,7 @@ watch( ) -