You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
722 lines
24 KiB
722 lines
24 KiB
<template>
|
|
<div
|
|
class="exhibition-content tw-grid tw-grid-cols-1 tw-gap-[30px] tw-mt-[20px] tw-mb-[60px] md:tw-px-[30px] md:tw-mt-[30px] xl:tw-px-[60px] xl:tw-max-w-screen-xl xl:tw-mx-auto xl:tw-grid-cols-[auto_364px]">
|
|
<!-- {{ relatedservicelist.category }} 有問題-->
|
|
<mobileFixTopBar ref="stickySwiper" :fixBar="fixBar" :currStep="currStep" :list="fixBarList"></mobileFixTopBar>
|
|
|
|
<section class="section1 tw-px-[30px] md:tw-px-0 xl:tw-w-full xl:tw-col-span-2">
|
|
<ExhibitionBannerArea :exhibition="exhibition"></ExhibitionBannerArea>
|
|
</section>
|
|
<section class="section2 tw-px-[30px] md:tw-px-0 xl:tw-pr-[30px] xl:tw-col-start-1 xl:tw-row-start-2">
|
|
<!-- <Breadcrumbs class="tw-px-0 md:tw-mb-[22px]"></Breadcrumbs> 有問題-->
|
|
<div class="tw-hidden md:tw-block">
|
|
<div class="md:tw-h-[48px] md:tw-grid md:tw-grid-cols-3 md:tw-gap-[12px]">
|
|
<a :href="exhibition.website" :target="exhibition.website == '#' ? '_self' : '_blank'">
|
|
<div
|
|
class="tw-bg-[#F6F6F6] tw-w-full tw-text-neutrals-800 elevation-0 tw-px-[34px] tw-py-[12px] tw-float-left tw-text-[16px]">
|
|
<unicon name="globe" class="float-left mr-3" />
|
|
<span>{{ $t("Official Website") }}</span>
|
|
</div>
|
|
</a>
|
|
<a :href="
|
|
'https://www.facebook.com/share.php?u=' +
|
|
this.currentDomain +
|
|
this.$route.fullPath
|
|
" target="_blank">
|
|
<div
|
|
class="tw-bg-[#F6F6F6] tw-w-full tw-text-neutrals-800 elevation-0 tw-px-[34px] tw-py-[12px] tw-float-left tw-text-[16px]">
|
|
<unicon name="facebook-f" class="float-left mr-3" />
|
|
<span class="mt-n2">{{ $t("Share with friends") }}</span>
|
|
</div>
|
|
</a>
|
|
<div @click="toggleFavorite"
|
|
class="tw-bg-[#F6F6F6] tw-w-full tw-text-neutrals-800 elevation-0 tw-px-[34px] tw-py-[12px] tw-float-left tw-text-[16px]">
|
|
<v-icon class="mr-2" color="neutrals darken-5">{{ saved? "mdi-heart": "mdi-heart-outline" }}
|
|
</v-icon>
|
|
<span>{{ $t("Follow Event") }}</span>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<section class="step section3 tw-px-[30px] md:tw-px-0 xl:tw-pr-[30px] xl:tw-col-start-1 xl:tw-row-start-3">
|
|
<ExhibitionIntro class="d-block" :exhibition="exhibition"></ExhibitionIntro>
|
|
</section>
|
|
<section >
|
|
|
|
<div ref="about" id="about" data-step="about" class="step section3 tw-px-[30px] md:tw-px-0 xl:tw-pr-[30px] xl:tw-col-start-1 xl:tw-row-start-3">
|
|
<ExhibitionIntro class="d-block" :exhibition="exhibition"></ExhibitionIntro>
|
|
</div>
|
|
|
|
</section>
|
|
|
|
<section class="section4 tw-ml-[12px] md:tw-ml-0 md:tw-px-0 xl:tw-col-start-1 xl:tw-row-start-4">
|
|
<ExhibitionAD v-if="ads" :items="ads"></ExhibitionAD>
|
|
</section>
|
|
<section class="section5 tw-px-[30px] md:tw-px-0 xl:tw-col-start-1 xl:tw-row-start-5">
|
|
<div v-if="relatedserviceShow">
|
|
<h3 ref="relatedServices" id="relatedServices" data-step="relatedServices" class="step md:tw-text-[20px]">
|
|
<two-dots class="tw-mr-7" />{{ $t("Related Services") }}
|
|
</h3>
|
|
<RelatedServicesSwiper :getCategory="getCategory" class="tw-mb-[30px] xl:tw-max-w-[822px]"
|
|
@categoryid="getCategoryId" @getAllServiceList="getAllService" @test="testtest"></RelatedServicesSwiper>
|
|
<template v-for="(item, index) in relatedservicelist">
|
|
<RelatedServices v-if="index <= 2" :key="index" :relatedservice="item"
|
|
:relatedservicelist="relatedservicelist" class="tw-mb-[20px] md:tw-mb-[30px]">
|
|
</RelatedServices>
|
|
</template>
|
|
<button
|
|
class="tw-body-3 tw-text-primary-1 tw-w-full tw-py-[10px] tw-justify-center tw-flex tw-flex-row tw-items-center">
|
|
<nuxt-link v-if="getcategoryid" :to="localePath(getcategoryid)" target="_blank"
|
|
class="tw-mr-[16px] hover:tw-text-primary-1">
|
|
{{ $t('See more') }}
|
|
</nuxt-link>
|
|
<nuxt-link v-else :to="localePath('/service')" target="_blank" class="tw-mr-[16px] hover:tw-text-primary-1">
|
|
{{ $t('See more') }}
|
|
</nuxt-link>
|
|
|
|
<img src="~/assets/svg/seeMore.svg" alt="" />
|
|
</button>
|
|
</div>
|
|
|
|
<div ref="photoGallery" id="photoGallery" data-step="photoGallery"
|
|
v-show="exhibition.gallery.length > 0 || exhibition.videos.length > 0" :class="['tw-mb-10 step']">
|
|
<h3 class="md:tw-text-[20px]">
|
|
<two-dots class="mr-7" />{{ $t("Photo & Video Gallery") }}
|
|
</h3>
|
|
<ExhibitionPhotoVideoGallery class="mt-lg-13 px-n7 mt-7"
|
|
v-if="exhibition.gallery.length > 0 || exhibition.videos.length > 0" :exhibition="exhibition" />
|
|
</div>
|
|
<div ref="venue" id="venue" data-step="venue" v-show="exhibition.venues && exhibition.venues.length > 0"
|
|
:class="['tw-mb-10 step']">
|
|
<h3 class="md:tw-text-[20px]">
|
|
<two-dots class="mr-7" />{{ $t("Venue") }}
|
|
</h3>
|
|
<ExhibitionVenue class="mt-lg-13 mt-7" v-if="exhibition.venues && exhibition.venues.length > 0"
|
|
:exhibition="exhibition" />
|
|
</div>
|
|
<div ref="exhibitProfile" id="exhibitProfile" data-step="exhibitProfile" v-show="exhibition.profile != ''"
|
|
:class="['tw-mb-10 step']">
|
|
<h3 class="md:tw-text-[20px]">
|
|
<two-dots class="mr-7" />{{ $t("Exhibit Profile") }}
|
|
</h3>
|
|
<ExhibitionExhibitProfile class="mt-lg-13 mt-7" :exhibition="exhibition" />
|
|
</div>
|
|
<div ref="detailedDescription" id="detailedDescription" data-step="detailedDescription" :class="['step']"
|
|
v-show="exhibition.description != ''">
|
|
<h3 class="md:tw-text-[20px]">
|
|
<two-dots class="mr-7" />{{ $t("Detailed Description") }}
|
|
</h3>
|
|
|
|
<ExhibitionDetailDescription class="mt-lg-13 mt-7" :exhibition="exhibition" />
|
|
</div>
|
|
</section>
|
|
<!-- <section class="section6 tw-px-[30px] md:tw-px-0 xl:tw-col-span-2 xl:tw-row-start-6">
|
|
<h3>
|
|
<two-dots class="step tw-mr-7" />{{ $t("You might like ...") }}
|
|
</h3>
|
|
<v-slide-group>
|
|
<template v-for="(item, i) in exhibition.recommended">
|
|
<v-slide-item v-if="exhibition.recommended" :key="i">
|
|
<nuxt-link :to="localePath('/exhibition/' + item.id)">
|
|
<ExhibitionYouMightLike class="float-left" :item="item" />
|
|
</nuxt-link>
|
|
</v-slide-item>
|
|
</template>
|
|
</v-slide-group>
|
|
</section> -->
|
|
<section class="section7 tw-hidden xl:tw-block xl:tw-row-start-2 xl:tw-row-end-6">
|
|
<sideBarMenu :fixBarList="fixBarList" :currStep="currStep"></sideBarMenu>
|
|
</section>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import ExhibitionBannerArea from "@/components/exhibition/ExhibitionBannerArea";
|
|
import ExhibitionIntro from "@/components/exhibition/ExhibitionIntro";
|
|
import ExhibitionReviews from "@/components/exhibition/ExhibitionReviews";
|
|
import ExhibitionPhotoVideoGallery from "@/components/exhibition/ExhibitionPhotoVideoGallery";
|
|
import Breadcrumbs from "@/components/Breadcrumbs";
|
|
import TwoDots from "@/components/TwoDots";
|
|
import ExhibitionAD from "@/components/exhibition/ExhibitionAD";
|
|
import ExhibitionYouMightLike from "@/components/exhibition/ExhibitionYouMightLike";
|
|
import { Swiper, SwiperSlide } from "vue-awesome-swiper";
|
|
import { scrollama } from "scrollama";
|
|
import SeeMoreDetailDescription from "@/components/exhibition/SeeMoreDetailDescription.vue";
|
|
import RelatedServices from "@/components/service/RelatedServicesCard.vue";
|
|
import RelatedServicesSwiper from "@/components/swiper/relatedService.vue";
|
|
import mobileFixTopBar from "@/components/swiper/mobileFixTopBar.vue";
|
|
import sideBarMenu from "@/components/service/content/sideBarMenu.vue";
|
|
import { CornerDownLeftIcon } from "vue-feather-icons";
|
|
export default {
|
|
auth: false,
|
|
name: "ExhibitionContent",
|
|
components: {
|
|
Breadcrumbs,
|
|
ExhibitionAD,
|
|
ExhibitionBannerArea,
|
|
ExhibitionIntro,
|
|
ExhibitionReviews,
|
|
ExhibitionPhotoVideoGallery,
|
|
ExhibitionYouMightLike,
|
|
Swiper,
|
|
SwiperSlide,
|
|
scrollama,
|
|
TwoDots,
|
|
SeeMoreDetailDescription,
|
|
RelatedServices,
|
|
RelatedServicesSwiper,
|
|
mobileFixTopBar,
|
|
sideBarMenu,
|
|
},
|
|
meta: {
|
|
pageName: "Exhibition content",
|
|
},
|
|
head() {
|
|
return {
|
|
title: this.exhibition.ExhibitionName,
|
|
meta: [
|
|
{
|
|
name: this.exhibition.ExhibitionName,
|
|
content: this.exhibition.description,
|
|
},
|
|
{ hid: "og:title", name: "og:title", content: this.exhibition.name },
|
|
{ hid: "og:image", name: "og:image", content: this.exhibition.logo },
|
|
{
|
|
hid: "og:url",
|
|
name: "og:url",
|
|
content: this.currentDomain + this.$route.fullPath,
|
|
},
|
|
{
|
|
hid: "og:description",
|
|
name: "og:description",
|
|
content: this.exhibition.description,
|
|
},
|
|
{ hid: "og:type", name: "og:type", content: "website" },
|
|
// other meta
|
|
],
|
|
};
|
|
},
|
|
data() {
|
|
return {
|
|
windowHeight: 0,
|
|
currentDomain: "https://www.showeasy.com",
|
|
apiUrl: process.env.SERVICE_CONSOLE,
|
|
list: [],
|
|
navControl: {
|
|
ad: true,
|
|
nav: false,
|
|
mobnav: false,
|
|
},
|
|
ads: [],
|
|
exhibitionID: "",
|
|
tab: "0",
|
|
saved: false,
|
|
Favorite: {},
|
|
favoriteSet: new Set(),
|
|
exhibition: {
|
|
id: null,
|
|
name: "",
|
|
enname: "",
|
|
subtitle: null,
|
|
region: {},
|
|
country: {},
|
|
city: {},
|
|
logo: "",
|
|
banner: null,
|
|
startdate: "",
|
|
enddate: "",
|
|
status: "",
|
|
website: "",
|
|
isRecommend: null,
|
|
isLiked: null,
|
|
rating: 0,
|
|
reviewCount: null,
|
|
exhibitors: "",
|
|
visitors: "",
|
|
internalexhibitors: null,
|
|
intVisitors: 0,
|
|
area: null,
|
|
showstatusid: 100,
|
|
about: "",
|
|
profile: "",
|
|
description: "",
|
|
shortName: null,
|
|
frequency: {},
|
|
online: {},
|
|
organizers: [],
|
|
videos: [],
|
|
gallery: {},
|
|
venues: [],
|
|
categories: [],
|
|
subcategories: [],
|
|
},
|
|
relatedserviceShow: false,
|
|
relatedservicelist: [],
|
|
getservicecategory: [],
|
|
seemore: false,
|
|
getCategory: [],
|
|
getcategoryid: "",
|
|
testcategory: "",
|
|
currStep: null,
|
|
fixBar: false,
|
|
fixBarList: [],
|
|
|
|
};
|
|
},
|
|
async created() {
|
|
this.getExhibitionCard();
|
|
this.getAdList();
|
|
this.getFavorite();
|
|
// await this.getServiceCategory();
|
|
// await this.getCategorySwiperList();
|
|
// await this.getRelatedServiceList();
|
|
// await this.checkRelatedService();
|
|
},
|
|
async beforeCreate() {
|
|
|
|
},
|
|
mounted() {
|
|
let vm = this;
|
|
vm.$nextTick(function () {
|
|
vm.list = [
|
|
/* {
|
|
url: "#ExhibitionHighlightReview",
|
|
name: "Highlight Review",
|
|
isShow:false,
|
|
},
|
|
{
|
|
url: "#ExhibitionRelatedServices",
|
|
name: "Related Services",
|
|
isShow:false,
|
|
},*/
|
|
{
|
|
url: "#ExhibitionIntro",
|
|
name: "Intro",
|
|
isShow:
|
|
this.exhibition.about.length > 0
|
|
? true
|
|
: false,
|
|
},
|
|
{
|
|
url: "#ExhibitionPhotoVideoGallery",
|
|
name: "Photo & Video Gallery",
|
|
isShow:
|
|
this.exhibition.gallery.length > 0 ||
|
|
this.exhibition.videos.length > 0
|
|
? true
|
|
: false,
|
|
},
|
|
{
|
|
url: "#ExhibitionVenue",
|
|
name: "Venue",
|
|
isShow:
|
|
this.exhibition.venues && this.exhibition.venues.length > 0
|
|
? true
|
|
: false,
|
|
},
|
|
{
|
|
url: "#ExhibitionExhibitProfile",
|
|
name: "Exhibit Profile",
|
|
isShow: this.exhibition.profile ? true : false,
|
|
},
|
|
{
|
|
url: "#ExhibitionDetailDescription",
|
|
name: "Detailed Description",
|
|
isShow: this.exhibition.description ? true : false,
|
|
},
|
|
/*{
|
|
url: "#ExhibitionReviews",
|
|
name: "Reviews",
|
|
isShow:false,
|
|
},*/
|
|
];
|
|
// instantiate the scrollama
|
|
const scrollama = require("scrollama");
|
|
const scroller = scrollama();
|
|
// setup the instance, pass callback functions
|
|
scroller
|
|
.setup({
|
|
step: ".exhibition-content .step",
|
|
offset: 0.6,
|
|
})
|
|
.onStepEnter((response) => {
|
|
// { element, index, direction }
|
|
vm.currStep = response.element.id;
|
|
if (response.index > 3) {
|
|
vm.$refs.stickySwiper.slideTo(4);
|
|
} else {
|
|
vm.$refs.stickySwiper.slideTo(0);
|
|
}
|
|
if (response.index >= 1) {
|
|
vm.fixBar = true;
|
|
} else {
|
|
vm.fixBar = false;
|
|
}
|
|
})
|
|
.onStepExit((response) => {
|
|
// { element, index, direction }
|
|
vm.currStep = response.element.id;
|
|
if (response.index >= 1) {
|
|
vm.fixBar = true;
|
|
} else {
|
|
vm.fixBar = false;
|
|
}
|
|
});
|
|
});
|
|
},
|
|
watch: {
|
|
relatedservicelist: {
|
|
handler: function () {
|
|
if (this.relatedservicelist) {
|
|
this.relatedservicelist.forEach((item) => {
|
|
this.serviceListCategory = item.category;
|
|
|
|
if (this.getservicecategory) {
|
|
this.getservicecategory.forEach((category) => {
|
|
if (item.category == category.ids[0]) {
|
|
item.category = category.lang_text;
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
},
|
|
},
|
|
},
|
|
|
|
methods: {
|
|
getExhibitionCard() {
|
|
|
|
this.exhibitionID = this.$route.params.id;
|
|
|
|
this.$axios
|
|
.get(
|
|
`/trending/api/Exhibition/Exhibition?Lang=${this.$i18n.localeProperties["langQuery"]}` +
|
|
`&ExhibitionID=${this.exhibitionID}`
|
|
)
|
|
.then((result) => {
|
|
|
|
if (result && result.data && result.data.DATA && result.data.DATA.rel) {
|
|
|
|
let exhib = result.data.DATA.rel;
|
|
this.exhibition.id = exhib.ExhibitionID;
|
|
this.exhibition.name = exhib.ExhibitionName;
|
|
this.exhibition.enname = exhib.ExhibitionENName;
|
|
this.exhibition.subtitle = "";
|
|
this.exhibition.region.name = exhib.Region.RegionName;
|
|
this.exhibition.country.name = exhib.Country.CountryName;
|
|
this.exhibition.city.name = exhib.City.CityName;
|
|
this.exhibition.logo = exhib.Logo;
|
|
this.exhibition.banner = "";
|
|
this.exhibition.startdate = exhib.StartDate;
|
|
this.exhibition.enddate = exhib.EndDate;
|
|
this.exhibition.status = exhib.Status;
|
|
this.exhibition.website = exhib.Website;
|
|
this.exhibition.isRecommend = exhib.IsRecommend;
|
|
this.exhibition.isLiked = "";
|
|
this.exhibition.rating = "";
|
|
this.exhibition.reviewCount = "";
|
|
this.exhibition.exhibitors = exhib.ExhibitorCount;
|
|
this.exhibition.visitors = exhib.VisitorCount;
|
|
this.exhibition.internalexhibitors = exhib.IntVisitorCount;
|
|
this.exhibition.intVisitors = exhib.IntVisitorCount;
|
|
this.exhibition.area = exhib.ExhibSize;
|
|
this.exhibition.showstatusid = "";
|
|
this.exhibition.about = exhib.Intro;
|
|
this.exhibition.profile = exhib.Profile;
|
|
this.exhibition.description = exhib.Detail;
|
|
this.exhibition.shortName = exhib.AbbreviatedName;
|
|
this.exhibition.frequency = exhib.Frequency;
|
|
this.exhibition.online = exhib.IsVirtualEvent;
|
|
this.exhibition.organizers = exhib.Organizers;
|
|
this.exhibition.videos = exhib.Videos;
|
|
this.exhibition.gallery = exhib.Images;
|
|
this.exhibition.venues = exhib.Venues;
|
|
this.exhibition.categories = exhib.MainCategories;
|
|
this.exhibition.subcategories = exhib.SubCategories;
|
|
|
|
this.setSideBarList();
|
|
this.setFavorite();
|
|
|
|
}
|
|
|
|
})
|
|
.catch((err) => {
|
|
console.log(err);
|
|
});
|
|
|
|
},
|
|
getAdList() {
|
|
|
|
this.ads = [{
|
|
image: require('/assets/img/thems/Frame33.png')
|
|
}, {
|
|
image: require('/assets/img/thems/Frame33.png')
|
|
}, {
|
|
image: require('/assets/img/thems/Frame33.png')
|
|
}]
|
|
|
|
},
|
|
setSideBarList() {
|
|
|
|
if (this.relatedservicelist.length > 0) {
|
|
this.fixBarList.push({ id: "relatedServices", title: "Related Services", show: true });
|
|
}
|
|
|
|
if (this.exhibition.about.length > 0 ) {
|
|
this.fixBarList.push({ id: "about", title: "Intro", show: true });
|
|
}
|
|
|
|
if (this.exhibition.videos.length > 0 || this.exhibition.gallery.length > 0) {
|
|
this.fixBarList.push({ id: "photoGallery", title: "Photo & Video Gallery", show: true });
|
|
}
|
|
|
|
if (this.exhibition.venues.length > 0) {
|
|
this.fixBarList.push({ id: "venue", title: "Venue", show: true });
|
|
}
|
|
|
|
if (this.exhibition.profile) {
|
|
this.fixBarList.push({ id: "exhibitProfile", title: "Exhibit Profile", show: true });
|
|
}
|
|
|
|
if (this.exhibition.description) {
|
|
this.fixBarList.push({ id: "detailedDescription", title: "Detailed Description", show: true });
|
|
}
|
|
|
|
|
|
|
|
},
|
|
introCheck(entries, observer, isIntersecting) {
|
|
this.navControl.mobnav = !isIntersecting;
|
|
},
|
|
checkNavBlock(entries, observer, isIntersecting) {
|
|
this.navControl.ad = isIntersecting;
|
|
},
|
|
navfix(entries, observer, isIntersecting) {
|
|
this.navControl.nav = isIntersecting;
|
|
},
|
|
getFavorite() {
|
|
|
|
this.favoriteSet.clear();
|
|
|
|
if (this.$auth.loggedIn) {
|
|
this.$axios.get(`/trending/api/Favorite/Favorites?Type=Exhibition`)
|
|
.then((result) => {
|
|
|
|
if(result && result.data && result.data.DATA && result.data.DATA.rel){
|
|
|
|
let favoriteList = [];
|
|
favoriteList = result.data.DATA.rel;
|
|
|
|
favoriteList.forEach(item => {
|
|
|
|
this.favoriteSet.add(item.ParentID);
|
|
|
|
})
|
|
|
|
}
|
|
|
|
})
|
|
.catch((err) => {
|
|
console.log("getFavorite"+err);
|
|
});
|
|
|
|
}
|
|
|
|
},
|
|
setFavorite() {
|
|
|
|
if (this.favoriteSet.size > 0 && this.$auth.loggedIn) {
|
|
|
|
if (this.favoriteSet.has(this.exhibition.id)) {
|
|
|
|
this.saved = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
toggleFavorite() {
|
|
if (this.saved) {
|
|
this.saved = false;
|
|
this.Favorite.IsFavorite = 'N';
|
|
} else {
|
|
this.saved = true;
|
|
this.Favorite.IsFavorite = 'Y';
|
|
}
|
|
|
|
this.Favorite.Type = 'Exhibition';
|
|
this.Favorite.ParentID = this.exhibition.id;
|
|
|
|
if (this.$auth.loggedIn) {
|
|
this.$axios
|
|
.post(
|
|
`/trending/api/Favorite/Favorite`, this.Favorite
|
|
)
|
|
.then((result) => {
|
|
|
|
})
|
|
.catch((err) => {
|
|
console.log(err);
|
|
});
|
|
} else {
|
|
this.$router.push(this.localePath("/user"));
|
|
}
|
|
},
|
|
async getCategorySwiperList() {
|
|
let langCode = this.$i18n.localeProperties["langQuery"];
|
|
await this.$axios
|
|
.get(
|
|
`/service/category?lang_code=${langCode}`
|
|
)
|
|
.then((res) => {
|
|
let categoryArray = [];
|
|
let result = res.data;
|
|
for (let i in result) {
|
|
let obj = {
|
|
ids: [result[i].id, result[i].service_category_id],
|
|
lang_text: result[i].language_text[0].text
|
|
}
|
|
categoryArray.push(obj);
|
|
}
|
|
this.getCategory = categoryArray;
|
|
})
|
|
.catch((error) => console.log(error));
|
|
},
|
|
|
|
async getRelatedServiceList() {
|
|
// &expo_id={this.$route.params.id}
|
|
let vm = this;
|
|
await this.$axios
|
|
.get(
|
|
`${this.apiUrl}/user-services/relative-services?counts=3&country=${this.exhibition.country.id}&city=${this.exhibition.city.id}&lang_code=${this.$i18n.localeProperties["langQuery"]}&expo_id=${this.$route.params.id}`
|
|
)
|
|
.then((res) => {
|
|
this.relatedservicelist = res.data;
|
|
})
|
|
.catch((error) => console.log(error));
|
|
},
|
|
async getServiceCategory() {
|
|
let langCode = this.$i18n.localeProperties["langQuery"];
|
|
await this.$axios
|
|
.get(
|
|
`/service/category?lang_code=${langCode}`
|
|
)
|
|
.then((res) => {
|
|
let categoryArray = [];
|
|
let result = res.data;
|
|
for (let i in result) {
|
|
let obj = {
|
|
ids: [result[i].id, result[i].service_category_id],
|
|
lang_text: result[i].language_text[0].text
|
|
}
|
|
categoryArray.push(obj);
|
|
}
|
|
this.getservicecategory = categoryArray;
|
|
})
|
|
.catch((error) => console.log(error));
|
|
},
|
|
|
|
getAllService() {
|
|
let vm = this;
|
|
this.$axios
|
|
.get(
|
|
`${this.apiUrl}/user-services/relative-services?counts=3&country=${this.exhibition.country.id}&city=${this.exhibition.city.id}&lang_code=${this.$i18n.localeProperties["langQuery"]}&expo_id=${this.$route.params.id}`
|
|
)
|
|
.then((res) => {
|
|
this.relatedservicelist = res.data;
|
|
})
|
|
.catch((error) => console.log(error));
|
|
},
|
|
|
|
getCategoryId(data) {
|
|
this.getcategoryid = data;
|
|
},
|
|
|
|
testtest(data) {
|
|
this.testcategory = data;
|
|
this.serviceList();
|
|
},
|
|
|
|
serviceList() {
|
|
this.$axios
|
|
.get(
|
|
`${this.apiUrl}/user-services/relative-services?counts=3&country=${this.exhibition.country.id}&city=${this.exhibition.city.id}&lang_code=${this.$i18n.localeProperties["langQuery"]}&service_category=${this.testcategory}&expo_id=${this.$route.params.id}`
|
|
)
|
|
.then((res) => {
|
|
this.relatedservicelist = res.data;
|
|
})
|
|
.catch((error) => console.log(error));
|
|
},
|
|
checkRelatedService() {
|
|
this.fixBarList = [
|
|
{ id: "highlightReview", title: "Highlight Review", show: false },
|
|
{ id: "relatedServices", title: "Related Services", show: false },
|
|
{
|
|
id: "photoGallery",
|
|
title: "Photo & Video Gallery",
|
|
show:
|
|
this.exhibition.gallery.length > 0 ||
|
|
this.exhibition.videos.length > 0
|
|
? true
|
|
: false,
|
|
},
|
|
{
|
|
id: "venue",
|
|
title: "Venue",
|
|
show: this.exhibition.venues.length > 0 ? true : false,
|
|
},
|
|
{
|
|
id: "exhibitProfile",
|
|
title: "Exhibit Profile",
|
|
show: this.exhibition.profile ? true : false,
|
|
},
|
|
{
|
|
id: "detailedDescription",
|
|
title: "Detailed Description",
|
|
show: this.exhibition.description ? true : false,
|
|
},
|
|
{ id: "reviews", title: "Reviews", show: false },
|
|
];
|
|
if (this.relatedservicelist.length > 0) {
|
|
this.relatedserviceShow = true;
|
|
this.fixBarList = [
|
|
{ id: "highlightReview", title: "Highlight Review", show: false },
|
|
{ id: "relatedServices", title: "Related Services", show: true },
|
|
{
|
|
id: "photoGallery",
|
|
title: "Photo & Video Gallery",
|
|
show:
|
|
this.exhibition.gallery.length > 0 ||
|
|
this.exhibition.videos.length > 0
|
|
? true
|
|
: false,
|
|
},
|
|
{
|
|
id: "venue",
|
|
title: "Venue",
|
|
show: this.exhibition.venues.length > 0 ? true : false,
|
|
},
|
|
{
|
|
id: "exhibitProfile",
|
|
title: "Exhibit Profile",
|
|
show: this.exhibition.profile ? true : false,
|
|
},
|
|
{
|
|
id: "detailedDescription",
|
|
title: "Detailed Description",
|
|
show: this.exhibition.description ? true : false,
|
|
},
|
|
{ id: "reviews", title: "Reviews", show: false },
|
|
];
|
|
}
|
|
}
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
</style>
|