// $( document ).ready(function() {
// });
// 載入共用 template
$('#navbar').load('../../template/navbar.html');
$('#footer').load('../../template/footer.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 = `
${item.text}:${item.value}
`;
$('.search-tab-result').append(dom);
$('#removeResultBtn').show();
}
let page = 1; // 當前頁數
let pageSize = 18; // 每頁數量
let isFirstLoad = true; // 初始載入
// 列表篩選
async function designerSearch(type = "") {
if (isFirstLoad) {
// 第一次載入使用本地 JSON 文件
url = './json/designers_lists_data.json';
} else {
// 後續使用 API (預設排序為 recommend)
url = `https://m3.hhh.com.tw:18673/designer_search?page=${page}&page_size=${pageSize}&order_by=recommend`;
if (type === "order_by") {
url += `&${type}=${assignOrder}`;
}
let input = $(".keywords").val();
if (input !== "") {
url += `&keyword=${input}`;
}
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}`;
}
});
}
}
// // 預設排序為 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}`
// }
// let input = $(".keywords").val();
// console.log('input', input);
// if (input !== "") {
// url += `&keyword=${input}`
// }
// 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);
console.log('response.data.designers', response.data.designers);
let totalCount = response.data.total_count;
let totalPages = Math.ceil(totalCount / pageSize);
$("#totalCount").html(totalCount);
if (totalPages) {
$('.filter-list .pagination').show();
setPagination(totalPages); // 分頁處理
} else {
$('.filter-list .pagination').hide();
}
let resultHtml = '';
if (response.data.designers.length) {
response.data.designers.forEach((item) => {
resultHtml += `
找不到符合的資料,請重新搜尋。
" } $('#designerList').html(resultHtml); // 更新初始載入狀態 if (isFirstLoad) { isFirstLoad = false; } } catch (error) { console.log("error", error); } } designerSearch(); let maxPagesMobile = 5; // 手機板最多顯示 5 頁 let maxPagesDesktop = 10; // 電腦版最多顯示 10 頁 // 分頁 function setPagination(pages) { let screenWidth = $(window).width(); let maxPages = screenWidth > 991 ? maxPagesDesktop : maxPagesMobile; function renderPagination(currentPage) { let dom = `