feat:功能节点 前后定义

This commit is contained in:
lvjunzhao
2025-04-14 18:35:35 +08:00
parent c197cf7905
commit 6820275fa7
4 changed files with 107 additions and 107 deletions

View File

@ -109,12 +109,12 @@ export interface ProcessConfig {
globalEndEventConfigs: NodeEventConfig[];//全局 用户节点 结束事件
globalPrequalifyBeforeEventConfigs: NodeEventConfig[];//预审前
globalPrequalifyAfterEventConfigs: NodeEventConfig[];//预审后
globalFinishEventConfigs: NodeEventConfig[];//终止事件
globalRejectEventConfigs: NodeEventConfig[];//全局退回事件
globalAgreeEventConfigs: NodeEventConfig[];//全局同意事件
globalSuspendedEventConfigs: NodeEventConfig[];//全局 挂起/暂停事件
globalRestoreEventConfigs: NodeEventConfig[];//全局 恢复事件
globalSetSignEventConfigs: NodeEventConfig[];//全局 会签事件
globalFinishBeforeEventConfigs: NodeEventConfig[];//终止事件
globalRejectAfterEventConfigs: NodeEventConfig[];//全局退回事件
globalAgreeAfterEventConfigs: NodeEventConfig[];//全局同意事件
globalSuspendedBeforeEventConfigs: NodeEventConfig[];//全局 挂起/暂停事件
globalRestoreAfterEventConfigs: NodeEventConfig[];//全局 恢复事件
globalSetSignAfterEventConfigs: NodeEventConfig[];//全局 会签事件
xmlContent: String; //xml
}
@ -290,9 +290,9 @@ export interface BasicNodeConfig {
endEventConfigs: NodeEventConfig[];
prequalifyBeforeEventConfigs: [],//预审前
prequalifyAfterEventConfigs: [],//预审后
rejectEventConfigs: [],//全局退回事件
agreeEventConfigs: [],//全局同意事件
setSignEventConfigs: [],//全局 会签事件
rejectAfterEventConfigs: [],//退回事件
agreeAfterEventConfigs: [],//同意事件
setSignAfterEventConfigs: [],//会签事件
}
export interface NodeEventConfig {

View File

@ -149,11 +149,11 @@
</template>
</a-table>
</a-tab-pane>
<a-tab-pane key="3" :tab="t('会签事件')" v-if="formInfo.setSignEventConfigs || formInfo.type==BpmnNodeKey.USER">
<a-tab-pane key="3" :tab="t('会签事件')" v-if="formInfo.setSignAfterEventConfigs || formInfo.type==BpmnNodeKey.USER">
<div class="process-top">
<a-button type="primary" @click="addSetSignEvent"> {{ t('添加会签事件') }} </a-button>
<a-button type="primary" @click="addSetSignAfterEvent"> {{ t('添加会签事件') }} </a-button>
</div>
<a-table :columns="columns" :data-source="formInfo.setSignEventConfigs" :pagination="false">
<a-table :columns="columns" :data-source="formInfo.setSignAfterEventConfigs" :pagination="false">
<template #headerCell="{ column }">
<template v-if="column.key === 'sort'">
<svg class="icon" aria-hidden="true">
@ -204,7 +204,7 @@
/>
</template>
<template v-if="column.key === 'action'">
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteSetSignEvent(index)" />
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteSetSignAfterEvent(index)" />
</template>
</template>
</a-table>
@ -329,11 +329,11 @@
</template>
</a-table>
</a-tab-pane>
<a-tab-pane key="6" :tab="t('同意事件')" v-if="formInfo.agreeEventConfigs || formInfo.type==BpmnNodeKey.USER">
<a-tab-pane key="6" :tab="t('同意事件')" v-if="formInfo.agreeAfterEventConfigs || formInfo.type==BpmnNodeKey.USER">
<div class="process-top">
<a-button type="primary" @click="addAgreeEvent"> {{ t('添加同意事件') }} </a-button>
<a-button type="primary" @click="addAgreeAfterEvent"> {{ t('添加同意事件') }} </a-button>
</div>
<a-table :columns="columns" :data-source="formInfo.agreeEventConfigs" :pagination="false">
<a-table :columns="columns" :data-source="formInfo.agreeAfterEventConfigs" :pagination="false">
<template #headerCell="{ column }">
<template v-if="column.key === 'sort'">
<svg class="icon" aria-hidden="true">
@ -384,16 +384,16 @@
/>
</template>
<template v-if="column.key === 'action'">
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteAgreeEvent(index)" />
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteAgreeAfterEvent(index)" />
</template>
</template>
</a-table>
</a-tab-pane>
<a-tab-pane key="7" :tab="t('退回事件')" v-if="formInfo.rejectEventConfigs || formInfo.type==BpmnNodeKey.USER">
<a-tab-pane key="7" :tab="t('退回事件')" v-if="formInfo.rejectAfterEventConfigs || formInfo.type==BpmnNodeKey.USER">
<div class="process-top">
<a-button type="primary" @click="addRejectEvent"> {{ t('添加退回事件') }} </a-button>
<a-button type="primary" @click="addRejectAfterEvent"> {{ t('添加退回事件') }} </a-button>
</div>
<a-table :columns="columns" :data-source="formInfo.rejectEventConfigs" :pagination="false">
<a-table :columns="columns" :data-source="formInfo.rejectAfterEventConfigs" :pagination="false">
<template #headerCell="{ column }">
<template v-if="column.key === 'sort'">
<svg class="icon" aria-hidden="true">
@ -444,7 +444,7 @@
/>
</template>
<template v-if="column.key === 'action'">
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteRejectEvent(index)" />
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteRejectAfterEvent(index)" />
</template>
</template>
</a-table>
@ -538,11 +538,11 @@
if (
formInfo.value.endEventConfigs?.length > 0 ||
formInfo.value.startEventConfigs?.length > 0 ||
formInfo.value.setSignEventConfigs?.length > 0 ||
formInfo.value.setSignAfterEventConfigs?.length > 0 ||
formInfo.value.prequalifyBeforeEventConfigs?.length > 0 ||
formInfo.value.prequalifyAfterEventConfigs?.length > 0 ||
formInfo.value.agreeEventConfigs?.length > 0 ||
formInfo.value.rejectEventConfigs?.length > 0
formInfo.value.agreeAfterEventConfigs?.length > 0 ||
formInfo.value.rejectAfterEventConfigs?.length > 0
) {
nextTick(() => {
const tbody: any = document.querySelector('.ant-table-tbody');
@ -568,15 +568,15 @@
};
//新增会签 因为旧值中不包含所以html 判断node节点这里对add 可以新增空数组
const addSetSignEvent = () => {
formInfo.value.setSignEventConfigs = formInfo.value.setSignEventConfigs==null?[]:formInfo.value.setSignEventConfigs;
formInfo.value.setSignEventConfigs.push({
const addSetSignAfterEvent = () => {
formInfo.value.setSignAfterEventConfigs = formInfo.value.setSignAfterEventConfigs==null?[]:formInfo.value.setSignAfterEventConfigs;
formInfo.value.setSignAfterEventConfigs.push({
type: NodeEventExType.API,
apiConfig: {},
} as NodeEventConfig);
};
const deleteSetSignEvent = (index) => {
formInfo.value.setSignEventConfigs.splice(index, 1);
const deleteSetSignAfterEvent = (index) => {
formInfo.value.setSignAfterEventConfigs.splice(index, 1);
};
// 预审前 因为旧值中不包含所以html 判断node节点这里对add 可以新增空数组
@ -604,27 +604,27 @@
};
// 同意 因为旧值中不包含所以html 判断node节点这里对add 可以新增空数组
const addAgreeEvent = () => {
formInfo.value.agreeEventConfigs = formInfo.value.agreeEventConfigs==null?[]:formInfo.value.agreeEventConfigs;
formInfo.value.agreeEventConfigs.push({
const addAgreeAfterEvent = () => {
formInfo.value.agreeAfterEventConfigs = formInfo.value.agreeAfterEventConfigs==null?[]:formInfo.value.agreeAfterEventConfigs;
formInfo.value.agreeAfterEventConfigs.push({
type: NodeEventExType.API,
apiConfig: {},
} as NodeEventConfig);
};
const deleteAgreeEvent = (index) => {
formInfo.value.agreeEventConfigs.splice(index, 1);
const deleteAgreeAfterEvent = (index) => {
formInfo.value.agreeAfterEventConfigs.splice(index, 1);
};
// 退回 因为旧值中不包含所以html 判断node节点这里对add 可以新增空数组
const addRejectEvent = () => {
formInfo.value.rejectEventConfigs = formInfo.value.rejectEventConfigs==null?[]:formInfo.value.rejectEventConfigs;
formInfo.value.rejectEventConfigs.push({
const addRejectAfterEvent = () => {
formInfo.value.rejectAfterEventConfigs = formInfo.value.rejectAfterEventConfigs==null?[]:formInfo.value.rejectAfterEventConfigs;
formInfo.value.rejectAfterEventConfigs.push({
type: NodeEventExType.API,
apiConfig: {},
} as NodeEventConfig);
};
const deleteRejectEvent = (index) => {
formInfo.value.rejectEventConfigs.splice(index, 1);
const deleteRejectAfterEvent = (index) => {
formInfo.value.rejectAfterEventConfigs.splice(index, 1);
};
</script>

View File

@ -89,12 +89,12 @@ export const processConfig: ProcessConfig = {
globalEndEventConfigs: [],//全局 用户节点 结束事件
globalPrequalifyBeforeEventConfigs: [],//预审前
globalPrequalifyAfterEventConfigs: [],//预审后
globalFinishEventConfigs: [],//终止事件
globalRejectEventConfigs: [],//全局退回事件
globalAgreeEventConfigs: [],//全局同意事件
globalSuspendedEventConfigs: [],//全局 挂起/暂停事件
globalRestoreEventConfigs: [],//全局 恢复事件
globalSetSignEventConfigs: [],//全局 会签事件
globalFinishBeforeEventConfigs: [],//终止事件
globalRejectAfterEventConfigs: [],//全局退回事件
globalAgreeAfterEventConfigs: [],//全局同意事件
globalSuspendedBeforeEventConfigs: [],//全局 挂起/暂停事件
globalRestoreAfterEventConfigs: [],//全局 恢复事件
globalSetSignAfterEventConfigs: [],//全局 会签事件
xmlContent: '',
};
// 默认属性
@ -207,9 +207,9 @@ const UserProperties: UserTaskConfig = {
endEventConfigs: [],
prequalifyBeforeEventConfigs: [],//预审前
prequalifyAfterEventConfigs: [],//预审后
rejectEventConfigs: [],//全局退回事件
agreeEventConfigs: [],//全局同意事件
setSignEventConfigs: [],//全局 会签事件
rejectAfterEventConfigs: [],//全局退回事件
agreeAfterEventConfigs: [],//全局同意事件
setSignAfterEventConfigs: [],//全局 会签事件
};
// 脚本节点默认属性
const ScriptProperties: ScriptTaskConfig = {

View File

@ -264,15 +264,15 @@
</template>
</a-table>
</a-tab-pane>
<a-tab-pane key="5" :tab="t('终止事件')">
<a-tab-pane key="5" :tab="t('终止事件')">
<div class="process-top">
<a-button type="primary" @click="addGlobalFinishEvent">
{{ t('添加终止事件') }}
<a-button type="primary" @click="addGlobalFinishBeforeEvent">
{{ t('添加终止事件') }}
</a-button>
</div>
<a-table
:columns="columns"
:dataSource="processInfo.globalFinishEventConfigs"
:dataSource="processInfo.globalFinishBeforeEventConfigs"
:pagination="false"
>
<template #headerCell="{ column }">
@ -325,20 +325,20 @@
/>
</template>
<template v-if="column.key === 'action'">
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteFinishEvent(index)" />
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteFinishBeforeEvent(index)" />
</template>
</template>
</a-table>
</a-tab-pane>
<a-tab-pane key="6" :tab="t('退回事件')">
<a-tab-pane key="6" :tab="t('退回事件')">
<div class="process-top">
<a-button type="primary" @click="addGlobalRejectEvent">
{{ t('添加全局退回事件') }}
<a-button type="primary" @click="addGlobalRejectAfterEvent">
{{ t('添加全局退回事件') }}
</a-button>
</div>
<a-table
:columns="columns"
:dataSource="processInfo.globalRejectEventConfigs"
:dataSource="processInfo.globalRejectAfterEventConfigs"
:pagination="false"
>
<template #headerCell="{ column }">
@ -391,20 +391,20 @@
/>
</template>
<template v-if="column.key === 'action'">
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteRejectEvent(index)" />
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteRejectAfterEvent(index)" />
</template>
</template>
</a-table>
</a-tab-pane>
<a-tab-pane key="7" :tab="t('同意事件')">
<a-tab-pane key="7" :tab="t('同意事件')">
<div class="process-top">
<a-button type="primary" @click="addGlobalAgreeEvent">
{{ t('添加全局同意事件') }}
<a-button type="primary" @click="addGlobalAgreeAfterEvent">
{{ t('添加全局同意事件') }}
</a-button>
</div>
<a-table
:columns="columns"
:dataSource="processInfo.globalAgreeEventConfigs"
:dataSource="processInfo.globalAgreeAfterEventConfigs"
:pagination="false"
>
<template #headerCell="{ column }">
@ -457,20 +457,20 @@
/>
</template>
<template v-if="column.key === 'action'">
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteAgreeEvent(index)" />
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteAgreeAfterEvent(index)" />
</template>
</template>
</a-table>
</a-tab-pane>
<a-tab-pane key="8" :tab="t('挂起事件')">
<a-tab-pane key="8" :tab="t('挂起事件')">
<div class="process-top">
<a-button type="primary" @click="addGlobalSuspendedEvent">
{{ t('添加挂起事件') }}
<a-button type="primary" @click="addGlobalSuspendedBeforeEvent">
{{ t('添加挂起事件') }}
</a-button>
</div>
<a-table
:columns="columns"
:dataSource="processInfo.globalSuspendedEventConfigs"
:dataSource="processInfo.globalSuspendedBeforeEventConfigs"
:pagination="false"
>
<template #headerCell="{ column }">
@ -523,20 +523,20 @@
/>
</template>
<template v-if="column.key === 'action'">
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteSuspendedEvent(index)" />
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteSuspendedBeforeEvent(index)" />
</template>
</template>
</a-table>
</a-tab-pane>
<a-tab-pane key="9" :tab="t('恢复事件')">
<a-tab-pane key="9" :tab="t('恢复事件')">
<div class="process-top">
<a-button type="primary" @click="addGlobalRestoreEvent">
{{ t('添加恢复事件') }}
<a-button type="primary" @click="addGlobalRestoreAfterEvent">
{{ t('添加恢复事件') }}
</a-button>
</div>
<a-table
:columns="columns"
:dataSource="processInfo.globalRestoreEventConfigs"
:dataSource="processInfo.globalRestoreAfterEventConfigs"
:pagination="false"
>
<template #headerCell="{ column }">
@ -589,20 +589,20 @@
/>
</template>
<template v-if="column.key === 'action'">
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteRestoreEvent(index)" />
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteRestoreAfterEvent(index)" />
</template>
</template>
</a-table>
</a-tab-pane>
<a-tab-pane key="10" :tab="t('会签事件')">
<a-tab-pane key="10" :tab="t('会签事件')">
<div class="process-top">
<a-button type="primary" @click="addGlobalSetSignEvent">
{{ t('添加会签事件') }}
<a-button type="primary" @click="addGlobalSetSignAfterEvent">
{{ t('添加会签事件') }}
</a-button>
</div>
<a-table
:columns="columns"
:dataSource="processInfo.globalSetSignEventConfigs"
:dataSource="processInfo.globalSetSignAfterEventConfigs"
:pagination="false"
>
<template #headerCell="{ column }">
@ -655,7 +655,7 @@
/>
</template>
<template v-if="column.key === 'action'">
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteSetSignEvent(index)" />
<DeleteTwoTone two-tone-color="#ff8080" @click="deleteSetSignAfterEvent(index)" />
</template>
</template>
</a-table>
@ -749,70 +749,70 @@ const deletePrequalifyAfterEvent = (index) => {
processInfo.value.globalPrequalifyAfterEventConfigs.splice(index, 1);
};
const addGlobalFinishEvent = () => {
processInfo.value.globalFinishEventConfigs.push({
const addGlobalFinishBeforeEvent = () => {
processInfo.value.globalFinishBeforeEventConfigs.push({
type: NodeEventExType.API,
apiConfig: {},
} as NodeEventConfig);
};
const deleteFinishEvent = (index) => {
processInfo.value.globalFinishEventConfigs.splice(index, 1);
const deleteFinishBeforeEvent = (index) => {
processInfo.value.globalFinishBeforeEventConfigs.splice(index, 1);
};
const addGlobalRejectEvent = () => {
processInfo.value.globalRejectEventConfigs.push({
const addGlobalRejectAfterEvent = () => {
processInfo.value.globalRejectAfterEventConfigs.push({
type: NodeEventExType.API,
apiConfig: {},
} as NodeEventConfig);
};
const deleteRejectEvent = (index) => {
processInfo.value.globalRejectEventConfigs.splice(index, 1);
const deleteRejectAfterEvent = (index) => {
processInfo.value.globalRejectAfterEventConfigs.splice(index, 1);
};
const addGlobalAgreeEvent = () => {
processInfo.value.globalAgreeEventConfigs.push({
const addGlobalAgreeAfterEvent = () => {
processInfo.value.globalAgreeAfterEventConfigs.push({
type: NodeEventExType.API,
apiConfig: {},
} as NodeEventConfig);
};
const deleteAgreeEvent = (index) => {
processInfo.value.globalAgreeEventConfigs.splice(index, 1);
const deleteAgreeAfterEvent = (index) => {
processInfo.value.globalAgreeAfterEventConfigs.splice(index, 1);
};
const addGlobalSuspendedEvent = () => {
processInfo.value.globalSuspendedEventConfigs.push({
const addGlobalSuspendedBeforeEvent = () => {
processInfo.value.globalSuspendedBeforeEventConfigs.push({
type: NodeEventExType.API,
apiConfig: {},
} as NodeEventConfig);
};
const deleteSuspendedEvent = (index) => {
processInfo.value.globalSuspendedEventConfigs.splice(index, 1);
const deleteSuspendedBeforeEvent = (index) => {
processInfo.value.globalSuspendedBeforeEventConfigs.splice(index, 1);
};
const addGlobalRestoreEvent = () => {
processInfo.value.globalRestoreEventConfigs.push({
const addGlobalRestoreAfterEvent = () => {
processInfo.value.globalRestoreAfterEventConfigs.push({
type: NodeEventExType.API,
apiConfig: {},
} as NodeEventConfig);
};
const deleteRestoreEvent = (index) => {
processInfo.value.globalRestoreEventConfigs.splice(index, 1);
const deleteRestoreAfterEvent = (index) => {
processInfo.value.globalRestoreAfterEventConfigs.splice(index, 1);
};
// 全局会签事件添加
const addGlobalSetSignEvent = () => {
processInfo.value.globalSetSignEventConfigs.push({
const addGlobalSetSignAfterEvent = () => {
processInfo.value.globalSetSignAfterEventConfigs.push({
type: NodeEventExType.API,
apiConfig: {},
} as NodeEventConfig);
};
const deleteSetSignEvent = (index) => {
processInfo.value.globalSetSignEventConfigs.splice(index, 1);
const deleteSetSignAfterEvent = (index) => {
processInfo.value.globalSetSignAfterEventConfigs.splice(index, 1);
};
</script>