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.

758 lines
28 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <template>
  2. <div
  3. 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] md:tw-gap-[60px] xl:tw-px-[60px] xl:tw-max-w-screen-xl xl:tw-mx-auto xl:tw-grid-cols-[auto_364px]">
  4. {{ relatedservicelist.category }}
  5. <mobileFixTopBar ref="stickySwiper" :fixBar="fixBar" :currStep="currStep" :list="fixBarList"></mobileFixTopBar>
  6. <section class="section1 tw-px-[30px] md:tw-px-0 xl:tw-w-full xl:tw-col-span-2">
  7. <ExhibitionBannerArea :exhibition="exhibition"></ExhibitionBannerArea>
  8. </section>
  9. <section class="section2 tw-px-[30px] md:tw-px-0 xl:tw-pr-[30px] xl:tw-col-start-1 xl:tw-row-start-2">
  10. <Breadcrumbs class="tw-px-0 md:tw-mb-[40px]"></Breadcrumbs>
  11. <div class="tw-hidden md:tw-block">
  12. <div class="md:tw-h-[48px] md:tw-grid md:tw-grid-cols-3 md:tw-gap-[12px] md:tw-mb-[30px]">
  13. <a :href="exhibition.website" :target="exhibition.website == '#' ? '_self' : '_blank'">
  14. <div
  15. 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]">
  16. <unicon name="globe" class="float-left mr-3" />
  17. <span>{{ $t("Official Website") }}</span>
  18. </div>
  19. </a>
  20. <a :href="
  21. 'https://www.facebook.com/share.php?u=' +
  22. this.currentDomain +
  23. this.$route.fullPath
  24. " target="_blank">
  25. <div
  26. 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]">
  27. <unicon name="facebook-f" class="float-left mr-3" />
  28. <span class="mt-n2">{{ $t("Share with friends") }}</span>
  29. </div>
  30. </a>
  31. <div @click="toggleFavorite"
  32. 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]">
  33. <v-icon class="mr-2" color="neutrals darken-5">{{ saved? "mdi-heart": "mdi-heart-outline" }}
  34. </v-icon>
  35. <span>{{ $t("Follow Event") }}</span>
  36. </div>
  37. </div>
  38. </div>
  39. </section>
  40. <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">
  41. <ExhibitionIntro class="d-block" :exhibition="exhibition"></ExhibitionIntro>
  42. </section>
  43. <section class="section4 tw-ml-[12px] md:tw-ml-0 md:tw-px-0 xl:tw-col-start-1 xl:tw-row-start-4">
  44. <ExhibitionAD v-if="ads" :items="ads"></ExhibitionAD>
  45. </section>
  46. <section class="section5 tw-px-[30px] md:tw-px-0 xl:tw-col-start-1 xl:tw-row-start-5">
  47. <div v-if="relatedserviceShow">
  48. <h3 ref="relatedServices" id="relatedServices" data-step="relatedServices" class="step md:tw-text-[20px]">
  49. <two-dots class="tw-mr-7" />{{ $t("Related Services") }}
  50. </h3>
  51. <RelatedServicesSwiper :getCategory="getCategory" class="tw-mb-[30px] xl:tw-max-w-[822px]"
  52. @categoryid="getCategoryId" @getAllServiceList="getAllService" @test="testtest"></RelatedServicesSwiper>
  53. <template v-for="(item, index) in relatedservicelist">
  54. <RelatedServices v-if="index <= 2" :key="index" :relatedservice="item"
  55. :relatedservicelist="relatedservicelist" class="tw-mb-[20px] md:tw-mb-[30px]">
  56. </RelatedServices>
  57. </template>
  58. <button
  59. 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">
  60. <nuxt-link v-if="getcategoryid" :to="localePath(getcategoryid)" target="_blank"
  61. class="tw-mr-[16px] hover:tw-text-primary-1">
  62. {{ $t('See more') }}
  63. </nuxt-link>
  64. <nuxt-link v-else :to="localePath('/service')" target="_blank" class="tw-mr-[16px] hover:tw-text-primary-1">
  65. {{ $t('See more') }}
  66. </nuxt-link>
  67. <img src="~/assets/svg/seeMore.svg" alt="" />
  68. </button>
  69. </div>
  70. <div ref="photoGallery" id="photoGallery" data-step="photoGallery"
  71. v-show="exhibition.gallery.length > 0 || exhibition.videos.length > 0" :class="['tw-mb-10 step']">
  72. <h3 class="md:tw-text-[20px]">
  73. <two-dots class="mr-7" />{{ $t("Photo & Video Gallery") }}
  74. </h3>
  75. <ExhibitionPhotoVideoGallery class="mt-lg-13 px-n7 mt-7"
  76. v-if="exhibition.gallery.length > 0 || exhibition.videos.length > 0" :exhibition="exhibition" />
  77. </div>
  78. <div ref="venue" id="venue" data-step="venue" v-show="exhibition.venues && exhibition.venues.length > 0"
  79. :class="['tw-mb-10 step']">
  80. <h3 class="md:tw-text-[20px]">
  81. <two-dots class="mr-7" />{{ $t("Venue") }}
  82. </h3>
  83. <ExhibitionVenue class="mt-lg-13 mt-7" v-if="exhibition.venues && exhibition.venues.length > 0"
  84. :exhibition="exhibition" />
  85. </div>
  86. <div ref="exhibitProfile" id="exhibitProfile" data-step="exhibitProfile" v-show="exhibition.profile != ''"
  87. :class="['tw-mb-10 step']">
  88. <h3 class="md:tw-text-[20px]">
  89. <two-dots class="mr-7" />{{ $t("Exhibit Profile") }}
  90. </h3>
  91. <ExhibitionExhibitProfile class="mt-lg-13 mt-7" :exhibition="exhibition" />
  92. </div>
  93. <div ref="detailedDescription" id="detailedDescription" data-step="detailedDescription" :class="['step']"
  94. v-show="exhibition.description != ''">
  95. <h3 class="md:tw-text-[20px]">
  96. <two-dots class="mr-7" />{{ $t("Detailed Description") }}
  97. </h3>
  98. <ExhibitionDetailDescription class="mt-lg-13 mt-7" :exhibition="exhibition" />
  99. </div>
  100. </section>
  101. <section class="section6 tw-px-[30px] md:tw-px-0 xl:tw-col-span-2 xl:tw-row-start-6">
  102. <h3>
  103. <two-dots class="step tw-mr-7" />{{ $t("You might like ...") }}
  104. </h3>
  105. <v-slide-group>
  106. <template v-for="(item, i) in exhibition.recommended">
  107. <v-slide-item v-if="exhibition.recommended" :key="i">
  108. <nuxt-link :to="localePath('/exhibition/' + item.id)">
  109. <ExhibitionYouMightLike class="float-left" :item="item" />
  110. </nuxt-link>
  111. </v-slide-item>
  112. </template>
  113. </v-slide-group>
  114. </section>
  115. <section class="section7 tw-hidden xl:tw-block xl:tw-row-start-2 xl:tw-row-end-6">
  116. <sideBarMenu :fixBarList="fixBarList" :currStep="currStep"></sideBarMenu>
  117. </section>
  118. </div>
  119. </template>
  120. <script>
  121. import ExhibitionBannerArea from "@/components/exhibition/ExhibitionBannerArea";
  122. import ExhibitionIntro from "@/components/exhibition/ExhibitionIntro";
  123. import ExhibitionReviews from "@/components/exhibition/ExhibitionReviews";
  124. import ExhibitionPhotoVideoGallery from "@/components/exhibition/ExhibitionPhotoVideoGallery";
  125. import Breadcrumbs from "@/components/Breadcrumbs";
  126. import TwoDots from "@/components/TwoDots";
  127. import ExhibitionAD from "@/components/exhibition/ExhibitionAD";
  128. import ExhibitionYouMightLike from "@/components/exhibition/ExhibitionYouMightLike";
  129. import { Swiper, SwiperSlide } from "vue-awesome-swiper";
  130. import { scrollama } from "scrollama";
  131. import SeeMoreDetailDescription from "@/components/exhibition/SeeMoreDetailDescription.vue";
  132. import RelatedServices from "@/components/service/RelatedServicesCard.vue";
  133. import RelatedServicesSwiper from "@/components/swiper/relatedService.vue";
  134. import mobileFixTopBar from "@/components/swiper/mobileFixTopBar.vue";
  135. import sideBarMenu from "@/components/service/content/sideBarMenu.vue";
  136. import { CornerDownLeftIcon } from "vue-feather-icons";
  137. export default {
  138. auth: false,
  139. name: "ExhibitionContent",
  140. components: {
  141. Breadcrumbs,
  142. ExhibitionAD,
  143. ExhibitionBannerArea,
  144. ExhibitionIntro,
  145. ExhibitionReviews,
  146. ExhibitionPhotoVideoGallery,
  147. ExhibitionYouMightLike,
  148. Swiper,
  149. SwiperSlide,
  150. scrollama,
  151. TwoDots,
  152. SeeMoreDetailDescription,
  153. RelatedServices,
  154. RelatedServicesSwiper,
  155. mobileFixTopBar,
  156. sideBarMenu,
  157. },
  158. meta: {
  159. pageName: "Exhibition content",
  160. },
  161. head() {
  162. return {
  163. title: this.rsexhibition.ExhibitionName,
  164. meta: [
  165. {
  166. name: this.rsexhibition.ExhibitionName,
  167. content: this.exhibition.description,
  168. },
  169. { hid: "og:title", name: "og:title", content: this.exhibition.name },
  170. { hid: "og:image", name: "og:image", content: this.exhibition.logo },
  171. {
  172. hid: "og:url",
  173. name: "og:url",
  174. content: this.currentDomain + this.$route.fullPath,
  175. },
  176. {
  177. hid: "og:description",
  178. name: "og:description",
  179. content: this.exhibition.description,
  180. },
  181. { hid: "og:type", name: "og:type", content: "website" },
  182. // other meta
  183. ],
  184. };
  185. },
  186. data() {
  187. return {
  188. windowHeight: 0,
  189. currentDomain: "https://www.showeasy.com",
  190. apiUrl: process.env.SERVICE_CONSOLE,
  191. list: [],
  192. navControl: {
  193. ad: true,
  194. nav: false,
  195. mobnav: false,
  196. },
  197. ads: [],
  198. rsexhibition: {},
  199. exhibitionID: "",
  200. tab: "0",
  201. saved: false,
  202. exhibition: {
  203. id: null,
  204. name: "",
  205. enname: "",
  206. subtitle: null,
  207. region: {},
  208. country: {},
  209. city: {},
  210. logo: "",
  211. banner: null,
  212. startdate: "",
  213. enddate: "",
  214. status: "",
  215. website: "",
  216. isRecommend: null,
  217. isLiked: null,
  218. rating: 0,
  219. reviewCount: null,
  220. exhibitors: "",
  221. visitors: "",
  222. internalexhibitors: null,
  223. intVisitors: 0,
  224. area: null,
  225. showstatusid: 100,
  226. about: "",
  227. profile: "",
  228. description: "",
  229. shortName: null,
  230. frequency: {},
  231. online: {},
  232. organizers: [],
  233. videos: [],
  234. gallery: {},
  235. venues: [],
  236. categories: [],
  237. subcategories: [],
  238. },
  239. relatedserviceShow: false,
  240. relatedservicelist: [],
  241. getservicecategory: [],
  242. seemore: false,
  243. getCategory: [],
  244. getcategoryid: "",
  245. testcategory: "",
  246. currStep: null,
  247. fixBar: false,
  248. fixBarList: [],
  249. };
  250. },
  251. async created() {
  252. this.getExhibitionCard();
  253. this.getAdList();
  254. // await this.getExhibition();
  255. // await this.getServiceCategory();
  256. // await this.getCategorySwiperList();
  257. // await this.getRelatedServiceList();
  258. // await this.checkRelatedService();
  259. },
  260. async beforeCreate() {
  261. if (this.$auth.loggedIn) {
  262. // await this.$axios
  263. // .get(
  264. // `/member/exhibitions/user?jwt=${this.$auth.$storage.getUniversal("jwt").token
  265. // }&exhibition_id=${this.$route.params.id}`
  266. // )
  267. // .then((result) => {
  268. // this.saved = result.data.saved;
  269. // })
  270. // .catch((err) => {
  271. // console.log(err);
  272. // });
  273. // await this.$store.dispatch("updatePicture");
  274. }
  275. },
  276. mounted() {
  277. let vm = this;
  278. vm.$nextTick(function () {
  279. vm.list = [
  280. /* {
  281. url: "#ExhibitionHighlightReview",
  282. name: "Highlight Review",
  283. isShow:false,
  284. },
  285. {
  286. url: "#ExhibitionRelatedServices",
  287. name: "Related Services",
  288. isShow:false,
  289. },*/
  290. {
  291. url: "#ExhibitionPhotoVideoGallery",
  292. name: "Photo & Video Gallery",
  293. isShow:
  294. this.exhibition.gallery.length > 0 ||
  295. this.exhibition.videos.length > 0
  296. ? true
  297. : false,
  298. },
  299. {
  300. url: "#ExhibitionVenue",
  301. name: "Venue",
  302. isShow:
  303. this.exhibition.venues && this.exhibition.venues.length > 0
  304. ? true
  305. : false,
  306. },
  307. {
  308. url: "#ExhibitionExhibitProfile",
  309. name: "Exhibit Profile",
  310. isShow: this.exhibition.profile ? true : false,
  311. },
  312. {
  313. url: "#ExhibitionDetailDescription",
  314. name: "Detailed Description",
  315. isShow: this.exhibition.description ? true : false,
  316. },
  317. /*{
  318. url: "#ExhibitionReviews",
  319. name: "Reviews",
  320. isShow:false,
  321. },*/
  322. ];
  323. // instantiate the scrollama
  324. const scrollama = require("scrollama");
  325. const scroller = scrollama();
  326. // setup the instance, pass callback functions
  327. scroller
  328. .setup({
  329. step: ".exhibition-content .step",
  330. offset: 0.6,
  331. })
  332. .onStepEnter((response) => {
  333. // { element, index, direction }
  334. vm.currStep = response.element.id;
  335. if (response.index > 3) {
  336. vm.$refs.stickySwiper.slideTo(4);
  337. } else {
  338. vm.$refs.stickySwiper.slideTo(0);
  339. }
  340. if (response.index >= 1) {
  341. vm.fixBar = true;
  342. } else {
  343. vm.fixBar = false;
  344. }
  345. })
  346. .onStepExit((response) => {
  347. // { element, index, direction }
  348. vm.currStep = response.element.id;
  349. if (response.index >= 1) {
  350. vm.fixBar = true;
  351. } else {
  352. vm.fixBar = false;
  353. }
  354. });
  355. });
  356. },
  357. watch: {
  358. relatedservicelist: {
  359. handler: function () {
  360. if (this.relatedservicelist) {
  361. this.relatedservicelist.forEach((item) => {
  362. this.serviceListCategory = item.category;
  363. if (this.getservicecategory) {
  364. this.getservicecategory.forEach((category) => {
  365. if (item.category == category.ids[0]) {
  366. item.category = category.lang_text;
  367. }
  368. });
  369. }
  370. });
  371. }
  372. },
  373. },
  374. },
  375. methods: {
  376. getExhibitionCard() {
  377. this.exhibitionID = this.$route.params.id;
  378. this.$axios
  379. .get(
  380. `/trending/api/Exhibition/Exhibition?Lang=${this.$i18n.localeProperties["langQuery"]}` +
  381. `&ExhibitionID=${this.exhibitionID}`
  382. )
  383. .then((result) => {
  384. if (result.data.DATA.rel) {
  385. let exhib = result.data.DATA.rel;
  386. this.rsexhibition = exhib;
  387. // console.log(exhib.ExhibitionName);
  388. this.exhibition.id = exhib.ExhibitionID;
  389. this.exhibition.name = exhib.ExhibitionName;
  390. this.exhibition.enname = exhib.ExhibitionENName;
  391. this.exhibition.subtitle = "";
  392. this.exhibition.region.name = exhib.Region.RegionName;
  393. this.exhibition.country.name = exhib.Country.CountryName;
  394. this.exhibition.city.name = exhib.City.CityName;
  395. this.exhibition.logo = exhib.Logo;
  396. this.exhibition.banner = "";
  397. this.exhibition.startdate = exhib.StartDate;
  398. this.exhibition.enddate = exhib.EndDate;
  399. this.exhibition.status = exhib.Status;
  400. this.exhibition.website = exhib.Website;
  401. this.exhibition.isRecommend = exhib.IsRecommend;
  402. this.exhibition.isLiked = "";
  403. this.exhibition.rating = "";
  404. this.exhibition.reviewCount = "";
  405. this.exhibition.exhibitors = exhib.ExhibitorCount;
  406. this.exhibition.visitors = exhib.VisitorCount;
  407. this.exhibition.internalexhibitors = exhib.IntVisitorCount;
  408. this.exhibition.intVisitors = exhib.IntVisitorCount;
  409. this.exhibition.area = exhib.ExhibSize;
  410. this.exhibition.showstatusid = "";
  411. this.exhibition.about = exhib.Intro;
  412. this.exhibition.profile = exhib.Profile;
  413. this.exhibition.description = exhib.Detail;
  414. this.exhibition.shortName = exhib.AbbreviatedName;
  415. this.exhibition.frequency = exhib.Frequency;
  416. this.exhibition.online = exhib.IsVirtualEvent;
  417. this.exhibition.organizers = exhib.Organizers;
  418. this.exhibition.videos = exhib.Videos;
  419. this.exhibition.gallery = exhib.Images;
  420. this.exhibition.venues = exhib.Venues;
  421. this.exhibition.categories = exhib.MainCategories;
  422. this.exhibition.subcategories = exhib.SubCategories;
  423. this.setSideBarList();
  424. }
  425. })
  426. .catch((err) => {
  427. console.log(err);
  428. });
  429. },
  430. getAdList() {
  431. this.ads = [{
  432. image: require('/assets/img/thems/Frame33.png')
  433. }, {
  434. image: require('/assets/img/thems/Frame33.png')
  435. }, {
  436. image: require('/assets/img/thems/Frame33.png')
  437. }]
  438. },
  439. setSideBarList() {
  440. if (this.relatedservicelist.length > 0) {
  441. this.fixBarList.push({ id: "relatedServices", title: "Related Services", show: true });
  442. }
  443. if (this.exhibition.videos.length > 0 || this.exhibition.gallery.length > 0) {
  444. this.fixBarList.push({ id: "photoGallery", title: "Photo & Video Gallery", show: true });
  445. }
  446. if (this.exhibition.venues.length > 0) {
  447. this.fixBarList.push({ id: "venue", title: "Venue", show: true });
  448. }
  449. if (this.exhibition.profile) {
  450. this.fixBarList.push({ id: "exhibitProfile", title: "Exhibit Profile", show: true });
  451. }
  452. if (this.exhibition.description) {
  453. this.fixBarList.push({ id: "detailedDescription", title: "Detailed Description", show: true });
  454. }
  455. },
  456. introCheck(entries, observer, isIntersecting) {
  457. this.navControl.mobnav = !isIntersecting;
  458. },
  459. checkNavBlock(entries, observer, isIntersecting) {
  460. this.navControl.ad = isIntersecting;
  461. },
  462. navfix(entries, observer, isIntersecting) {
  463. this.navControl.nav = isIntersecting;
  464. },
  465. toggleFavorite() {
  466. if (this.$auth.loggedIn) {
  467. this.$axios
  468. .put(
  469. `/member/exhibitions?jwt=${this.$auth.$storage.getUniversal("jwt")
  470. ? this.$auth.$storage.getUniversal("jwt").token
  471. : ""
  472. }&exhibition_id=${this.$route.params.id}&delete=${this.saved}`
  473. )
  474. .then((result) => {
  475. this.saved = !this.saved;
  476. })
  477. .catch((err) => {
  478. console.log(err);
  479. });
  480. } else {
  481. this.$router.push(this.localePath("/user"));
  482. }
  483. },
  484. async getExhibition() {
  485. if (this.$route.query.preview) {
  486. await this.$axios
  487. .get(
  488. "/admin/events/previewShows/" +
  489. this.$route.params.id +
  490. this.$i18n.localeProperties["langQuery"]
  491. )
  492. .then((res) => {
  493. this.exhibition.id = res.data.exhibition.id;
  494. this.exhibition.name = res.data.exhibition.name;
  495. this.exhibition.subtitle = res.data.exhibition.subtitle;
  496. this.exhibition.region = res.data.exhibition.region;
  497. this.exhibition.country = res.data.exhibition.country;
  498. this.exhibition.city = res.data.exhibition.city;
  499. this.exhibition.logo = res.data.exhibition.logo;
  500. this.exhibition.banner = res.data.exhibition.banner;
  501. this.exhibition.startdate = res.data.exhibition.startdate;
  502. this.exhibition.enddate = res.data.exhibition.enddate;
  503. this.exhibition.status = res.data.exhibition.status;
  504. this.exhibition.website = res.data.exhibition.website;
  505. this.exhibition.isRecommend = res.data.exhibition.isRecommend;
  506. this.exhibition.isLiked = res.data.exhibition.isLiked;
  507. this.exhibition.rating = res.data.exhibition.rating;
  508. this.exhibition.reviewCount = res.data.exhibition.reviewCount;
  509. this.exhibition.exhibitors = res.data.exhibition.exhibitors;
  510. this.exhibition.visitors = res.data.exhibition.visitors;
  511. this.exhibition.internalexhibitors =
  512. res.data.exhibition.internalexhibitors;
  513. this.exhibition.area = res.data.exhibition.area;
  514. this.exhibition.showstatusid = res.data.exhibition.showstatusid;
  515. this.exhibition.about = res.data.exhibition.about;
  516. this.exhibition.profile = res.data.exhibition.profile;
  517. this.exhibition.description = res.data.exhibition.description;
  518. this.exhibition.shortName = res.data.exhibition.shortName;
  519. this.exhibition.frequency = res.data.exhibition.frequency;
  520. this.exhibition.online = res.data.exhibition.online;
  521. this.exhibition.organizers = res.data.exhibition.organizers;
  522. this.exhibition.videos = res.data.exhibition.videos;
  523. this.exhibition.gallery = res.data.exhibition.gallery;
  524. this.exhibition.venues = res.data.exhibition.venues;
  525. this.exhibition.categories = res.data.exhibition.categories;
  526. this.exhibition.subcategories = res.data.exhibition.subcategories;
  527. })
  528. .catch((err) => {
  529. console.log(err);
  530. });
  531. } else {
  532. await this.$axios
  533. .get(
  534. `/exhibitions/${this.$route.params.id}?lang=${this.$i18n.localeProperties["langQuery"]}`
  535. )
  536. .then((res) => {
  537. this.exhibition.id = res.data.exhibition.id;
  538. this.exhibition.name = res.data.exhibition.name;
  539. this.exhibition.subtitle = res.data.exhibition.subtitle;
  540. this.exhibition.region = res.data.exhibition.region;
  541. this.exhibition.country = res.data.exhibition.country;
  542. this.exhibition.city = res.data.exhibition.city;
  543. this.exhibition.logo = res.data.exhibition.logo;
  544. this.exhibition.banner = res.data.exhibition.banner;
  545. this.exhibition.startdate = res.data.exhibition.startdate;
  546. this.exhibition.enddate = res.data.exhibition.enddate;
  547. this.exhibition.status = res.data.exhibition.status;
  548. this.exhibition.website = res.data.exhibition.website;
  549. this.exhibition.isRecommend = res.data.exhibition.isRecommend;
  550. this.exhibition.isLiked = res.data.exhibition.isLiked;
  551. this.exhibition.rating = res.data.exhibition.rating;
  552. this.exhibition.reviewCount = res.data.exhibition.reviewCount;
  553. this.exhibition.exhibitors = res.data.exhibition.exhibitors;
  554. this.exhibition.visitors = res.data.exhibition.visitors;
  555. this.exhibition.internalexhibitors =
  556. res.data.exhibition.internalexhibitors;
  557. this.exhibition.area = res.data.exhibition.area;
  558. this.exhibition.showstatusid = res.data.exhibition.showstatusid;
  559. this.exhibition.about = res.data.exhibition.about;
  560. this.exhibition.profile = res.data.exhibition.profile;
  561. this.exhibition.description = res.data.exhibition.description;
  562. this.exhibition.shortName = res.data.exhibition.shortName;
  563. this.exhibition.frequency = res.data.exhibition.frequency;
  564. this.exhibition.online = res.data.exhibition.online;
  565. this.exhibition.organizers = res.data.exhibition.organizers;
  566. this.exhibition.videos = res.data.exhibition.videos;
  567. this.exhibition.gallery = res.data.exhibition.gallery;
  568. this.exhibition.venues = res.data.exhibition.venues;
  569. this.exhibition.categories = res.data.exhibition.categories;
  570. this.exhibition.subcategories = res.data.exhibition.subcategories;
  571. })
  572. .catch((err) => {
  573. console.log(err);
  574. });
  575. }
  576. },
  577. async getCategorySwiperList() {
  578. let langCode = this.$i18n.localeProperties["langQuery"];
  579. await this.$axios
  580. .get(
  581. `/service/category?lang_code=${langCode}`
  582. )
  583. .then((res) => {
  584. let categoryArray = [];
  585. let result = res.data;
  586. for (let i in result) {
  587. let obj = {
  588. ids: [result[i].id, result[i].service_category_id],
  589. lang_text: result[i].language_text[0].text
  590. }
  591. categoryArray.push(obj);
  592. }
  593. this.getCategory = categoryArray;
  594. })
  595. .catch((error) => console.log(error));
  596. },
  597. async getRelatedServiceList() {
  598. // &expo_id={this.$route.params.id}
  599. let vm = this;
  600. await this.$axios
  601. .get(
  602. `${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}`
  603. )
  604. .then((res) => {
  605. this.relatedservicelist = res.data;
  606. })
  607. .catch((error) => console.log(error));
  608. },
  609. async getServiceCategory() {
  610. let langCode = this.$i18n.localeProperties["langQuery"];
  611. await this.$axios
  612. .get(
  613. `/service/category?lang_code=${langCode}`
  614. )
  615. .then((res) => {
  616. let categoryArray = [];
  617. let result = res.data;
  618. for (let i in result) {
  619. let obj = {
  620. ids: [result[i].id, result[i].service_category_id],
  621. lang_text: result[i].language_text[0].text
  622. }
  623. categoryArray.push(obj);
  624. }
  625. this.getservicecategory = categoryArray;
  626. })
  627. .catch((error) => console.log(error));
  628. },
  629. getAllService() {
  630. let vm = this;
  631. this.$axios
  632. .get(
  633. `${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}`
  634. )
  635. .then((res) => {
  636. this.relatedservicelist = res.data;
  637. })
  638. .catch((error) => console.log(error));
  639. },
  640. getCategoryId(data) {
  641. this.getcategoryid = data;
  642. },
  643. testtest(data) {
  644. this.testcategory = data;
  645. this.serviceList();
  646. },
  647. serviceList() {
  648. this.$axios
  649. .get(
  650. `${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}`
  651. )
  652. .then((res) => {
  653. this.relatedservicelist = res.data;
  654. })
  655. .catch((error) => console.log(error));
  656. },
  657. checkRelatedService() {
  658. this.fixBarList = [
  659. { id: "highlightReview", title: "Highlight Review", show: false },
  660. { id: "relatedServices", title: "Related Services", show: false },
  661. {
  662. id: "photoGallery",
  663. title: "Photo & Video Gallery",
  664. show:
  665. this.exhibition.gallery.length > 0 ||
  666. this.exhibition.videos.length > 0
  667. ? true
  668. : false,
  669. },
  670. {
  671. id: "venue",
  672. title: "Venue",
  673. show: this.exhibition.venues.length > 0 ? true : false,
  674. },
  675. {
  676. id: "exhibitProfile",
  677. title: "Exhibit Profile",
  678. show: this.exhibition.profile ? true : false,
  679. },
  680. {
  681. id: "detailedDescription",
  682. title: "Detailed Description",
  683. show: this.exhibition.description ? true : false,
  684. },
  685. { id: "reviews", title: "Reviews", show: false },
  686. ];
  687. if (this.relatedservicelist.length > 0) {
  688. this.relatedserviceShow = true;
  689. this.fixBarList = [
  690. { id: "highlightReview", title: "Highlight Review", show: false },
  691. { id: "relatedServices", title: "Related Services", show: true },
  692. {
  693. id: "photoGallery",
  694. title: "Photo & Video Gallery",
  695. show:
  696. this.exhibition.gallery.length > 0 ||
  697. this.exhibition.videos.length > 0
  698. ? true
  699. : false,
  700. },
  701. {
  702. id: "venue",
  703. title: "Venue",
  704. show: this.exhibition.venues.length > 0 ? true : false,
  705. },
  706. {
  707. id: "exhibitProfile",
  708. title: "Exhibit Profile",
  709. show: this.exhibition.profile ? true : false,
  710. },
  711. {
  712. id: "detailedDescription",
  713. title: "Detailed Description",
  714. show: this.exhibition.description ? true : false,
  715. },
  716. { id: "reviews", title: "Reviews", show: false },
  717. ];
  718. }
  719. }
  720. },
  721. };
  722. </script>
  723. <style lang="scss" scoped>
  724. </style>