Merge branch 'beta' of git.treelet.net:crane/retailer-vue into beta
This commit is contained in:
commit
aa8e69ef45
|
@ -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();
|
||||||
|
|
|
@ -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 }
|
||||||
|
|
Loading…
Reference in New Issue