dealersearch.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. <template>
  2. <main>
  3. <div class="detail--container--full">
  4. <!-- 풀사이즈 배너 텍스트 1줄용 -->
  5. <FullSizeBannerText1
  6. :imagePath="bannerImagePath"
  7. textLocation="top"
  8. altText="전시장/AAP 전시장/AS센터"
  9. type="cover"
  10. />
  11. <TitleVisual
  12. title="전시장"
  13. description="원하시는 지역의 아우디 전시장 위치 및 연락처를 안내해 드립니다."
  14. textAlign="left"
  15. type="middle"
  16. theme="dark"
  17. :animation="true"
  18. :animationDelay="300"
  19. />
  20. <!-- 딜러 검색 드롭다운 섹션 -->
  21. <div class="dealer--search--section">
  22. <div class="dealer--search--container">
  23. <!-- 전시장 -->
  24. <div class="dealer--category--wrap">
  25. <div
  26. v-for="(region, index) in showrooms"
  27. :key="'showroom-' + index"
  28. class="dealer--region--item"
  29. >
  30. <button
  31. class="dealer--region--header"
  32. @click="toggleRegion('showroom', index)"
  33. :class="{ active: activeRegions.showroom === index }"
  34. >
  35. <span class="dealer--region--name">{{ region.name }}</span>
  36. <span class="dealer--toggle--icon">{{
  37. activeRegions.showroom === index ? "−" : "+"
  38. }}</span>
  39. </button>
  40. <div
  41. v-show="activeRegions.showroom === index"
  42. class="dealer--list--content"
  43. >
  44. <ul class="dealer--list">
  45. <li
  46. v-for="(dealer, dIndex) in region.dealers"
  47. :key="'dealer-' + dIndex"
  48. >
  49. <a :href="dealer.link" class="dealer--link"
  50. >아우디 {{ dealer.name }}</a
  51. >
  52. </li>
  53. </ul>
  54. </div>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. <TitleVisual
  60. title="Audi Approved :plus"
  61. description="원하시는 지역의 아우디 공식 인증 중고차(AAP) 위치 및 연락처를 안내해 드립니다."
  62. textAlign="left"
  63. type="middle"
  64. theme="dark"
  65. :animation="true"
  66. :animationDelay="300"
  67. />
  68. <div class="dealer--search--section">
  69. <div class="dealer--search--container">
  70. <!-- Audi Approved :plus -->
  71. <div class="dealer--category--wrap">
  72. <div
  73. v-for="(region, index) in approvedPlus"
  74. :key="'approved-' + index"
  75. class="dealer--region--item"
  76. >
  77. <button
  78. class="dealer--region--header"
  79. @click="toggleRegion('approved', index)"
  80. :class="{ active: activeRegions.approved === index }"
  81. >
  82. <span class="dealer--region--name">{{ region.name }}</span>
  83. <span class="dealer--toggle--icon">{{
  84. activeRegions.approved === index ? "−" : "+"
  85. }}</span>
  86. </button>
  87. <div
  88. v-show="activeRegions.approved === index"
  89. class="dealer--list--content"
  90. >
  91. <ul class="dealer--list">
  92. <li
  93. v-for="(dealer, dIndex) in region.dealers"
  94. :key="'dealer-' + dIndex"
  95. >
  96. <a :href="dealer.link" class="dealer--link"
  97. >아우디 AAP {{ dealer.name }}</a
  98. >
  99. </li>
  100. </ul>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. </div>
  106. <TitleVisual
  107. title="서비스센터"
  108. description="원하시는 지역의 아우디 서비스 센터 위치 및 연락처를 안내해드립니다.<br/>24시간 긴급출동 서비스 센터: 080-767-2834"
  109. textAlign="left"
  110. type="middle"
  111. theme="dark"
  112. :animation="true"
  113. :animationDelay="300"
  114. />
  115. <div class="dealer--search--section">
  116. <div class="dealer--search--container">
  117. <!-- 서비스센터 -->
  118. <div class="dealer--category--wrap">
  119. <div
  120. v-for="(region, index) in serviceCenters"
  121. :key="'service-' + index"
  122. class="dealer--region--item"
  123. >
  124. <button
  125. class="dealer--region--header"
  126. @click="toggleRegion('service', index)"
  127. :class="{ active: activeRegions.service === index }"
  128. >
  129. <span class="dealer--region--name">{{ region.name }}</span>
  130. <span class="dealer--toggle--icon">{{
  131. activeRegions.service === index ? "−" : "+"
  132. }}</span>
  133. </button>
  134. <div v-show="activeRegions.service === index" class="dealer--list--content">
  135. <ul class="dealer--list">
  136. <li
  137. v-for="(dealer, dIndex) in region.dealers"
  138. :key="'dealer-' + dIndex"
  139. >
  140. <a :href="dealer.link" class="dealer--link"
  141. >아우디 서비스 {{ dealer.name }}</a
  142. >
  143. </li>
  144. </ul>
  145. </div>
  146. </div>
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. </main>
  152. </template>
  153. <script setup>
  154. // 컴포넌트 import
  155. import FullSizeBannerText1 from "~/components/block/fullSizeBannerText1.vue";
  156. import TitleVisual from "~/components/block/TitleVisual.vue";
  157. const bannerImagePath = ref("/img/service/program/banner_1920X1080.avif");
  158. // 딜러 검색 드롭다운 상태 (지역별)
  159. const activeRegions = ref({
  160. showroom: null,
  161. approved: null,
  162. service: null,
  163. });
  164. // 지역 토글 함수
  165. const toggleRegion = (category, index) => {
  166. activeRegions.value[category] =
  167. activeRegions.value[category] === index ? null : index;
  168. };
  169. // 전시장 데이터
  170. const showrooms = ref([
  171. {
  172. name: "서울",
  173. dealers: [
  174. { name: "강서", link: "#" },
  175. { name: "남산", link: "#" },
  176. { name: "대치", link: "#" },
  177. { name: "도산대로", link: "#" },
  178. { name: "동대문", link: "#" },
  179. { name: "송파대로", link: "#" },
  180. ],
  181. },
  182. {
  183. name: "인천/경기",
  184. dealers: [
  185. { name: "동탄", link: "#" },
  186. { name: "분당", link: "#" },
  187. { name: "서수원", link: "#" },
  188. { name: "송도", link: "#" },
  189. { name: "수원", link: "#" },
  190. { name: "컨셉스토어 스타필드 수원", link: "#" },
  191. { name: "스타필드 안성", link: "#" },
  192. { name: "스타필드 하남", link: "#" },
  193. { name: "안양", link: "#" },
  194. { name: "의정부", link: "#" },
  195. { name: "인천", link: "#" },
  196. { name: "일산", link: "#" },
  197. ],
  198. },
  199. {
  200. name: "충청/대전",
  201. dealers: [
  202. { name: "대전", link: "#" },
  203. { name: "천안", link: "#" },
  204. ],
  205. },
  206. {
  207. name: "전북/전주",
  208. dealers: [{ name: "전주", link: "#" }],
  209. },
  210. {
  211. name: "전남/광주",
  212. dealers: [
  213. { name: "광주", link: "#" },
  214. { name: "목포", link: "#" },
  215. ],
  216. },
  217. {
  218. name: "경북/대구",
  219. dealers: [
  220. { name: "대구", link: "#" },
  221. { name: "서대구", link: "#" },
  222. ],
  223. },
  224. {
  225. name: "부산",
  226. dealers: [
  227. { name: "금정", link: "#" },
  228. { name: "해운대", link: "#" },
  229. ],
  230. },
  231. {
  232. name: "경남/울산",
  233. dealers: [
  234. { name: "울산", link: "#" },
  235. { name: "창원", link: "#" },
  236. { name: "컨셉스토어 김해", link: "#" },
  237. ],
  238. },
  239. {
  240. name: "강원/원주",
  241. dealers: [{ name: "원주", link: "#" }],
  242. },
  243. ]);
  244. // Audi Approved :plus 데이터
  245. const approvedPlus = ref([
  246. {
  247. name: "서울",
  248. dealers: [
  249. { name: "동대문", link: "#" },
  250. { name: "가양", link: "#" },
  251. ],
  252. },
  253. {
  254. name: "인천/경기",
  255. dealers: [
  256. { name: "김포", link: "#" },
  257. { name: "분당", link: "#" },
  258. { name: "서수원", link: "#" },
  259. ],
  260. },
  261. {
  262. name: "충청/대전",
  263. dealers: [{ name: "대전", link: "#" }],
  264. },
  265. {
  266. name: "전남/광주",
  267. dealers: [{ name: "광주", link: "#" }],
  268. },
  269. {
  270. name: "전북/전주",
  271. dealers: [{ name: "전주", link: "#" }],
  272. },
  273. {
  274. name: "경북/대구",
  275. dealers: [{ name: "동대구", link: "#" }],
  276. },
  277. {
  278. name: "경남/울산",
  279. dealers: [{ name: "양산", link: "#" }],
  280. },
  281. {
  282. name: "강원/원주",
  283. dealers: [{ name: "원주", link: "#" }],
  284. },
  285. ]);
  286. // 서비스센터 데이터
  287. const serviceCenters = ref([
  288. {
  289. name: "서울",
  290. dealers: [
  291. { name: "개포", link: "#" },
  292. { name: "김포공항", link: "#" },
  293. { name: "남산", link: "#" },
  294. { name: "논현", link: "#" },
  295. { name: "송파대로", link: "#" },
  296. { name: "석촌", link: "#" },
  297. { name: "동대문", link: "#" },
  298. ],
  299. },
  300. {
  301. name: "인천/경기",
  302. dealers: [
  303. { name: "강동", link: "#" },
  304. { name: "동탄", link: "#" },
  305. { name: "분당", link: "#" },
  306. { name: "서수원", link: "#" },
  307. { name: "수원", link: "#" },
  308. { name: "안양", link: "#" },
  309. { name: "인천", link: "#" },
  310. { name: "일산", link: "#" },
  311. ],
  312. },
  313. {
  314. name: "충청/대전",
  315. dealers: [
  316. { name: "대전", link: "#" },
  317. { name: "천안", link: "#" },
  318. { name: "청주", link: "#" },
  319. ],
  320. },
  321. {
  322. name: "전북/전주",
  323. dealers: [{ name: "전주", link: "#" }],
  324. },
  325. {
  326. name: "전남/광주",
  327. dealers: [
  328. { name: "광주", link: "#" },
  329. { name: "목포", link: "#" },
  330. { name: "순천", link: "#" },
  331. ],
  332. },
  333. {
  334. name: "경북/대구",
  335. dealers: [
  336. { name: "대구", link: "#" },
  337. { name: "서대구", link: "#" },
  338. { name: "수성", link: "#" },
  339. { name: "포항", link: "#" },
  340. ],
  341. },
  342. {
  343. name: "부산",
  344. dealers: [
  345. { name: "금정", link: "#" },
  346. { name: "민락", link: "#" },
  347. ],
  348. },
  349. {
  350. name: "경남/울산",
  351. dealers: [
  352. { name: "양산", link: "#" },
  353. { name: "진주", link: "#" },
  354. { name: "창원", link: "#" },
  355. { name: "울산", link: "#" },
  356. ],
  357. },
  358. {
  359. name: "강원/원주",
  360. dealers: [{ name: "원주", link: "#" }],
  361. },
  362. ]);
  363. </script>