index.html 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <!-- Google Tag Manager -->
  5. <script>(function (w, d, s, l, i) {
  6. w[l] = w[l] || []; w[l].push({
  7. 'gtm.start':
  8. new Date().getTime(), event: 'gtm.js'
  9. }); var f = d.getElementsByTagName(s)[0],
  10. j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
  11. 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
  12. })(window, document, 'script', 'dataLayer', 'GTM-W3RJHTZ');</script>
  13. <!-- End Google Tag Manager -->
  14. <script async="" src="https://www.googletagmanager.com/gtm.js?id=GTM-W3RJHTZ"></script>
  15. <!-- <script src="https://connect.facebook.net/signals/config/585285442299590?v=2.9.100&amp;r=stable" async=""></script> -->
  16. <meta charset="UTF-8" />
  17. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  18. <meta http-equiv="X-UA-Compatible" content="ie=edge, Chrome=1" />
  19. <meta http-equiv="Cache-Control" content="no-cache" />
  20. <meta name="copyright" content="2021 © 幸福空間 │ All Rights Reserved." />
  21. <meta name="creation-date" content="2021-08-05 12:00:04 GTM+8" />
  22. <meta name="description" content="讓幸福室內設計,走進您的生活,解決您的裝潢問
  23. 題!幸福空間是台灣最大的室內設計、設計師與設計個案影音平台之一,找尋室內設計點子與案例我
  24. 們一定能幫助你!" />
  25. <meta name="distribution" content="Taiwan" />
  26. <meta name="keywords" content="" />
  27. <meta name="revisit-after" content="1 days" />
  28. <meta name="robots" content="all" />
  29. <meta name="format-detection" content="telephone=no" />
  30. <meta property="og:description" content="讓幸福室內設計,走進您的生活,解決您的裝潢問題!
  31. 幸福空間是台灣最大的室內設計、設計師與設計個案影音平台之一,找尋室內設計點子與案例我們一定能幫助
  32. 你!" />
  33. <meta property="og:site_name" content="幸福空間" />
  34. <meta property="og:title" content="幸福空間 - 台灣最大的室內設計、設計師與設計個案影音平台" />
  35. <meta property="og:type" content="website" />
  36. <meta property="og:locale" content="zh_TW" />
  37. <title>幸福空間 - 室內設計、裝潢、居家生活、影音平台</title>
  38. <link rel="icon" href="../../img/favicon.ico" />
  39. <!-- Fontawesome -->
  40. <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css"
  41. integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous" />
  42. <!-- Bootstrap -->
  43. <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet"
  44. integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous" />
  45. <!-- axios -->
  46. <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  47. <!-- Google Font -->
  48. <link rel="preconnect" href="https://fonts.googleapis.com" />
  49. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
  50. <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600&display=swap" rel="stylesheet" />
  51. <!-- CSS -->
  52. <link rel="stylesheet" href="../../css/reset.css" />
  53. <link rel="stylesheet" href="../../css/lists.css" />
  54. <link rel="stylesheet" href="../../css/all.css" />
  55. <script type="application/ld+json">
  56. {
  57. "@context": "https://schema.org",
  58. "@type": "LocalBusiness",
  59. "@id": "https://hhh.com.tw/",
  60. "image": ["https://hhh.com.tw/_nuxt/img/def1b0a.svg"],
  61. "name": "幸福空間股份有限公司",
  62. "address": "110台北市信義區菸廠路88號五樓之6",
  63. "url": "https://hhh.com.tw/",
  64. "telephone": "+886-2-6617-0123"
  65. }
  66. </script>
  67. <script type="application/ld+json">
  68. {
  69. "@context": "https://schema.org",
  70. "@type": "Organization",
  71. "url": "https://hhh.com.tw/",
  72. "logo": "https://hhh.com.tw/_nuxt/img/def1b0a.svg",
  73. "name": "幸福空間",
  74. "sameAs": [
  75. "https://www.facebook.com/hhhfb/",
  76. "https://page.line.me/ovs4341s",
  77. "https://www.youtube.com/user/gorgeousspace",
  78. "https://www.instagram.com/gorgeous_space/"
  79. ],
  80. "contactPoint": [
  81. {
  82. "@type": "ContactPoint",
  83. "areaServed": "TW",
  84. "telephone": "+886-2-6617-0123",
  85. "contactType": "customer service",
  86. "availableLanguage": "Chinese"
  87. }
  88. ]
  89. }
  90. </script>
  91. <script type="application/ld+json">
  92. {
  93. "@context": "https://schema.org",
  94. "@type": "WebSite",
  95. "name": "幸福空間-室內設計、裝潢、居家生活、影音平台",
  96. "author": "幸福空間",
  97. "url": "https://hhh.com.tw/",
  98. "potentialAction": {
  99. "@type": "SearchAction",
  100. "target": "https://hhh.com.tw/search/lists/case/{search_term_string}-keyword/",
  101. "query-input": "required name=search_term_string"
  102. }
  103. }
  104. </script>
  105. <script type="application/ld+json">
  106. {
  107. "@context": "https://schema.org",
  108. "@type": "BreadcrumbList",
  109. "itemListElement": [
  110. {
  111. "@type": "ListItem",
  112. "position": 1,
  113. "name": "幸福空間",
  114. "item": "https://hhh.com.tw/"
  115. },
  116. {
  117. "@type": "ListItem",
  118. "position": 2,
  119. "name": "設計師列表頁",
  120. "item": "https://hhh.com.tw/designers/lists/"
  121. }
  122. ]
  123. }
  124. </script>
  125. </head>
  126. <body>
  127. <!-- 動態載入 -->
  128. <div id="navbar"></div>
  129. <!-- searchModal -->
  130. <div class="modal fade search-modal" id="searchModal" tabindex="-1" aria-labelledby="searchModalLabel"
  131. aria-hidden="true">
  132. <div class="modal-dialog modal-dialog-centered modal-lg">
  133. <div class="modal-content">
  134. <div class="modal-body">
  135. <div class="input-group">
  136. <input type="text" class="form-control keyword" placeholder="請輸入關鍵字" aria-label="Please enter keywords"
  137. aria-describedby="search-input" />
  138. <span class="input-group-text" id="search-input">全站搜尋</span>
  139. </div>
  140. </div>
  141. <section class="keyword-list">
  142. <span>熱搜關鍵字:</span>
  143. <ul>
  144. <li>客變</li>
  145. <li>小坪數</li>
  146. <li>老屋翻新</li>
  147. <li>收納</li>
  148. <li>軟裝佈置</li>
  149. <li>新手裝修</li>
  150. <li>風水</li>
  151. <li>北歐風</li>
  152. </ul>
  153. </section>
  154. </div>
  155. </div>
  156. </div>
  157. <div class="container d-flex flex-column align-items-center justify-content-center list-content">
  158. <h2 class="list-headline">全國室內設計師推薦</h2>
  159. <!-- 搜尋 -->
  160. <div class="row w-100 justify-content-center mt-5">
  161. <div class="col-md-10">
  162. <div class="card search-card">
  163. <div class="card-body p-4">
  164. <div class="input-group input-group-lg mb-2">
  165. <input type="text" placeholder="請輸入關鍵字" aria-label="請輸入關鍵字" aria-describedby="searchbar"
  166. class="form-control border-primary keywords" autocomplete="off">
  167. <div class="input-group-append">
  168. <button onclick="designerSearch()" type="button" data-ga="View_Search_Results"
  169. class="input-group-text">搜尋</button>
  170. </div>
  171. </div>
  172. <div class="search-bar-keyword d-flex mt-3 pl-4">
  173. <p>熱搜關鍵字</p>
  174. <ul class="d-flex flex-wrap ps-3">
  175. <li>
  176. <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">客變</a>
  177. </li>
  178. <li>
  179. <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">小坪數</a>
  180. </li>
  181. <li>
  182. <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">老屋翻新</a>
  183. </li>
  184. <li>
  185. <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">收納</a>
  186. </li>
  187. <!-- <li>
  188. <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">軟裝佈置</a>
  189. </li>
  190. <li>
  191. <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">新手裝修</a>
  192. </li>
  193. <li>
  194. <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">風水</a>
  195. </li> -->
  196. <li>
  197. <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">北歐風</a>
  198. </li>
  199. </ul>
  200. </div>
  201. </div>
  202. </div>
  203. </div>
  204. </div>
  205. <!-- 篩選 -->
  206. <div class="row w-100 mt-5 filter-list">
  207. <div class="col-12">
  208. <p class="mb-3 text-muted">
  209. 總共 <span class="text-primary font-weight-bold fs-4">254</span> 筆全國室內設計師符合條件
  210. </p>
  211. <div class="card text-dark bg-light border-0 mb-3 w-100 shadow-sm">
  212. <div class="card-body d-flex flex-wrap">
  213. <div class="dropdown">
  214. <button class="btn dropdown-toggle fw-bold search-tab" type="button" id="city" data-bs-toggle="dropdown"
  215. aria-expanded="false">
  216. 所在縣市
  217. </button>
  218. <ul class="dropdown-menu" aria-labelledby="city">
  219. <li>
  220. <div class="form-check">
  221. <input class="form-check-input" type="radio" name="city" id="taipei_city">
  222. <label class="form-check-label" for="taipei_city">
  223. 台北市
  224. </label>
  225. </div>
  226. </li>
  227. <li>
  228. <div class="form-check">
  229. <input class="form-check-input" type="radio" name="city" id="new_taipei_city">
  230. <label class="form-check-label" for="new_taipei_city">
  231. 新北市
  232. </label>
  233. </div>
  234. </li>
  235. <li>
  236. <div class="form-check">
  237. <input class="form-check-input" type="radio" name="city" id="keelung_city">
  238. <label class="form-check-label" for="keelung_city">
  239. 基隆市
  240. </label>
  241. </div>
  242. </li>
  243. <li>
  244. <div class="form-check">
  245. <input class="form-check-input" type="radio" name="city" id="taoyuan_city">
  246. <label class="form-check-label" for="taoyuan_city">
  247. 桃園市
  248. </label>
  249. </div>
  250. </li>
  251. <li>
  252. <div class="form-check">
  253. <input class="form-check-input" type="radio" name="city" id="hsinchu_city">
  254. <label class="form-check-label" for="hsinchu_city">
  255. 新竹市
  256. </label>
  257. </div>
  258. </li>
  259. <li>
  260. <div class="form-check">
  261. <input class="form-check-input" type="radio" name="city" id="hsinchu_county">
  262. <label class="form-check-label" for="hsinchu_county">
  263. 新竹縣
  264. </label>
  265. </div>
  266. </li>
  267. <li>
  268. <div class="form-check">
  269. <input class="form-check-input" type="radio" name="city" id="miaoli_county">
  270. <label class="form-check-label" for="miaoli_county">
  271. 苗栗縣
  272. </label>
  273. </div>
  274. </li>
  275. <li>
  276. <div class="form-check">
  277. <input class="form-check-input" type="radio" name="city" id="taichung_city">
  278. <label class="form-check-label" for="taichung_city">
  279. 台中市
  280. </label>
  281. </div>
  282. </li>
  283. <li>
  284. <div class="form-check">
  285. <input class="form-check-input" type="radio" name="city" id="changhua_county">
  286. <label class="form-check-label" for="changhua_county">
  287. 彰化縣
  288. </label>
  289. </div>
  290. </li>
  291. <li>
  292. <div class="form-check">
  293. <input class="form-check-input" type="radio" name="city" id="nantou_county">
  294. <label class="form-check-label" for="nantou_county">
  295. 南投縣
  296. </label>
  297. </div>
  298. </li>
  299. <li>
  300. <div class="form-check">
  301. <input class="form-check-input" type="radio" name="city" id="yunlin_county">
  302. <label class="form-check-label" for="yunlin_county">
  303. 雲林縣
  304. </label>
  305. </div>
  306. </li>
  307. <li>
  308. <div class="form-check">
  309. <input class="form-check-input" type="radio" name="city" id="chiayi_city">
  310. <label class="form-check-label" for="chiayi_city">
  311. 嘉義市
  312. </label>
  313. </div>
  314. </li>
  315. <li>
  316. <div class="form-check">
  317. <input class="form-check-input" type="radio" name="city" id="chiayi_county">
  318. <label class="form-check-label" for="chiayi_county">
  319. 嘉義縣
  320. </label>
  321. </div>
  322. </li>
  323. <li>
  324. <div class="form-check">
  325. <input class="form-check-input" type="radio" name="city" id="tainan_city">
  326. <label class="form-check-label" for="tainan_city">
  327. 台南市
  328. </label>
  329. </div>
  330. </li>
  331. <li>
  332. <div class="form-check">
  333. <input class="form-check-input" type="radio" name="city" id="kaohsiung_city">
  334. <label class="form-check-label" for="kaohsiung_city">
  335. 高雄市
  336. </label>
  337. </div>
  338. </li>
  339. <li>
  340. <div class="form-check">
  341. <input class="form-check-input" type="radio" name="city" id="pingtung_county">
  342. <label class="form-check-label" for="pingtung_county">
  343. 屏東縣
  344. </label>
  345. </div>
  346. </li>
  347. <li>
  348. <div class="form-check">
  349. <input class="form-check-input" type="radio" name="city" id="yilan_county">
  350. <label class="form-check-label" for="yilan_county">
  351. 宜蘭縣
  352. </label>
  353. </div>
  354. </li>
  355. <li>
  356. <div class="form-check">
  357. <input class="form-check-input" type="radio" name="city" id="hualien_county">
  358. <label class="form-check-label" for="hualien_county">
  359. 花蓮縣
  360. </label>
  361. </div>
  362. </li>
  363. <li>
  364. <div class="form-check">
  365. <input class="form-check-input" type="radio" name="city" id="taitung_county">
  366. <label class="form-check-label" for="taitung_county">
  367. 台東縣
  368. </label>
  369. </div>
  370. </li>
  371. <li>
  372. <div class="form-check">
  373. <input class="form-check-input" type="radio" name="city" id="penghu_county">
  374. <label class="form-check-label" for="penghu_county">
  375. 澎湖縣
  376. </label>
  377. </div>
  378. </li>
  379. <li>
  380. <div class="form-check">
  381. <input class="form-check-input" type="radio" name="city" id="kinmen_county">
  382. <label class="form-check-label" for="kinmen_county">
  383. 金門縣
  384. </label>
  385. </div>
  386. </li>
  387. <li>
  388. <div class="form-check">
  389. <input class="form-check-input" type="radio" name="city" id="lienchiang_county">
  390. <label class="form-check-label" for="lienchiang_county">
  391. 連江縣
  392. </label>
  393. </div>
  394. </li>
  395. </ul>
  396. </div>
  397. <div class="dropdown">
  398. <button class="btn dropdown-toggle fw-bold search-tab" type="button" id="region" data-bs-toggle="dropdown"
  399. aria-expanded="false">
  400. 接案地區
  401. </button>
  402. <ul class="dropdown-menu" aria-labelledby="region">
  403. <!-- <li>
  404. <div class="form-check">
  405. <input class="form-check-input" type="radio" name="region" id="all_region">
  406. <label class="form-check-label" for="all_region">
  407. 不拘
  408. </label>
  409. </div>
  410. </li> -->
  411. <li>
  412. <div class="form-check">
  413. <input class="form-check-input" type="radio" name="region" id="north_region">
  414. <label class="form-check-label" for="north_region">
  415. 北區
  416. </label>
  417. </div>
  418. </li>
  419. <li>
  420. <div class="form-check">
  421. <input class="form-check-input" type="radio" name="region" id="central_region">
  422. <label class="form-check-label" for="central_region">
  423. 中區
  424. </label>
  425. </div>
  426. </li>
  427. <li>
  428. <div class="form-check">
  429. <input class="form-check-input" type="radio" name="region" id="south_region">
  430. <label class="form-check-label" for="south_region">
  431. 南區
  432. </label>
  433. </div>
  434. </li>
  435. <li>
  436. <div class="form-check">
  437. <input class="form-check-input" type="radio" name="region" id="east_region">
  438. <label class="form-check-label" for="east_region">
  439. 宜蘭花東
  440. </label>
  441. </div>
  442. </li>
  443. <li>
  444. <div class="form-check">
  445. <input class="form-check-input" type="radio" name="region" id="outlying_region">
  446. <label class="form-check-label" for="outlying_region">
  447. 離島地區
  448. </label>
  449. </div>
  450. </li>
  451. <li>
  452. <div class="form-check">
  453. <input class="form-check-input" type="radio" name="region" id="overseas_region">
  454. <label class="form-check-label" for="overseas_region">
  455. 海外地區
  456. </label>
  457. </div>
  458. </li>
  459. </ul>
  460. </div>
  461. <div class="dropdown">
  462. <button class="btn dropdown-toggle fw-bold search-tab" type="button" id="dtype" data-bs-toggle="dropdown"
  463. aria-expanded="false">
  464. 接案類型
  465. </button>
  466. <ul class="dropdown-menu" aria-labelledby="dtype">
  467. <!-- <li>
  468. <div class="form-check">
  469. <input class="form-check-input" type="radio" name="d_type" id="d_typeall">
  470. <label class="form-check-label" for="d_typeall">
  471. 不拘
  472. </label>
  473. </div>
  474. </li> -->
  475. <li>
  476. <div class="form-check">
  477. <input class="form-check-input" type="radio" name="d_type" id="d_typesmall">
  478. <label class="form-check-label" for="d_typesmall">
  479. 小坪數
  480. </label>
  481. </div>
  482. </li>
  483. <li>
  484. <div class="form-check">
  485. <input class="form-check-input" type="radio" name="d_type" id="d_typestandard">
  486. <label class="form-check-label" for="d_typestandard">
  487. 標準格局
  488. </label>
  489. </div>
  490. </li>
  491. <li>
  492. <div class="form-check">
  493. <input class="form-check-input" type="radio" name="d_type" id="d_typevilla">
  494. <label class="form-check-label" for="d_typevilla">
  495. 別墅
  496. </label>
  497. </div>
  498. </li>
  499. <li>
  500. <div class="form-check">
  501. <input class="form-check-input" type="radio" name="d_type" id="d_typebig">
  502. <label class="form-check-label" for="d_typebig">
  503. 大坪數
  504. </label>
  505. </div>
  506. </li>
  507. <li>
  508. <div class="form-check">
  509. <input class="form-check-input" type="radio" name="d_type" id="d_typemiddle">
  510. <label class="form-check-label" for="d_typemiddle">
  511. 樓中樓
  512. </label>
  513. </div>
  514. </li>
  515. <li>
  516. <div class="form-check">
  517. <input class="form-check-input" type="radio" name="d_type" id="d_typesample">
  518. <label class="form-check-label" for="d_typesample">
  519. 實品/樣品屋
  520. </label>
  521. </div>
  522. </li>
  523. <li>
  524. <div class="form-check">
  525. <input class="form-check-input" type="radio" name="d_type" id="d_typecommercial">
  526. <label class="form-check-label" for="d_typecommercial">
  527. 商業空間
  528. </label>
  529. </div>
  530. </li>
  531. <li>
  532. <div class="form-check">
  533. <input class="form-check-input" type="radio" name="d_type" id="d_typeraisehigh">
  534. <label class="form-check-label" for="d_typeraisehigh">
  535. 挑高樓層
  536. </label>
  537. </div>
  538. </li>
  539. <li>
  540. <div class="form-check">
  541. <input class="form-check-input" type="radio" name="d_type" id="d_typeworkspace">
  542. <label class="form-check-label" for="d_typeworkspace">
  543. 工作空間
  544. </label>
  545. </div>
  546. </li>
  547. <li>
  548. <div class="form-check">
  549. <input class="form-check-input" type="radio" name="d_type" id="d_typedining">
  550. <label class="form-check-label" for="d_typedining">
  551. 餐飲空間
  552. </label>
  553. </div>
  554. </li>
  555. <li>
  556. <div class="form-check">
  557. <input class="form-check-input" type="radio" name="d_type" id="d_typehomestay">
  558. <label class="form-check-label" for="d_typehomestay">
  559. 民宿旅館
  560. </label>
  561. </div>
  562. </li>
  563. <li>
  564. <div class="form-check">
  565. <input class="form-check-input" type="radio" name="d_type" id="d_typepublic">
  566. <label class="form-check-label" for="d_typepublic">
  567. 公共空間
  568. </label>
  569. </div>
  570. </li>
  571. <li>
  572. <div class="form-check">
  573. <input class="form-check-input" type="radio" name="d_type" id="d_typerenovation">
  574. <label class="form-check-label" for="d_typerenovation">
  575. 老屋翻新
  576. </label>
  577. </div>
  578. </li>
  579. </ul>
  580. </div>
  581. <div class="dropdown">
  582. <button class="btn dropdown-toggle fw-bold search-tab" type="button" id="dstyle" data-bs-toggle="dropdown"
  583. aria-expanded="false">
  584. 接案風格
  585. </button>
  586. <ul class="dropdown-menu" aria-labelledby="dstyle">
  587. <!-- <li>
  588. <div class="form-check">
  589. <input class="form-check-input" type="radio" name="d_style" id="d_styleall">
  590. <label class="form-check-label" for="d_styleall">
  591. 不拘
  592. </label>
  593. </div>
  594. </li> -->
  595. <li>
  596. <div class="form-check">
  597. <input class="form-check-input" type="radio" name="d_style" id="d_stylenordic">
  598. <label class="form-check-label" for="d_stylenordic">
  599. 北歐風
  600. </label>
  601. </div>
  602. </li>
  603. <li>
  604. <div class="form-check">
  605. <input class="form-check-input" type="radio" name="d_style" id="d_stylemodern">
  606. <label class="form-check-label" for="d_stylemodern">
  607. 現代風
  608. </label>
  609. </div>
  610. </li>
  611. <li>
  612. <div class="form-check">
  613. <input class="form-check-input" type="radio" name="d_style" id="d_styleindustry">
  614. <label class="form-check-label" for="d_styleindustry">
  615. 工業風
  616. </label>
  617. </div>
  618. </li>
  619. <li>
  620. <div class="form-check">
  621. <input class="form-check-input" type="radio" name="d_style" id="d_styleamerican">
  622. <label class="form-check-label" for="d_styleamerican">
  623. 美式風
  624. </label>
  625. </div>
  626. </li>
  627. <li>
  628. <div class="form-check">
  629. <input class="form-check-input" type="radio" name="d_style" id="d_styleleisure">
  630. <label class="form-check-label" for="d_styleleisure">
  631. 休閒多元
  632. </label>
  633. </div>
  634. </li>
  635. <li>
  636. <div class="form-check">
  637. <input class="form-check-input" type="radio" name="d_style" id="d_stylevanguard">
  638. <label class="form-check-label" for="d_stylevanguard">
  639. 前衛風
  640. </label>
  641. </div>
  642. </li>
  643. <li>
  644. <div class="form-check">
  645. <input class="form-check-input" type="radio" name="d_style" id="d_stylerustuc">
  646. <label class="form-check-label" for="d_stylerustuc">
  647. 鄉村風
  648. </label>
  649. </div>
  650. </li>
  651. <li>
  652. <div class="form-check">
  653. <input class="form-check-input" type="radio" name="d_style" id="d_stylemashup">
  654. <label class="form-check-label" for="d_stylemashup">
  655. 混搭風
  656. </label>
  657. </div>
  658. </li>
  659. <li>
  660. <div class="form-check">
  661. <input class="form-check-input" type="radio" name="d_style" id="d_styleneoclassic">
  662. <label class="form-check-label" for="d_styleneoclassic">
  663. 新古典
  664. </label>
  665. </div>
  666. </li>
  667. <li>
  668. <div class="form-check">
  669. <input class="form-check-input" type="radio" name="d_style" id="d_styleluxurious">
  670. <label class="form-check-label" for="d_styleluxurious">
  671. 奢華風
  672. </label>
  673. </div>
  674. </li>
  675. <li>
  676. <div class="form-check">
  677. <input class="form-check-input" type="radio" name="d_style" id="d_styleclassical">
  678. <label class="form-check-label" for="d_styleclassical">
  679. 古典風
  680. </label>
  681. </div>
  682. </li>
  683. <li>
  684. <div class="form-check">
  685. <input class="form-check-input" type="radio" name="d_style" id="d_styleexotic">
  686. <label class="form-check-label" for="d_styleexotic">
  687. 異國風
  688. </label>
  689. </div>
  690. </li>
  691. <li>
  692. <div class="form-check">
  693. <input class="form-check-input" type="radio" name="d_style" id="d_stylezen">
  694. <label class="form-check-label" for="d_stylezen">
  695. 日式禪風
  696. </label>
  697. </div>
  698. </li>
  699. <li>
  700. <div class="form-check">
  701. <input class="form-check-input" type="radio" name="d_style" id="d_styleoriental">
  702. <label class="form-check-label" for="d_styleoriental">
  703. 東方風
  704. </label>
  705. </div>
  706. </li>
  707. <li>
  708. <div class="form-check">
  709. <input class="form-check-input" type="radio" name="d_style" id="d_stylemuju">
  710. <label class="form-check-label" for="d_stylemuju">
  711. 無印風
  712. </label>
  713. </div>
  714. </li>
  715. <li>
  716. <div class="form-check">
  717. <input class="form-check-input" type="radio" name="d_style" id="d_styleminimalism">
  718. <label class="form-check-label" for="d_styleminimalism">
  719. 簡約風
  720. </label>
  721. </div>
  722. </li>
  723. <li>
  724. <div class="form-check">
  725. <input class="form-check-input" type="radio" name="d_style" id="d_stylejpstyle">
  726. <label class="form-check-label" for="d_stylejpstyle">
  727. 日式風
  728. </label>
  729. </div>
  730. </li>
  731. <li>
  732. <div class="form-check">
  733. <input class="form-check-input" type="radio" name="d_style" id="d_styleentrylux">
  734. <label class="form-check-label" for="d_styleentrylux">
  735. 輕奢風
  736. </label>
  737. </div>
  738. </li>
  739. </ul>
  740. </div>
  741. <div class="dropdown">
  742. <button class="btn dropdown-toggle fw-bold search-tab" type="button" id="budget" data-bs-toggle="dropdown"
  743. aria-expanded="false">
  744. 接案預算
  745. </button>
  746. <ul class="dropdown-menu" aria-labelledby="budget">
  747. <!-- <li>
  748. <div class="form-check">
  749. <input class="form-check-input" type="radio" name="d_budget" id="d_budgetall">
  750. <label class="form-check-label" for="d_budgetall">
  751. 不拘
  752. </label>
  753. </div>
  754. </li> -->
  755. <li>
  756. <div class="form-check">
  757. <input class="form-check-input" type="radio" name="d_budget" id="d_budgetd100">
  758. <label class="form-check-label" for="d_budgetd100">
  759. 100萬以下
  760. </label>
  761. </div>
  762. </li>
  763. <li>
  764. <div class="form-check">
  765. <input class="form-check-input" type="radio" name="d_budget" id="d_budgetd200">
  766. <label class="form-check-label" for="d_budgetd200">
  767. 100~200萬
  768. </label>
  769. </div>
  770. </li>
  771. <li>
  772. <div class="form-check">
  773. <input class="form-check-input" type="radio" name="d_budget" id="d_budgetd300">
  774. <label class="form-check-label" for="d_budgetd300">
  775. 200~300萬
  776. </label>
  777. </div>
  778. </li>
  779. <li>
  780. <div class="form-check">
  781. <input class="form-check-input" type="radio" name="d_budget" id="d_budgetd400">
  782. <label class="form-check-label" for="d_budgetd400">
  783. 300~400萬
  784. </label>
  785. </div>
  786. </li>
  787. <li>
  788. <div class="form-check">
  789. <input class="form-check-input" type="radio" name="d_budget" id="d_budgetd500">
  790. <label class="form-check-label" for="d_budgetd500">
  791. 400~500萬
  792. </label>
  793. </div>
  794. </li>
  795. <li>
  796. <div class="form-check">
  797. <input class="form-check-input" type="radio" name="d_budget" id="d_budgetd501">
  798. <label class="form-check-label" for="d_budgetd501">
  799. 500萬以上
  800. </label>
  801. </div>
  802. </li>
  803. </ul>
  804. </div>
  805. <div class="dropdown">
  806. <button class="btn dropdown-toggle fw-bold search-tab" type="button" id="arch" data-bs-toggle="dropdown"
  807. aria-expanded="false">
  808. 建築師執照
  809. </button>
  810. <ul class="dropdown-menu" aria-labelledby="arch">
  811. <li>
  812. <div class="form-check">
  813. <input class="form-check-input" type="radio" name="darch" id="darchall">
  814. <label class="form-check-label" for="darchall">
  815. 不拘
  816. </label>
  817. </div>
  818. </li>
  819. <li>
  820. <div class="form-check">
  821. <input class="form-check-input" type="radio" name="darch" id="darchY">
  822. <label class="form-check-label" for="darchY">
  823. </label>
  824. </div>
  825. </li>
  826. </ul>
  827. </div>
  828. <div class="dropdown">
  829. <button class="btn dropdown-toggle fw-bold search-tab" type="button" id="award" data-bs-toggle="dropdown"
  830. aria-expanded="false">
  831. 亞洲設計獎得主
  832. </button>
  833. <ul class="dropdown-menu" aria-labelledby="award">
  834. <li>
  835. <div class="form-check">
  836. <input class="form-check-input" type="radio" name="award" id="awardall">
  837. <label class="form-check-label" for="awardall">
  838. 不拘
  839. </label>
  840. </div>
  841. </li>
  842. <li>
  843. <div class="form-check">
  844. <input class="form-check-input" type="radio" name="award" id="awardY">
  845. <label class="form-check-label" for="awardY">
  846. </label>
  847. </div>
  848. </li>
  849. </ul>
  850. </div>
  851. </div>
  852. </div>
  853. <div class="row">
  854. <div class="col-md-9">
  855. <div class="d-flex flex-wrap align-items-center">
  856. <div class="text-primary d-flex flex-wrap align-items-center search-tab-result">
  857. <!-- <span class="me-3">
  858. <span class="budget">
  859. 接案地區:不拘
  860. <img src="https://hhh.com.tw/assets/images/section/icon/close-btn-search.svg" alt="close-btn-search">
  861. </span>
  862. </span> -->
  863. <!-- <button type="button" class="btn btn-light btn-sm text-muted px-3">全部清除</button> -->
  864. </div>
  865. <button type="button" id="removeResultBtn" class="btn btn-light btn-sm text-muted px-3">全部清除</button>
  866. </div>
  867. </div>
  868. <div class="col-md-3">
  869. <div class="d-flex justify-content-end search-btn-filter">
  870. <button id="hot">
  871. 人氣
  872. </button>
  873. <span class="mx-1">|</span>
  874. <button id="new">
  875. 最新
  876. </button>
  877. <span class="mx-1">|</span>
  878. <button id="recommend" class="active">
  879. 推薦
  880. </button>
  881. </div>
  882. </div>
  883. </div>
  884. <!-- 設計師列表 -->
  885. <div class="row mt-5" id="designerList">
  886. <!-- 動態載入 -->
  887. </div>
  888. <!-- 分頁 -->
  889. <div class="d-flex justify-content-center my-5">
  890. <nav aria-label="Page navigation example">
  891. <ul class="pagination border list-pagination">
  892. <li class="page-item">
  893. <a class="page-link" href="#" aria-label="Previous">
  894. <span aria-hidden="true"><</span>
  895. </a>
  896. </li>
  897. <li class="page-item">
  898. <a class="page-link" href="#">1</a>
  899. </li>
  900. <li class="page-item">
  901. <a class="page-link" href="#">2</a>
  902. </li>
  903. <li class="page-item">
  904. <a class="page-link" href="#">3</a>
  905. </li>
  906. <li class="page-item">
  907. <a class="page-link" href="#" aria-label="Next">
  908. <span aria-hidden="true">></span>
  909. </a>
  910. </li>
  911. </ul>
  912. </nav>
  913. </div>
  914. </div>
  915. </div>
  916. </div>
  917. <!-- 動態載入 -->
  918. <div id="btn-box"></div>
  919. <div id="footer" class="d-none d-lg-block"></div>
  920. <!-- jQuery -->
  921. <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  922. <!-- Bootstrap -->
  923. <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.10.1/dist/umd/popper.min.js"
  924. integrity="sha384-W8fXfP3gkOKtndU4JGtKDvXbO53Wy8SZCQHczT5FMiiqmQfUpWbYdTil/SxwZgAN"
  925. crossorigin="anonymous"></script>
  926. <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.min.js"
  927. integrity="sha384-skAcpIdS7UcVUC05LJ9Dxay8AXcDYfBJqt1CJ85S/CFujBsIzCIv+l9liuYLaMQ/"
  928. crossorigin="anonymous"></script>
  929. <script src="./js/main.js"></script>
  930. <script>
  931. // $('#navbar').load('../../template/navbar.html');
  932. // $('#removeResultBtn').hide(); // 隱藏全部清除按鈕
  933. // // 處理 radio 選取狀態
  934. // $('.filter-list .form-check').click(function (e) {
  935. // e.preventDefault();
  936. // $(this).find('.form-check-input').prop('checked', true);
  937. // // 取得 radio 按鈕的 label
  938. // let radioLabel = $(this).find('.form-check-label').text().trim().replace(/\s+/g, ' '); // 移除換行空白
  939. // console.log('radioLabel', radioLabel);
  940. // // 取上一層 search-tab 按鈕文字
  941. // let buttonValue = $(this).closest('.dropdown').find('.search-tab').text().trim();
  942. // console.log('Selected button text:', buttonValue);
  943. // let buttonId = $(this).closest('.dropdown').find('.search-tab').attr('id');
  944. // console.log('buttonId', buttonId);
  945. // updateSelectedOptions(buttonId, buttonValue, radioLabel);
  946. // });
  947. // let filterList = []; // 篩選條件
  948. // // 更新篩選狀態
  949. // function updateSelectedOptions(id, button, radio) {
  950. // console.log('更新篩選狀態', button, radio);
  951. // if (filterList.length) {
  952. // let exists = false; // 判斷是否已存在
  953. // for (let index = 0; index < filterList.length; index++) {
  954. // const element = filterList[index];
  955. // // 如有重複 button 只改 radio 狀態
  956. // if (element.text === button) {
  957. // element.value = radio;
  958. // exists = true;
  959. // // 更新篩選的值
  960. // $(`.search-tab-result .budget:contains(${button})`).find('p').text(`${button}:${radio}`);
  961. // // $(`#${id} ul`).find('.form-check-input').prop('checked', true);
  962. // }
  963. // }
  964. // // 如果 filterList 中不存在則新增
  965. // if (!exists) {
  966. // const newItem = {
  967. // id: id,
  968. // text: button,
  969. // value: radio
  970. // };
  971. // filterList.push(newItem);
  972. // createFilterHtml(newItem);
  973. // }
  974. // } else {
  975. // // 儲存篩選條件
  976. // filterList.push({
  977. // id: id,
  978. // text: button,
  979. // value: radio
  980. // })
  981. // for (let index = 0; index < filterList.length; index++) {
  982. // const element = filterList[index];
  983. // createFilterHtml(element);
  984. // }
  985. // }
  986. // designerSearch(); // 搜尋
  987. // console.log('filterList', filterList);
  988. // // 切換按鈕選取狀態
  989. // $('.dropdown').each(function () {
  990. // let hasCheckedRadio = $(this).find('input[type="radio"]:checked').length > 0;
  991. // $(this).find('.search-tab').toggleClass('active', hasCheckedRadio);
  992. // });
  993. // }
  994. // // 新增篩選條件 HTML
  995. // function createFilterHtml(item) {
  996. // let dom = `
  997. // <span class="me-3">
  998. // <span class="d-flex budget">
  999. // <p class="me-1">${item.text}:${item.value}</p>
  1000. // <img src="https://hhh.com.tw/assets/images/section/icon/close-btn-search.svg" alt="close-btn-search">
  1001. // </span>
  1002. // </span>`;
  1003. // $('.search-tab-result').append(dom);
  1004. // $('#removeResultBtn').show();
  1005. // }
  1006. // let page = 1; // 當前頁數
  1007. // let pageSize = 18; // 每頁數量
  1008. // // 列表篩選
  1009. // async function designerSearch(type = "") {
  1010. // // 預設排序為 recommend
  1011. // let url = `https://m3.hhh.com.tw:18673/designer_search?page=${page}&page_size=${pageSize}&order_by=recommend`;
  1012. // console.log('type', type);
  1013. // if (type === "order_by") {
  1014. // url += `&${type}=${assignOrder}`
  1015. // }
  1016. // if (filterList.length) {
  1017. // filterList.map(item => {
  1018. // if (item.id === 'budget') {
  1019. // switch (item.value) {
  1020. // case "100萬以下":
  1021. // url += `&${item.id}=1`
  1022. // break;
  1023. // case "100~200萬":
  1024. // url += `&${item.id}=2`
  1025. // break;
  1026. // case "200~300萬":
  1027. // url += `&${item.id}=3`
  1028. // break;
  1029. // case "300~400萬":
  1030. // url += `&${item.id}=4`
  1031. // break;
  1032. // case "400~500萬":
  1033. // url += `&${item.id}=5`
  1034. // break;
  1035. // case "500萬以上":
  1036. // url += `&${item.id}=6`
  1037. // break;
  1038. // default:
  1039. // break;
  1040. // }
  1041. // } else {
  1042. // url += `&${item.id}=${item.value}`
  1043. // }
  1044. // })
  1045. // }
  1046. // console.log('url >>', url);
  1047. // let resultHtml = '';
  1048. // try {
  1049. // const response = await axios.get(url);
  1050. // console.log("response", response);
  1051. // let totalCount = response.data.total_count;
  1052. // let totalPages = Math.ceil(totalCount / pageSize);
  1053. // console.log('totalCount', totalCount);
  1054. // console.log('totalPages', totalPages);
  1055. // setPagination(totalPages); // 分頁處理
  1056. // let resultHtml = '';
  1057. // response.data.designers.forEach((item) => {
  1058. // resultHtml += `
  1059. // <div class="col-md-4 mb-4">
  1060. // <a href="${item.DesignerLink}">
  1061. // <div class="card">
  1062. // <img src="${item.CaseCoverImg}" class="cover-img" alt="${item.DesignerName} ${item.DesignerTitle}">
  1063. // <div class="card-body d-flex align-items-center">
  1064. // <img src="${item.DesignerCoverImg}" alt="" class="me-3 person-img">
  1065. // <section>
  1066. // <h5 class="card-text text-muted">${item.DesignerTitle}</h5>
  1067. // <h6 class="card-title mb-0 text-dark">
  1068. // <span class="font-weight-bold">
  1069. // ${item.DesignerName}
  1070. // </span>
  1071. // 設計師
  1072. // </h6>
  1073. // </section>
  1074. // </div>
  1075. // </div>
  1076. // </a>
  1077. // </div>`;
  1078. // });
  1079. // $('#designerList').html(resultHtml);
  1080. // } catch (error) {
  1081. // console.log("error", error);
  1082. // }
  1083. // }
  1084. // designerSearch();
  1085. // // 分頁
  1086. // function setPagination(pages) {
  1087. // console.log('setPagination pages', pages);
  1088. // // 往前一頁
  1089. // let dom = `
  1090. // <li class="page-item" onclick="handlePagination(this, 'previous')">
  1091. // <a class="page-link" href="#" aria-label="Previous">
  1092. // <span aria-hidden="true"><</span>
  1093. // </a>
  1094. // </li>`;
  1095. // for (let index = 0; index < pages; index++) {
  1096. // dom += `
  1097. // <li class="page-item" onclick="handlePagination(this)">
  1098. // <a class="page-link" href="#">${index + 1}</a>
  1099. // </li>`;
  1100. // }
  1101. // // 往後一頁
  1102. // dom += `
  1103. // <li class="page-item" onclick="handlePagination(this, 'next')">
  1104. // <a class="page-link" href="#" aria-label="Next">
  1105. // <span aria-hidden="true">></span>
  1106. // </a>
  1107. // </li>`;
  1108. // $('.designer-list-content .pagination').html(dom);
  1109. // $('.designer-list-content .page-item').removeClass('active');
  1110. // $('.designer-list-content .page-item').eq(page).addClass('active'); // 當前頁數加上選取狀態
  1111. // }
  1112. // // 頁碼處理
  1113. // function handlePagination(item, type = "") {
  1114. // if (type === "previous") {
  1115. // // 往前一頁
  1116. // console.log('previous');
  1117. // page--;
  1118. // console.log(page);
  1119. // return;
  1120. // } else if (type === "next") {
  1121. // // 往後一頁
  1122. // console.log('next');
  1123. // page++;
  1124. // console.log(page);
  1125. // return;
  1126. // }
  1127. // console.log('item', item);
  1128. // // 切換選取狀態
  1129. // $('.designer-list-content .page-item').removeClass('active');
  1130. // $(item).addClass('active');
  1131. // page = $(item).find('.page-link')[0].innerText; // 修改當前頁數
  1132. // designerSearch();
  1133. // }
  1134. // let assignOrder = ""; // 當前排序
  1135. // // new, hot, recommend 排序 (預設推薦)
  1136. // $(".search-btn-filter button").click(function () {
  1137. // // 切換選取狀態
  1138. // $('.search-btn-filter').find('.active').removeClass('active');
  1139. // $(this).addClass('active');
  1140. // assignOrder = $(this).attr('id');
  1141. // console.log('assignOrder', assignOrder);
  1142. // designerSearch("order_by");
  1143. // });
  1144. </script>
  1145. </body>
  1146. </html>