From 550ed55de0ba054e7278bf4afe2b191fe2e2a807 Mon Sep 17 00:00:00 2001 From: Thanaphon Frappet Date: Thu, 17 Apr 2025 15:02:22 +0700 Subject: [PATCH] refactor: show all product and add column status and edit format remark --- src/i18n/eng.ts | 1 + src/i18n/tha.ts | 1 + src/pages/09_task-order/constants.ts | 6 +++ .../expansion/ProductExpansion.vue | 43 +++++++++++++++++-- .../09_task-order/order_view/MainPage.vue | 43 ++++++++++++++----- src/stores/task-order/types.ts | 2 + src/utils/string-template.ts | 12 +++++- 7 files changed, 92 insertions(+), 16 deletions(-) diff --git a/src/i18n/eng.ts b/src/i18n/eng.ts index 2cccdd38..fd4edc0e 100644 --- a/src/i18n/eng.ts +++ b/src/i18n/eng.ts @@ -159,6 +159,7 @@ export default { period: 'Period', documentStatus: 'Document Status', advanceSearch: 'Advance Search', + totalPeople: '{meg} people', }, menu: { diff --git a/src/i18n/tha.ts b/src/i18n/tha.ts index d903e79e..fe0045bb 100644 --- a/src/i18n/tha.ts +++ b/src/i18n/tha.ts @@ -159,6 +159,7 @@ export default { period: 'ช่วงเวลา', documentStatus: 'สถานะเอกสาร', advanceSearch: 'ค้นหาขั้นสูง', + totalPeople: '{meg} คน', }, menu: { diff --git a/src/pages/09_task-order/constants.ts b/src/pages/09_task-order/constants.ts index d497cef2..21257dad 100644 --- a/src/pages/09_task-order/constants.ts +++ b/src/pages/09_task-order/constants.ts @@ -227,6 +227,12 @@ export const productColumn = [ label: 'taskOrder.productList', field: 'productList', }, + { + name: 'status', + align: 'center', + label: 'general.status', + field: 'status', + }, { name: 'amountOfEmployee', align: 'center', diff --git a/src/pages/09_task-order/expansion/ProductExpansion.vue b/src/pages/09_task-order/expansion/ProductExpansion.vue index f5f059f6..97a1f3bc 100644 --- a/src/pages/09_task-order/expansion/ProductExpansion.vue +++ b/src/pages/09_task-order/expansion/ProductExpansion.vue @@ -11,6 +11,8 @@ import { baseUrl, formatNumberDecimal, commaInput } from 'src/stores/utils'; import { precisionRound } from 'src/utils/arithmetic'; import { useConfigStore } from 'stores/config'; import { storeToRefs } from 'pinia'; +import BadgeComponent from 'src/components/BadgeComponent.vue'; +import { TaskStatus } from 'src/stores/task-order/types'; const currentBtnOpen = ref([]); const configStore = useConfigStore(); @@ -30,7 +32,10 @@ const props = defineProps<{ readonly?: boolean; agentPrice?: boolean; taskList: { - product: RequestWork['productService']['product']; + product: RequestWork['productService']['product'] & { + taskStatus?: TaskStatus; + totalNotStatusComplete?: number; + }; list: RequestWork[]; }[]; creditNote?: boolean; @@ -111,6 +116,26 @@ function calcPrice( return precisionRound(priceNoVat * amount + rawVatTotal); } + +function taskOrderStatus(value: TaskStatus) { + if ([TaskStatus.Pending].includes(value)) { + return '--blue-6-hsl'; + } + if ([TaskStatus.InProgress, TaskStatus.Validate].includes(value)) { + return '--orange-5-hsl'; + } + if ( + [ + TaskStatus.Canceled, + TaskStatus.Restart, + TaskStatus.Redo, + TaskStatus.Failed, + ].includes(value) + ) { + return '--red-5-hsl'; + } + return '--green-8-hsl'; +}