From 126d8b571d911995a334f4e5bc596816f8240530 Mon Sep 17 00:00:00 2001 From: AbleKSaju <126228406+AbleKSaju@users.noreply.github.com> Date: Wed, 27 Nov 2024 12:45:39 +0530 Subject: [PATCH 1/3] feat: define types for POS emits --- src/components/POS/types.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/components/POS/types.ts b/src/components/POS/types.ts index 17f45b923..e377208e1 100644 --- a/src/components/POS/types.ts +++ b/src/components/POS/types.ts @@ -17,6 +17,20 @@ export type ModalName = | 'Alert' | 'CouponCode'; +export type PosEmits = + | 'addItem' + | 'toggleView' + | 'toggleModal' + | 'setCashAmount' + | 'setCouponsCount' + | 'routeToSinvList' + | 'setTransferRefNo' + | 'setLoyaltyPoints' + | 'setTransferAmount' + | 'createTransaction' + | 'selectedInvoiceName' + | 'setTransferClearanceDate'; + export interface POSItem { id?: number; image?: string; From 62edfd5e43800d564a1bdd6a23b517ccec08f597 Mon Sep 17 00:00:00 2001 From: AbleKSaju <126228406+AbleKSaju@users.noreply.github.com> Date: Wed, 27 Nov 2024 12:47:26 +0530 Subject: [PATCH 2/3] fix: combine multiple emits into a single function --- .../POS/Modern/ModernPOSSelectedItemTable.vue | 5 +- src/pages/POS/ClassicPOS.vue | 137 +++++++----------- src/pages/POS/ModernPOS.vue | 136 +++++++---------- src/pages/POS/POS.vue | 17 ++- src/pages/POS/POSQuickActions.vue | 9 +- 5 files changed, 114 insertions(+), 190 deletions(-) diff --git a/src/components/POS/Modern/ModernPOSSelectedItemTable.vue b/src/components/POS/Modern/ModernPOSSelectedItemTable.vue index a05bc4f5d..07b5c1f2c 100644 --- a/src/components/POS/Modern/ModernPOSSelectedItemTable.vue +++ b/src/components/POS/Modern/ModernPOSSelectedItemTable.vue @@ -43,7 +43,7 @@ :row="(row as SalesInvoiceItem)" @selected-row="selectedItemRow" @run-sinv-formulas="runSinvFormulas" - @toggle-modal="handleToggleModal" + @toggle-modal="$emit('toggleModal')" /> @@ -135,9 +135,6 @@ export default defineComponent({ }, }, methods: { - handleToggleModal(modal: string) { - this.$emit('toggleModal', modal); - }, async runSinvFormulas() { await this.sinvDoc.runFormulas(); }, diff --git a/src/pages/POS/ClassicPOS.vue b/src/pages/POS/ClassicPOS.vue index cf13bb8a6..b50898af5 100644 --- a/src/pages/POS/ClassicPOS.vue +++ b/src/pages/POS/ClassicPOS.vue @@ -3,46 +3,56 @@ + - +
@@ -85,7 +95,7 @@ class="w-1/3" @item-selected=" async (name: string) => { - await selectItem(await getItem(name)); + emitEvent('addItem', await getItem(name) as Item); } " /> @@ -95,14 +105,14 @@ v-if="tableView" :items="items" :item-qty-map="itemQuantityMap as ItemQtyMap" - @add-item="selectItem" + @add-item="(item) => emitEvent('addItem', item)" />
@@ -111,9 +121,9 @@ :loyalty-points="loyaltyPoints" :loyalty-program="loyaltyProgram" :applied-coupons-count="appliedCouponsCount" - @toggle-view="toggleView" - @toggle-modal="toggleModal" - @emit-route-to-sinv-list="emitRouteToSinvList" + @toggle-view="emitEvent('toggleView')" + @emit-route-to-sinv-list="emitEvent('routeToSinvList')" + @toggle-modal="(modalName) => emitEvent('toggleModal', modalName)" />
@@ -199,6 +209,7 @@ :read-only="true" :text-right="true" /> + +