From c0b89478b9bcfeeb577965b83418e54ec781d085 Mon Sep 17 00:00:00 2001 From: puriphatt Date: Wed, 30 Oct 2024 10:18:17 +0700 Subject: [PATCH] fix: service work product attributes (workflow) --- src/pages/04_product-service/MainPage.vue | 62 ++++++++++++++--------- 1 file changed, 38 insertions(+), 24 deletions(-) diff --git a/src/pages/04_product-service/MainPage.vue b/src/pages/04_product-service/MainPage.vue index 453ceeec..21681acb 100644 --- a/src/pages/04_product-service/MainPage.vue +++ b/src/pages/04_product-service/MainPage.vue @@ -1201,6 +1201,43 @@ async function submitGroup() { flowStore.rotate(); } +function submitAddWorkProduct() { + selectProduct.value.forEach((i) => { + const productExists = workItems.value[currentWorkIndex.value].product.some( + (product) => product.id === i.id, + ); + // add not exists product + if (!productExists) { + workItems.value[currentWorkIndex.value].product.push({ + ...i, + nameEn: '', + }); + workItems.value[currentWorkIndex.value].attributes.stepProperties.forEach( + (s) => { + s.productsId.push(i.id); + }, + ); + } + }); + + // filter remain product + workItems.value[currentWorkIndex.value].attributes.stepProperties.forEach( + (s) => { + s.productsId = s.productsId.filter((pid) => + selectProduct.value.some((i) => i.id === pid), + ); + }, + ); + workItems.value[currentWorkIndex.value].product = workItems.value[ + currentWorkIndex.value + ].product.filter((product) => + selectProduct.value.some((i) => i.id === product.id), + ); + + dialogTotalProduct.value = false; + selectProduct.value = []; +} + function confirmDeleteWork(id: string, noDialog?: boolean) { if (noDialog) { deleteWork(id); @@ -3266,30 +3303,7 @@ watch( no-appBox :title="$t('productService.product.allProduct')" :save-amount="selectProduct.length" - :submit=" - () => { - selectProduct.forEach((i) => { - const productExists = workItems[currentWorkIndex].product.some( - (product) => product.id === i.id, - ); - if (!productExists) { - workItems[currentWorkIndex].product.push({ - ...i, - nameEn: '', - }); - } - }); - - workItems[currentWorkIndex].product = workItems[ - currentWorkIndex - ].product.filter((product) => - selectProduct.some((i) => i.id === product.id), - ); - - dialogTotalProduct = false; - selectProduct = []; - } - " + :submit="() => submitAddWorkProduct()" :close=" () => { dialogTotalProduct = false;