|
|
@ -1,80 +1,53 @@ |
|
|
|
<template> |
|
|
|
<div |
|
|
|
class="tw-px-[30px] tw-mb-[60px] md:tw-mb-[100px] xl:tw-px-[60px] xl:tw-max-w-screen-xl xl:tw-mx-auto xl:tw-grid xl:tw-grid-cols-[380px_auto] xl:tw-gap-[30px]" |
|
|
|
> |
|
|
|
class="tw-px-[30px] tw-mb-[60px] md:tw-mb-[100px] xl:tw-px-[60px] xl:tw-max-w-screen-xl xl:tw-mx-auto xl:tw-grid xl:tw-grid-cols-[380px_auto] xl:tw-gap-[30px]"> |
|
|
|
<section class="xl:tw-col-span-2 tw-mb-5 md:tw-mb-0"> |
|
|
|
<centerMode :list="ads" v-if="ads.length"></centerMode> |
|
|
|
</section> |
|
|
|
<section class="xl:tw-col-span-2 tw-mb-[40px] xl:tw-mb-[10px]"> |
|
|
|
<Breadcrumbs |
|
|
|
class="tw-py-[7px] md:tw-py-[10px] xl:tw-py-[13px] tw-mb-4 md:tw-mb-6 xl:tw-mb-0" |
|
|
|
></Breadcrumbs> |
|
|
|
<sort |
|
|
|
:results="result" |
|
|
|
:sortType="sortType" |
|
|
|
:sortBy="sortBy" |
|
|
|
@change="updateSortBy($event)" |
|
|
|
@filter="$modal.show(`sidebar-filter-modal`)" |
|
|
|
></sort> |
|
|
|
<Breadcrumbs class="tw-py-[7px] md:tw-py-[10px] xl:tw-py-[13px] tw-mb-4 md:tw-mb-6 xl:tw-mb-0"></Breadcrumbs> |
|
|
|
<sort :results="result" :sortType="sortType" :sortBy="sortBy" @change="updateSortBy($event)" |
|
|
|
@filter="$modal.show(`sidebar-filter-modal`)"></sort> |
|
|
|
</section> |
|
|
|
<section class="tw-grid tw-grid-cols-1 tw-gap-[30px] tw-auto-rows-min"> |
|
|
|
<div class="tw-max-h-min" v-if="$vuetify.breakpoint.xl"> |
|
|
|
<DateCard @update="updateDateFilter" :modalChecked="datesChecked" /> |
|
|
|
</div> |
|
|
|
<div v-if="$vuetify.breakpoint.xl"> |
|
|
|
<oneLevel |
|
|
|
:label="'Show Status'" |
|
|
|
:list="statuses" |
|
|
|
@update="updateStatusFilter" |
|
|
|
></oneLevel> |
|
|
|
<oneLevel :label="'Show Status'" :list="statuses" @update="updateStatusFilter"></oneLevel> |
|
|
|
</div> |
|
|
|
<div v-if="$vuetify.breakpoint.xl"> |
|
|
|
<multipleLevel |
|
|
|
:label="'Categories'" |
|
|
|
:placeholder="'Find Categories...'" |
|
|
|
:list="categories" |
|
|
|
:queryItem="categoryQueryFilter" |
|
|
|
@update="updateCategoryFilter" |
|
|
|
></multipleLevel> |
|
|
|
<multipleLevel :label="'Categories'" :placeholder="'Find Categories...'" :list="categories" |
|
|
|
:queryItem="categoryQueryFilter" @update="updateCategoryFilter"></multipleLevel> |
|
|
|
</div> |
|
|
|
<div v-if="$vuetify.breakpoint.xl"> |
|
|
|
<multipleLevel |
|
|
|
:label="'Location'" |
|
|
|
:placeholder="'Find country/city ...'" |
|
|
|
:list="locations" |
|
|
|
:queryItem="locationQueryFilter" |
|
|
|
@update="updateLocationFilter" |
|
|
|
></multipleLevel> |
|
|
|
<multipleLevel :label="'Location'" :placeholder="'Find country/city ...'" :list="locations" |
|
|
|
:queryItem="locationQueryFilter" @update="updateLocationFilter"></multipleLevel> |
|
|
|
</div> |
|
|
|
<div v-if="$vuetify.breakpoint.xl"> |
|
|
|
<!-- <rating></rating> --> |
|
|
|
</div> |
|
|
|
</section> |
|
|
|
<!-- <section class=""> |
|
|
|
<ExhibitionListCard v-for="(item, index) in renderList" :key="index" :item="item" |
|
|
|
@toggle-favorite="onToggleFavorite"></ExhibitionListCard> |
|
|
|
<div class="tw-mt-[34px] tw-flex tw-justify-end"> |
|
|
|
<pagination :pageLength="pageLength" @update="updatePage"></pagination> |
|
|
|
</div> |
|
|
|
</section> --> |
|
|
|
<section class=""> |
|
|
|
<ExhibitionListCard |
|
|
|
v-for="(item, index) in renderList" |
|
|
|
:key="index" |
|
|
|
:item="item" |
|
|
|
@toggle-favorite="onToggleFavorite" |
|
|
|
></ExhibitionListCard> |
|
|
|
<ExhibitionListCard v-for="(item, index) in exhibitionList" :key="index" :item="item" |
|
|
|
@toggle-favorite="onToggleFavorite"></ExhibitionListCard> |
|
|
|
<div class="tw-mt-[34px] tw-flex tw-justify-end"> |
|
|
|
<pagination :pageLength="pageLength" @update="updatePage"></pagination> |
|
|
|
</div> |
|
|
|
</section> |
|
|
|
<div v-if="!$vuetify.breakpoint.xl"> |
|
|
|
<ShowSidebarFilterModal |
|
|
|
:statusList="statuses" |
|
|
|
:locationList="locations" |
|
|
|
:categoryList="categories" |
|
|
|
:statusChecked="statusesChecked" |
|
|
|
:locationChecked="locationChecked" |
|
|
|
:categoryChecked="categoryChecked" |
|
|
|
:datesChecked="datesChecked" |
|
|
|
@updateCategoryFilter="updateCategoryFilter" |
|
|
|
@updateLocationFilter="updateLocationFilter" |
|
|
|
@updateStatusFilter="updateStatusFilter" |
|
|
|
@updateDateFilter="updateDateFilter" |
|
|
|
></ShowSidebarFilterModal> |
|
|
|
<ShowSidebarFilterModal :statusList="statuses" :locationList="locations" :categoryList="categories" |
|
|
|
:statusChecked="statusesChecked" :locationChecked="locationChecked" :categoryChecked="categoryChecked" |
|
|
|
:datesChecked="datesChecked" @updateCategoryFilter="updateCategoryFilter" |
|
|
|
@updateLocationFilter="updateLocationFilter" @updateStatusFilter="updateStatusFilter" |
|
|
|
@updateDateFilter="updateDateFilter"></ShowSidebarFilterModal> |
|
|
|
</div> |
|
|
|
<loading :isLoading="isPageLoading"></loading> |
|
|
|
</div> |
|
|
@ -121,11 +94,11 @@ export default { |
|
|
|
let data; |
|
|
|
// ({ data } = await $axios.get("/exhibitions/filters" + langQuery)); |
|
|
|
let statuses; |
|
|
|
if(data){ |
|
|
|
if (data) { |
|
|
|
statuses = data.filters.statuses.map((item) => { |
|
|
|
return { |
|
|
|
key: item.id, |
|
|
|
title: item.status, |
|
|
|
key: item.Key, |
|
|
|
title: item.Value, |
|
|
|
}; |
|
|
|
}); |
|
|
|
} |
|
|
@ -133,7 +106,7 @@ export default { |
|
|
|
// `/t/exhibitions/locations${langQuery}&sort=true` |
|
|
|
// )); |
|
|
|
let locations; |
|
|
|
if(data){ |
|
|
|
if (data) { |
|
|
|
locations = data.sort_results.map((item) => { |
|
|
|
item.country_list = item.country_list.map((country) => { |
|
|
|
country.city_list = country.city_list.map((city) => { |
|
|
@ -159,7 +132,7 @@ export default { |
|
|
|
// `/t/exhibitions/categories${langQuery}&sort=true` |
|
|
|
// )); |
|
|
|
let categories; |
|
|
|
if(data){ |
|
|
|
if (data) { |
|
|
|
categories = data.sort_results.map((item) => { |
|
|
|
item.subcategories_list = item.subcategories_list.map((children) => { |
|
|
|
return { |
|
|
@ -195,8 +168,8 @@ export default { |
|
|
|
}; |
|
|
|
console.log(e); |
|
|
|
} |
|
|
|
console.log(data.exhibitions); |
|
|
|
let exhibitionList = data.exhibitions; // exhibitionApi2CardType(); |
|
|
|
// console.log(data.exhibitions); |
|
|
|
// let exhibitionList = data.exhibitions; // exhibitionApi2CardType(); |
|
|
|
|
|
|
|
let userSavedList = []; |
|
|
|
if ($auth.loggedIn) { |
|
|
@ -213,14 +186,14 @@ export default { |
|
|
|
// console.log(err); |
|
|
|
// }); |
|
|
|
} |
|
|
|
userSavedList = userSavedList.map((item) => item.exhibition_id); |
|
|
|
for (let i = 0; i < exhibitionList.length; i++) { |
|
|
|
if (userSavedList.includes(exhibitionList[i].id)) { |
|
|
|
exhibitionList[i].saved = true; |
|
|
|
} else { |
|
|
|
exhibitionList[i].saved = false; |
|
|
|
} |
|
|
|
} |
|
|
|
// userSavedList = userSavedList.map((item) => item.exhibition_id); |
|
|
|
// for (let i = 0; i < exhibitionList.length; i++) { |
|
|
|
// if (userSavedList.includes(exhibitionList[i].id)) { |
|
|
|
// exhibitionList[i].saved = true; |
|
|
|
// } else { |
|
|
|
// exhibitionList[i].saved = false; |
|
|
|
// } |
|
|
|
// } |
|
|
|
|
|
|
|
let ads = data.ads; |
|
|
|
return { |
|
|
@ -229,7 +202,7 @@ export default { |
|
|
|
// locations: locations, |
|
|
|
// rating: rating, |
|
|
|
isPageLoading: isPageLoading, |
|
|
|
exhibitionList: exhibitionList, |
|
|
|
// exhibitionList: exhibitionList, |
|
|
|
ads: ads, |
|
|
|
langQuery: langQuery, |
|
|
|
}; |
|
|
@ -243,7 +216,25 @@ export default { |
|
|
|
categoryChecked: [], |
|
|
|
locationChecked: [], |
|
|
|
ratingChecked: [], |
|
|
|
selectedStatusJson: "", |
|
|
|
locations: [], |
|
|
|
|
|
|
|
statusMap: new Map(), |
|
|
|
|
|
|
|
regionMap: new Map(), |
|
|
|
countryMap: new Map(), |
|
|
|
cityMap: new Map(), |
|
|
|
|
|
|
|
selectedRegionJson: "", |
|
|
|
selectedCountryJson: "", |
|
|
|
selectedCityJson: "", |
|
|
|
|
|
|
|
mainCategoryMap: new Map(), |
|
|
|
subCategoryMap: new Map(), |
|
|
|
|
|
|
|
selectedMainCategoryJson: "", |
|
|
|
selectedSubCategoryJson: "", |
|
|
|
|
|
|
|
categories: [], |
|
|
|
unsortRegionList: [], |
|
|
|
unsortCountryList: [], |
|
|
@ -261,24 +252,25 @@ export default { |
|
|
|
sortBy: "Show Dates", |
|
|
|
}), |
|
|
|
async created() { |
|
|
|
await this.getLocationList(); |
|
|
|
await this.getCategoryList(); |
|
|
|
await this.getUnsortLocationList(); |
|
|
|
await this.getUnsortCategoryList(); |
|
|
|
await this.getQuery(); |
|
|
|
if (this.$route.query.hasOwnProperty("q")) { |
|
|
|
this.sortType.splice(0, 0, { |
|
|
|
name: "ShowEasy Recommended", |
|
|
|
value: "ShowEasy Recommended", |
|
|
|
}); |
|
|
|
this.sortBy = "ShowEasy Recommended"; |
|
|
|
} |
|
|
|
this.getStatusList(); |
|
|
|
this.getLocationList(); |
|
|
|
this.getCategoryList(); |
|
|
|
this.getExhibitionCard(); |
|
|
|
// await this.getUnsortLocationList(); |
|
|
|
// await this.getUnsortCategoryList(); |
|
|
|
// await this.getQuery(); |
|
|
|
// if (this.$route.query.hasOwnProperty("q")) { |
|
|
|
// this.sortType.splice(0, 0, { |
|
|
|
// name: "ShowEasy Recommended", |
|
|
|
// value: "ShowEasy Recommended", |
|
|
|
// }); |
|
|
|
// this.sortBy = "ShowEasy Recommended"; |
|
|
|
// } |
|
|
|
let userSavedList = []; |
|
|
|
if (this.$auth.loggedIn) { |
|
|
|
await this.$axios |
|
|
|
.get( |
|
|
|
`/member/users/${ |
|
|
|
this.$auth.$storage.getUniversal("jwt").user_id |
|
|
|
`/member/users/${this.$auth.$storage.getUniversal("jwt").user_id |
|
|
|
}?jwt=${this.$auth.$storage.getUniversal("jwt").token}` |
|
|
|
) |
|
|
|
.then((res) => { |
|
|
@ -312,8 +304,7 @@ export default { |
|
|
|
if (this.$auth.loggedIn) { |
|
|
|
await this.$axios |
|
|
|
.get( |
|
|
|
`/member/users/${ |
|
|
|
this.$auth.$storage.getUniversal("jwt").user_id |
|
|
|
`/member/users/${this.$auth.$storage.getUniversal("jwt").user_id |
|
|
|
}?jwt=${this.$auth.$storage.getUniversal("jwt").token}` |
|
|
|
) |
|
|
|
.then((res) => { |
|
|
@ -345,29 +336,30 @@ export default { |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
result() { |
|
|
|
return this.exhibitionsFilter.length; |
|
|
|
}, |
|
|
|
exhibitionsFilter() { |
|
|
|
const copyData = JSON.parse(JSON.stringify(this.exhibitionList)); |
|
|
|
const statusList = this.filterByStatus(copyData, this.statusesChecked); |
|
|
|
const locationList = this.filterByLocation( |
|
|
|
statusList, |
|
|
|
this.locationChecked |
|
|
|
); |
|
|
|
const categoryList = this.filterByCategory( |
|
|
|
locationList, |
|
|
|
this.categoryChecked |
|
|
|
); |
|
|
|
const dateList = this.filterByDate(categoryList, this.datesChecked); |
|
|
|
const sortedList = this.sortServiceList(dateList); |
|
|
|
return sortedList; |
|
|
|
// return this.exhibitionsFilter.length; |
|
|
|
return this.exhibitionList.length; |
|
|
|
}, |
|
|
|
// exhibitionsFilter() { |
|
|
|
// const copyData = JSON.parse(JSON.stringify(this.exhibitionList)); |
|
|
|
// const statusList = this.filterByStatus(copyData, this.statusesChecked); |
|
|
|
// const locationList = this.filterByLocation( |
|
|
|
// statusList, |
|
|
|
// this.locationChecked |
|
|
|
// ); |
|
|
|
// const categoryList = this.filterByCategory( |
|
|
|
// locationList, |
|
|
|
// this.categoryChecked |
|
|
|
// ); |
|
|
|
// const dateList = this.filterByDate(categoryList, this.datesChecked); |
|
|
|
// const sortedList = this.sortServiceList(dateList); |
|
|
|
// return sortedList; |
|
|
|
// }, |
|
|
|
pageLength() { |
|
|
|
return Math.ceil(this.result / this.perPage); |
|
|
|
}, |
|
|
|
renderList() { |
|
|
|
return this.sliceRenderList(this.exhibitionsFilter); |
|
|
|
}, |
|
|
|
// renderList() { |
|
|
|
// return this.sliceRenderList(this.exhibitionsFilter); |
|
|
|
// }, |
|
|
|
}, |
|
|
|
watch: { |
|
|
|
page() { |
|
|
@ -388,8 +380,7 @@ export default { |
|
|
|
if (this.$auth.loggedIn) { |
|
|
|
await this.$axios |
|
|
|
.get( |
|
|
|
`/member/users/${ |
|
|
|
this.$auth.$storage.getUniversal("jwt").user_id |
|
|
|
`/member/users/${this.$auth.$storage.getUniversal("jwt").user_id |
|
|
|
}?jwt=${this.$auth.$storage.getUniversal("jwt").token}` |
|
|
|
) |
|
|
|
.then((res) => { |
|
|
@ -415,6 +406,31 @@ export default { |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
getStatusList() { |
|
|
|
this.$axios |
|
|
|
.get( |
|
|
|
`/trending/api/Exhibition/Statuses?Lang=${this.$i18n.localeProperties["langQuery"]}` |
|
|
|
) |
|
|
|
.then((result) => { |
|
|
|
if (result.data.DATA.rel) { |
|
|
|
this.statuses = result.data.DATA.rel; |
|
|
|
this.statuses = this.statuses.map((item => { |
|
|
|
|
|
|
|
this.statusMap.set(item.Key, item.Value); |
|
|
|
|
|
|
|
return { |
|
|
|
title: item.Value, |
|
|
|
key: item.Key, |
|
|
|
}; |
|
|
|
|
|
|
|
})); |
|
|
|
|
|
|
|
} |
|
|
|
}) |
|
|
|
.catch((err) => { |
|
|
|
console.log(err); |
|
|
|
}); |
|
|
|
}, |
|
|
|
async getUnsortLocationList() { |
|
|
|
await this.$axios |
|
|
|
.get( |
|
|
@ -442,67 +458,119 @@ export default { |
|
|
|
console.log(err); |
|
|
|
}); |
|
|
|
}, |
|
|
|
async getCategoryList() { |
|
|
|
await this.$axios |
|
|
|
getCategoryList() { |
|
|
|
this.$axios |
|
|
|
.get( |
|
|
|
`/t/exhibitions/categories?lang=${this.$i18n.localeProperties["langQuery"]}&sort=true` |
|
|
|
`/trending/api/Exhibition/Categories?Lang=${this.$i18n.localeProperties["langQuery"]}` |
|
|
|
) |
|
|
|
.then((result) => { |
|
|
|
this.categories = result.data.sort_results; |
|
|
|
this.categories = this.categories.map((item) => { |
|
|
|
item.subcategories_list = item.subcategories_list.map( |
|
|
|
(children) => { |
|
|
|
return { |
|
|
|
title: children.subcategory_name, |
|
|
|
key: children.subcategory_name, |
|
|
|
}; |
|
|
|
} |
|
|
|
); |
|
|
|
return { |
|
|
|
title: item.category_name, |
|
|
|
key: item.category_name, |
|
|
|
children: item.subcategories_list, |
|
|
|
}; |
|
|
|
}); |
|
|
|
|
|
|
|
if (result.data.DATA.rel) { |
|
|
|
|
|
|
|
this.categories = result.data.DATA.rel; |
|
|
|
|
|
|
|
this.categories = this.categories.map((item) => { |
|
|
|
|
|
|
|
this.mainCategoryMap.set(item.CategoryID, item); |
|
|
|
|
|
|
|
item.SubCategoryList = item.SubCategoryList.map( |
|
|
|
(children) => { |
|
|
|
|
|
|
|
this.subCategoryMap.set(children.CategoryID, children); |
|
|
|
|
|
|
|
return { |
|
|
|
title: children.CategoryName, |
|
|
|
key: children.CategoryID, |
|
|
|
}; |
|
|
|
} |
|
|
|
); |
|
|
|
return { |
|
|
|
title: item.CategoryName, |
|
|
|
key: item.CategoryID, |
|
|
|
children: item.SubCategoryList, |
|
|
|
}; |
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
.catch((err) => { |
|
|
|
console.log(err); |
|
|
|
}); |
|
|
|
}, |
|
|
|
async getLocationList() { |
|
|
|
await this.$axios |
|
|
|
getLocationList() { |
|
|
|
this.$axios |
|
|
|
.get( |
|
|
|
`/t/exhibitions/locations?lang=${this.$i18n.localeProperties["langQuery"]}&sort=true` |
|
|
|
`/trending/api/Exhibition/Locations?Lang=${this.$i18n.localeProperties["langQuery"]}` |
|
|
|
) |
|
|
|
.then((result) => { |
|
|
|
var vm = this; |
|
|
|
vm.locations = result.data.sort_results; |
|
|
|
vm.locations = vm.locations.map((item) => { |
|
|
|
item.country_list = item.country_list.map((country) => { |
|
|
|
country.city_list = country.city_list.map((city) => { |
|
|
|
|
|
|
|
if (result.data.DATA.rel) { |
|
|
|
var vm = this; |
|
|
|
vm.locations = result.data.DATA.rel; |
|
|
|
vm.locations = vm.locations.map((region) => { |
|
|
|
|
|
|
|
this.regionMap.set(region.RegionID, region); |
|
|
|
|
|
|
|
region.CountryList = region.CountryList.map((country) => { |
|
|
|
|
|
|
|
this.countryMap.set(country.CountryID, country); |
|
|
|
|
|
|
|
country.CityList = country.CityList.map((city) => { |
|
|
|
|
|
|
|
this.cityMap.set(city.CityID, city); |
|
|
|
|
|
|
|
return { |
|
|
|
title: city.CityName, |
|
|
|
key: city.CityID, |
|
|
|
}; |
|
|
|
}); |
|
|
|
return { |
|
|
|
title: city.city_name, |
|
|
|
key: city.city_name, |
|
|
|
title: country.CountryName, |
|
|
|
key: country.CountryID, |
|
|
|
children: country.CityList, |
|
|
|
}; |
|
|
|
}); |
|
|
|
return { |
|
|
|
title: country.country_name, |
|
|
|
key: country.country_name, |
|
|
|
children: country.city_list, |
|
|
|
title: region.RegionName, |
|
|
|
key: region.RegionID, |
|
|
|
children: region.CountryList, |
|
|
|
}; |
|
|
|
}); |
|
|
|
return { |
|
|
|
title: item.region_name, |
|
|
|
key: item.region_name, |
|
|
|
children: item.country_list, |
|
|
|
}; |
|
|
|
}); |
|
|
|
return result.data; |
|
|
|
|
|
|
|
return result.data.DATA.rel; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
.catch((err) => { |
|
|
|
console.log(err); |
|
|
|
}); |
|
|
|
}, |
|
|
|
getExhibitionCard() { |
|
|
|
this.$axios |
|
|
|
.get( |
|
|
|
`/trending/api/Exhibition/Cards?Lang=${this.$i18n.localeProperties["langQuery"]}` + |
|
|
|
`&RegionIDs=${this.selectedRegionJson}` + |
|
|
|
`&CountryIDs=${this.selectedCountryJson}` + |
|
|
|
`&CityIDs=${this.selectedCityJson}` + |
|
|
|
`&MainCategoryIDs=${this.selectedMainCategoryJson}` + |
|
|
|
`&SubCategoryIDs=${this.selectedSubCategoryJson}` + |
|
|
|
`&Status=${this.selectedStatusJson}` + |
|
|
|
`&Date` |
|
|
|
) |
|
|
|
.then((result) => { |
|
|
|
|
|
|
|
if (result.data.DATA.rel) { |
|
|
|
this.exhibitionList = result.data.DATA.rel; |
|
|
|
} |
|
|
|
|
|
|
|
}) |
|
|
|
.catch((err) => { |
|
|
|
console.log(err); |
|
|
|
this.exhibitionList = []; |
|
|
|
}); |
|
|
|
}, |
|
|
|
async getQuery() { |
|
|
|
this.locationQueryFilter = ""; |
|
|
|
this.categoryQueryFilter = ""; |
|
|
@ -541,7 +609,30 @@ export default { |
|
|
|
this.page = value; |
|
|
|
}, |
|
|
|
updateCategoryFilter(value) { |
|
|
|
this.categoryChecked = value; |
|
|
|
|
|
|
|
var SelectedMainCategoryArray = []; |
|
|
|
var SelectedSubCategoryArray = []; |
|
|
|
|
|
|
|
this.selectedMainCategoryJson = ""; |
|
|
|
this.selectedSubCategoryJson = ""; |
|
|
|
|
|
|
|
value.forEach(key => { |
|
|
|
|
|
|
|
if (this.mainCategoryMap.has(key)) { |
|
|
|
SelectedMainCategoryArray.push(key); |
|
|
|
} |
|
|
|
|
|
|
|
if (this.subCategoryMap.has(key)) { |
|
|
|
SelectedSubCategoryArray.push(key); |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
this.selectedMainCategoryJson = JSON.stringify(SelectedMainCategoryArray); |
|
|
|
this.selectedSubCategoryJson = JSON.stringify(SelectedSubCategoryArray); |
|
|
|
|
|
|
|
this.getExhibitionCard(); |
|
|
|
|
|
|
|
}, |
|
|
|
filterByCategory(data, categories) { |
|
|
|
if (categories.length > 0) { |
|
|
@ -568,7 +659,37 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
updateLocationFilter(value) { |
|
|
|
this.locationChecked = value; |
|
|
|
|
|
|
|
var SelectedRegionArray = []; |
|
|
|
var SelectedCountryArray = []; |
|
|
|
var SelectedCityArray = []; |
|
|
|
|
|
|
|
this.selectedRegionJson = ""; |
|
|
|
this.selectedCountryJson = ""; |
|
|
|
this.selectedCityJson = ""; |
|
|
|
|
|
|
|
value.forEach(key => { |
|
|
|
|
|
|
|
if (this.regionMap.has(key)) { |
|
|
|
SelectedRegionArray.push(key); |
|
|
|
} |
|
|
|
|
|
|
|
if (this.countryMap.has(key)) { |
|
|
|
SelectedCountryArray.push(key); |
|
|
|
} |
|
|
|
|
|
|
|
if (this.cityMap.has(key)) { |
|
|
|
SelectedCityArray.push(key); |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
this.selectedRegionJson = JSON.stringify(SelectedRegionArray); |
|
|
|
this.selectedCountryJson = JSON.stringify(SelectedCountryArray); |
|
|
|
this.selectedCityJson = JSON.stringify(SelectedCityArray); |
|
|
|
|
|
|
|
this.getExhibitionCard(); |
|
|
|
|
|
|
|
}, |
|
|
|
filterByLocation(data, locations) { |
|
|
|
if (locations.length > 0) { |
|
|
@ -583,7 +704,21 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
updateStatusFilter(value) { |
|
|
|
this.statusesChecked = value; |
|
|
|
|
|
|
|
var SelectedStatusArray = []; |
|
|
|
this.selectedStatusJson = ""; |
|
|
|
|
|
|
|
value.forEach(key => { |
|
|
|
|
|
|
|
if (this.statusMap.has(key)) { |
|
|
|
SelectedStatusArray.push(key); |
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
this.selectedStatusJson = JSON.stringify(SelectedStatusArray); |
|
|
|
|
|
|
|
this.getExhibitionCard(); |
|
|
|
}, |
|
|
|
filterByStatus(data, status) { |
|
|
|
if (status.length > 0) { |
|
|
@ -594,6 +729,9 @@ export default { |
|
|
|
}, |
|
|
|
updateDateFilter(value) { |
|
|
|
this.datesChecked = value; |
|
|
|
console.log("update"); |
|
|
|
|
|
|
|
this.getExhibitionCard(); |
|
|
|
}, |
|
|
|
filterByDate(data, dates) { |
|
|
|
let start = null; |
|
|
@ -682,7 +820,7 @@ export default { |
|
|
|
.sort-by-text { |
|
|
|
max-width: 142px; |
|
|
|
|
|
|
|
> h3 { |
|
|
|
>h3 { |
|
|
|
border-right: 1px solid #e5e5e5; |
|
|
|
} |
|
|
|
} |
|
|
@ -690,7 +828,7 @@ export default { |
|
|
|
.sort-by-text-sm { |
|
|
|
max-width: 112px; |
|
|
|
|
|
|
|
> h3 { |
|
|
|
>h3 { |
|
|
|
border-right: 1px solid #e5e5e5; |
|
|
|
} |
|
|
|
} |
|
|
|