From 6672d9dbb342daa49b1eab4826e1434c0454e1a3 Mon Sep 17 00:00:00 2001 From: gdlcf88 Date: Fri, 8 Apr 2022 15:11:41 +0800 Subject: [PATCH] Use serializeFormToObject Set initial quantity value in EditModal --- .../BasketItems/BasketItem/CreateModal.cshtml | 17 +------------ .../BasketItems/BasketItem/EditModal.cshtml | 24 +++++-------------- 2 files changed, 7 insertions(+), 34 deletions(-) diff --git a/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/CreateModal.cshtml b/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/CreateModal.cshtml index 2b739e7c..ac0ede94 100644 --- a/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/CreateModal.cshtml +++ b/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/CreateModal.cshtml @@ -34,7 +34,7 @@ $form.on('submit', function(e){ e.preventDefault(); var service = easyAbp.eShop.plugins.baskets.basketItems.basketItem; - service.generateClientSideData({ items: [ getFormData() ] }, { + service.generateClientSideData({ items: [ $form.serializeFormToObject().viewModel ] }, { success: function (responseText, statusText, xhr, form) { var basketItems = JSON.parse(localStorage.getItem(localStorageItemKey)) || []; basketItems = pushOrUpdateBasketItem(basketItems, responseText.items[0]) @@ -51,21 +51,6 @@ }); }); - String.prototype.toCamelCase = function() { - return this.replace(/^([A-Z])|\s(\w)/g, function(match, p1, p2, offset) { - if (p2) return p2.toUpperCase(); - return p1.toLowerCase(); - }); - }; - - function getFormData() { - const PREFIX = "ViewModel."; - return $('form').serializeArray().reduce(function(obj, item) { - obj[item.name.slice(PREFIX.length).toCamelCase()] = item.value; - return obj; - }, {}); - } - function pushOrUpdateBasketItem(basketItems, item) { var index = basketItems.findIndex(x => x.storeId === item.storeId && x.productId === item.productId && x.productSkuId === item.productSkuId); if (index >= 0) { diff --git a/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/EditModal.cshtml b/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/EditModal.cshtml index 2b597b20..051be9b3 100644 --- a/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/EditModal.cshtml +++ b/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Web/Pages/EShop/Plugins/Baskets/BasketItems/BasketItem/EditModal.cshtml @@ -29,14 +29,17 @@ $(document).ready(function() { if (@(Model.ServerSide ? "true" : "false")) return; + var basketItems = JSON.parse(localStorage.getItem(localStorageItemKey)) || []; + var index = basketItems.findIndex(x => x.id === '@Model.Id'); + + $('#ViewModel_Quantity').val(basketItems[index].quantity); + var $form = $("form"); $form.off('submit'); $form.on('submit', function(e){ e.preventDefault(); var service = easyAbp.eShop.plugins.baskets.basketItems.basketItem; - var basketItems = JSON.parse(localStorage.getItem(localStorageItemKey)) || []; - var index = basketItems.findIndex(x => x.id === '@Model.Id'); - basketItems[index].quantity = parseInt(getFormData()['quantity']); + basketItems[index].quantity = parseInt($form.serializeFormToObject().viewModel.quantity); service.generateClientSideData({ items: [ basketItems[index] ] }, { success: function (responseText, statusText, xhr, form) { localStorage.setItem(localStorageItemKey, JSON.stringify(basketItems)); @@ -51,19 +54,4 @@ }); }); }); - - String.prototype.toCamelCase = function() { - return this.replace(/^([A-Z])|\s(\w)/g, function(match, p1, p2, offset) { - if (p2) return p2.toUpperCase(); - return p1.toLowerCase(); - }); - }; - - function getFormData() { - const PREFIX = "ViewModel."; - return $('form').serializeArray().reduce(function(obj, item) { - obj[item.name.slice(PREFIX.length).toCamelCase()] = item.value; - return obj; - }, {}); - } \ No newline at end of file