SyuanYu há 8 meses atrás
commit
a1340044bd
12 ficheiros alterados com 2013 adições e 0 exclusões
  1. 3 0
      .vscode/settings.json
  2. 56 0
      css/all.css
  3. 1 0
      css/all.css.map
  4. 65 0
      css/all.scss
  5. 113 0
      css/lists.css
  6. 1 0
      css/lists.css.map
  7. 142 0
      css/lists.scss
  8. 133 0
      css/reset.css
  9. 14 0
      designers/detail/index.html
  10. 1190 0
      designers/lists/index.html
  11. 281 0
      designers/lists/js/main.js
  12. 14 0
      index.html

+ 3 - 0
.vscode/settings.json

@@ -0,0 +1,3 @@
+{
+    "liveServer.settings.port": 5502
+}

+ 56 - 0
css/all.css

@@ -0,0 +1,56 @@
+* {
+  font-weight: 500;
+  font-family: "Noto Sans TC", sans-serif !important;
+}
+
+/* Bootstrap Start */
+.form-control:focus,
+.btn-check:focus + .btn,
+.btn:focus {
+  box-shadow: none !important;
+}
+
+.text-primary {
+  color: #EE7800 !important;
+}
+
+.border-primary {
+  border-color: #EE7800 !important;
+}
+
+.pagination {
+  border-radius: 5px;
+  overflow: hidden;
+}
+.pagination a {
+  color: #727679;
+  transition: all 0.3s;
+}
+.pagination a:hover {
+  color: #fff;
+  background-color: #EE7800;
+}
+.pagination .page-link {
+  padding: 0.75rem 1rem;
+  border: none;
+}
+.pagination .page-link:focus {
+  z-index: 3;
+  color: #727679;
+  background-color: #fff;
+  box-shadow: none;
+}
+
+.list-pagination .page-item.active .page-link {
+  color: #fff;
+  background-color: #EE7800;
+  border-color: #EE7800;
+}
+.list-pagination .page-item.active .page-link:focus {
+  box-shadow: none;
+}
+.list-pagination .page-link.hidden {
+  display: none;
+}
+
+/* Bootstrap End *//*# sourceMappingURL=all.css.map */

+ 1 - 0
css/all.css.map

@@ -0,0 +1 @@
+{"version":3,"sources":["all.scss","all.css"],"names":[],"mappings":"AAAA;EACE,gBAAA;EACA,kDAAA;ACCF;;ADEA,oBAAA;AAEA;;;EAGE,2BAAA;ACAF;;ADGA;EACE,yBAAA;ACAF;;ADGA;EACE,gCAAA;ACAF;;ADGA;EACE,kBAAA;EACA,gBAAA;ACAF;ADEE;EACE,cAAA;EACA,oBAAA;ACAJ;ADEI;EACE,WAAA;EACA,yBAAA;ACAN;ADIE;EACE,qBAAA;EACA,YAAA;ACFJ;ADII;EACE,UAAA;EACA,cAAA;EACA,sBAAA;EACA,gBAAA;ACFN;;ADQE;EACE,WAAA;EACA,yBAAA;EACA,qBAAA;ACLJ;ADOI;EACE,gBAAA;ACLN;ADSE;EACE,aAAA;ACPJ;;ADWA,kBAAA","file":"all.css"}

+ 65 - 0
css/all.scss

@@ -0,0 +1,65 @@
+* {
+  font-weight: 500;
+  font-family: 'Noto Sans TC', sans-serif !important;
+}
+
+/* Bootstrap Start */
+
+.form-control:focus,
+.btn-check:focus+.btn,
+.btn:focus {
+  box-shadow: none !important;
+}
+
+.text-primary {
+  color: #EE7800 !important;
+}
+
+.border-primary {
+  border-color: #EE7800 !important;
+}
+
+.pagination {
+  border-radius: 5px;
+  overflow: hidden;
+
+  a {
+    color: #727679;
+    transition: all .3s;
+
+    &:hover {
+      color: #fff;
+      background-color: #EE7800;
+    }
+  }
+
+  .page-link {
+    padding: .75rem 1rem;
+    border: none;
+
+    &:focus {
+      z-index: 3;
+      color: #727679;
+      background-color: #fff;
+      box-shadow: none;
+    }
+  }
+}
+
+.list-pagination {
+  .page-item.active .page-link {
+    color: #fff;
+    background-color: #EE7800;
+    border-color: #EE7800;
+
+    &:focus {
+      box-shadow: none;
+    }
+  }
+
+  .page-link.hidden {
+    display: none;
+  }
+}
+
+/* Bootstrap End */

+ 113 - 0
css/lists.css

@@ -0,0 +1,113 @@
+@charset "UTF-8";
+/* 列表頁共用樣式 */
+.list-content {
+  margin: 100px auto;
+  font-weight: 500;
+  letter-spacing: 0.5px;
+}
+
+.list-headline {
+  font-size: 24px;
+  font-weight: 500;
+}
+
+.search-card a {
+  color: #EE7800;
+}
+.search-card .search-bar-keyword {
+  font-size: 14px;
+}
+.search-card .search-bar-keyword li {
+  margin-right: 15px;
+}
+.search-card .form-control {
+  font-size: 0.875rem;
+  border: 2px solid #EE7800;
+}
+.search-card .input-group-text {
+  padding: 1rem 2rem;
+  color: #fff;
+  font-weight: 400;
+  font-size: 0.875rem;
+  text-align: center;
+  background-color: #EE7800;
+  border: 2px solid #EE7800;
+  border-radius: 0 0.25rem 0.25rem 0;
+}
+
+.filter-list .form-check {
+  display: flex;
+  align-items: center;
+}
+.filter-list .form-check-label {
+  margin-left: 10px;
+}
+.filter-list .search-tab {
+  margin: 10px;
+  border-color: #dbdbdb;
+  background-color: white;
+}
+.filter-list .search-tab:hover {
+  color: #EE7800;
+  border-color: #EE7800;
+}
+.filter-list .search-tab.active {
+  color: #EE7800;
+  border-color: #EE7800;
+}
+.filter-list .dropdown-menu {
+  padding: 0;
+  min-width: 15rem;
+  max-height: 300px;
+  overflow-y: auto;
+}
+.filter-list .dropdown-menu li {
+  padding: 0.75rem 1.25rem;
+  border-bottom: 1px solid rgba(0, 0, 0, 0.125);
+}
+.filter-list .dropdown-menu li input,
+.filter-list .dropdown-menu li label {
+  cursor: pointer;
+}
+.filter-list .search-btn-filter button {
+  border: none;
+  background-color: white;
+}
+.filter-list .search-btn-filter button:hover {
+  color: #EE7800;
+}
+.filter-list .search-btn-filter button.active {
+  color: #EE7800;
+}
+.filter-list .search-tab-result {
+  font-size: 14px;
+}
+.filter-list .designer-card .person-img {
+  width: 80px;
+  height: 80px;
+  background-size: cover;
+  background-position: top;
+  border-radius: 50%;
+  box-shadow: 2px 2px 10px -2px rgba(0, 0, 0, 0.15);
+}
+.filter-list .designer-card .cover-img {
+  height: 235px;
+  -o-object-fit: cover;
+     object-fit: cover;
+}
+.filter-list .designer-card .card-body section {
+  width: 70%;
+}
+.filter-list .designer-card .card-body h5 {
+  -webkit-box-orient: vertical;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  display: -webkit-box;
+  -webkit-line-clamp: 1;
+  line-height: 1.25;
+  height: 1.09375rem;
+  font-size: 0.875rem;
+}
+.filter-list .designer-card .card-body h6 {
+  font-size: 0.875rem;
+}/*# sourceMappingURL=lists.css.map */

+ 1 - 0
css/lists.css.map

@@ -0,0 +1 @@
+{"version":3,"sources":["lists.css","lists.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACAhB,YAAA;AAEA;EACE,kBAAA;EACA,gBAAA;EACA,qBAAA;ADCF;;ACEA;EACE,eAAA;EACA,gBAAA;ADCF;;ACGE;EACE,cAAA;ADAJ;ACGE;EACE,eAAA;ADDJ;ACGI;EACE,kBAAA;ADDN;ACKE;EACE,mBAAA;EACA,yBAAA;ADHJ;ACME;EACE,kBAAA;EACA,WAAA;EACA,gBAAA;EACA,mBAAA;EACA,kBAAA;EACA,yBAAA;EACA,yBAAA;EACA,kCAAA;ADJJ;;ACSE;EACE,aAAA;EACA,mBAAA;ADNJ;ACSE;EACE,iBAAA;ADPJ;ACUE;EACE,YAAA;EACA,qBAAA;EACA,uBAAA;ADRJ;ACUI;EACE,cAAA;EACA,qBAAA;ADRN;ACWI;EACE,cAAA;EACA,qBAAA;ADTN;ACaE;EACE,UAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;ADXJ;ACaI;EACE,wBAAA;EACA,6CAAA;ADXN;ACaM;;EAEE,eAAA;ADXR;ACiBI;EACE,YAAA;EACA,uBAAA;ADfN;ACiBM;EACE,cAAA;ADfR;ACkBM;EACE,cAAA;ADhBR;ACqBE;EACE,eAAA;ADnBJ;ACuBI;EACE,WAAA;EACA,YAAA;EACA,sBAAA;EACA,wBAAA;EACA,kBAAA;EACA,iDAAA;ADrBN;ACwBI;EACE,aAAA;EACA,oBAAA;KAAA,iBAAA;ADtBN;AC0BM;EACE,UAAA;ADxBR;AC2BM;EACE,4BAAA;EACA,gBAAA;EACA,uBAAA;EACA,oBAAA;EACA,qBAAA;EACA,iBAAA;EACA,kBAAA;EACA,mBAAA;ADzBR;AC4BM;EACE,mBAAA;AD1BR","file":"lists.css"}

+ 142 - 0
css/lists.scss

@@ -0,0 +1,142 @@
+/* 列表頁共用樣式 */
+
+.list-content {
+  margin: 100px auto;
+  font-weight: 500;
+  letter-spacing: .5px;
+}
+
+.list-headline {
+  font-size: 24px;
+  font-weight: 500;
+}
+
+.search-card {
+  a {
+    color: #EE7800;
+  }
+
+  .search-bar-keyword {
+    font-size: 14px;
+
+    li {
+      margin-right: 15px;
+    }
+  }
+
+  .form-control {
+    font-size: 0.875rem;
+    border: 2px solid #EE7800;
+  }
+
+  .input-group-text {
+    padding: 1rem 2rem;
+    color: #fff;
+    font-weight: 400;
+    font-size: 0.875rem;
+    text-align: center;
+    background-color: #EE7800;
+    border: 2px solid #EE7800;
+    border-radius: 0 .25rem .25rem 0;
+  }
+}
+
+.filter-list {
+  .form-check {
+    display: flex;
+    align-items: center;
+  }
+
+  .form-check-label {
+    margin-left: 10px;
+  }
+
+  .search-tab {
+    margin: 10px;
+    border-color: #dbdbdb;
+    background-color: white;
+
+    &:hover {
+      color: #EE7800;
+      border-color: #EE7800;
+    }
+
+    &.active {
+      color: #EE7800;
+      border-color: #EE7800;
+    }
+  }
+
+  .dropdown-menu {
+    padding: 0;
+    min-width: 15rem;
+    max-height: 300px;
+    overflow-y: auto;
+
+    li {
+      padding: 0.75rem 1.25rem;
+      border-bottom: 1px solid rgba(0, 0, 0, 0.125);
+
+      input,
+      label {
+        cursor: pointer;
+      }
+    }
+  }
+
+  .search-btn-filter {
+    button {
+      border: none;
+      background-color: white;
+
+      &:hover {
+        color: #EE7800;
+      }
+
+      &.active {
+        color: #EE7800;
+      }
+    }
+  }
+
+  .search-tab-result {
+    font-size: 14px;
+  }
+
+  .designer-card {
+    .person-img {
+      width: 80px;
+      height: 80px;
+      background-size: cover;
+      background-position: top;
+      border-radius: 50%;
+      box-shadow: 2px 2px 10px -2px rgba(0, 0, 0, 0.15);
+    }
+
+    .cover-img {
+      height: 235px;
+      object-fit: cover;
+    }
+
+    .card-body {
+      section {
+        width: 70%;
+      }
+
+      h5 {
+        -webkit-box-orient: vertical;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        display: -webkit-box;
+        -webkit-line-clamp: 1;
+        line-height: 1.25;
+        height: 1.09375rem;
+        font-size: 0.875rem;
+      }
+
+      h6 {
+        font-size: 0.875rem;
+      }
+    }
+  }
+}

+ 133 - 0
css/reset.css

@@ -0,0 +1,133 @@
+html,
+body,
+div,
+span,
+applet,
+object,
+iframe,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+p,
+blockquote,
+pre,
+a,
+abbr,
+acronym,
+address,
+big,
+cite,
+code,
+del,
+dfn,
+em,
+img,
+ins,
+kbd,
+q,
+s,
+samp,
+small,
+strike,
+strong,
+sub,
+sup,
+tt,
+var,
+b,
+u,
+i,
+center,
+dl,
+dt,
+dd,
+ol,
+ul,
+li,
+fieldset,
+form,
+label,
+legend,
+table,
+caption,
+tbody,
+tfoot,
+thead,
+tr,
+th,
+td,
+article,
+aside,
+canvas,
+details,
+embed,
+figure,
+figcaption,
+footer,
+header,
+hgroup,
+menu,
+nav,
+output,
+ruby,
+section,
+summary,
+time,
+mark,
+audio,
+video {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	font-size: 100%;
+	font: inherit;
+	vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+menu,
+nav,
+section {
+	display: block;
+}
+body {
+	line-height: 1;
+}
+ol,
+ul {
+	list-style: none;
+}
+blockquote,
+q {
+	quotes: none;
+}
+blockquote:before,
+blockquote:after,
+q:before,
+q:after {
+	content: "";
+	content: none;
+}
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+}
+button {
+	padding: 0;
+}
+p {
+	margin-bottom: 0 !important;
+}
+a {
+	text-decoration: none;
+}

+ 14 - 0
designers/detail/index.html

@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+
+<body>
+
+</body>
+
+</html>

+ 1190 - 0
designers/lists/index.html

@@ -0,0 +1,1190 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <!-- Google Tag Manager -->
+  <script>(function (w, d, s, l, i) {
+      w[l] = w[l] || []; w[l].push({
+        'gtm.start':
+          new Date().getTime(), event: 'gtm.js'
+      }); var f = d.getElementsByTagName(s)[0],
+        j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
+          'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
+    })(window, document, 'script', 'dataLayer', 'GTM-W3RJHTZ');</script>
+  <!-- End Google Tag Manager -->
+
+  <script async="" src="https://www.googletagmanager.com/gtm.js?id=GTM-W3RJHTZ"></script>
+  <!-- <script src="https://connect.facebook.net/signals/config/585285442299590?v=2.9.100&amp;r=stable" async=""></script> -->
+
+  <meta charset="UTF-8" />
+  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+  <meta http-equiv="X-UA-Compatible" content="ie=edge, Chrome=1" />
+  <meta http-equiv="Cache-Control" content="no-cache" />
+  <meta name="copyright" content="2021 © 幸福空間 │ All Rights Reserved." />
+  <meta name="creation-date" content="2021-08-05 12:00:04 GTM+8" />
+  <meta name="description" content="讓幸福室內設計,走進您的生活,解決您的裝潢問
+    題!幸福空間是台灣最大的室內設計、設計師與設計個案影音平台之一,找尋室內設計點子與案例我
+    們一定能幫助你!" />
+  <meta name="distribution" content="Taiwan" />
+  <meta name="keywords" content="" />
+  <meta name="revisit-after" content="1 days" />
+  <meta name="robots" content="all" />
+  <meta name="format-detection" content="telephone=no" />
+
+  <meta property="og:description" content="讓幸福室內設計,走進您的生活,解決您的裝潢問題!
+    幸福空間是台灣最大的室內設計、設計師與設計個案影音平台之一,找尋室內設計點子與案例我們一定能幫助
+    你!" />
+  <meta property="og:site_name" content="幸福空間" />
+  <meta property="og:title" content="幸福空間 - 台灣最大的室內設計、設計師與設計個案影音平台" />
+  <meta property="og:type" content="website" />
+  <meta property="og:locale" content="zh_TW" />
+
+  <title>幸福空間 - 室內設計、裝潢、居家生活、影音平台</title>
+
+  <link rel="icon" href="https://hhh.com.tw/assets/images/favicon.ico" />
+
+  <!-- Fontawesome -->
+  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css"
+    integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous" />
+  <!-- Bootstrap -->
+  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet"
+    integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous" />
+  <!-- axios -->
+  <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
+  <!-- Google Font -->
+  <link rel="preconnect" href="https://fonts.googleapis.com" />
+  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
+  <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600&display=swap" rel="stylesheet" />
+  <!-- CSS -->
+  <link rel="stylesheet" href="../../css/reset.css" />
+  <link rel="stylesheet" href="../../css/lists.css" />
+  <link rel="stylesheet" href="../../css/all.css" />
+
+  <script type="application/ld+json">
+      {
+        "@context": "https://schema.org",
+        "@type": "LocalBusiness",
+        "@id": "https://hhh.com.tw/",
+        "image": ["https://hhh.com.tw/_nuxt/img/def1b0a.svg"],
+        "name": "幸福空間股份有限公司",
+        "address": "110台北市信義區菸廠路88號五樓之6",
+        "url": "https://hhh.com.tw/",
+        "telephone": "+886-2-6617-0123"
+      }
+    </script>
+
+  <script type="application/ld+json">
+      {
+        "@context": "https://schema.org",
+        "@type": "Organization",
+        "url": "https://hhh.com.tw/",
+        "logo": "https://hhh.com.tw/_nuxt/img/def1b0a.svg",
+        "name": "幸福空間",
+        "sameAs": [
+          "https://www.facebook.com/hhhfb/",
+          "https://page.line.me/ovs4341s",
+          "https://www.youtube.com/user/gorgeousspace",
+          "https://www.instagram.com/gorgeous_space/"
+        ],
+        "contactPoint": [
+          {
+            "@type": "ContactPoint",
+            "areaServed": "TW",
+            "telephone": "+886-2-6617-0123",
+            "contactType": "customer service",
+            "availableLanguage": "Chinese"
+          }
+        ]
+      }
+    </script>
+
+  <script type="application/ld+json">
+      {
+        "@context": "https://schema.org",
+        "@type": "WebSite",
+        "name": "幸福空間-室內設計、裝潢、居家生活、影音平台",
+        "author": "幸福空間",
+        "url": "https://hhh.com.tw/",
+        "potentialAction": {
+          "@type": "SearchAction",
+          "target": "https://hhh.com.tw/search/lists/case/{search_term_string}-keyword/",
+          "query-input": "required name=search_term_string"
+        }
+      }
+    </script>
+</head>
+
+<body>
+
+
+  <div class="container d-flex flex-column align-items-center justify-content-center list-content">
+    <h2 class="list-headline">全國室內設計師推薦</h2>
+
+    <!-- 搜尋 -->
+    <div class="row w-100 justify-content-center mt-5">
+      <div class="col-md-10">
+        <div class="card search-card">
+          <div class="card-body p-4">
+            <div class="input-group input-group-lg mb-2">
+              <input type="text" placeholder="請輸入關鍵字" aria-label="請輸入關鍵字" aria-describedby="searchbar"
+                class="form-control border-primary keywords" autocomplete="off">
+              <div class="input-group-append">
+                <button type="button" data-ga="View_Search_Results" class="input-group-text">搜尋</button>
+              </div>
+            </div>
+
+            <div class="search-bar-keyword d-flex mt-3 pl-4">
+              <p>熱搜關鍵字</p>
+              <ul class="d-flex ps-3">
+                <li>
+                  <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">客變</a>
+                </li>
+                <li>
+                  <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">小坪數</a>
+                </li>
+                <li>
+                  <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">老屋翻新</a>
+                </li>
+                <li>
+                  <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">收納</a>
+                </li>
+                <!-- <li>
+                  <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">軟裝佈置</a>
+                </li>
+                <li>
+                  <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">新手裝修</a>
+                </li>
+                <li>
+                  <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">風水</a>
+                </li> -->
+                <li>
+                  <a href="javascript:void(0)" data-ga="Click_Promo_Keyword">北歐風</a>
+                </li>
+              </ul>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <!-- 篩選 -->
+    <div class="row w-100 mt-5 filter-list">
+      <div class="col-12">
+        <p class="mb-3 text-muted">
+          總共 <span class="text-primary font-weight-bold fs-4">254</span> 筆全國室內設計師符合條件
+        </p>
+
+        <div class="card text-dark bg-light border-0 mb-3 w-100 shadow-sm">
+          <div class="card-body d-flex flex-wrap">
+            <div class="dropdown">
+              <button class="btn dropdown-toggle fw-bold search-tab" type="button" id="city" data-bs-toggle="dropdown"
+                aria-expanded="false">
+                所在縣市
+              </button>
+
+              <ul class="dropdown-menu" aria-labelledby="city">
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="taipei_city">
+                    <label class="form-check-label" for="taipei_city">
+                      台北市
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="new_taipei_city">
+                    <label class="form-check-label" for="new_taipei_city">
+                      新北市
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="keelung_city">
+                    <label class="form-check-label" for="keelung_city">
+                      基隆市
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="taoyuan_city">
+                    <label class="form-check-label" for="taoyuan_city">
+                      桃園市
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="hsinchu_city">
+                    <label class="form-check-label" for="hsinchu_city">
+                      新竹市
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="hsinchu_county">
+                    <label class="form-check-label" for="hsinchu_county">
+                      新竹縣
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="miaoli_county">
+                    <label class="form-check-label" for="miaoli_county">
+                      苗栗縣
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="taichung_city">
+                    <label class="form-check-label" for="taichung_city">
+                      台中市
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="changhua_county">
+                    <label class="form-check-label" for="changhua_county">
+                      彰化縣
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="nantou_county">
+                    <label class="form-check-label" for="nantou_county">
+                      南投縣
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="yunlin_county">
+                    <label class="form-check-label" for="yunlin_county">
+                      雲林縣
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="chiayi_city">
+                    <label class="form-check-label" for="chiayi_city">
+                      嘉義市
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="chiayi_county">
+                    <label class="form-check-label" for="chiayi_county">
+                      嘉義縣
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="tainan_city">
+                    <label class="form-check-label" for="tainan_city">
+                      台南市
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="kaohsiung_city">
+                    <label class="form-check-label" for="kaohsiung_city">
+                      高雄市
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="pingtung_county">
+                    <label class="form-check-label" for="pingtung_county">
+                      屏東縣
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="yilan_county">
+                    <label class="form-check-label" for="yilan_county">
+                      宜蘭縣
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="hualien_county">
+                    <label class="form-check-label" for="hualien_county">
+                      花蓮縣
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="taitung_county">
+                    <label class="form-check-label" for="taitung_county">
+                      台東縣
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="penghu_county">
+                    <label class="form-check-label" for="penghu_county">
+                      澎湖縣
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="kinmen_county">
+                    <label class="form-check-label" for="kinmen_county">
+                      金門縣
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="city" id="lienchiang_county">
+                    <label class="form-check-label" for="lienchiang_county">
+                      連江縣
+                    </label>
+                  </div>
+                </li>
+              </ul>
+            </div>
+
+            <div class="dropdown">
+              <button class="btn dropdown-toggle fw-bold search-tab" type="button" id="region" data-bs-toggle="dropdown"
+                aria-expanded="false">
+                接案地區
+              </button>
+
+              <ul class="dropdown-menu" aria-labelledby="region">
+                <!-- <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="region" id="all_region">
+                    <label class="form-check-label" for="all_region">
+                      不拘
+                    </label>
+                  </div>
+                </li> -->
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="region" id="north_region">
+                    <label class="form-check-label" for="north_region">
+                      北區
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="region" id="central_region">
+                    <label class="form-check-label" for="central_region">
+                      中區
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="region" id="south_region">
+                    <label class="form-check-label" for="south_region">
+                      南區
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="region" id="east_region">
+                    <label class="form-check-label" for="east_region">
+                      宜蘭花東
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="region" id="outlying_region">
+                    <label class="form-check-label" for="outlying_region">
+                      離島地區
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="region" id="overseas_region">
+                    <label class="form-check-label" for="overseas_region">
+                      海外地區
+                    </label>
+                  </div>
+                </li>
+              </ul>
+            </div>
+
+            <div class="dropdown">
+              <button class="btn dropdown-toggle fw-bold search-tab" type="button" id="dtype" data-bs-toggle="dropdown"
+                aria-expanded="false">
+                接案類型
+              </button>
+
+              <ul class="dropdown-menu" aria-labelledby="dtype">
+                <!-- <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_type" id="d_typeall">
+                    <label class="form-check-label" for="d_typeall">
+                      不拘
+                    </label>
+                  </div>
+                </li> -->
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_type" id="d_typesmall">
+                    <label class="form-check-label" for="d_typesmall">
+                      小坪數
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_type" id="d_typestandard">
+                    <label class="form-check-label" for="d_typestandard">
+                      標準格局
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_type" id="d_typevilla">
+                    <label class="form-check-label" for="d_typevilla">
+                      別墅
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_type" id="d_typebig">
+                    <label class="form-check-label" for="d_typebig">
+                      大坪數
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_type" id="d_typemiddle">
+                    <label class="form-check-label" for="d_typemiddle">
+                      樓中樓
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_type" id="d_typesample">
+                    <label class="form-check-label" for="d_typesample">
+                      實品/樣品屋
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_type" id="d_typecommercial">
+                    <label class="form-check-label" for="d_typecommercial">
+                      商業空間
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_type" id="d_typeraisehigh">
+                    <label class="form-check-label" for="d_typeraisehigh">
+                      挑高樓層
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_type" id="d_typeworkspace">
+                    <label class="form-check-label" for="d_typeworkspace">
+                      工作空間
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_type" id="d_typedining">
+                    <label class="form-check-label" for="d_typedining">
+                      餐飲空間
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_type" id="d_typehomestay">
+                    <label class="form-check-label" for="d_typehomestay">
+                      民宿旅館
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_type" id="d_typepublic">
+                    <label class="form-check-label" for="d_typepublic">
+                      公共空間
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_type" id="d_typerenovation">
+                    <label class="form-check-label" for="d_typerenovation">
+                      老屋翻新
+                    </label>
+                  </div>
+                </li>
+              </ul>
+
+            </div>
+
+            <div class="dropdown">
+              <button class="btn dropdown-toggle fw-bold search-tab" type="button" id="dstyle" data-bs-toggle="dropdown"
+                aria-expanded="false">
+                接案風格
+              </button>
+
+              <ul class="dropdown-menu" aria-labelledby="dstyle">
+                <!-- <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_styleall">
+                    <label class="form-check-label" for="d_styleall">
+                      不拘
+                    </label>
+                  </div>
+                </li> -->
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_stylenordic">
+                    <label class="form-check-label" for="d_stylenordic">
+                      北歐風
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_stylemodern">
+                    <label class="form-check-label" for="d_stylemodern">
+                      現代風
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_styleindustry">
+                    <label class="form-check-label" for="d_styleindustry">
+                      工業風
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_styleamerican">
+                    <label class="form-check-label" for="d_styleamerican">
+                      美式風
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_styleleisure">
+                    <label class="form-check-label" for="d_styleleisure">
+                      休閒多元
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_stylevanguard">
+                    <label class="form-check-label" for="d_stylevanguard">
+                      前衛風
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_stylerustuc">
+                    <label class="form-check-label" for="d_stylerustuc">
+                      鄉村風
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_stylemashup">
+                    <label class="form-check-label" for="d_stylemashup">
+                      混搭風
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_styleneoclassic">
+                    <label class="form-check-label" for="d_styleneoclassic">
+                      新古典
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_styleluxurious">
+                    <label class="form-check-label" for="d_styleluxurious">
+                      奢華風
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_styleclassical">
+                    <label class="form-check-label" for="d_styleclassical">
+                      古典風
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_styleexotic">
+                    <label class="form-check-label" for="d_styleexotic">
+                      異國風
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_stylezen">
+                    <label class="form-check-label" for="d_stylezen">
+                      日式禪風
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_styleoriental">
+                    <label class="form-check-label" for="d_styleoriental">
+                      東方風
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_stylemuju">
+                    <label class="form-check-label" for="d_stylemuju">
+                      無印風
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_styleminimalism">
+                    <label class="form-check-label" for="d_styleminimalism">
+                      簡約風
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_stylejpstyle">
+                    <label class="form-check-label" for="d_stylejpstyle">
+                      日式風
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_style" id="d_styleentrylux">
+                    <label class="form-check-label" for="d_styleentrylux">
+                      輕奢風
+                    </label>
+                  </div>
+                </li>
+              </ul>
+            </div>
+
+            <div class="dropdown">
+              <button class="btn dropdown-toggle fw-bold search-tab" type="button" id="budget" data-bs-toggle="dropdown"
+                aria-expanded="false">
+                接案預算
+              </button>
+
+              <ul class="dropdown-menu" aria-labelledby="budget">
+                <!-- <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_budget" id="d_budgetall">
+                    <label class="form-check-label" for="d_budgetall">
+                      不拘
+                    </label>
+                  </div>
+                </li> -->
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_budget" id="d_budgetd100">
+                    <label class="form-check-label" for="d_budgetd100">
+                      100萬以下
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_budget" id="d_budgetd200">
+                    <label class="form-check-label" for="d_budgetd200">
+                      100~200萬
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_budget" id="d_budgetd300">
+                    <label class="form-check-label" for="d_budgetd300">
+                      200~300萬
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_budget" id="d_budgetd400">
+                    <label class="form-check-label" for="d_budgetd400">
+                      300~400萬
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_budget" id="d_budgetd500">
+                    <label class="form-check-label" for="d_budgetd500">
+                      400~500萬
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="d_budget" id="d_budgetd501">
+                    <label class="form-check-label" for="d_budgetd501">
+                      500萬以上
+                    </label>
+                  </div>
+                </li>
+              </ul>
+            </div>
+
+            <div class="dropdown">
+              <button class="btn dropdown-toggle fw-bold search-tab" type="button" id="arch" data-bs-toggle="dropdown"
+                aria-expanded="false">
+                建築師執照
+              </button>
+
+              <ul class="dropdown-menu" aria-labelledby="arch">
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="darch" id="darchall">
+                    <label class="form-check-label" for="darchall">
+                      不拘
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="darch" id="darchY">
+                    <label class="form-check-label" for="darchY">
+                      有
+                    </label>
+                  </div>
+                </li>
+              </ul>
+            </div>
+
+            <div class="dropdown">
+              <button class="btn dropdown-toggle fw-bold search-tab" type="button" id="award" data-bs-toggle="dropdown"
+                aria-expanded="false">
+                亞洲設計獎得主
+              </button>
+
+              <ul class="dropdown-menu" aria-labelledby="award">
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="award" id="awardall">
+                    <label class="form-check-label" for="awardall">
+                      不拘
+                    </label>
+                  </div>
+                </li>
+                <li>
+                  <div class="form-check">
+                    <input class="form-check-input" type="radio" name="award" id="awardY">
+                    <label class="form-check-label" for="awardY">
+                      有
+                    </label>
+                  </div>
+                </li>
+              </ul>
+            </div>
+
+          </div>
+        </div>
+
+
+        <div class="row">
+          <div class="col-md-9">
+            <div class="d-flex flex-wrap align-items-center">
+              <div class="text-primary d-flex flex-wrap align-items-center search-tab-result">
+                <!-- <span class="me-3">
+                <span class="budget">
+                  接案地區:不拘
+                  <img src="https://hhh.com.tw/assets/images/section/icon/close-btn-search.svg" alt="close-btn-search">
+                </span>
+              </span> -->
+
+                <!-- <button type="button" class="btn btn-light btn-sm text-muted px-3">全部清除</button> -->
+              </div>
+
+              <button type="button" id="removeResultBtn" class="btn btn-light btn-sm text-muted px-3">全部清除</button>
+            </div>
+          </div>
+
+          <div class="col-md-3">
+            <div class="d-flex justify-content-end search-btn-filter">
+              <button id="hot">
+                人氣
+              </button>
+
+              <span class="mx-1">|</span>
+
+              <button id="new">
+                最新
+              </button>
+
+              <span class="mx-1">|</span>
+
+              <button id="recommend" class="active">
+                推薦
+              </button>
+            </div>
+          </div>
+        </div>
+
+        <!-- 設計師列表 -->
+        <div class="row mt-5" id="designerList">
+          <!-- 動態載入 -->
+        </div>
+
+        <!-- 分頁 -->
+        <div class="d-flex justify-content-center my-5">
+          <nav aria-label="Page navigation example">
+            <ul class="pagination border list-pagination">
+              <li class="page-item">
+                <a class="page-link" href="#" aria-label="Previous">
+                  <span aria-hidden="true"><</span>
+                </a>
+              </li>
+              <li class="page-item">
+                <a class="page-link" href="#">1</a>
+              </li>
+              <li class="page-item">
+                <a class="page-link" href="#">2</a>
+              </li>
+              <li class="page-item">
+                <a class="page-link" href="#">3</a>
+              </li>
+              <li class="page-item">
+                <a class="page-link" href="#" aria-label="Next">
+                  <span aria-hidden="true">></span>
+                </a>
+              </li>
+            </ul>
+          </nav>
+        </div>
+
+      </div>
+    </div>
+  </div>
+
+  <!-- jQuery -->
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
+  <!-- Bootstrap -->
+  <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.10.1/dist/umd/popper.min.js"
+    integrity="sha384-W8fXfP3gkOKtndU4JGtKDvXbO53Wy8SZCQHczT5FMiiqmQfUpWbYdTil/SxwZgAN"
+    crossorigin="anonymous"></script>
+  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.min.js"
+    integrity="sha384-skAcpIdS7UcVUC05LJ9Dxay8AXcDYfBJqt1CJ85S/CFujBsIzCIv+l9liuYLaMQ/"
+    crossorigin="anonymous"></script>
+  <script src="./js/main.js"></script>
+  <script>
+    // // $('#navbar').load('../hhh_index/template/nav-new.html');
+
+    // $('#removeResultBtn').hide(); // 隱藏全部清除按鈕
+
+    // // 處理 radio 選取狀態
+    // $('.filter-list .form-check').click(function (e) {
+    //   e.preventDefault();
+    //   $(this).find('.form-check-input').prop('checked', true);
+
+    //   // 取得 radio 按鈕的 label
+    //   let radioLabel = $(this).find('.form-check-label').text().trim().replace(/\s+/g, ' '); // 移除換行空白
+    //   console.log('radioLabel', radioLabel);
+
+    //   // 取上一層 search-tab 按鈕文字
+    //   let buttonValue = $(this).closest('.dropdown').find('.search-tab').text().trim();
+    //   console.log('Selected button text:', buttonValue);
+
+    //   let buttonId = $(this).closest('.dropdown').find('.search-tab').attr('id');
+    //   console.log('buttonId', buttonId);
+
+    //   updateSelectedOptions(buttonId, buttonValue, radioLabel);
+    // });
+
+    // let filterList = []; // 篩選條件
+
+    // // 更新篩選狀態
+    // function updateSelectedOptions(id, button, radio) {
+    //   console.log('更新篩選狀態', button, radio);
+
+    //   if (filterList.length) {
+    //     let exists = false; // 判斷是否已存在
+
+    //     for (let index = 0; index < filterList.length; index++) {
+    //       const element = filterList[index];
+
+    //       // 如有重複 button 只改 radio 狀態
+    //       if (element.text === button) {
+    //         element.value = radio;
+    //         exists = true;
+    //         // 更新篩選的值
+    //         $(`.search-tab-result .budget:contains(${button})`).find('p').text(`${button}:${radio}`);
+    //         // $(`#${id} ul`).find('.form-check-input').prop('checked', true);
+    //       }
+    //     }
+
+    //     // 如果 filterList 中不存在則新增
+    //     if (!exists) {
+    //       const newItem = {
+    //         id: id,
+    //         text: button,
+    //         value: radio
+    //       };
+
+    //       filterList.push(newItem);
+    //       createFilterHtml(newItem);
+    //     }
+
+
+    //   } else {
+    //     // 儲存篩選條件
+    //     filterList.push({
+    //       id: id,
+    //       text: button,
+    //       value: radio
+    //     })
+
+    //     for (let index = 0; index < filterList.length; index++) {
+    //       const element = filterList[index];
+    //       createFilterHtml(element);
+    //     }
+    //   }
+
+    //   designerSearch(); // 搜尋
+
+    //   console.log('filterList', filterList);
+
+    //   // 切換按鈕選取狀態
+    //   $('.dropdown').each(function () {
+    //     let hasCheckedRadio = $(this).find('input[type="radio"]:checked').length > 0;
+    //     $(this).find('.search-tab').toggleClass('active', hasCheckedRadio);
+    //   });
+    // }
+
+    // // 新增篩選條件 HTML
+    // function createFilterHtml(item) {
+    //   let dom = `
+    //     <span class="me-3">
+    //       <span class="d-flex budget">
+    //         <p class="me-1">${item.text}:${item.value}</p>
+    //         <img src="https://hhh.com.tw/assets/images/section/icon/close-btn-search.svg" alt="close-btn-search">
+    //       </span>
+    //     </span>`;
+
+    //   $('.search-tab-result').append(dom);
+    //   $('#removeResultBtn').show();
+    // }
+
+    // let page = 1; // 當前頁數
+    // let pageSize = 18; // 每頁數量
+
+    // // 列表篩選
+    // async function designerSearch(type = "") {
+    //   // 預設排序為 recommend
+    //   let url = `https://m3.hhh.com.tw:18673/designer_search?page=${page}&page_size=${pageSize}&order_by=recommend`;
+
+    //   console.log('type', type);
+
+    //   if (type === "order_by") {
+    //     url += `&${type}=${assignOrder}`
+    //   }
+
+    //   if (filterList.length) {
+    //     filterList.map(item => {
+    //       if (item.id === 'budget') {
+    //         switch (item.value) {
+    //           case "100萬以下":
+    //             url += `&${item.id}=1`
+    //             break;
+    //           case "100~200萬":
+    //             url += `&${item.id}=2`
+    //             break;
+    //           case "200~300萬":
+    //             url += `&${item.id}=3`
+    //             break;
+    //           case "300~400萬":
+    //             url += `&${item.id}=4`
+    //             break;
+    //           case "400~500萬":
+    //             url += `&${item.id}=5`
+    //             break;
+    //           case "500萬以上":
+    //             url += `&${item.id}=6`
+    //             break;
+    //           default:
+    //             break;
+    //         }
+
+    //       } else {
+    //         url += `&${item.id}=${item.value}`
+    //       }
+    //     })
+    //   }
+
+    //   console.log('url >>', url);
+
+    //   let resultHtml = '';
+
+    //   try {
+    //     const response = await axios.get(url);
+    //     console.log("response", response);
+
+    //     let totalCount = response.data.total_count;
+    //     let totalPages = Math.ceil(totalCount / pageSize);
+    //     console.log('totalCount', totalCount);
+    //     console.log('totalPages', totalPages);
+
+    //     setPagination(totalPages); // 分頁處理
+
+    //     let resultHtml = '';
+    //     response.data.designers.forEach((item) => {
+    //       resultHtml += `
+    //         <div class="col-md-4 mb-4">
+    //           <a href="${item.DesignerLink}">
+    //             <div class="card">
+    //               <img src="${item.CaseCoverImg}" class="cover-img" alt="${item.DesignerName} ${item.DesignerTitle}">
+    //                 <div class="card-body d-flex align-items-center">
+    //                   <img src="${item.DesignerCoverImg}" alt="" class="me-3 person-img">
+    //                     <section>
+    //                       <h5 class="card-text text-muted">${item.DesignerTitle}</h5>
+    //                       <h6 class="card-title mb-0 text-dark">
+    //                         <span class="font-weight-bold">
+    //                           ${item.DesignerName}
+    //                         </span>
+    //                         設計師
+    //                       </h6>
+    //                     </section>
+    //                 </div>
+    //             </div>
+    //           </a>
+    //         </div>`;
+    //     });
+
+    //     $('#designerList').html(resultHtml);
+    //   } catch (error) {
+    //     console.log("error", error);
+    //   }
+    // }
+
+    // designerSearch();
+
+    // // 分頁
+    // function setPagination(pages) {
+    //   console.log('setPagination pages', pages);
+
+    //   // 往前一頁
+    //   let dom = `
+    //     <li class="page-item" onclick="handlePagination(this, 'previous')">
+    //       <a class="page-link" href="#" aria-label="Previous">
+    //         <span aria-hidden="true"><</span>
+    //       </a>
+    //     </li>`;
+
+    //   for (let index = 0; index < pages; index++) {
+    //     dom += `
+    //       <li class="page-item" onclick="handlePagination(this)">
+    //         <a class="page-link" href="#">${index + 1}</a>
+    //       </li>`;
+    //   }
+
+    //   // 往後一頁
+    //   dom += `
+    //     <li class="page-item" onclick="handlePagination(this, 'next')">
+    //       <a class="page-link" href="#" aria-label="Next">
+    //         <span aria-hidden="true">></span>
+    //       </a>
+    //     </li>`;
+
+    //   $('.designer-list-content .pagination').html(dom);
+    //   $('.designer-list-content .page-item').removeClass('active');
+    //   $('.designer-list-content .page-item').eq(page).addClass('active'); // 當前頁數加上選取狀態
+    // }
+
+    // // 頁碼處理
+    // function handlePagination(item, type = "") {
+    //   if (type === "previous") {
+    //     // 往前一頁
+    //     console.log('previous');
+    //     page--;
+    //     console.log(page);
+    //     return;
+    //   } else if (type === "next") {
+    //     // 往後一頁
+    //     console.log('next');
+    //     page++;
+    //     console.log(page);
+    //     return;
+    //   }
+
+    //   console.log('item', item);
+    //   // 切換選取狀態
+    //   $('.designer-list-content .page-item').removeClass('active');
+    //   $(item).addClass('active');
+
+    //   page = $(item).find('.page-link')[0].innerText; // 修改當前頁數
+
+    //   designerSearch();
+    // }
+
+    // let assignOrder = ""; // 當前排序
+
+    // // new, hot, recommend 排序 (預設推薦)
+    // $(".search-btn-filter button").click(function () {
+    //   // 切換選取狀態
+    //   $('.search-btn-filter').find('.active').removeClass('active');
+    //   $(this).addClass('active');
+
+    //   assignOrder = $(this).attr('id');
+    //   console.log('assignOrder', assignOrder);
+
+    //   designerSearch("order_by");
+    // });
+
+  </script>
+
+</body>
+
+</html>

+ 281 - 0
designers/lists/js/main.js

@@ -0,0 +1,281 @@
+// $('#navbar').load('../hhh_index/template/nav-new.html');
+
+$('#removeResultBtn').hide(); // 隱藏全部清除按鈕
+
+// 處理 radio 選取狀態
+$('.filter-list .form-check').click(function (e) {
+  e.preventDefault();
+  $(this).find('.form-check-input').prop('checked', true);
+
+  // 取得 radio 按鈕的 label
+  let radioLabel = $(this).find('.form-check-label').text().trim().replace(/\s+/g, ' '); // 移除換行空白
+
+  // 取上一層 search-tab 按鈕文字
+  let buttonValue = $(this).closest('.dropdown').find('.search-tab').text().trim();
+  let buttonId = $(this).closest('.dropdown').find('.search-tab').attr('id');
+
+  updateSelectedOptions(buttonId, buttonValue, radioLabel);
+});
+
+let filterList = []; // 篩選條件
+
+// 更新篩選狀態
+function updateSelectedOptions(id, button, radio) {
+  console.log('更新篩選狀態', button, radio);
+
+  if (filterList.length) {
+    let exists = false; // 判斷是否已存在
+
+    for (let index = 0; index < filterList.length; index++) {
+      const element = filterList[index];
+
+      // 如有重複 button 只改 radio 狀態
+      if (element.text === button) {
+        element.value = radio;
+        exists = true;
+        // 更新篩選的值
+        $(`.search-tab-result .budget:contains(${button})`).find('p').text(`${button}:${radio}`);
+      }
+    }
+
+    // 如果 filterList 中不存在則新增
+    if (!exists) {
+      const newItem = {
+        id: id,
+        text: button,
+        value: radio
+      };
+
+      filterList.push(newItem);
+      createFilterHtml(newItem);
+    }
+
+
+  } else {
+    // 儲存篩選條件
+    filterList.push({
+      id: id,
+      text: button,
+      value: radio
+    })
+
+    for (let index = 0; index < filterList.length; index++) {
+      const element = filterList[index];
+      createFilterHtml(element);
+    }
+  }
+
+  designerSearch(); // 搜尋
+
+  console.log('filterList', filterList);
+
+  // 切換按鈕選取狀態
+  $('.dropdown').each(function () {
+    let hasCheckedRadio = $(this).find('input[type="radio"]:checked').length > 0;
+    $(this).find('.search-tab').toggleClass('active', hasCheckedRadio);
+  });
+}
+
+// 新增篩選條件 HTML
+function createFilterHtml(item) {
+  let dom = `
+    <span class="me-3">
+      <span class="d-flex budget">
+        <p class="me-1">${item.text}:${item.value}</p>
+        <img src="https://hhh.com.tw/assets/images/section/icon/close-btn-search.svg" alt="close-btn-search">
+      </span>
+    </span>`;
+
+  $('.search-tab-result').append(dom);
+  $('#removeResultBtn').show();
+}
+
+let page = 1; // 當前頁數
+let pageSize = 18; // 每頁數量
+
+let keywordsVal = ""; // 熱搜關鍵字
+
+// 列表篩選
+async function designerSearch(type = "") {
+  // 預設排序為 recommend
+  let url = `https://m3.hhh.com.tw:18673/designer_search?page=${page}&page_size=${pageSize}&order_by=recommend`;
+
+  console.log('type', type);
+
+  if (type === "order_by") {
+    url += `&${type}=${assignOrder}`
+  }
+  console.log('keywordsVal', keywordsVal);
+  if (keywordsVal !== "") {
+    url += `&keyword=${keywordsVal}`
+  }
+
+  if (filterList.length) {
+    filterList.map(item => {
+      if (item.id === 'budget') {
+        switch (item.value) {
+          case "100萬以下":
+            url += `&${item.id}=1`
+            break;
+          case "100~200萬":
+            url += `&${item.id}=2`
+            break;
+          case "200~300萬":
+            url += `&${item.id}=3`
+            break;
+          case "300~400萬":
+            url += `&${item.id}=4`
+            break;
+          case "400~500萬":
+            url += `&${item.id}=5`
+            break;
+          case "500萬以上":
+            url += `&${item.id}=6`
+            break;
+          default:
+            break;
+        }
+
+      } else {
+        url += `&${item.id}=${item.value}`
+      }
+    })
+  }
+
+  try {
+    const response = await axios.get(url);
+
+    let totalCount = response.data.total_count;
+    let totalPages = Math.ceil(totalCount / pageSize);
+
+    if (totalPages) {
+      $('.filter-list .pagination').show();
+      setPagination(totalPages); // 分頁處理
+    } else {
+      $('.filter-list .pagination').hide();
+    }
+
+    let resultHtml = '';
+    console.log(' response.data.designers', response.data.designers);
+    if (response.data.designers.length) {
+      response.data.designers.forEach((item) => {
+        resultHtml += `
+        <div class="col-md-4 mb-4">
+          <a href="${item.DesignerLink}">
+            <div class="card designer-card">
+              <img src="${item.CaseCoverImg}" class="cover-img" alt="${item.DesignerName} ${item.DesignerTitle}">
+                <div class="card-body d-flex align-items-center">
+                  <div class="person-img me-3" style="background-image: url('${item.DesignerCoverImg}');"></div>
+                  <section>
+                    <h5 class="card-text text-muted mb-2">${item.DesignerTitle}</h5>
+                    <h6 class="card-title mb-0 text-dark">
+                      <span class="font-weight-bold">
+                        ${item.DesignerName}
+                      </span>
+                      設計師
+                    </h6>
+                  </section>
+                </div>
+            </div>
+          </a>
+        </div>`;
+      });
+    } else {
+      resultHtml += "<p class='text-center mt-5'>找不到符合的資料,請重新搜尋。</p>"
+    }
+
+    $('#designerList').html(resultHtml);
+  } catch (error) {
+    console.log("error", error);
+  }
+}
+
+designerSearch();
+
+// 分頁
+function setPagination(pages) {
+  // 往前一頁
+  let dom = `
+    <li class="page-item" onclick="handlePagination(this, 'previous')">
+      <a class="page-link previous" href="#" aria-label="Previous">
+        <span aria-hidden="true"><</span>
+      </a>
+    </li>`;
+
+  for (let index = 0; index < pages; index++) {
+    dom += `
+      <li class="page-item" onclick="handlePagination(this)">
+        <a class="page-link" href="#">${index + 1}</a>
+      </li>`;
+  }
+
+  // 往後一頁
+  dom += `
+    <li class="page-item" onclick="handlePagination(this, 'next')">
+      <a class="page-link next" href="#" aria-label="Next">
+        <span aria-hidden="true">></span>
+      </a>
+    </li>`;
+
+  $('.filter-list .pagination').html(dom);
+  $('.filter-list .page-item').removeClass('active');
+  $('.filter-list .page-item').eq(page).addClass('active'); // 當前頁數加上選取狀態
+
+  // 設定上一頁按鈕的顯示狀態
+  if (page === 1) {
+    $('.page-link.previous').addClass('hidden');
+  } else {
+    $('.page-link.previous').removeClass('hidden');
+  }
+}
+
+// 頁碼處理
+function handlePagination(item, type = "") {
+  if (type === "previous") {
+    // 往前一頁
+    if (page > 1) {
+      page--;
+    }
+    console.log(page);
+  } else if (type === "next") {
+    // 往後一頁
+    page++;
+    console.log(page);
+  } else {
+    // 直接點擊頁碼
+    page = parseInt($(item).find('.page-link')[0].innerText);
+  }
+
+  // 切換選取狀態
+  $('.filter-list .page-item').removeClass('active');
+  $('.filter-list .page-item').eq(page).addClass('active');
+
+  // 設定上一頁按鈕的顯示狀態
+  if (page === 1) {
+    $('.page-link.previous').addClass('hidden');
+  } else {
+    $('.page-link.previous').removeClass('hidden');
+  }
+
+  designerSearch(); // 搜尋
+}
+
+let assignOrder = ""; // 當前排序
+
+// new, hot, recommend 排序 (預設推薦)
+$(".search-btn-filter button").click(function () {
+  // 切換選取狀態
+  $('.search-btn-filter').find('.active').removeClass('active');
+  $(this).addClass('active');
+  assignOrder = $(this).attr('id');
+  designerSearch("order_by");
+});
+
+
+// 熱搜關鍵字搜尋
+$(".search-bar-keyword a").click(function () {
+  let keyword = $(this).text();
+  $('.keywords').val(keyword);
+  keywordsVal = keyword;
+  designerSearch();
+});

+ 14 - 0
index.html

@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Document</title>
+</head>
+
+<body>
+
+</body>
+
+</html>