From 90192dbed96154a7e1a2da3ad157d7a0d8ba7f80 Mon Sep 17 00:00:00 2001 From: sky121113 Date: Thu, 21 May 2026 16:58:14 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[FIX]=20=E4=BF=AE=E6=AD=A3=E6=A9=9F?= =?UTF-8?q?=E5=8F=B0=E8=A8=AD=E5=AE=9A=E5=85=AC=E5=8F=B8=E7=AF=A9=E9=81=B8?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E9=81=B8=E5=96=AE=E5=85=A9=E9=A0=85=E5=95=8F?= =?UTF-8?q?=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 選取公司後自動觸發 AJAX 篩選,無需手動按搜尋按鈕 2. 修正重設按鈕邏輯,透過 HSSelect.setValue() 正確清除 Preline 下拉選單 UI 顯示 3. 調整 fetchTabContent 的 Preline autoInit 與 Alpine initTree 初始化順序,以 requestAnimationFrame 確保 DOM 更新完畢後才執行 Alpine,解決 AJAX 後下拉選單選中狀態遺失的問題 --- .../discord-notifications/index.blade.php | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/resources/views/admin/basic-settings/discord-notifications/index.blade.php b/resources/views/admin/basic-settings/discord-notifications/index.blade.php index d8317c7..7658f2b 100644 --- a/resources/views/admin/basic-settings/discord-notifications/index.blade.php +++ b/resources/views/admin/basic-settings/discord-notifications/index.blade.php @@ -230,7 +230,8 @@ @if(auth()->user()->isSystemAdmin()) -
+
@foreach($allCompanies as $c) @@ -244,7 +245,19 @@ @@ -1265,8 +1278,11 @@ if (newContent && container) { container.innerHTML = newContent.innerHTML; window.history.pushState({}, '', url); + // 先讓 Preline (HSSelect 等) 初始化完成,再由 Alpine 接管 if (window.HSStaticMethods?.autoInit) window.HSStaticMethods.autoInit(); - if (window.Alpine?.initTree) window.Alpine.initTree(container); + requestAnimationFrame(() => { + if (window.Alpine?.initTree) window.Alpine.initTree(container); + }); } } catch (e) { console.error('AJAX Load Failed:', e); From 18162dfa4c71ee6a5abfa008c16b6e994f4384de Mon Sep 17 00:00:00 2001 From: sky121113 Date: Thu, 21 May 2026 17:01:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[FIX]=20=E8=A3=9C=E5=BC=B7=E5=85=AC?= =?UTF-8?q?=E5=8F=B8=E7=AF=A9=E9=81=B8=E4=B8=8B=E6=8B=89=E9=81=B8=E5=96=AE?= =?UTF-8?q?=E7=9A=84=20AJAX=20=E5=BE=8C=E9=81=B8=E4=B8=AD=E7=8B=80?= =?UTF-8?q?=E6=85=8B=E9=A1=AF=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 為 option 元素補上 server-side selected 屬性,確保 Preline autoInit 重建時能正確讀取已選中的公司選項。 2. 在 fetchTabContent AJAX 完成後,主動呼叫 HSSelect.setValue() 強制同步下拉選單的顯示文字,消除選中狀態消失的視覺問題。 --- .../basic-settings/discord-notifications/index.blade.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/resources/views/admin/basic-settings/discord-notifications/index.blade.php b/resources/views/admin/basic-settings/discord-notifications/index.blade.php index 7658f2b..3833d33 100644 --- a/resources/views/admin/basic-settings/discord-notifications/index.blade.php +++ b/resources/views/admin/basic-settings/discord-notifications/index.blade.php @@ -234,7 +234,7 @@ @change="$el.closest('form').dispatchEvent(new Event('submit'))"> @foreach($allCompanies as $c) - + @endforeach
@@ -1280,6 +1280,13 @@ window.history.pushState({}, '', url); // 先讓 Preline (HSSelect 等) 初始化完成,再由 Alpine 接管 if (window.HSStaticMethods?.autoInit) window.HSStaticMethods.autoInit(); + // Re-sync company filter HSSelect display after AJAX DOM replacement. + const filterSelect = container.querySelector('select[name="filter_company_id"]'); + if (filterSelect) { + const selectedValue = (filterSelect.value ?? '').trim(); + const hsSelect = window.HSSelect?.getInstance(filterSelect); + if (hsSelect) hsSelect.setValue(selectedValue || ' '); + } requestAnimationFrame(() => { if (window.Alpine?.initTree) window.Alpine.initTree(container); });