From 594a416e3d1c58e5212ab1aa3ba2ec3bf4d38ee6 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Thu, 26 Dec 2024 12:08:46 +0700 Subject: [PATCH] feat: update status condition --- src/components/button/StateButton.vue | 12 ++-- src/pages/08_request-list/MainPage.vue | 1 + .../08_request-list/ProductExpansion.vue | 57 ++++++++++++------- src/pages/08_request-list/RequestListView.vue | 10 ++-- 4 files changed, 48 insertions(+), 32 deletions(-) diff --git a/src/components/button/StateButton.vue b/src/components/button/StateButton.vue index dd3032ed..98e09734 100644 --- a/src/components/button/StateButton.vue +++ b/src/components/button/StateButton.vue @@ -30,7 +30,7 @@ defineEmits<{ ['status-color-waiting']: statusWaiting, ['step-status-active']: statusActive, }" - @click="statusWaiting ? undefined : $emit('click')" + @click="statusWaiting && !statusDone ? undefined : $emit('click')" >
+import { ref } from 'vue'; import { baseUrl } from 'src/stores/utils'; import BadgeComponent from 'src/components/BadgeComponent.vue'; @@ -6,14 +7,14 @@ import BadgeComponent from 'src/components/BadgeComponent.vue'; import { ProductRelation, PayCondition } from 'src/stores/quotations/types'; import { Step, RequestWorkStatus } from 'src/stores/request-list/types'; -const workStatus = [ +const workStatus = ref([ RequestWorkStatus.Ready, RequestWorkStatus.Waiting, RequestWorkStatus.InProgress, RequestWorkStatus.Validate, RequestWorkStatus.Ended, RequestWorkStatus.Completed, -]; +]); defineEmits<{ ( @@ -22,7 +23,7 @@ defineEmits<{ ): void; }>(); -defineProps<{ +const props = defineProps<{ product: ProductRelation; name: string; code: string; @@ -37,8 +38,30 @@ defineProps<{ payCondition: PayCondition; readonly?: boolean; cancel?: boolean; + orderAble?: boolean; }>(); +function changeableStatus(currentStatus?: RequestWorkStatus) { + switch (currentStatus) { + case RequestWorkStatus.Ready: + case RequestWorkStatus.Waiting: + case RequestWorkStatus.InProgress: + return [RequestWorkStatus.Canceled]; + case RequestWorkStatus.Validate: + case RequestWorkStatus.Ended: + case RequestWorkStatus.Completed: + case RequestWorkStatus.Canceled: + return []; + default: + if (props.readonly) return []; + if (props.orderAble) { + return [RequestWorkStatus.Ready, RequestWorkStatus.Canceled]; + } else { + return [RequestWorkStatus.Ended, RequestWorkStatus.Canceled]; + } + } +} + // NOTE: Function