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.

572 lines
21 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
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 class="home-view">
  3. <Hero :slogan="slogan" :subslogan="subslogan" :populars="populars"
  4. :exhibitionsSearchs="exhibitionsSearchs"
  5. :exhibitionsLocations="exhibitionsLocations" :exhibitionsCategories="exhibitionsCategories" :banner="banner"
  6. :exhibitionsKeywords="exhibitionsKeywords" />
  7. <centerMode :list="ads" v-if="ads.length"></centerMode>
  8. <!-- <AdBanner :item="apiData.ads" /> -->
  9. <section class="tw-mt-[50px] md:tw-mt-[70px] xl:tw-max-w-[1366px] xl:tw-mx-auto">
  10. <ChoiceReason :reasons="reasons"></ChoiceReason>
  11. </section>
  12. <section class="xl:tw-max-w-[1366px] xl:tw-mx-auto">
  13. <FocusExhibition v-if="focusExhibitionlist1.length>0 || focusExhibitionlist2.length>0" :focusExhibitionlist1="focusExhibitionlist1" :focusExhibitionlist2="focusExhibitionlist2"></FocusExhibition>
  14. </section>
  15. <!-- <section class="tw-px-[30px] xl:tw-px-[60px] tw-mt-[50px] md:tw-mt-[70px] xl:tw-max-w-[1366px] xl:tw-mx-auto">
  16. <h2 class="t18 tw-font-medium tw-mb-[28px] md:tw-float-left md:t24 xl:t28">
  17. * 國外 {{ $t("Focus Exhibitions") }}
  18. </h2>
  19. <FocusExhibition2 v-if="focusExhibitionlist.length > 0" :focusExhibitionlist="focusExhibitionlist"></FocusExhibition2>
  20. </section> -->
  21. <section class="xl:tw-max-w-[1366px] xl:tw-mx-auto">
  22. <ExhibitionStrategy v-if="strategyList.length > 0" :strategyList="strategyList"></ExhibitionStrategy>
  23. </section>
  24. <section class="xl:tw-max-w-[1366px] xl:tw-mx-auto">
  25. <Advertisement v-if="advertisementList.length > 0" :advertisementList="advertisementList"></Advertisement>
  26. </section>
  27. <!-- <section class="tw-px-[30px] xl:tw-px-[60px] tw-mt-[50px] md:tw-mt-[70px] xl:tw-max-w-[1366px] xl:tw-mx-auto">
  28. <h2 class="t18 tw-font-medium tw-text-primary-default tw-mb-[28px] md:tw-float-left md:t24 xl:t28">
  29. {{ $t("Highlight Exhibitions") }}
  30. </h2>
  31. <newHighlightExhibitions></newHighlightExhibitions>
  32. </section>
  33. <section class="tw-pl-[30px] xl:tw-px-[60px] tw-mt-[50px] md:tw-mt-[70px] xl:tw-max-w-[1366px] xl:tw-mx-auto"
  34. v-show="services.length > 0">
  35. <h2 class="t18 tw-font-medium tw-text-primary-default tw-mb-[8px] md:t24 xl:tw-float-left xl:t28">
  36. {{ $t("Trending Services") }}
  37. </h2>
  38. <TrendingService :services="services" />
  39. </section>
  40. <section class="tw-px-[30px] xl:tw-px-[60px] tw-mt-[50px] md:tw-mt-[70px] xl:tw-max-w-[1366px] xl:tw-mx-auto">
  41. <h2 class="t18 tw-font-medium tw-text-primary-default tw-mb-[24px] md:t24 xl:t28" v-show="themes.length > 0">
  42. {{ $t("Featured Exhibition Themes") }}
  43. </h2>
  44. <FeaturedExhibitonThemes :themes="themes" :title="themesTitle" />
  45. </section>
  46. <section class="tw-pl-[30px] xl:tw-px-[60px] tw-mt-[50px] md:tw-mt-[70px] xl:tw-max-w-[1366px] xl:tw-mx-auto">
  47. <h2 class="t18 tw-font-medium tw-text-primary-default tw-mb-[24px] md:t24 xl:t28">
  48. {{ $t("Trending Destination Services") }}
  49. </h2>
  50. <TrendingDestinationServices :themes="serviceThemes" :title="serviceThemesTitle">
  51. </TrendingDestinationServices>
  52. </section> -->
  53. <OtherInfo />
  54. <section class="tw-px-[30px] tw-mt-[50px] md:tw-mt-[95px] xl:tw-px-[60px] xl:tw-max-w-[1366px] xl:tw-mx-auto">
  55. <h2 class="t18 tw-font-medium tw-text-primary-default tw-mt-[25px] md:t24 xl:t28">
  56. {{ $t("Partnership") }}
  57. </h2>
  58. <Partnership v-if="partnershiplist.length > 0" :partnershiplist="partnershiplist"></Partnership>
  59. </section>
  60. <BottomInfo :countries="countries" :cards="cards" :categories="categories"/>
  61. <CookieUnderModal />
  62. </div>
  63. </template>
  64. <script>
  65. import Hero from "@/components/home/Hero";
  66. // import AdBanner from "@/components/home/AdBanner";
  67. import centerMode from "@/components/swiper/centerMode";
  68. import ChoiceReason from "@/components/home/ChoiceReason";
  69. import FocusExhibition from "@/components/home/FocusExhibition";
  70. // import FocusExhibition2 from "@/components/home/FocusExhibition2";
  71. // import newHighlightExhibitions from "@/components/home/newHighlightExhibitions.vue";
  72. // import TrendingService from "@/components/home/TrendingService";
  73. // import FeaturedExhibitonThemes from "@/components/home/FeaturedExhibitonThemes";
  74. // import TrendingDestinationServices from "@/components/home/TrendingDestinationServices";
  75. import OtherInfo from "@/components/home/OtherInfo";
  76. import Partnership from "@/components/home/Partnership";
  77. import BottomInfo from "@/components/home/BottomInfo";
  78. import CookieUnderModal from "@/components/home/CookieUnderModal";
  79. import ExhibitionStrategy from "@/components/home/ExhibitionStrategy";
  80. import Advertisement from "@/components/home/Advertisement";
  81. // import jwt_decode from "jwt-decode";
  82. // import { getData } from "~/utils/assist";
  83. // import { onMounted } from "vue";
  84. export default {
  85. data() {
  86. return {
  87. title: '1',
  88. apiUrl: process.env.SERVICE_CONSOLE,
  89. slogan: '',
  90. subslogan: '',
  91. populars: {
  92. search: [],
  93. service: []
  94. },
  95. // servicesSearchs: [],
  96. // servicesLocations: [],
  97. // serviceKeywords: [],
  98. exhibitionsSearchs: [],
  99. exhibitionsLocations: [{
  100. id: '1',
  101. region: 'Taiwan',
  102. countries: [{
  103. id: '2',
  104. country: 'USA',
  105. cities: [{
  106. id: '3',
  107. city: 'Japan'
  108. }]
  109. }]
  110. }],
  111. exhibitionsCategories: [
  112. ],
  113. exhibitionsKeywords: [],
  114. banner: '',
  115. ads: [
  116. {
  117. id: 'banner_1',
  118. image: require('/assets/img/banner/banner_1.png'),
  119. url: '/service?taiwan=taiwan'
  120. },
  121. {
  122. id: 'banner_2',
  123. image: require('/assets/img//banner/banner_2.png'),
  124. url: 'javascript:void(0);'
  125. },
  126. {
  127. id: 'banner_3',
  128. image: require('/assets/img//banner/banner_3.png'),
  129. url: 'javascript:void(0);'
  130. },
  131. {
  132. id: 'banner_4',
  133. image: require('/assets/img//banner/banner_4.png'),
  134. url: 'javascript:void(0);'
  135. },
  136. {
  137. id: 'banner_5',
  138. image: require('/assets/img//banner/banner_5.png'),
  139. url: 'javascript:void(0);'
  140. }
  141. ],
  142. advertisementList: [{
  143. image: require('/assets/img/Frame.jpg')
  144. },{
  145. image: require('/assets/img/Frame.jpg')
  146. },{
  147. image: require('/assets/img/Frame.jpg')
  148. }
  149. ],
  150. focusExhibitionlist1: [],
  151. focusExhibitionlist2: [],
  152. services: [{
  153. id: '1',
  154. name: 'VISA Application (Vietnam)',
  155. price: '35',
  156. region: '0',
  157. country: '0',
  158. subcategory: 'VISA',
  159. rating: '5.4',
  160. reviews: '344',
  161. preview_image: require('~/assets/img/bookingInfoTest.png'),
  162. payment_currency: 'USD',
  163. },{
  164. id: '1',
  165. name: 'VISA Application (Vietnam)',
  166. price: '35',
  167. region: '0',
  168. country: '0',
  169. subcategory: 'VISA',
  170. rating: '5.4',
  171. reviews: '344',
  172. preview_image: require('~/assets/img/bookingInfoTest.png'),
  173. payment_currency: 'USD',
  174. },{
  175. id: '1',
  176. name: 'VISA Application (Vietnam)',
  177. price: '35',
  178. region: '0',
  179. country: '0',
  180. subcategory: 'VISA',
  181. rating: '5.4',
  182. reviews: '344',
  183. preview_image: require('~/assets/img/bookingInfoTest.png'),
  184. payment_currency: 'USD',
  185. },{
  186. id: '1',
  187. name: 'VISA Application (Vietnam)',
  188. price: '35',
  189. region: '0',
  190. country: '0',
  191. subcategory: 'VISA',
  192. rating: '5.4',
  193. reviews: '344',
  194. preview_image: require('~/assets/img/bookingInfoTest.png'),
  195. payment_currency: 'USD',
  196. }],
  197. reasons:[{
  198. name: '一站可查全球展會',
  199. content: '全球上千場展覽,透過關鍵字或類別查詢,時間、地點、展館、主辦單位…等,資料為您備齊。',
  200. url: 'javascript:void(0);',
  201. image: require('~/assets/img/search-field.png')
  202. },{
  203. name: '網羅辦展所需服務',
  204. content: '展品運輸、展館服務…等服務,我們一一為您網羅,ShowEasy 讓您線上查詢、預約,輕鬆管理您的訂單。',
  205. url: 'javascript:void(0);',
  206. image: require('~/assets/img/shopping-bag.png')
  207. },{
  208. name: '嚴選供應商品質保障',
  209. content: 'ShowEasy 擁有嚴謹的供應商審核制度,憑藉展會業資深團隊深厚的經驗,為您所訂購的服務品質查核。',
  210. url: 'javascript:void(0);',
  211. image: require('~/assets/img/medal.png')
  212. },{
  213. name: '展會服務數位化',
  214. content: 'ShowEasy 將展會產業鏈數位化,達到查找服務便利、訂購流程簡便、線上即時下單的效益。',
  215. url: 'javascript:void(0);',
  216. image: require('~/assets/img/mac-os.png')
  217. }],
  218. themes: [{
  219. name: '',
  220. url: '/',
  221. image: require('~/assets/img/thems/Exhibiton-Themes-01.png')
  222. },{
  223. name: '',
  224. url: '/',
  225. image: require('/assets/img/thems/Exhibiton-Themes-02.png')
  226. },{
  227. name: '',
  228. url: '/',
  229. image: require('/assets/img/thems/Exhibiton-Themes-03.png')
  230. },{
  231. name: '',
  232. url: '/',
  233. image: require('/assets/img/thems/Exhibiton-Themes-04.png')
  234. }],
  235. themesTitle: '',
  236. serviceThemes: [{
  237. name: '',
  238. image: require('/assets/img/thems/Frame33.png')
  239. },{
  240. name: '',
  241. image: require('/assets/img/thems/Frame34.png')
  242. },{
  243. name: '',
  244. image: require('/assets/img/thems/Frame35.png')
  245. },{
  246. name: '',
  247. image: require('/assets/img/thems/Frame36.png')
  248. },{
  249. name: '',
  250. image: require('/assets/img/thems/Frame37.png')
  251. }],
  252. serviceThemesTitle: '',
  253. countries: [
  254. ],
  255. cards: [
  256. ],
  257. categories: [
  258. ],
  259. partnershiplist: [{
  260. image: require('/assets/img/partnership/A_best_world.png')
  261. },{
  262. image: require('/assets/img/partnership/Brilliant.png')
  263. },{
  264. image: require('/assets/img/partnership/DJB_logo.jpg')
  265. },{
  266. image: require('/assets/img/partnership/euro_logo.png')
  267. },{
  268. image: require('/assets/img/partnership/fullon.jpg')
  269. },{
  270. image: require('/assets/img/partnership/hanselogo.png')
  271. },{
  272. image: require('/assets/img/partnership/nanrunglogo.png')
  273. },{
  274. image: require('/assets/img/partnership/PILATUS.png')
  275. },{
  276. image: require('/assets/img/partnership/Shilin_Flower_ArtLOGO.png')
  277. },{
  278. image: require('/assets/img/partnership/starpubliclogo.png')
  279. },{
  280. image: require('/assets/img/partnership/Tripool.png')
  281. },{
  282. image: require('/assets/img/partnership/Xinfeng_Logo.png')
  283. }],
  284. strategyList:[{
  285. title: '海外參展大補帖 — 申請展覽補助',
  286. url:'https://medium.com/showeasy/%E6%B5%B7%E5%A4%96%E5%8F%83%E5%B1%95%E5%A4%A7%E8%A3%9C%E5%B8%96-%E7%94%B3%E8%AB%8B%E5%B1%95%E8%A6%BD%E8%A3%9C%E5%8A%A9-2de6e9a4b6f9',
  287. date: 'June 14, 2021',
  288. content: '疫情的侵略,全世界會展產業都停滯,參展商也很難在收入銳減的的情況下參加國際展,但你知道嗎,其實有方法可以減少負擔的參與國際展覽呦',
  289. },{
  290. title: '【與誰同行?】 展覽選好了、報名好了 老闆該派誰去? 我們該怎麼準備呢?',
  291. url:'https://medium.com/showeasy/%E8%88%87%E8%AA%B0%E5%90%8C%E8%A1%8C-%E5%B1%95%E8%A6%BD%E9%81%B8%E5%A5%BD%E4%BA%86-%E5%A0%B1%E5%90%8D%E5%A5%BD%E4%BA%86-%E8%80%81%E9%97%86%E8%A9%B2%E6%B4%BE%E8%AA%B0%E5%8E%BB-%E6%88%91%E5%80%91%E8%A9%B2%E6%80%8E%E9%BA%BC%E6%BA%96%E5%82%99%E5%91%A2-bc45769a06b',
  292. date: 'June 14, 2021',
  293. content: '講到「參展」,我們第一個會想到怎麼裝潢攤位、擺設商品,或者是怎麼將我們的展品運到展場。但是,你有想到其實工作人員的安排也是一件很重要的事嗎?',
  294. },{
  295. title: '如何挑選合適的攤位面積?',
  296. url:'https://medium.com/showeasy/%E5%A6%82%E4%BD%95%E6%8C%91%E9%81%B8%E5%90%88%E9%81%A9%E7%9A%84%E6%94%A4%E4%BD%8D%E9%9D%A2%E7%A9%8D-43a9b027c35e',
  297. date: 'June 14, 2021',
  298. content: '臺灣是外銷出口大國,在各種行銷方法中,「參加國際展覽」是接觸海外買主、開發潛在客戶的重要渠道,但報名參展時,很多的製造商或品牌商對於自己的',
  299. }
  300. ]
  301. };
  302. },
  303. props: ["langChange"],
  304. name: "IndexPage",
  305. auth: false,
  306. head: {
  307. title: "ShowEasy-we make your show easy!",
  308. },
  309. components: {
  310. Hero,
  311. // AdBanner,
  312. centerMode,
  313. ChoiceReason,
  314. FocusExhibition,
  315. // newHighlightExhibitions,
  316. // TrendingService,
  317. // FeaturedExhibitonThemes,
  318. // TrendingDestinationServices,
  319. OtherInfo,
  320. Partnership,
  321. BottomInfo,
  322. CookieUnderModal,
  323. ExhibitionStrategy,
  324. Advertisement,
  325. },
  326. created() {
  327. // this.getBanner();
  328. this.getBaseInfo();
  329. this.getCategories();
  330. this.getLocations();
  331. this.getPopular();
  332. this.getCategoryExhibition1();
  333. this.getCategoryExhibition2();
  334. this.getPopularCountry();
  335. this.getPopularCategory();
  336. // await this.getServiceKeywords();
  337. // await this.getExhibitionsKeywords();
  338. // await this.getServiceHistory();
  339. // await this.getExhibitionsHistory();
  340. // await this.getServiceLocations();
  341. // await this.getExhibitionsLocations();
  342. // await this.getExhibitionsCategories();
  343. // await this.getExhibitionsCollections();
  344. // await this.getExhibitionsTheme();
  345. // await this.getServiceTheme();
  346. // await this.getPartnership();
  347. if (this.$auth.loggedIn) {
  348. this.$store.dispatch("updatePicture");
  349. }
  350. },
  351. watch: {
  352. currency: {
  353. handler: function () {
  354. // 首頁已沒有服務方案展示
  355. // await this.getServices();
  356. },
  357. },
  358. },
  359. computed: {
  360. currency() {
  361. return this.$store.getters.getCurrency;
  362. },
  363. },
  364. methods: {
  365. // getBanner() {
  366. // this.$axios
  367. // .get(`/trending/api/index/banner?Lang=${this.$i18n.localeProperties["langQuery"]}`)
  368. // .then((response) => {
  369. // if(response && response.data && response.data.DATA && response.data.DATA.rel){
  370. // let data = response.data.DATA.rel
  371. // if(data.length>0){
  372. // let arr = [];
  373. // for(let i=0;i<data.length;i++){
  374. // let target = {};
  375. // target.image = data[i];
  376. // arr.push(target);
  377. // }
  378. // this.ads = arr;
  379. // }
  380. // }
  381. // })
  382. // .catch((error) =>
  383. // console.log(error)
  384. // );
  385. // },
  386. getBaseInfo(){
  387. this.$axios
  388. .get(`/trending/api/index/baseInfo?Lang=${this.$i18n.localeProperties["langQuery"]}`)
  389. .then((response) => {
  390. if(response && response.data && response.data.DATA && response.data.DATA.rel){
  391. let data = response.data.DATA.rel
  392. if(data){
  393. this.slogan = data.Slogan;
  394. this.subslogan = data.SubSlogan;
  395. this.banner = data.Image;
  396. if(data.PopularSearchs){
  397. if(data.PopularSearchs.indexOf(',') !=-1){
  398. this.populars.search = data.PopularSearchs.split(',');
  399. }else{
  400. this.populars.search.push(data.PopularSearchs);
  401. }
  402. }
  403. if(data.ProductNames){
  404. if(data.ProductNames.indexOf(',') !=-1){
  405. this.populars.service = data.ProductNames.split(',');
  406. }else{
  407. this.populars.service.push(data.ProductNames);
  408. }
  409. }
  410. }
  411. }
  412. })
  413. .catch((error) =>
  414. console.log(error)
  415. );
  416. },
  417. getPopularCountry() {
  418. this.$axios
  419. .get(`/trending/api/Exhibition/PopularCountry?Lang=${this.$i18n.localeProperties["langQuery"]}&Count=10`)
  420. .then((response) => {
  421. if(response && response.data && response.data.DATA && response.data.DATA.rel){
  422. let data = response.data.DATA.rel
  423. if(data.length>0){
  424. let arr = [];
  425. for(let i=0;i<data.length;i++){
  426. let target = {};
  427. target.name = data[i].CountryName;
  428. target.id = data[i].CountryID;
  429. target.url = "/exhibition?country=" + data[i].CountryID;
  430. arr.push(target);
  431. }
  432. this.countries = arr;
  433. }
  434. }
  435. })
  436. .catch((error) =>
  437. console.log(error)
  438. );
  439. },
  440. getCategories() {
  441. this.$axios
  442. .get(`/trending/api/Exhibition/Categories?Lang=${this.$i18n.localeProperties["langQuery"]}`)
  443. .then((response) => {
  444. if(response && response.data && response.data.DATA && response.data.DATA.rel){
  445. let data = response.data.DATA.rel
  446. if(data.length>0){
  447. this.exhibitionsCategories = data;
  448. }
  449. }
  450. })
  451. .catch((error) =>
  452. console.log(error)
  453. );
  454. },
  455. getLocations() {
  456. this.$axios
  457. .get(`/trending/api/Exhibition/Locations?Lang=${this.$i18n.localeProperties["langQuery"]}`)
  458. .then((response) => {
  459. if(response && response.data && response.data.DATA && response.data.DATA.rel){
  460. let data = response.data.DATA.rel
  461. if(data){
  462. this.exhibitionsLocations = data;
  463. }
  464. }
  465. })
  466. .catch((error) =>
  467. console.log(error)
  468. );
  469. },
  470. getPopular() {
  471. this.$axios
  472. .get(`/trending/api/Exhibition/Popular?Lang=${this.$i18n.localeProperties["langQuery"]}&Count=10`)
  473. .then((response) => {
  474. if(response && response.data && response.data.DATA && response.data.DATA.rel){
  475. let data = response.data.DATA.rel
  476. if(data.length>0){
  477. let arr = [];
  478. for(let i=0;i<data.length;i++){
  479. let target = {};
  480. target.name = data[i].ExhibitionName;
  481. target.id = data[i].ExhibitionID;
  482. target.url = "/exhibition/" + data[i].ExhibitionID;
  483. arr.push(target);
  484. }
  485. this.cards = arr;
  486. }
  487. }
  488. })
  489. .catch((error) =>
  490. console.log(error)
  491. );
  492. },
  493. getCategoryExhibition1() {
  494. this.$axios
  495. .get(`/trending/api/Exhibition/CategoryExhibition?Lang=${this.$i18n.localeProperties["langQuery"]}&IncludeCountryIDs=['995384cd-f908-48ad-96a9-0e150e9b0eac']&ExcludeCountryIDs`)
  496. .then((response) => {
  497. if(response && response.data && response.data.DATA && response.data.DATA.rel){
  498. let data = response.data.DATA.rel
  499. if(data.length>0){
  500. this.focusExhibitionlist1 = data;
  501. // let arr = [];
  502. // for(let i=0;i<data.length;i++){
  503. // let target = {};
  504. // target.name = data[i].ExhibitionName;
  505. // target.id = data[i].ExhibitionID;
  506. // target.url = "/exhibition/" + data[i].ExhibitionID;
  507. // arr.push(target);
  508. // }
  509. // this.cards = arr;
  510. }
  511. }
  512. })
  513. .catch((error) =>
  514. console.log(error)
  515. );
  516. },
  517. getCategoryExhibition2() {
  518. this.$axios
  519. .get(`/trending/api/Exhibition/CategoryExhibition?Lang=${this.$i18n.localeProperties["langQuery"]}&IncludeCountryIDs&ExcludeCountryIDs=['995384cd-f908-48ad-96a9-0e150e9b0eac']`)
  520. .then((response) => {
  521. if(response && response.data && response.data.DATA && response.data.DATA.rel){
  522. let data = response.data.DATA.rel
  523. if(data.length>0){
  524. this.focusExhibitionlist2 = data;
  525. // let arr = [];
  526. // for(let i=0;i<data.length;i++){
  527. // let target = {};
  528. // target.name = data[i].ExhibitionName;
  529. // target.id = data[i].ExhibitionID;
  530. // target.url = "/exhibition/" + data[i].ExhibitionID;
  531. // arr.push(target);
  532. // }
  533. // this.cards = arr;
  534. }
  535. }
  536. })
  537. .catch((error) =>
  538. console.log(error)
  539. );
  540. },
  541. getPopularCategory() {
  542. this.$axios
  543. .get(`/trending/api/Exhibition/PopularCategory?Lang=${this.$i18n.localeProperties["langQuery"]}&Count=10`)
  544. .then((response) => {
  545. if(response && response.data && response.data.DATA && response.data.DATA.rel){
  546. let data = response.data.DATA.rel
  547. if(data.length>0){
  548. let arr = [];
  549. for(let i=0;i<data.length;i++){
  550. let target = {};
  551. target.name = data[i].CategoryName;
  552. target.id = data[i].CategoryID;
  553. target.url = "/exhibition?category=" + data[i].CategoryID;
  554. arr.push(target);
  555. }
  556. this.categories = arr;
  557. }
  558. }
  559. })
  560. .catch((error) =>
  561. console.log(error)
  562. );
  563. },
  564. }
  565. };
  566. </script>
  567. <style lang="scss" scoped>
  568. </style>