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.

651 lines
24 KiB

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="exhibition.ads" :items="exhibition.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"
  55. :relatedservice="item" :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.exhibition.name,
  164. meta: [
  165. {
  166. name: this.exhibition.name,
  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. tab: "0",
  198. saved: false,
  199. exhibition: {
  200. id: null,
  201. name: "",
  202. subtitle: null,
  203. region: {},
  204. country: {},
  205. city: {},
  206. logo: "",
  207. banner: null,
  208. startdate: "",
  209. enddate: "",
  210. status: {},
  211. website: "",
  212. isRecommend: null,
  213. isLiked: null,
  214. rating: 0,
  215. reviewCount: null,
  216. exhibitors: "",
  217. visitors: "",
  218. internalexhibitors: null,
  219. area: null,
  220. showstatusid: 100,
  221. about: "",
  222. profile: "",
  223. description: "",
  224. shortName: null,
  225. frequency: {},
  226. online: {},
  227. organizers: [],
  228. videos: [],
  229. gallery: {},
  230. venues: [],
  231. categories: [],
  232. subcategories: [],
  233. },
  234. relatedserviceShow: false,
  235. relatedservicelist: [],
  236. getservicecategory: [],
  237. seemore: false,
  238. getCategory: [],
  239. getcategoryid: "",
  240. testcategory: "",
  241. currStep: null,
  242. fixBar: false,
  243. fixBarList: [],
  244. };
  245. },
  246. async created() {
  247. await this.getExhibition();
  248. await this.getServiceCategory();
  249. await this.getCategorySwiperList();
  250. await this.getRelatedServiceList();
  251. await this.checkRelatedService();
  252. },
  253. async beforeCreate() {
  254. if (this.$auth.loggedIn) {
  255. await this.$axios
  256. .get(
  257. `/member/exhibitions/user?jwt=${this.$auth.$storage.getUniversal("jwt").token
  258. }&exhibition_id=${this.$route.params.id}`
  259. )
  260. .then((result) => {
  261. this.saved = result.data.saved;
  262. })
  263. .catch((err) => {
  264. console.log(err);
  265. });
  266. await this.$store.dispatch("updatePicture");
  267. }
  268. },
  269. mounted() {
  270. let vm = this;
  271. vm.$nextTick(function () {
  272. vm.list = [
  273. /* {
  274. url: "#ExhibitionHighlightReview",
  275. name: "Highlight Review",
  276. isShow:false,
  277. },
  278. {
  279. url: "#ExhibitionRelatedServices",
  280. name: "Related Services",
  281. isShow:false,
  282. },*/
  283. {
  284. url: "#ExhibitionPhotoVideoGallery",
  285. name: "Photo & Video Gallery",
  286. isShow:
  287. this.exhibition.gallery.length > 0 ||
  288. this.exhibition.videos.length > 0
  289. ? true
  290. : false,
  291. },
  292. {
  293. url: "#ExhibitionVenue",
  294. name: "Venue",
  295. isShow:
  296. this.exhibition.venues && this.exhibition.venues.length > 0
  297. ? true
  298. : false,
  299. },
  300. {
  301. url: "#ExhibitionExhibitProfile",
  302. name: "Exhibit Profile",
  303. isShow: this.exhibition.profile ? true : false,
  304. },
  305. {
  306. url: "#ExhibitionDetailDescription",
  307. name: "Detailed Description",
  308. isShow: this.exhibition.description ? true : false,
  309. },
  310. /*{
  311. url: "#ExhibitionReviews",
  312. name: "Reviews",
  313. isShow:false,
  314. },*/
  315. ];
  316. // instantiate the scrollama
  317. const scrollama = require("scrollama");
  318. const scroller = scrollama();
  319. // setup the instance, pass callback functions
  320. scroller
  321. .setup({
  322. step: ".exhibition-content .step",
  323. offset: 0.6,
  324. })
  325. .onStepEnter((response) => {
  326. // { element, index, direction }
  327. vm.currStep = response.element.id;
  328. if (response.index > 3) {
  329. vm.$refs.stickySwiper.slideTo(4);
  330. } else {
  331. vm.$refs.stickySwiper.slideTo(0);
  332. }
  333. if (response.index >= 1) {
  334. vm.fixBar = true;
  335. } else {
  336. vm.fixBar = false;
  337. }
  338. })
  339. .onStepExit((response) => {
  340. // { element, index, direction }
  341. vm.currStep = response.element.id;
  342. if (response.index >= 1) {
  343. vm.fixBar = true;
  344. } else {
  345. vm.fixBar = false;
  346. }
  347. });
  348. });
  349. },
  350. watch: {
  351. relatedservicelist: {
  352. handler: function () {
  353. if (this.relatedservicelist) {
  354. this.relatedservicelist.forEach((item) => {
  355. this.serviceListCategory = item.category;
  356. if (this.getservicecategory) {
  357. this.getservicecategory.forEach((category) => {
  358. if (item.category == category.ids[0]) {
  359. item.category = category.lang_text;
  360. }
  361. });
  362. }
  363. });
  364. }
  365. },
  366. },
  367. },
  368. methods: {
  369. introCheck(entries, observer, isIntersecting) {
  370. this.navControl.mobnav = !isIntersecting;
  371. },
  372. checkNavBlock(entries, observer, isIntersecting) {
  373. this.navControl.ad = isIntersecting;
  374. },
  375. navfix(entries, observer, isIntersecting) {
  376. this.navControl.nav = isIntersecting;
  377. },
  378. toggleFavorite() {
  379. if (this.$auth.loggedIn) {
  380. this.$axios
  381. .put(
  382. `/member/exhibitions?jwt=${this.$auth.$storage.getUniversal("jwt")
  383. ? this.$auth.$storage.getUniversal("jwt").token
  384. : ""
  385. }&exhibition_id=${this.$route.params.id}&delete=${this.saved}`
  386. )
  387. .then((result) => {
  388. this.saved = !this.saved;
  389. })
  390. .catch((err) => {
  391. console.log(err);
  392. });
  393. } else {
  394. this.$router.push(this.localePath("/user"));
  395. }
  396. },
  397. async getExhibition() {
  398. if (this.$route.query.preview) {
  399. await this.$axios
  400. .get(
  401. "/admin/events/previewShows/" +
  402. this.$route.params.id +
  403. this.$i18n.localeProperties["langQuery"]
  404. )
  405. .then((res) => {
  406. this.exhibition.id = res.data.exhibition.id;
  407. this.exhibition.name = res.data.exhibition.name;
  408. this.exhibition.subtitle = res.data.exhibition.subtitle;
  409. this.exhibition.region = res.data.exhibition.region;
  410. this.exhibition.country = res.data.exhibition.country;
  411. this.exhibition.city = res.data.exhibition.city;
  412. this.exhibition.logo = res.data.exhibition.logo;
  413. this.exhibition.banner = res.data.exhibition.banner;
  414. this.exhibition.startdate = res.data.exhibition.startdate;
  415. this.exhibition.enddate = res.data.exhibition.enddate;
  416. this.exhibition.status = res.data.exhibition.status;
  417. this.exhibition.website = res.data.exhibition.website;
  418. this.exhibition.isRecommend = res.data.exhibition.isRecommend;
  419. this.exhibition.isLiked = res.data.exhibition.isLiked;
  420. this.exhibition.rating = res.data.exhibition.rating;
  421. this.exhibition.reviewCount = res.data.exhibition.reviewCount;
  422. this.exhibition.exhibitors = res.data.exhibition.exhibitors;
  423. this.exhibition.visitors = res.data.exhibition.visitors;
  424. this.exhibition.internalexhibitors =
  425. res.data.exhibition.internalexhibitors;
  426. this.exhibition.area = res.data.exhibition.area;
  427. this.exhibition.showstatusid = res.data.exhibition.showstatusid;
  428. this.exhibition.about = res.data.exhibition.about;
  429. this.exhibition.profile = res.data.exhibition.profile;
  430. this.exhibition.description = res.data.exhibition.description;
  431. this.exhibition.shortName = res.data.exhibition.shortName;
  432. this.exhibition.frequency = res.data.exhibition.frequency;
  433. this.exhibition.online = res.data.exhibition.online;
  434. this.exhibition.organizers = res.data.exhibition.organizers;
  435. this.exhibition.videos = res.data.exhibition.videos;
  436. this.exhibition.gallery = res.data.exhibition.gallery;
  437. this.exhibition.venues = res.data.exhibition.venues;
  438. this.exhibition.categories = res.data.exhibition.categories;
  439. this.exhibition.subcategories = res.data.exhibition.subcategories;
  440. })
  441. .catch((err) => {
  442. console.log(err);
  443. });
  444. } else {
  445. await this.$axios
  446. .get(
  447. `/exhibitions/${this.$route.params.id}?lang=${this.$i18n.localeProperties["langQuery"]}`
  448. )
  449. .then((res) => {
  450. this.exhibition.id = res.data.exhibition.id;
  451. this.exhibition.name = res.data.exhibition.name;
  452. this.exhibition.subtitle = res.data.exhibition.subtitle;
  453. this.exhibition.region = res.data.exhibition.region;
  454. this.exhibition.country = res.data.exhibition.country;
  455. this.exhibition.city = res.data.exhibition.city;
  456. this.exhibition.logo = res.data.exhibition.logo;
  457. this.exhibition.banner = res.data.exhibition.banner;
  458. this.exhibition.startdate = res.data.exhibition.startdate;
  459. this.exhibition.enddate = res.data.exhibition.enddate;
  460. this.exhibition.status = res.data.exhibition.status;
  461. this.exhibition.website = res.data.exhibition.website;
  462. this.exhibition.isRecommend = res.data.exhibition.isRecommend;
  463. this.exhibition.isLiked = res.data.exhibition.isLiked;
  464. this.exhibition.rating = res.data.exhibition.rating;
  465. this.exhibition.reviewCount = res.data.exhibition.reviewCount;
  466. this.exhibition.exhibitors = res.data.exhibition.exhibitors;
  467. this.exhibition.visitors = res.data.exhibition.visitors;
  468. this.exhibition.internalexhibitors =
  469. res.data.exhibition.internalexhibitors;
  470. this.exhibition.area = res.data.exhibition.area;
  471. this.exhibition.showstatusid = res.data.exhibition.showstatusid;
  472. this.exhibition.about = res.data.exhibition.about;
  473. this.exhibition.profile = res.data.exhibition.profile;
  474. this.exhibition.description = res.data.exhibition.description;
  475. this.exhibition.shortName = res.data.exhibition.shortName;
  476. this.exhibition.frequency = res.data.exhibition.frequency;
  477. this.exhibition.online = res.data.exhibition.online;
  478. this.exhibition.organizers = res.data.exhibition.organizers;
  479. this.exhibition.videos = res.data.exhibition.videos;
  480. this.exhibition.gallery = res.data.exhibition.gallery;
  481. this.exhibition.venues = res.data.exhibition.venues;
  482. this.exhibition.categories = res.data.exhibition.categories;
  483. this.exhibition.subcategories = res.data.exhibition.subcategories;
  484. })
  485. .catch((err) => {
  486. console.log(err);
  487. });
  488. }
  489. },
  490. async getCategorySwiperList() {
  491. let langCode = this.$i18n.localeProperties["langQuery"];
  492. await this.$axios
  493. .get(
  494. `/service/category?lang_code=${langCode}`
  495. )
  496. .then((res) => {
  497. let categoryArray = [];
  498. let result = res.data;
  499. for (let i in result) {
  500. let obj = {
  501. ids: [result[i].id, result[i].service_category_id],
  502. lang_text: result[i].language_text[0].text
  503. }
  504. categoryArray.push(obj);
  505. }
  506. this.getCategory = categoryArray;
  507. })
  508. .catch((error) => console.log(error));
  509. },
  510. async getRelatedServiceList() {
  511. // &expo_id={this.$route.params.id}
  512. let vm = this;
  513. await this.$axios
  514. .get(
  515. `${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}`
  516. )
  517. .then((res) => {
  518. this.relatedservicelist = res.data;
  519. })
  520. .catch((error) => console.log(error));
  521. },
  522. async getServiceCategory() {
  523. let langCode = this.$i18n.localeProperties["langQuery"];
  524. await this.$axios
  525. .get(
  526. `/service/category?lang_code=${langCode}`
  527. )
  528. .then((res) => {
  529. let categoryArray = [];
  530. let result = res.data;
  531. for (let i in result) {
  532. let obj = {
  533. ids: [result[i].id, result[i].service_category_id],
  534. lang_text: result[i].language_text[0].text
  535. }
  536. categoryArray.push(obj);
  537. }
  538. this.getservicecategory = categoryArray;
  539. })
  540. .catch((error) => console.log(error));
  541. },
  542. getAllService() {
  543. let vm = this;
  544. this.$axios
  545. .get(
  546. `${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}`
  547. )
  548. .then((res) => {
  549. this.relatedservicelist = res.data;
  550. })
  551. .catch((error) => console.log(error));
  552. },
  553. getCategoryId(data) {
  554. this.getcategoryid = data;
  555. },
  556. testtest(data) {
  557. this.testcategory = data;
  558. this.serviceList();
  559. },
  560. serviceList() {
  561. this.$axios
  562. .get(
  563. `${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}`
  564. )
  565. .then((res) => {
  566. this.relatedservicelist = res.data;
  567. })
  568. .catch((error) => console.log(error));
  569. },
  570. checkRelatedService() {
  571. this.fixBarList = [
  572. { id: "highlightReview", title: "Highlight Review", show: false },
  573. { id: "relatedServices", title: "Related Services", show: false },
  574. {
  575. id: "photoGallery",
  576. title: "Photo & Video Gallery",
  577. show:
  578. this.exhibition.gallery.length > 0 ||
  579. this.exhibition.videos.length > 0
  580. ? true
  581. : false,
  582. },
  583. {
  584. id: "venue",
  585. title: "Venue",
  586. show: this.exhibition.venues.length > 0 ? true : false,
  587. },
  588. {
  589. id: "exhibitProfile",
  590. title: "Exhibit Profile",
  591. show: this.exhibition.profile ? true : false,
  592. },
  593. {
  594. id: "detailedDescription",
  595. title: "Detailed Description",
  596. show: this.exhibition.description ? true : false,
  597. },
  598. { id: "reviews", title: "Reviews", show: false },
  599. ];
  600. if (this.relatedservicelist.length > 0) {
  601. this.relatedserviceShow = true;
  602. this.fixBarList = [
  603. { id: "highlightReview", title: "Highlight Review", show: false },
  604. { id: "relatedServices", title: "Related Services", show: true },
  605. {
  606. id: "photoGallery",
  607. title: "Photo & Video Gallery",
  608. show:
  609. this.exhibition.gallery.length > 0 ||
  610. this.exhibition.videos.length > 0
  611. ? true
  612. : false,
  613. },
  614. {
  615. id: "venue",
  616. title: "Venue",
  617. show: this.exhibition.venues.length > 0 ? true : false,
  618. },
  619. {
  620. id: "exhibitProfile",
  621. title: "Exhibit Profile",
  622. show: this.exhibition.profile ? true : false,
  623. },
  624. {
  625. id: "detailedDescription",
  626. title: "Detailed Description",
  627. show: this.exhibition.description ? true : false,
  628. },
  629. { id: "reviews", title: "Reviews", show: false },
  630. ];
  631. }
  632. }
  633. },
  634. };
  635. </script>
  636. <style lang="scss" scoped>
  637. </style>