solutions.vue 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <!-- @format -->
  2. <script lang="ts" setup>
  3. import solutionEcommerce from '~/assets/images/solutions_ecommerce.png'
  4. import solutionBrands from '~/assets/images/solutions_brand.png'
  5. import solutionRetailers from '~/assets/images/solutions_retailers.png'
  6. import solutionEcommerce01 from '~/assets/images/solutions_ecommerce01.png'
  7. import solutionEcommerce02 from '~/assets/images/solutions_ecommerce02.png'
  8. import solutionEcommerce03 from '~/assets/images/solutions_ecommerce03.png'
  9. import solutionEcommerce04 from '~/assets/images/solutions_ecommerce04.png'
  10. import solutionBrand01 from '~/assets/images/solutions_brand01.png'
  11. import solutionBrand02 from '~/assets/images/solutions_brand02.png'
  12. import solutionBrand03 from '~/assets/images/solutions_brand03.png'
  13. import solutionBrand04 from '~/assets/images/solutions_brand04.png'
  14. import solutionRetailers01 from '~/assets/images/solutions_retailers01.png'
  15. import solutionRetailers02 from '~/assets/images/solutions_retailers02.png'
  16. import solutionRetailers03 from '~/assets/images/solutions_retailers03.png'
  17. import solutionRetailers04 from '~/assets/images/solutions_retailers04.png'
  18. const solution = ref('ecommerce')
  19. const list = ref([
  20. {
  21. key: 'ecommerce',
  22. title: 'Ecommerce',
  23. description: 'Scale Smarter with Viral-Ready Products for Online Growth',
  24. masterImg: solutionEcommerce,
  25. list: [
  26. {
  27. title: 'Real-Time Trend Curation',
  28. img: solutionEcommerce01,
  29. subTitle:
  30. 'Our team constantly monitors market shifts, viral demand, and emerging bestsellers to deliver high-potential products to you.',
  31. },
  32. {
  33. img: solutionEcommerce02,
  34. title: 'Low MOQ Limits',
  35. subTitle:
  36. 'With zero MOQ, you can test products risk-free and scale only what sells. Perfect for agile sellers and fast-moving trends!',
  37. },
  38. {
  39. img: solutionEcommerce03,
  40. title: 'Flexible Fulfillment Options',
  41. subTitle:
  42. 'Whether you need dropshipping, bulk shipping, or FBA Prep, we adapt to your business with reliable logistics solutions.',
  43. },
  44. {
  45. img: solutionEcommerce04,
  46. title: 'Winning Product Portfolios',
  47. subTitle:
  48. 'Our pre-built product bundles and curated collections combine complementary bestsellers to boost average order value.',
  49. },
  50. ],
  51. },
  52. {
  53. key: 'brands',
  54. title: 'Brands & Distributors',
  55. description:
  56. 'Power Your Product Line with Trend Intelligence & Agile Supply',
  57. masterImg: solutionBrands,
  58. list: [
  59. {
  60. title: 'OEM/ODM Trend Support',
  61. img: solutionBrand01,
  62. subTitle:
  63. 'We provide trend-based design, packaging, and product development to help brands create unique, market-driven products.',
  64. },
  65. {
  66. img: solutionBrand02,
  67. title: 'Co-Branded Development',
  68. subTitle:
  69. 'Quick-turn co-branded collections to help brands launch exclusive, limited-edition products and increase market impact.',
  70. },
  71. {
  72. img: solutionBrand03,
  73. title: 'Flexible Logistic Solution',
  74. subTitle:
  75. 'Whether it’s bulk shipments, mixed containers, our flexible logistics solutions adapt to your business model and market goals.',
  76. },
  77. {
  78. img: solutionBrand04,
  79. title: 'Exclusive Channel Protection',
  80. subTitle:
  81. 'We protect your brand with exclusive regional rights, limited distribution agreements, and secure your market position.',
  82. },
  83. ],
  84. },
  85. {
  86. key: 'retailers',
  87. title: 'Retailers & Chain Stores',
  88. description: 'Upgrade Your Shelves with Trendy, High-Margin Products',
  89. masterImg: solutionRetailers,
  90. list: [
  91. {
  92. title: 'Ready-to-Display Portfolios',
  93. img: solutionRetailers01,
  94. subTitle:
  95. 'Curated product bundles that align with current trends, ready for effortless shelf display and enhanced retail appeal.',
  96. },
  97. {
  98. img: solutionRetailers02,
  99. title: 'Trend-Aligned Launch Plan',
  100. subTitle:
  101. 'Tailored product launch plans based on market cycles to create a differentiated product portfolio that engages customers.',
  102. },
  103. {
  104. img: solutionRetailers03,
  105. title: 'Store Display Solution',
  106. subTitle:
  107. 'Strategic display guides that show what to place where — helping your team position products by zone and boost visual appeal.',
  108. },
  109. {
  110. img: solutionRetailers04,
  111. title: 'Go-to Market Support',
  112. subTitle:
  113. 'Customizable marketing assets to support both online and offline promotions — helping you boost visibility and drive sales.',
  114. },
  115. ],
  116. },
  117. ])
  118. const solutionList = computed(() => {
  119. return list.value.find((item: any) => item.key === solution.value)?.list
  120. })
  121. </script>
  122. <template>
  123. <div
  124. class="bg-#F3F4FB pt-250px pb-120px data-section"
  125. data-section-color="#F3F4FB"
  126. >
  127. <div class="w-1200-auto text-center">
  128. <h2 class="text-36px fw-800 text-#333 !mb-20px custom-title-font">
  129. Creative, Trend-Driven <span class="custom-title-bg">Solutions</span>
  130. </h2>
  131. <div class="text-#999 text-22px mb-40px">
  132. EJET SPARK FOR
  133. </div>
  134. <div class="flex gap-20px justify-center mb-60px">
  135. <div
  136. v-for="(item, index) in list"
  137. :key="index"
  138. class="py-12px px-30px b-rd-200px text-18px cursor-pointer hover:bg-#9B6CFF hover:text-#fff transition-all duration-300"
  139. :class="
  140. solution === item.key
  141. ? '!bg-#9B6CFF !text-#fff'
  142. : 'bg-#fff text-#767676'
  143. "
  144. @click="solution = item.key"
  145. >
  146. <div>{{ item.title }}</div>
  147. </div>
  148. </div>
  149. <div class="flex gap-120px text-left">
  150. <div class="b-rd-10px w-360px overflow-hidden">
  151. <img
  152. :src="list.find((item) => item.key === solution)?.masterImg"
  153. class="w-100% h-258px"
  154. alt=""
  155. >
  156. <div
  157. class="py-20px px-30px b-rd-tl-10px b-rd-tr-10px mt--60px bg-#fff pos-relative z-100"
  158. >
  159. <h3 class="text-24px fw-bold text-#333">
  160. {{ list.find((item) => item.key === solution)?.title }}
  161. </h3>
  162. <div class="my-22px lh-24px text-#666">
  163. {{ list.find((item) => item.key === solution)?.description }}
  164. </div>
  165. <el-button class="!bg-#fff !b-rd-6px !h-40px">
  166. <nuxt-link to="/solutions">
  167. View Catalogs
  168. </nuxt-link>
  169. </el-button>
  170. </div>
  171. </div>
  172. <div class="flex-1">
  173. <div class="grid grid-cols-2 gap-col-80px gap-row-50px">
  174. <div v-for="(item, index) in solutionList" :key="index">
  175. <img :src="item.img" class="w-50px h-50px" alt="" srcset="">
  176. <h4
  177. class="!mt-20px !mb-10px text-#333 text-18px fw-800 custom-title-font"
  178. >
  179. {{ item.title }}
  180. </h4>
  181. <div class="text-#666 lh-24px">
  182. {{ item.subTitle }}
  183. </div>
  184. </div>
  185. </div>
  186. </div>
  187. </div>
  188. </div>
  189. </div>
  190. </template>
  191. <style lang="less" scoped></style>