Pre Merge pull request !368 from Jason/master

pull/368/MERGE
Jason 2026-06-20 17:29:33 +00:00 committed by Gitee
commit 0971eaeaf1
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
6 changed files with 24 additions and 12 deletions

View File

@ -354,7 +354,8 @@ async function initNextAssigneesFormField() {
BpmCandidateStrategyEnum.START_USER_SELECT === BpmCandidateStrategyEnum.START_USER_SELECT ===
node.candidateStrategy) || node.candidateStrategy) ||
// //
BpmCandidateStrategyEnum.APPROVE_USER_SELECT === node.candidateStrategy (isEmpty(node.candidateUsers) &&
BpmCandidateStrategyEnum.APPROVE_USER_SELECT === node.candidateStrategy)
) { ) {
nextAssigneesActivityNode.value.push(node); nextAssigneesActivityNode.value.push(node);
} }
@ -396,7 +397,7 @@ function validateNextAssignees() {
} }
// //
for (const item of nextAssigneesActivityNode.value) { for (const item of nextAssigneesActivityNode.value) {
if (isEmpty(approveReasonForm.nextAssignees[item.id])) { if (isEmpty(item.candidateUsers) && isEmpty(approveReasonForm.nextAssignees[item.id])) {
message.warning('下一个节点的审批人不能为空!'); message.warning('下一个节点的审批人不能为空!');
return false; return false;
} }
@ -875,9 +876,10 @@ defineExpose({ loadTodoTask });
name="nextAssignees" name="nextAssignees"
v-if="nextAssigneesActivityNode.length > 0" v-if="nextAssigneesActivityNode.length > 0"
> >
<div class="-mb-8 -mt-3.5 ml-2.5"> <div class="ml-2.5 mt-2.5">
<ProcessInstanceTimeline <ProcessInstanceTimeline
ref="nextAssigneesTimelineRef" ref="nextAssigneesTimelineRef"
embedded
:activity-nodes="nextAssigneesActivityNode" :activity-nodes="nextAssigneesActivityNode"
:show-status-icon="false" :show-status-icon="false"
:enable-approve-user-select="true" :enable-approve-user-select="true"

View File

@ -23,12 +23,14 @@ defineOptions({ name: 'BpmProcessInstanceTimeline' });
const props = withDefaults( const props = withDefaults(
defineProps<{ defineProps<{
activityNodes: BpmProcessInstanceApi.ApprovalNodeInfo[]; // activityNodes: BpmProcessInstanceApi.ApprovalNodeInfo[]; //
embedded?: boolean; // 使 label
enableApproveUserSelect?: boolean; // enableApproveUserSelect?: boolean; //
showStatusIcon?: boolean; // showStatusIcon?: boolean; //
}>(), }>(),
{ {
showStatusIcon: true, // true showStatusIcon: true, // true
enableApproveUserSelect: false, // false enableApproveUserSelect: false, // false
embedded: false, // false
}, },
); );
@ -246,7 +248,7 @@ defineExpose({ setCustomApproveUsers, batchSetCustomApproveUsers });
<template> <template>
<div> <div>
<Timeline class="pt-5"> <Timeline :class="embedded ? 'pt-2' : 'pt-5'">
<!-- 遍历每个审批节点 --> <!-- 遍历每个审批节点 -->
<Timeline.Item <Timeline.Item
v-for="(activity, index) in activityNodes" v-for="(activity, index) in activityNodes"

View File

@ -335,7 +335,8 @@ async function initNextAssigneesFormField() {
BpmCandidateStrategyEnum.START_USER_SELECT === BpmCandidateStrategyEnum.START_USER_SELECT ===
node.candidateStrategy) || node.candidateStrategy) ||
// //
BpmCandidateStrategyEnum.APPROVE_USER_SELECT === node.candidateStrategy (isEmpty(node.candidateUsers) &&
BpmCandidateStrategyEnum.APPROVE_USER_SELECT === node.candidateStrategy)
) { ) {
nextAssigneesActivityNode.value.push(node); nextAssigneesActivityNode.value.push(node);
} }
@ -377,7 +378,7 @@ function validateNextAssignees() {
} }
// //
for (const item of nextAssigneesActivityNode.value) { for (const item of nextAssigneesActivityNode.value) {
if (isEmpty(approveReasonForm.nextAssignees[item.id])) { if (isEmpty(item.candidateUsers) && isEmpty(approveReasonForm.nextAssignees[item.id])) {
message.warning('下一个节点的审批人不能为空!'); message.warning('下一个节点的审批人不能为空!');
return false; return false;
} }
@ -858,9 +859,10 @@ defineExpose({ loadTodoTask });
name="nextAssignees" name="nextAssignees"
v-if="nextAssigneesActivityNode.length > 0" v-if="nextAssigneesActivityNode.length > 0"
> >
<div class="-mb-8 -mt-3.5 ml-2.5"> <div class="ml-2.5">
<ProcessInstanceTimeline <ProcessInstanceTimeline
ref="nextAssigneesTimelineRef" ref="nextAssigneesTimelineRef"
embedded
:activity-nodes="nextAssigneesActivityNode" :activity-nodes="nextAssigneesActivityNode"
:show-status-icon="false" :show-status-icon="false"
:enable-approve-user-select="true" :enable-approve-user-select="true"

View File

@ -30,12 +30,14 @@ defineOptions({ name: 'BpmProcessInstanceTimeline' });
const props = withDefaults( const props = withDefaults(
defineProps<{ defineProps<{
activityNodes: BpmProcessInstanceApi.ApprovalNodeInfo[]; // activityNodes: BpmProcessInstanceApi.ApprovalNodeInfo[]; //
embedded?: boolean; // 使 label
enableApproveUserSelect?: boolean; // enableApproveUserSelect?: boolean; //
showStatusIcon?: boolean; // showStatusIcon?: boolean; //
}>(), }>(),
{ {
showStatusIcon: true, // true showStatusIcon: true, // true
enableApproveUserSelect: false, // false enableApproveUserSelect: false, // false
embedded: false, // false
}, },
); );
@ -247,7 +249,7 @@ defineExpose({ setCustomApproveUsers, batchSetCustomApproveUsers });
<template> <template>
<div> <div>
<Timeline class="pt-5"> <Timeline :class="embedded ? 'pt-2' : 'pt-5'">
<!-- 遍历每个审批节点 --> <!-- 遍历每个审批节点 -->
<TimelineItem <TimelineItem
v-for="(activity, index) in activityNodes" v-for="(activity, index) in activityNodes"

View File

@ -364,7 +364,8 @@ async function initNextAssigneesFormField() {
BpmCandidateStrategyEnum.START_USER_SELECT === BpmCandidateStrategyEnum.START_USER_SELECT ===
node.candidateStrategy) || node.candidateStrategy) ||
// //
BpmCandidateStrategyEnum.APPROVE_USER_SELECT === node.candidateStrategy (isEmpty(node.candidateUsers) &&
BpmCandidateStrategyEnum.APPROVE_USER_SELECT === node.candidateStrategy)
) { ) {
nextAssigneesActivityNode.value.push(node); nextAssigneesActivityNode.value.push(node);
} }
@ -406,7 +407,7 @@ function validateNextAssignees() {
} }
// //
for (const item of nextAssigneesActivityNode.value) { for (const item of nextAssigneesActivityNode.value) {
if (isEmpty(approveReasonForm.nextAssignees[item.id])) { if (isEmpty(item.candidateUsers) && isEmpty(approveReasonForm.nextAssignees[item.id])) {
ElMessage.warning('下一个节点的审批人不能为空!'); ElMessage.warning('下一个节点的审批人不能为空!');
return false; return false;
} }
@ -881,9 +882,10 @@ defineExpose({ loadTodoTask });
prop="nextAssignees" prop="nextAssignees"
v-if="nextAssigneesActivityNode.length > 0" v-if="nextAssigneesActivityNode.length > 0"
> >
<div class="-mb-8 -mt-3.5 ml-2.5"> <div>
<ProcessInstanceTimeline <ProcessInstanceTimeline
ref="nextAssigneesTimelineRef" ref="nextAssigneesTimelineRef"
embedded
:activity-nodes="nextAssigneesActivityNode" :activity-nodes="nextAssigneesActivityNode"
:show-status-icon="false" :show-status-icon="false"
:enable-approve-user-select="true" :enable-approve-user-select="true"

View File

@ -30,12 +30,14 @@ defineOptions({ name: 'BpmProcessInstanceTimeline' });
const props = withDefaults( const props = withDefaults(
defineProps<{ defineProps<{
activityNodes: BpmProcessInstanceApi.ApprovalNodeInfo[]; // activityNodes: BpmProcessInstanceApi.ApprovalNodeInfo[]; //
embedded?: boolean; // 使 label
enableApproveUserSelect?: boolean; // enableApproveUserSelect?: boolean; //
showStatusIcon?: boolean; // showStatusIcon?: boolean; //
}>(), }>(),
{ {
showStatusIcon: true, // true showStatusIcon: true, // true
enableApproveUserSelect: false, // false enableApproveUserSelect: false, // false
embedded: false, // false
}, },
); );
@ -253,7 +255,7 @@ defineExpose({ setCustomApproveUsers, batchSetCustomApproveUsers });
<template> <template>
<div> <div>
<ElTimeline class="pt-5"> <ElTimeline :class="embedded ? 'pt-2' : 'pt-5'">
<!-- 遍历每个审批节点 --> <!-- 遍历每个审批节点 -->
<ElTimelineItem <ElTimelineItem
v-for="(activity, index) in activityNodes" v-for="(activity, index) in activityNodes"