index.html 47 KB

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