From 73bbc07e826c911a20357102ca3808e0d30cda26 Mon Sep 17 00:00:00 2001 From: puriphatt Date: Tue, 20 Aug 2024 10:43:23 +0700 Subject: [PATCH] refactor(04): action and display control in component --- .../FormServiceProperties.vue | 3 +- .../04_product-service/FormServiceWork.vue | 7 +++ .../04_product-service/PriceDataComponent.vue | 31 +++++++--- .../ProductCardComponent.vue | 2 + .../TotalProductCardComponent.vue | 33 ++++++---- .../WorkManagementComponent.vue | 60 +++++++++++++++---- src/components/ProfileBanner.vue | 5 +- src/components/TreeComponent.vue | 2 + 8 files changed, 111 insertions(+), 32 deletions(-) diff --git a/src/components/04_product-service/FormServiceProperties.vue b/src/components/04_product-service/FormServiceProperties.vue index ae2dd40b..1839d033 100644 --- a/src/components/04_product-service/FormServiceProperties.vue +++ b/src/components/04_product-service/FormServiceProperties.vue @@ -21,11 +21,12 @@ defineEmits<{
{{ $t(`serviceProperties`) }} (); defineEmits<{ @@ -78,6 +84,7 @@ function confirmDelete(items: unknown[], index: number) { :length="workItems.length" :workIndex="index" :readonly="readonly" + :priceDisplay="priceDisplay" v-model:work-name="workItems[index].name" v-model:product-items="work.product" v-model:attributes="work.attributes" diff --git a/src/components/04_product-service/PriceDataComponent.vue b/src/components/04_product-service/PriceDataComponent.vue index 4f54c5dc..ad98891e 100644 --- a/src/components/04_product-service/PriceDataComponent.vue +++ b/src/components/04_product-service/PriceDataComponent.vue @@ -3,13 +3,27 @@ const serviceCharge = defineModel('serviceCharge'); const agentPrice = defineModel('agentPrice'); const price = defineModel('price'); -defineProps<{ - dense?: boolean; - outlined?: boolean; - readonly?: boolean; - separator?: boolean; - isType?: boolean; -}>(); +withDefaults( + defineProps<{ + dense?: boolean; + outlined?: boolean; + readonly?: boolean; + separator?: boolean; + isType?: boolean; + priceDisplay?: { + price: boolean; + agentPrice: boolean; + serviceCharge: boolean; + }; + }>(), + { + priceDisplay: () => ({ + price: true, + agentPrice: true, + serviceCharge: true, + }), + }, +);