From 282cc28c2b206188e0bc7f858d4366e5515c42ad Mon Sep 17 00:00:00 2001 From: amansinghbais Date: Wed, 10 Jul 2024 10:42:46 +0530 Subject: [PATCH] Implemented: logic to highlight the selected mapping chip (#295) --- src/components/CreateMappingModal.vue | 6 +++--- src/views/Inventory.vue | 13 +++++++++++-- src/views/PurchaseOrder.vue | 15 ++++++++++++--- src/views/ScheduledRestock.vue | 13 +++++++++++-- 4 files changed, 37 insertions(+), 10 deletions(-) diff --git a/src/components/CreateMappingModal.vue b/src/components/CreateMappingModal.vue index ce5ac899..af240048 100644 --- a/src/components/CreateMappingModal.vue +++ b/src/components/CreateMappingModal.vue @@ -109,8 +109,8 @@ export default defineComponent({ const fields = process.env["VUE_APP_MAPPING_" + this.mappingType]; return fields ? JSON.parse(fields) : {}; }, - closeModal() { - modalController.dismiss({ dismissed: true }); + closeModal(mappingId = "") { + modalController.dismiss({ dismissed: true, mappingId }); }, async saveMapping() { if(!this.mappingName) { @@ -123,7 +123,7 @@ export default defineComponent({ } const id = this.generateUniqueMappingPrefId(); await this.store.dispatch("user/createFieldMapping", { id, name: this.mappingName, value: this.fieldMapping, mappingType: this.mappingType }) - this.closeModal(); + this.closeModal(id); }, areAllFieldsSelected() { return Object.values(this.fieldMapping).every(field => field !== ""); diff --git a/src/views/Inventory.vue b/src/views/Inventory.vue index 421b955c..6354c938 100644 --- a/src/views/Inventory.vue +++ b/src/views/Inventory.vue @@ -23,7 +23,7 @@ {{ translate("New mapping") }} - + {{ mapping.name }} @@ -95,6 +95,7 @@ export default defineComponent({ fileColumns: [], fields: process.env["VUE_APP_MAPPING_RSTINV"] ? JSON.parse(process.env["VUE_APP_MAPPING_RSTINV"]) : {}, identificationTypeId: "SHOPIFY_PROD_SKU", + selectedMappingId: "" } }, computed: { @@ -116,7 +117,7 @@ export default defineComponent({ this.store.dispatch('util/fetchGoodIdentificationTypes'); }, methods: { - mapFields(mapping) { + mapFields(mapping, mappingId) { const fieldMapping = JSON.parse(JSON.stringify(mapping)); // TODO: Store an object in this.content variable, so everytime when accessing it, we don't need to use 0th index @@ -134,6 +135,7 @@ export default defineComponent({ } }) this.fieldMapping = fieldMapping.value; + this.selectedMappingId = mappingId; }, async parse(event) { const file = event.target.files[0]; @@ -179,6 +181,13 @@ export default defineComponent({ component: CreateMappingModal, componentProps: { content: this.content, seletedFieldMapping: this.fieldMapping, mappingType: 'RSTINV'} }); + + createMappingModal.onDidDismiss().then((result) => { + if(result.data?.mappingId) { + this.selectedMappingId = result.data.mappingId + } + }) + return createMappingModal.present(); } }, diff --git a/src/views/PurchaseOrder.vue b/src/views/PurchaseOrder.vue index a5d2d591..551f4493 100644 --- a/src/views/PurchaseOrder.vue +++ b/src/views/PurchaseOrder.vue @@ -23,7 +23,7 @@ {{ translate("New mapping") }} - + {{ mapping.name }} @@ -91,7 +91,8 @@ export default defineComponent({ content: [], fieldMapping: {}, fileColumns: [], - fields: process.env["VUE_APP_MAPPING_PO"] ? JSON.parse(process.env["VUE_APP_MAPPING_PO"]) : {} + fields: process.env["VUE_APP_MAPPING_PO"] ? JSON.parse(process.env["VUE_APP_MAPPING_PO"]) : {}, + selectedMappingId: "" } }, ionViewDidEnter() { @@ -142,7 +143,7 @@ export default defineComponent({ name:'PurchaseOrderReview' }) }, - mapFields(mapping) { + mapFields(mapping, mappingId) { const fieldMapping = JSON.parse(JSON.stringify(mapping)); // TODO: Store an object in this.content variable, so everytime when accessing it, we don't need to use 0th index @@ -160,6 +161,7 @@ export default defineComponent({ } }) this.fieldMapping = fieldMapping.value; + this.selectedMappingId = mappingId; }, areAllFieldsSelected() { return Object.values(this.fieldMapping).every(field => field !== ""); @@ -169,6 +171,13 @@ export default defineComponent({ component: CreateMappingModal, componentProps: { content: this.content, seletedFieldMapping: this.fieldMapping, mappingType: 'PO'} }); + + createMappingModal.onDidDismiss().then((result) => { + if(result.data?.mappingId) { + this.selectedMappingId = result.data.mappingId + } + }) + return createMappingModal.present(); } }, diff --git a/src/views/ScheduledRestock.vue b/src/views/ScheduledRestock.vue index b9be8daa..464088df 100644 --- a/src/views/ScheduledRestock.vue +++ b/src/views/ScheduledRestock.vue @@ -23,7 +23,7 @@ {{ translate("New mapping") }} - + {{ mapping.name }} @@ -187,6 +187,7 @@ export default defineComponent({ isUpdateDateTimeModalOpen: false, shopId: '', currentJob: {}, + selectedMappingId: "" } }, computed: { @@ -305,7 +306,7 @@ export default defineComponent({ logger.error(err) } }, - mapFields(mapping) { + mapFields(mapping, mappingId) { const fieldMapping = JSON.parse(JSON.stringify(mapping)); // TODO: Store an object in this.content variable, so everytime when accessing it, we don't need to use 0th index @@ -323,6 +324,7 @@ export default defineComponent({ } }) this.fieldMapping = fieldMapping.value; + this.selectedMappingId = mappingId; }, async parse(event) { const file = event.target.files[0]; @@ -387,6 +389,13 @@ export default defineComponent({ component: CreateMappingModal, componentProps: { content: this.content, seletedFieldMapping: this.fieldMapping, mappingType: 'RSTSTK'} }); + + createMappingModal.onDidDismiss().then((result) => { + if(result.data?.mappingId) { + this.selectedMappingId = result.data.mappingId + } + }) + return createMappingModal.present(); }, async updateProductStore(productStoreId) {