Merge branch 'beta' of git.treelet.net:crane/retailer-vue into beta
This commit is contained in:
commit
aa8e69ef45
|
@ -16,7 +16,8 @@
|
|||
</v-container>
|
||||
</v-overlay>
|
||||
<div v-show="!cartProductsProgress">
|
||||
<v-row><v-col cols="12" sm="12" md="12">
|
||||
<v-row
|
||||
><v-col cols="12" sm="12" md="12">
|
||||
<v-col cols="12" sm="12" md="8">
|
||||
<v-menu offset-y down allow-overflow>
|
||||
<template v-slot:activator="{ on }">
|
||||
|
@ -31,9 +32,7 @@
|
|||
</template>
|
||||
<div>
|
||||
<v-card tile flat v-if="searchData">
|
||||
<RetailerSearchProducts
|
||||
@actionClose="showSnackBarMessage"
|
||||
/>
|
||||
<RetailerSearchProducts @actionClose="showSnackBarMessage" />
|
||||
</v-card>
|
||||
</div>
|
||||
</v-menu>
|
||||
|
@ -67,7 +66,6 @@
|
|||
<div v-show="cartProductsItem.length != 0">
|
||||
<v-row>
|
||||
<v-col cols="12" sm="12" md="8">
|
||||
|
||||
<v-col cols="12">
|
||||
<p
|
||||
class="h3 body-font text-uppercase primary--text"
|
||||
|
@ -259,7 +257,6 @@ export default {
|
|||
return this.$store.state.cartProduct.cartProductsProgress;
|
||||
}
|
||||
},
|
||||
|
||||
},
|
||||
metaInfo() {
|
||||
return {
|
||||
|
@ -282,7 +279,6 @@ export default {
|
|||
};
|
||||
},
|
||||
watch: {
|
||||
|
||||
cartProductsItem() {
|
||||
this.stockFlagHideShow();
|
||||
this.calledCriteoViewBasket();
|
||||
|
@ -344,7 +340,9 @@ export default {
|
|||
params: {},
|
||||
});
|
||||
},
|
||||
searchProducts() {
|
||||
async searchProducts() {
|
||||
if (this.timeout) clearTimeout(this.timeout);
|
||||
this.timeout = setTimeout(() => {
|
||||
if (this.searchData) {
|
||||
this.$store.dispatch("catalogBrowser/search", {
|
||||
fullCatalog: window.craneCatalog,
|
||||
|
@ -355,6 +353,7 @@ export default {
|
|||
sortBy: "relevance",
|
||||
});
|
||||
}
|
||||
}, 500);
|
||||
},
|
||||
},
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
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 Fuse from 'fuse.js'
|
||||
export const catalogBrowser = {
|
||||
|
@ -131,7 +131,7 @@ export const catalogBrowser = {
|
|||
},
|
||||
/* 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)
|
||||
|
@ -140,22 +140,22 @@ export const catalogBrowser = {
|
|||
// commit('setEnabledFilters', filters)
|
||||
// debugger
|
||||
const products = []
|
||||
if (filters !== undefined && filters.length) {
|
||||
const categoryFilter = filters.find((f => f.prop == 'ci'))
|
||||
if (categoryFilter !== undefined) {
|
||||
console.log('filtering by category')
|
||||
const category = fullCatalog.allCategoryDetails.find(c => c.id == categoryFilter.value)
|
||||
if (category) {
|
||||
for (var pi = 0; pi < category.p.length; pi++) {
|
||||
const pid = category.p[pi]
|
||||
const product = fullCatalog.products[pid]
|
||||
if (product !== undefined) {
|
||||
products.push(product)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// if (filters !== undefined && filters.length) {
|
||||
// const categoryFilter = filters.find((f => f.prop == 'ci'))
|
||||
// if (categoryFilter !== undefined) {
|
||||
// console.log('filtering by category')
|
||||
// const category = fullCatalog.allCategoryDetails.find(c => c.id == categoryFilter.value)
|
||||
// if (category) {
|
||||
// for (var pi = 0; pi < category.p.length; pi++) {
|
||||
// const pid = category.p[pi]
|
||||
// const product = fullCatalog.products[pid]
|
||||
// if (product !== undefined) {
|
||||
// products.push(product)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
if (keywords !== null && keywords != '') {
|
||||
products.length = 0
|
||||
|
@ -170,46 +170,47 @@ export const catalogBrowser = {
|
|||
|
||||
const availableFilters = [];
|
||||
let filteredItems = [];
|
||||
let pageData = [];
|
||||
if (products.length > 0) {
|
||||
// let pageData = [];
|
||||
// if (products.length > 0) {
|
||||
|
||||
filteredItems = doFilterItems({
|
||||
items: products, enabledFilters: state.enabledFilters,
|
||||
availableFilters, attributesMap: window.attributesMap
|
||||
})
|
||||
// filteredItems = doFilterItems({
|
||||
// items: products, enabledFilters: state.enabledFilters,
|
||||
// availableFilters, attributesMap: window.attributesMap
|
||||
// })
|
||||
|
||||
switch (sortBy) {
|
||||
case 'name':
|
||||
filteredItems.sort((a, b) => {
|
||||
if (a.n < b.n) return -1
|
||||
else if (a.n > b.n) return 1
|
||||
else return 0
|
||||
})
|
||||
break
|
||||
case 'price':
|
||||
filteredItems.sort((a, b) => {
|
||||
if (a.p < b.p) return -1
|
||||
else if (a.p > b.p) return 1
|
||||
else return 0
|
||||
})
|
||||
break
|
||||
case 'color':
|
||||
filteredItems.sort((a, b) => {
|
||||
if (a.dc < b.dc) return -1
|
||||
else if (a.dc > b.dc) return 1
|
||||
else return 0
|
||||
})
|
||||
break
|
||||
}
|
||||
if (pageSize != 'ALL') {
|
||||
pageSize = Number(pageSize)
|
||||
pageData = filteredItems.slice((pageNumber - 1) * pageSize, pageNumber * pageSize)
|
||||
}
|
||||
else {
|
||||
pageData = filteredItems;
|
||||
}
|
||||
}
|
||||
commit('setSearchResults', pageData);
|
||||
// switch (sortBy) {
|
||||
// case 'name':
|
||||
// filteredItems.sort((a, b) => {
|
||||
// if (a.n < b.n) return -1
|
||||
// else if (a.n > b.n) return 1
|
||||
// else return 0
|
||||
// })
|
||||
// break
|
||||
// case 'price':
|
||||
// filteredItems.sort((a, b) => {
|
||||
// if (a.p < b.p) return -1
|
||||
// else if (a.p > b.p) return 1
|
||||
// else return 0
|
||||
// })
|
||||
// break
|
||||
// case 'color':
|
||||
// filteredItems.sort((a, b) => {
|
||||
// if (a.dc < b.dc) return -1
|
||||
// else if (a.dc > b.dc) return 1
|
||||
// else return 0
|
||||
// })
|
||||
// break
|
||||
// }
|
||||
// if (pageSize != 'ALL') {
|
||||
// pageSize = Number(pageSize)
|
||||
// pageData = filteredItems.slice((pageNumber - 1) * pageSize, pageNumber * pageSize)
|
||||
// }
|
||||
// else {
|
||||
// pageData = filteredItems;
|
||||
// }
|
||||
// }
|
||||
// commit('setSearchResults', pageData);
|
||||
commit('setSearchResults', products);
|
||||
|
||||
commit('setAvailableFilters', availableFilters);
|
||||
commit('setSearchTerms', { keywords: keywords, pageNumber: pageNumber, pageSize: pageSize, sortBy: sortBy, filters: filters }
|
||||
|
|
Loading…
Reference in New Issue