diff --git a/static/app.js b/static/app.js index bacba6c..348d4cb 100644 --- a/static/app.js +++ b/static/app.js @@ -4510,13 +4510,14 @@ function renderAlerts() { } async function openReviewAssistant() { - if (!hasMemberAccess()) { - openSettings("membership", "复盘助手仅对会员开放"); - return; - } toggleHeaderCommandMenu(false); toggleAccountDropdown(false); if (!elements.assistantDialog.open) elements.assistantDialog.showModal(); + updateAssistantControls(); + if (!hasMemberAccess()) { + document.querySelector("#closeAssistantDialog").focus(); + return; + } try { const payload = await apiRequest("/api/assistant/messages"); state.assistantMessages = payload.items || []; @@ -4648,10 +4649,17 @@ function renderAssistantMessages() { } function updateAssistantControls() { - document.querySelector("#assistantQuestion").disabled = state.assistantLoading; - document.querySelector("#sendAssistant").disabled = state.assistantLoading; - document.querySelector("#stopAssistant").hidden = !state.assistantLoading; - document.querySelector("#clearAssistantMessages").disabled = state.assistantLoading || !state.assistantMessages.length; + const unlocked = hasMemberAccess(); + elements.assistantDialog.classList.toggle("member-locked", !unlocked); + document.querySelector("#assistantMemberGate").hidden = unlocked; + document.querySelector("#assistantMemberContent").setAttribute("aria-disabled", String(!unlocked)); + document.querySelector("#assistantQuestion").disabled = !unlocked || state.assistantLoading; + document.querySelector("#sendAssistant").disabled = !unlocked || state.assistantLoading; + document.querySelector("#stopAssistant").hidden = !unlocked || !state.assistantLoading; + document.querySelector("#clearAssistantMessages").disabled = !unlocked || state.assistantLoading || !state.assistantMessages.length; + document.querySelectorAll("[data-assistant-prompt]").forEach((button) => { + button.disabled = !unlocked || state.assistantLoading; + }); } function openGlobalSearch() { @@ -5028,6 +5036,7 @@ function applyMembershipAccess() { const assistantButton = document.querySelector("#assistantButton"); assistantButton.classList.toggle("member-locked-control", !unlocked); assistantButton.title = unlocked ? "复盘助手" : "复盘助手(会员可用)"; + updateAssistantControls(); } function openView(viewId, updateHash = true) { @@ -5188,13 +5197,10 @@ function selectAccountPanel(panel) { return selected; } -async function openSettings(panel = "profile", accessNotice = "") { - const selectedPanel = selectAccountPanel(panel); +async function openSettings(panel = "profile") { + selectAccountPanel(panel); toggleAccountDropdown(false); toggleHeaderCommandMenu(false); - const membershipNotice = document.querySelector("#membershipAccessNotice"); - membershipNotice.textContent = accessNotice; - membershipNotice.hidden = selectedPanel !== "membership" || !accessNotice; const status = document.querySelector("#connectionStatus"); status.className = "connection-status"; status.textContent = "正在读取账号状态"; diff --git a/static/index.html b/static/index.html index 734fca1..6845a2a 100644 --- a/static/index.html +++ b/static/index.html @@ -1148,24 +1148,30 @@ -
-
可以从市场、策略或自己的交易记录开始复盘
+ -
- - - - -
-
- - -
- - +
+
+
可以从市场、策略或自己的交易记录开始复盘
- -

助手仅用于复盘与条件化计划,不执行交易,不构成投资建议。

+
+ + + + +
+
+ + +
+ + +
+
+

助手仅用于复盘与条件化计划,不执行交易,不构成投资建议。

+
@@ -1179,7 +1185,6 @@
正在读取账号状态