Możliwość dodania opinii o produkcie
This commit is contained in:
17
README.md
17
README.md
@@ -94,11 +94,11 @@ new IdmHotspot({
|
|||||||
* @property {string} query.string - Zapytanie w formacie GraphQL.
|
* @property {string} query.string - Zapytanie w formacie GraphQL.
|
||||||
* @property {Function} query.graphFn - Funkcja do pobierania danych.
|
* @property {Function} query.graphFn - Funkcja do pobierania danych.
|
||||||
* @property {object} options - Ustawienia dla hotspotu (required).
|
* @property {object} options - Ustawienia dla hotspotu (required).
|
||||||
* @property {boolean} options.lazy - Czy wczytywać w trybie lazy.
|
* @property {boolean} [options.lazy] - Czy wczytywać w trybie lazy.
|
||||||
* @property {boolean} options.devMode - Czy wczytywać ramki tylko dla stron z dev=true.
|
* @property {boolean} [options.devMode] - Czy wczytywać ramki tylko dla stron z dev=true.
|
||||||
* @property {boolean} options.addToFavorites - Czy włączać dodawanie do ulubionych(DZIAŁA TYLKO PO ZMIANACH SZABLONOWYCH)
|
* @property {boolean} [options.addToFavorites] - Czy włączać dodawanie do ulubionych(DZIAŁA TYLKO PO ZMIANACH SZABLONOWYCH)
|
||||||
* @property {boolean} options.addToCompare - Czy włączać dodawanie do porównywania
|
* @property {boolean} [options.addToCompare] - Czy włączać dodawanie do porównywania
|
||||||
* @property {boolean|string} options.addToBasket - Obsługa koszyka:
|
* @property {boolean|string} [options.addToBasket] - Obsługa koszyka:
|
||||||
* - true = włącz
|
* - true = włącz
|
||||||
* - false = wyłącz
|
* - false = wyłącz
|
||||||
* - "range" = dodaj z zakresem
|
* - "range" = dodaj z zakresem
|
||||||
@@ -106,9 +106,10 @@ new IdmHotspot({
|
|||||||
* - true = aktywny
|
* - true = aktywny
|
||||||
* - false = nieaktywny
|
* - false = nieaktywny
|
||||||
* - object = konfiguracja Swiper
|
* - object = konfiguracja Swiper
|
||||||
* @property {Function} options.callbackFn - Funkcja callback która dzieje się po wywołaniu wszystkiego włącznie ze swiperem
|
* @property {boolean} [options.swiperScrollbar] - Czy włączać scrollbar w swiperze - DO DZIAŁANIA WYMAGA WŁĄCZONEGO SWIPERA
|
||||||
* @property {boolean} options.swiperScrollbar - Czy włączać scrollbar w swiperze - DO DZIAŁANIA WYMAGA WŁĄCZONEGO SWIPERA
|
* @property {Function} [options.callbackFn] - Funkcja callback która dzieje się po wywołaniu wszystkiego włącznie ze swiperem
|
||||||
* @property {boolean} options.omnibusTooltip - Czy wyświetlać omnibusa w formie tooltip
|
* @property {boolean} [options.omnibusTooltip] - Czy wyświetlać omnibusa w formie tooltip
|
||||||
|
* @property {boolean} [options.showOpinions] - Czy wyświetlać opinie o produkcie w formie gwiazdek nad nazwą
|
||||||
*
|
*
|
||||||
* @type {Hotspot[]}
|
* @type {Hotspot[]}
|
||||||
*/
|
*/
|
||||||
|
|||||||
29
klasa.js
29
klasa.js
@@ -181,6 +181,10 @@ const IDM_PRODUCT_QUERY = `id
|
|||||||
iconSmallSecond
|
iconSmallSecond
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
opinion{
|
||||||
|
rating,
|
||||||
|
count
|
||||||
|
}
|
||||||
awardedParameters {
|
awardedParameters {
|
||||||
name
|
name
|
||||||
id
|
id
|
||||||
@@ -413,14 +417,20 @@ class IdmHotspot{
|
|||||||
devMode: false,
|
devMode: false,
|
||||||
callbackFn: ()=>{},
|
callbackFn: ()=>{},
|
||||||
omnibusTooltip: false,
|
omnibusTooltip: false,
|
||||||
// opinions: false
|
// switchImage: false,
|
||||||
|
|
||||||
|
// POKAZANIE
|
||||||
|
showOpinions: false,
|
||||||
|
|
||||||
// DODAWANIE
|
// DODAWANIE
|
||||||
addToBasket: true, // true, false, "range"
|
addToBasket: true, // true, false, "range"
|
||||||
addToFavorites: false, // Wymaga zmian szablonowych
|
addToFavorites: false, // Wymaga zmian szablonowych
|
||||||
addToCompare: false,
|
addToCompare: false,
|
||||||
|
|
||||||
// WYBÓR
|
// WYBÓR
|
||||||
// selectSize: false,
|
// selectSize: false,
|
||||||
// selectVersion: false,
|
// selectVersion: false,
|
||||||
|
|
||||||
// SWIPER
|
// SWIPER
|
||||||
swiper: true,
|
swiper: true,
|
||||||
swiperScrollbar: false,
|
swiperScrollbar: false,
|
||||||
@@ -561,6 +571,7 @@ class IdmHotspot{
|
|||||||
</strong>
|
</strong>
|
||||||
</a>
|
</a>
|
||||||
<div class="product__content_wrapper">
|
<div class="product__content_wrapper">
|
||||||
|
${this.markupOpinions(prod)}
|
||||||
<a class="product__name" tabindex="0" href="${prod.link}" title="${prod.name}">${prod.name}</a>
|
<a class="product__name" tabindex="0" href="${prod.link}" title="${prod.name}">${prod.name}</a>
|
||||||
<div class="product__prices mb-auto ${prodExchangedData?.classes?.add?.reduce((acc,val) => acc + " " + val,"")}">
|
<div class="product__prices mb-auto ${prodExchangedData?.classes?.add?.reduce((acc,val) => acc + " " + val,"")}">
|
||||||
${this.markupPrice(prod, prodExchangedData)}
|
${this.markupPrice(prod, prodExchangedData)}
|
||||||
@@ -641,6 +652,22 @@ class IdmHotspot{
|
|||||||
|
|
||||||
return labelMarkup;
|
return labelMarkup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
markupOpinions(prod){
|
||||||
|
if(!this.options?.showOpinions) return "";
|
||||||
|
|
||||||
|
return `<div class="product__opinions">
|
||||||
|
<div class="product__opinions_stars">
|
||||||
|
<i class="icon-star ${prod.opinion?.rating > 0.5 ? "--active" : ""}"></i>
|
||||||
|
<i class="icon-star ${prod.opinion?.rating > 1.5 ? "--active" : ""}"></i>
|
||||||
|
<i class="icon-star ${prod.opinion?.rating > 2.5 ? "--active" : ""}"></i>
|
||||||
|
<i class="icon-star ${prod.opinion?.rating > 3.5 ? "--active" : ""}"></i>
|
||||||
|
<i class="icon-star ${prod.opinion?.rating > 4.5 ? "--active" : ""}"></i>
|
||||||
|
</div>
|
||||||
|
<span class="product__opinions_score">${prod.opinion.rating.toFixed(2)} / 5.00</span>
|
||||||
|
</div>`
|
||||||
|
}
|
||||||
|
|
||||||
markupPrice(prod, prodExchangedData){
|
markupPrice(prod, prodExchangedData){
|
||||||
const price = prod.price.price[this.priceType];
|
const price = prod.price.price[this.priceType];
|
||||||
const unit = prod.unit;
|
const unit = prod.unit;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
- opinie
|
- opinie
|
||||||
- podmiana zdjęcia na hover
|
- podmiana zdjęcia na hover
|
||||||
- stary szablon
|
- stary szablon
|
||||||
|
- cena za kg
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
15
style.less
15
style.less
@@ -172,4 +172,19 @@
|
|||||||
&:not(.--success):hover {
|
&:not(.--success):hover {
|
||||||
opacity: 0.6;
|
opacity: 0.6;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* opinions */
|
||||||
|
.product__opinions{
|
||||||
|
display: flex;
|
||||||
|
gap: 1rem;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
.product__opinions .icon-star{
|
||||||
|
color: #ffbc00;
|
||||||
|
}
|
||||||
|
.product__opinions .icon-star:not(.--active)::before{
|
||||||
|
content: "\f006";
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user