feat: remember selected worker for product
This commit is contained in:
parent
a31d95e496
commit
98c10c2fa1
2 changed files with 28 additions and 28 deletions
|
|
@ -401,7 +401,8 @@ function triggerProductServiceDialog() {
|
|||
}
|
||||
|
||||
function toggleDeleteProduct(index: number) {
|
||||
deleteItem(productServiceList.value, index);
|
||||
productServiceList.value.splice(index, 1);
|
||||
console.log(productServiceList.value);
|
||||
}
|
||||
async function assignWorkerToSelectedWorker() {
|
||||
if (quotationFormData.value.customerBranchId) {
|
||||
|
|
@ -440,22 +441,31 @@ function convertToTable(nodes: Node[]) {
|
|||
}
|
||||
|
||||
function convertEmployeeToTable() {
|
||||
productServiceList.value.map((v) => {
|
||||
productServiceList.value.forEach((v) => {
|
||||
if (selectedWorker.value.length === 0 && v.amount === 1) v.amount -= 1;
|
||||
|
||||
v.amount = Math.max(
|
||||
v.amount + preSelectedWorker.value.length - selectedWorker.value.length,
|
||||
1,
|
||||
);
|
||||
|
||||
for (
|
||||
let i = 0;
|
||||
i < preSelectedWorker.value.length - selectedWorker.value.length;
|
||||
i++
|
||||
) {
|
||||
v.workerIndex.push(selectedWorker.value.length + i);
|
||||
}
|
||||
return v;
|
||||
const oldWorkerId: string[] = [];
|
||||
const newWorkerIndex: number[] = [];
|
||||
|
||||
selectedWorker.value.forEach((item, i) => {
|
||||
if (v.workerIndex.includes(i)) oldWorkerId.push(item.id);
|
||||
});
|
||||
preSelectedWorker.value.forEach((item, i) => {
|
||||
if (selectedWorker.value.find((n) => item.id === n.id)) return;
|
||||
newWorkerIndex.push(i);
|
||||
});
|
||||
|
||||
v.workerIndex = oldWorkerId
|
||||
.map((id) => preSelectedWorker.value.findIndex((item) => item.id === id))
|
||||
.filter((idx) => idx !== -1)
|
||||
.concat(newWorkerIndex);
|
||||
});
|
||||
|
||||
refSelectZoneEmployee.value?.assignSelect(
|
||||
selectedWorker.value,
|
||||
preSelectedWorker.value,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue