Merge branch 'beta' of git.treelet.net:crane/retailer-vue into beta

This commit is contained in:
rakesh 2022-01-24 12:50:19 +05:30
commit aa8e69ef45
2 changed files with 98 additions and 98 deletions

View File

@ -16,36 +16,35 @@
</v-container> </v-container>
</v-overlay> </v-overlay>
<div v-show="!cartProductsProgress"> <div v-show="!cartProductsProgress">
<v-row><v-col cols="12" sm="12" md="12"> <v-row
<v-col cols="12" sm="12" md="8"> ><v-col cols="12" sm="12" md="12">
<v-menu offset-y down allow-overflow > <v-col cols="12" sm="12" md="8">
<template v-slot:activator="{ on }"> <v-menu offset-y down allow-overflow>
<v-text-field <template v-slot:activator="{ on }">
prepend-inner-icon="mdi-magnify" <v-text-field
placeholder="Enter Item, Name, Keyword" prepend-inner-icon="mdi-magnify"
v-model="searchData" placeholder="Enter Item, Name, Keyword"
v-on="on" v-model="searchData"
@input="searchProducts" v-on="on"
> @input="searchProducts"
</v-text-field> >
</template> </v-text-field>
<div> </template>
<v-card tile flat v-if="searchData"> <div>
<RetailerSearchProducts <v-card tile flat v-if="searchData">
@actionClose="showSnackBarMessage" <RetailerSearchProducts @actionClose="showSnackBarMessage" />
/> </v-card>
</v-card> </div>
</div> </v-menu>
</v-menu> </v-col>
</v-col> </v-col>
</v-col> </v-row>
</v-row>
<v-row v-show="cartProductsItem.length == 0"> <v-row v-show="cartProductsItem.length == 0">
<v-col> <v-col>
<v-alert class="alert-box-outline" type="error" text dense <v-alert class="alert-box-outline" type="error" text dense
>You have no items in your shopping cart.</v-alert >You have no items in your shopping cart.</v-alert
> >
<!-- <p> <!-- <p>
Click Click
<span <span
class=" class="
@ -65,12 +64,11 @@
</v-row> </v-row>
<div v-show="cartProductsItem.length != 0"> <div v-show="cartProductsItem.length != 0">
<v-row > <v-row>
<v-col cols="12" sm="12" md="8"> <v-col cols="12" sm="12" md="8">
<v-col cols="12"> <v-col cols="12">
<p <p
class="h3 body-font text-uppercase primary--text" class="h3 body-font text-uppercase primary--text"
v-if="!cartProductsProgress" v-if="!cartProductsProgress"
> >
Your Cart ( {{ cartProductsItem.length }} ) Your Cart ( {{ cartProductsItem.length }} )
@ -259,7 +257,6 @@ export default {
return this.$store.state.cartProduct.cartProductsProgress; return this.$store.state.cartProduct.cartProductsProgress;
} }
}, },
}, },
metaInfo() { metaInfo() {
return { return {
@ -282,7 +279,6 @@ export default {
}; };
}, },
watch: { watch: {
cartProductsItem() { cartProductsItem() {
this.stockFlagHideShow(); this.stockFlagHideShow();
this.calledCriteoViewBasket(); this.calledCriteoViewBasket();
@ -344,17 +340,20 @@ export default {
params: {}, params: {},
}); });
}, },
searchProducts() { async searchProducts() {
if (this.searchData) { if (this.timeout) clearTimeout(this.timeout);
this.$store.dispatch("catalogBrowser/search", { this.timeout = setTimeout(() => {
fullCatalog: window.craneCatalog, if (this.searchData) {
keywords: this.searchData, this.$store.dispatch("catalogBrowser/search", {
filters: [], fullCatalog: window.craneCatalog,
pageNumber: 1, keywords: this.searchData,
pageSize: "ALL", filters: [],
sortBy: "relevance", pageNumber: 1,
}); pageSize: "ALL",
} sortBy: "relevance",
});
}
}, 500);
}, },
}, },
@ -362,7 +361,7 @@ export default {
this.$store.dispatch("catalogBrowser/index", { this.$store.dispatch("catalogBrowser/index", {
productsCatalog: window.craneCatalog.products, productsCatalog: window.craneCatalog.products,
}); });
/* if (this.userAuth) { /* if (this.userAuth) {
this.$store.dispatch("userCartProduct/fetchCartCoupon"); this.$store.dispatch("userCartProduct/fetchCartCoupon");
this.calledCriteoViewBasket(); this.calledCriteoViewBasket();

View File

@ -1,5 +1,5 @@
import { getField, updateField } from 'vuex-map-fields' import { getField, updateField } from 'vuex-map-fields'
import { doFilterItems } from '@/services/search.service' // import { doFilterItems } from '@/services/search.service'
//import { criteoForProductList } from "@/services/util.service"; //import { criteoForProductList } from "@/services/util.service";
import Fuse from 'fuse.js' import Fuse from 'fuse.js'
export const catalogBrowser = { export const catalogBrowser = {
@ -131,7 +131,7 @@ export const catalogBrowser = {
}, },
/* eslint-disable no-alert, no-console , no-debugger */ /* eslint-disable no-alert, no-console , no-debugger */
search: ({ commit, state }, { fullCatalog, keywords, filters, pageNumber, pageSize, sortBy }) => { search:async ({ commit, state }, { fullCatalog, keywords, filters, pageNumber, pageSize, sortBy }) => {
commit('inProgress', true) commit('inProgress', true)
@ -140,22 +140,22 @@ export const catalogBrowser = {
// commit('setEnabledFilters', filters) // commit('setEnabledFilters', filters)
// debugger // debugger
const products = [] const products = []
if (filters !== undefined && filters.length) { // if (filters !== undefined && filters.length) {
const categoryFilter = filters.find((f => f.prop == 'ci')) // const categoryFilter = filters.find((f => f.prop == 'ci'))
if (categoryFilter !== undefined) { // if (categoryFilter !== undefined) {
console.log('filtering by category') // console.log('filtering by category')
const category = fullCatalog.allCategoryDetails.find(c => c.id == categoryFilter.value) // const category = fullCatalog.allCategoryDetails.find(c => c.id == categoryFilter.value)
if (category) { // if (category) {
for (var pi = 0; pi < category.p.length; pi++) { // for (var pi = 0; pi < category.p.length; pi++) {
const pid = category.p[pi] // const pid = category.p[pi]
const product = fullCatalog.products[pid] // const product = fullCatalog.products[pid]
if (product !== undefined) { // if (product !== undefined) {
products.push(product) // products.push(product)
} // }
} // }
} // }
} // }
} // }
if (keywords !== null && keywords != '') { if (keywords !== null && keywords != '') {
products.length = 0 products.length = 0
@ -170,46 +170,47 @@ export const catalogBrowser = {
const availableFilters = []; const availableFilters = [];
let filteredItems = []; let filteredItems = [];
let pageData = []; // let pageData = [];
if (products.length > 0) { // if (products.length > 0) {
filteredItems = doFilterItems({ // filteredItems = doFilterItems({
items: products, enabledFilters: state.enabledFilters, // items: products, enabledFilters: state.enabledFilters,
availableFilters, attributesMap: window.attributesMap // availableFilters, attributesMap: window.attributesMap
}) // })
switch (sortBy) { // switch (sortBy) {
case 'name': // case 'name':
filteredItems.sort((a, b) => { // filteredItems.sort((a, b) => {
if (a.n < b.n) return -1 // if (a.n < b.n) return -1
else if (a.n > b.n) return 1 // else if (a.n > b.n) return 1
else return 0 // else return 0
}) // })
break // break
case 'price': // case 'price':
filteredItems.sort((a, b) => { // filteredItems.sort((a, b) => {
if (a.p < b.p) return -1 // if (a.p < b.p) return -1
else if (a.p > b.p) return 1 // else if (a.p > b.p) return 1
else return 0 // else return 0
}) // })
break // break
case 'color': // case 'color':
filteredItems.sort((a, b) => { // filteredItems.sort((a, b) => {
if (a.dc < b.dc) return -1 // if (a.dc < b.dc) return -1
else if (a.dc > b.dc) return 1 // else if (a.dc > b.dc) return 1
else return 0 // else return 0
}) // })
break // break
} // }
if (pageSize != 'ALL') { // if (pageSize != 'ALL') {
pageSize = Number(pageSize) // pageSize = Number(pageSize)
pageData = filteredItems.slice((pageNumber - 1) * pageSize, pageNumber * pageSize) // pageData = filteredItems.slice((pageNumber - 1) * pageSize, pageNumber * pageSize)
} // }
else { // else {
pageData = filteredItems; // pageData = filteredItems;
} // }
} // }
commit('setSearchResults', pageData); // commit('setSearchResults', pageData);
commit('setSearchResults', products);
commit('setAvailableFilters', availableFilters); commit('setAvailableFilters', availableFilters);
commit('setSearchTerms', { keywords: keywords, pageNumber: pageNumber, pageSize: pageSize, sortBy: sortBy, filters: filters } commit('setSearchTerms', { keywords: keywords, pageNumber: pageNumber, pageSize: pageSize, sortBy: sortBy, filters: filters }