From a10b8f91eb45a456db562d935c6adab7ab9fe385 Mon Sep 17 00:00:00 2001 From: hoborg91 Date: Tue, 25 Aug 2020 14:48:52 +0300 Subject: [PATCH] Fix issue 51. Add promoted products component 1. Simplified product card for promoted products. File: ProductsSimple.vue. The component is based on Products.vue. The component utilizes different resolution images for different user device size. Bulma responsive helpers are used to show the necessary image: https://bulma.io/documentation/helpers/visibility-helpers/ . 2. Promo products list. File: PromoProducts.vue. The component is base on CategoryProducts.vue. The component utilizes the new store action pseudoFetchPromoProducts which for now returns all products with calculated rating 3 or more. The Pagination.vue component is modified in such a way that it accepts one additional optional prop "gridIsConstant" with "false" default value. One should set it "true" to remove a possibility to choose diplayed items count. This modification is utilized by PromoProducts. 3. Promo products list integration. The new component is integrated into the main page (Homepage.vue) and into the page diplaying a single new (SingleNew.vue). 4. Other fixes. 4.1. Change "require" syntax to "import from" syntax (SingleNew.vue). 4.2. Remove redundant empty lines (SingleNew.vue). 4.3. Fix typo "rlinkk" -> "rlink" (Products.vue). Signed-off-by: hoborg91 --- CHANGELOG.md | 1 + package-lock.json | 2 +- package.json | 2 +- src/components/Products.vue | 2 +- src/components/homepage/Homepage.vue | 5 +- src/components/news/SingleNew.vue | 11 +- src/components/pagination/Pagination.vue | 8 +- .../promo_products/ProductSimple.vue | 110 ++++++++++++++++++ .../promo_products/PromoProducts.vue | 75 ++++++++++++ src/store/modules/products.js | 7 ++ 10 files changed, 211 insertions(+), 12 deletions(-) create mode 100644 src/components/promo_products/ProductSimple.vue create mode 100644 src/components/promo_products/PromoProducts.vue diff --git a/CHANGELOG.md b/CHANGELOG.md index a1e92f1..f6027bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,3 +18,4 @@ - 05.2020 - В футере добавить форму для ввода email и кнопку. Необходимо добавить валидацию email. Пока пусть отправляет данные на https://vuemmerce.herokuapp.com/api/new-subscription и всегда показывает всплывающее окно об успешной подписке. by @Vshinf - 05.2020 - Добавлена форма для фильтрации товаров (цена и произоводитель) by @iskangiz - 05.2020 - Добавить форму обратной связи by @Dalion + - 08.2020 - Добавить блок промо товаров by @hoborg91 diff --git a/package-lock.json b/package-lock.json index d3cdc3f..5e5e5bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "vuemmerce", - "version": "0.8.7", + "version": "0.8.8", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index a497277..d33468c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vuemmerce", - "version": "0.8.7", + "version": "0.8.8", "private": true, "description": "Responsive ecommerce template built with Vue.js", "author": "ivan lori ", diff --git a/src/components/Products.vue b/src/components/Products.vue index ea9600f..104ee57 100644 --- a/src/components/Products.vue +++ b/src/components/Products.vue @@ -229,7 +229,7 @@ export default { min-height: 50px; } .rlink, - .rlinkk:hover, + .rlink:hover, .rlink:focus, .rlink:active { padding: 0; diff --git a/src/components/homepage/Homepage.vue b/src/components/homepage/Homepage.vue index c50b0e3..28eb5ca 100644 --- a/src/components/homepage/Homepage.vue +++ b/src/components/homepage/Homepage.vue @@ -4,13 +4,15 @@ + + + diff --git a/src/components/promo_products/PromoProducts.vue b/src/components/promo_products/PromoProducts.vue new file mode 100644 index 0000000..f75ae34 --- /dev/null +++ b/src/components/promo_products/PromoProducts.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/src/store/modules/products.js b/src/store/modules/products.js index a30572f..51400a6 100644 --- a/src/store/modules/products.js +++ b/src/store/modules/products.js @@ -709,6 +709,13 @@ const actions = { }, 2000); }) }, + pseudoFetchPromoProducts ({ commit, getters }) { + return new Promise((resolve, reject) => { + setTimeout(() => { + resolve(getters.getProductsList.filter(product => getters.getOverallRatingProductById(product.id) >= 3)); + }, 2000); + }) + }, pseudoFetchProductsWithFilter ({ commit, getters }, params) { return new Promise((resolve, reject) => { setTimeout(() => {