refactor: enhance request selection logic and improve filtering for empty step statuses
This commit is contained in:
parent
697a8531f1
commit
529d4ad3df
2 changed files with 52 additions and 31 deletions
|
|
@ -165,35 +165,49 @@ function submit() {
|
|||
requestWorkId: string;
|
||||
requestWorkStep?: Task;
|
||||
}[] = [];
|
||||
|
||||
selectedEmployee.value.forEach((v, i) => {
|
||||
const curr = v.stepStatus.find(
|
||||
(s) =>
|
||||
s.workStatus ===
|
||||
(props.creditNote
|
||||
? RequestWorkStatus.Canceled
|
||||
: RequestWorkStatus.Ready) ||
|
||||
s.workStatus ===
|
||||
(props.creditNote
|
||||
? RequestWorkStatus.Canceled
|
||||
: RequestWorkStatus.InProgress),
|
||||
);
|
||||
if (curr) {
|
||||
const task: Task = {
|
||||
...curr,
|
||||
attributes: curr.attributes,
|
||||
workStatus:
|
||||
curr.workStatus || props.creditNote
|
||||
? RequestWorkStatus.Ready
|
||||
: RequestWorkStatus.Canceled,
|
||||
taskOrderId: '',
|
||||
requestWork: selectedEmployee.value[i],
|
||||
};
|
||||
if (v.stepStatus.length === 0) {
|
||||
selected.push({
|
||||
step: task.step,
|
||||
requestWorkId: task.requestWorkId,
|
||||
requestWorkStep: task,
|
||||
step: 0,
|
||||
requestWorkId: v.id || '',
|
||||
requestWorkStep: {
|
||||
taskOrderId: '',
|
||||
requestWork: v,
|
||||
step: 0,
|
||||
workStatus: '',
|
||||
requestWorkId: '',
|
||||
attributes: undefined,
|
||||
},
|
||||
});
|
||||
} else {
|
||||
const curr = v.stepStatus.find(
|
||||
(s) =>
|
||||
s.workStatus ===
|
||||
(props.creditNote
|
||||
? RequestWorkStatus.Canceled
|
||||
: RequestWorkStatus.Ready) ||
|
||||
s.workStatus ===
|
||||
(props.creditNote
|
||||
? RequestWorkStatus.Canceled
|
||||
: RequestWorkStatus.InProgress),
|
||||
);
|
||||
if (curr) {
|
||||
const task: Task = {
|
||||
...curr,
|
||||
attributes: curr.attributes,
|
||||
workStatus:
|
||||
curr.workStatus || props.creditNote
|
||||
? RequestWorkStatus.Ready
|
||||
: RequestWorkStatus.Canceled,
|
||||
taskOrderId: '',
|
||||
requestWork: selectedEmployee.value[i],
|
||||
};
|
||||
selected.push({
|
||||
step: task.step,
|
||||
requestWorkId: task.requestWorkId,
|
||||
requestWorkStep: task,
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -217,11 +231,17 @@ function onDialogOpen() {
|
|||
if (taskList.value.length === 0) return;
|
||||
const matchingItems = tempGroupEdit.value
|
||||
.flatMap((g) => g.list)
|
||||
.filter((l) =>
|
||||
l.stepStatus.some((s) =>
|
||||
taskList.value.some((t) => s.requestWorkId === t.requestWorkId),
|
||||
),
|
||||
);
|
||||
.filter((l) => {
|
||||
if (l.stepStatus.length === 0) {
|
||||
return taskList.value.some(
|
||||
(t) => t.requestWorkStep?.requestWork.id === l.id,
|
||||
);
|
||||
} else {
|
||||
return l.stepStatus.some((s) =>
|
||||
taskList.value.some((t) => s.requestWorkId === t.requestWorkId),
|
||||
);
|
||||
}
|
||||
});
|
||||
selectedEmployee.value = JSON.parse(JSON.stringify(matchingItems));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -630,6 +630,7 @@ onMounted(async () => {
|
|||
:task-list="taskListGroup"
|
||||
@add-product="openProductDialog"
|
||||
/>
|
||||
|
||||
<PaymentExpansion
|
||||
v-if="view === null"
|
||||
:readonly="readonly"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue