From e49ab198a0ade998970ce5b87d665df6db407d3a Mon Sep 17 00:00:00 2001 From: Methapon Metanipat Date: Tue, 26 Nov 2024 17:34:23 +0700 Subject: [PATCH] feat: check if every item is completed --- src/pages/08_request-list/RequestListView.vue | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/pages/08_request-list/RequestListView.vue b/src/pages/08_request-list/RequestListView.vue index 82a88139..09698b5d 100644 --- a/src/pages/08_request-list/RequestListView.vue +++ b/src/pages/08_request-list/RequestListView.vue @@ -18,6 +18,7 @@ import { Attributes, DocStatus, Step, + RequestWorkStatus, } from 'src/stores/request-list/types'; import useOptionStore from 'src/stores/options'; import ProductExpansion from './ProductExpansion.vue'; @@ -285,8 +286,24 @@ async function triggerViewFile(opt: { class="status-color q-pa-sm bordered row items-center cursor-pointer no-wrap" style="text-wrap: nowrap" :class="{ - [`status-color-${'doing'}`]: true, - 'step-status-active': pageState.currentStep === value.order, + ['status-color-done']: workList + ?.filter((v) => { + return v.productService.work?.attributes.workflowStep?.[ + i + ]?.productsId.includes(v.productService.productId); + }) + .every((v) => { + const status = v.stepStatus.find( + ({ step }) => step === i + 1, + )?.workStatus; + + return ( + status === RequestWorkStatus.Completed || + status === RequestWorkStatus.Ended + ); + }), + ['status-color-doing']: true, + ['step-status-active']: pageState.currentStep === value.order, }" @click="() => (pageState.currentStep = value.order)" > @@ -542,16 +559,16 @@ async function triggerViewFile(opt: { color: hsla(var(--_color)); } - &.status-color-done { - --_color: var(--green-5-hsl); + &.status-color-waiting { + --_color: var(--gray-4-hsl); color: var(--foreground); } &.status-color-doing { --_color: var(--blue-5-hsl); color: var(--foreground); } - &.status-color-waiting { - --_color: var(--gray-4-hsl); + &.status-color-done { + --_color: var(--green-5-hsl); color: var(--foreground); } }