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.

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