From 8fb2f5dfb4af341bb8af06ecb13faa29cb272401 Mon Sep 17 00:00:00 2001 From: puriphatt Date: Fri, 18 Oct 2024 10:40:34 +0700 Subject: [PATCH] fix: quotation discount --- src/components/05_quotation/ProductItem.vue | 22 ++++++++++++++++++--- src/pages/05_quotation/QuotationForm.vue | 1 + 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/components/05_quotation/ProductItem.vue b/src/components/05_quotation/ProductItem.vue index 29754d24..cf05189b 100644 --- a/src/components/05_quotation/ProductItem.vue +++ b/src/components/05_quotation/ProductItem.vue @@ -7,7 +7,7 @@ import WorkerItem from './WorkerItem.vue'; import DeleteButton from '../button/DeleteButton.vue'; import { precisionRound } from 'src/utils/arithmetic'; import { QuotationPayload } from 'stores/quotations/types'; -import { formatNumberDecimal } from 'stores/utils'; +import { formatNumberDecimal, commaInput } from 'stores/utils'; import { useConfigStore } from 'stores/config'; const props = defineProps<{ @@ -51,6 +51,8 @@ function calcPrice(c: (typeof rows.value)[number]) { ); } +const discount4Show = ref([]); + const columns = [ { name: 'order', @@ -304,10 +306,24 @@ watch( min="0" outlined input-class="text-right" - :type="readonly ? 'text' : 'number'" style="width: 90px" debounce="500" - v-model="props.row.discount" + :model-value=" + commaInput(props.row.discount.toString() || '0') + " + @update:model-value=" + (v) => { + if (typeof v === 'string') + discount4Show[props.rowIndex] = commaInput(v); + const x = parseFloat( + discount4Show[props.rowIndex] && + typeof discount4Show[props.rowIndex] === 'string' + ? discount4Show[props.rowIndex].replace(/,/g, '') + : '', + ); + props.row.discount = x; + } + " /> diff --git a/src/pages/05_quotation/QuotationForm.vue b/src/pages/05_quotation/QuotationForm.vue index bc631505..d022d98a 100644 --- a/src/pages/05_quotation/QuotationForm.vue +++ b/src/pages/05_quotation/QuotationForm.vue @@ -309,6 +309,7 @@ async function convertDataToFormSubmit() { workName: quotationFormData.value.workName, _count: quotationFormData.value._count, status: quotationFormData.value.status, + discount: quotationFormData.value.discount, }; const res = await quotationForm.submitQuotation();