This commit is contained in:
dekun
2026-05-27 15:57:43 +08:00
parent 7aed70db04
commit e6c2b73e2c
4 changed files with 132 additions and 8 deletions
+32 -1
View File
@@ -96,6 +96,20 @@
.panel-scroll{flex:1;min-height:280px;max-height:420px;overflow:auto} .panel-scroll{flex:1;min-height:280px;max-height:420px;overflow:auto}
.records-card{grid-column:1/-1} .records-card{grid-column:1/-1}
.review-card{grid-column:1/-1} .review-card{grid-column:1/-1}
.review-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.review-card-head h2{margin:0}
.review-card-fs-btn{padding:6px 12px;background:#1f3a5a;color:#8fc8ff;border:none;border-radius:8px;cursor:pointer;font-size:.82rem;white-space:nowrap}
.review-card-fs-btn:hover{filter:brightness(1.08)}
body.review-card-fullscreen-open{overflow:hidden}
.review-card.is-fullscreen{
position:fixed;inset:12px;z-index:1100;margin:0;
width:auto !important;max-width:none;height:auto;
overflow:auto;display:flex;flex-direction:column;
box-shadow:0 12px 48px rgba(0,0,0,.55);
}
.review-card.is-fullscreen .panel-list{flex:1;min-height:320px}
.review-card.is-fullscreen .panel-item{max-height:none;height:auto;min-height:280px}
.review-card.is-fullscreen .ai-result{max-height:min(36vh, 320px)}
@media (max-width: 1200px){ @media (max-width: 1200px){
.stat-box{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))} .stat-box{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
} }
@@ -743,8 +757,11 @@
</form> </form>
</div> </div>
<div class="card full review-card"> <div class="card full review-card" id="review-card">
<div class="review-card-head">
<h2>AI复盘(按交易记录)</h2> <h2>AI复盘(按交易记录)</h2>
<button type="button" class="review-card-fs-btn" id="review-card-fs-btn" onclick="toggleReviewCardFullscreen()">全屏</button>
</div>
<div class="form-row"> <div class="form-row">
<input type="date" id="day_date"> <input type="date" id="day_date">
<button type="button" onclick="genDaily()">生成日复盘</button> <button type="button" onclick="genDaily()">生成日复盘</button>
@@ -885,6 +902,20 @@ function forceCloseDetailModal(){
} }
function closeDetailModal(e){if(e.target && e.target.id==="detailModal"){forceCloseDetailModal();}} function closeDetailModal(e){if(e.target && e.target.id==="detailModal"){forceCloseDetailModal();}}
function expandDetailToFullscreen(){ setDetailModalFullscreen(true); } function expandDetailToFullscreen(){ setDetailModalFullscreen(true); }
function toggleReviewCardFullscreen(){
const card = document.getElementById("review-card");
if(!card) return;
const on = !card.classList.contains("is-fullscreen");
card.classList.toggle("is-fullscreen", on);
document.body.classList.toggle("review-card-fullscreen-open", on);
const btn = document.getElementById("review-card-fs-btn");
if(btn){ btn.textContent = on ? "退出全屏" : "全屏"; }
}
document.addEventListener("keydown", function(e){
if(e.key !== "Escape") return;
const card = document.getElementById("review-card");
if(card && card.classList.contains("is-fullscreen")){ toggleReviewCardFullscreen(); }
});
function openAiInlineResultFullscreen(title, elementId){ function openAiInlineResultFullscreen(title, elementId){
const el = document.getElementById(elementId || "daily_result"); const el = document.getElementById(elementId || "daily_result");
const text = String((el && el.innerText) || "").trim(); const text = String((el && el.innerText) || "").trim();
+32 -1
View File
@@ -96,6 +96,20 @@
.panel-scroll{flex:1;min-height:280px;max-height:420px;overflow:auto} .panel-scroll{flex:1;min-height:280px;max-height:420px;overflow:auto}
.records-card{grid-column:1/-1} .records-card{grid-column:1/-1}
.review-card{grid-column:1/-1} .review-card{grid-column:1/-1}
.review-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.review-card-head h2{margin:0}
.review-card-fs-btn{padding:6px 12px;background:#1f3a5a;color:#8fc8ff;border:none;border-radius:8px;cursor:pointer;font-size:.82rem;white-space:nowrap}
.review-card-fs-btn:hover{filter:brightness(1.08)}
body.review-card-fullscreen-open{overflow:hidden}
.review-card.is-fullscreen{
position:fixed;inset:12px;z-index:1100;margin:0;
width:auto !important;max-width:none;height:auto;
overflow:auto;display:flex;flex-direction:column;
box-shadow:0 12px 48px rgba(0,0,0,.55);
}
.review-card.is-fullscreen .panel-list{flex:1;min-height:320px}
.review-card.is-fullscreen .panel-item{max-height:none;height:auto;min-height:280px}
.review-card.is-fullscreen .ai-result{max-height:min(36vh, 320px)}
@media (max-width: 1200px){ @media (max-width: 1200px){
.stat-box{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))} .stat-box{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
} }
@@ -743,8 +757,11 @@
</form> </form>
</div> </div>
<div class="card full review-card"> <div class="card full review-card" id="review-card">
<div class="review-card-head">
<h2>AI复盘(按交易记录)</h2> <h2>AI复盘(按交易记录)</h2>
<button type="button" class="review-card-fs-btn" id="review-card-fs-btn" onclick="toggleReviewCardFullscreen()">全屏</button>
</div>
<div class="form-row"> <div class="form-row">
<input type="date" id="day_date"> <input type="date" id="day_date">
<button type="button" onclick="genDaily()">生成日复盘</button> <button type="button" onclick="genDaily()">生成日复盘</button>
@@ -885,6 +902,20 @@ function forceCloseDetailModal(){
} }
function closeDetailModal(e){if(e.target && e.target.id==="detailModal"){forceCloseDetailModal();}} function closeDetailModal(e){if(e.target && e.target.id==="detailModal"){forceCloseDetailModal();}}
function expandDetailToFullscreen(){ setDetailModalFullscreen(true); } function expandDetailToFullscreen(){ setDetailModalFullscreen(true); }
function toggleReviewCardFullscreen(){
const card = document.getElementById("review-card");
if(!card) return;
const on = !card.classList.contains("is-fullscreen");
card.classList.toggle("is-fullscreen", on);
document.body.classList.toggle("review-card-fullscreen-open", on);
const btn = document.getElementById("review-card-fs-btn");
if(btn){ btn.textContent = on ? "退出全屏" : "全屏"; }
}
document.addEventListener("keydown", function(e){
if(e.key !== "Escape") return;
const card = document.getElementById("review-card");
if(card && card.classList.contains("is-fullscreen")){ toggleReviewCardFullscreen(); }
});
function openAiInlineResultFullscreen(title, elementId){ function openAiInlineResultFullscreen(title, elementId){
const el = document.getElementById(elementId || "daily_result"); const el = document.getElementById(elementId || "daily_result");
const text = String((el && el.innerText) || "").trim(); const text = String((el && el.innerText) || "").trim();
+32 -1
View File
@@ -122,6 +122,20 @@
.btn-close-plan:hover{filter:brightness(1.08)} .btn-close-plan:hover{filter:brightness(1.08)}
.records-card{grid-column:1/-1} .records-card{grid-column:1/-1}
.review-card{grid-column:1/-1} .review-card{grid-column:1/-1}
.review-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.review-card-head h2{margin:0}
.review-card-fs-btn{padding:6px 12px;background:#1f3a5a;color:#8fc8ff;border:none;border-radius:8px;cursor:pointer;font-size:.82rem;white-space:nowrap}
.review-card-fs-btn:hover{filter:brightness(1.08)}
body.review-card-fullscreen-open{overflow:hidden}
.review-card.is-fullscreen{
position:fixed;inset:12px;z-index:1100;margin:0;
width:auto !important;max-width:none;height:auto;
overflow:auto;display:flex;flex-direction:column;
box-shadow:0 12px 48px rgba(0,0,0,.55);
}
.review-card.is-fullscreen .panel-list{flex:1;min-height:320px}
.review-card.is-fullscreen .panel-item{max-height:none;height:auto;min-height:280px}
.review-card.is-fullscreen .ai-result{max-height:min(36vh, 320px)}
@media (min-width: 1440px){ @media (min-width: 1440px){
.order-card .order-live-positions{max-height:420px} .order-card .order-live-positions{max-height:420px}
.records-card .table-wrap{max-height:620px;overflow:auto} .records-card .table-wrap{max-height:620px;overflow:auto}
@@ -569,8 +583,11 @@
</form> </form>
</div> </div>
<div class="card full review-card"> <div class="card full review-card" id="review-card">
<div class="review-card-head">
<h2>AI复盘(按交易记录)</h2> <h2>AI复盘(按交易记录)</h2>
<button type="button" class="review-card-fs-btn" id="review-card-fs-btn" onclick="toggleReviewCardFullscreen()">全屏</button>
</div>
<div class="form-row"> <div class="form-row">
<input type="date" id="day_date"> <input type="date" id="day_date">
<button type="button" onclick="genDaily()">生成日复盘</button> <button type="button" onclick="genDaily()">生成日复盘</button>
@@ -723,6 +740,20 @@ function forceCloseDetailModal(){
if(modal){ modal.style.display = "none"; modal.classList.remove("fullscreen"); } if(modal){ modal.style.display = "none"; modal.classList.remove("fullscreen"); }
} }
function expandDetailToFullscreen(){ setDetailModalFullscreen(true); } function expandDetailToFullscreen(){ setDetailModalFullscreen(true); }
function toggleReviewCardFullscreen(){
const card = document.getElementById("review-card");
if(!card) return;
const on = !card.classList.contains("is-fullscreen");
card.classList.toggle("is-fullscreen", on);
document.body.classList.toggle("review-card-fullscreen-open", on);
const btn = document.getElementById("review-card-fs-btn");
if(btn){ btn.textContent = on ? "退出全屏" : "全屏"; }
}
document.addEventListener("keydown", function(e){
if(e.key !== "Escape") return;
const card = document.getElementById("review-card");
if(card && card.classList.contains("is-fullscreen")){ toggleReviewCardFullscreen(); }
});
function openAiInlineResultFullscreen(title, elementId){ function openAiInlineResultFullscreen(title, elementId){
const el = document.getElementById(elementId || "daily_result"); const el = document.getElementById(elementId || "daily_result");
const text = String((el && el.innerText) || "").trim(); const text = String((el && el.innerText) || "").trim();
+32 -1
View File
@@ -96,6 +96,20 @@
.panel-scroll{flex:1;min-height:280px;max-height:420px;overflow:auto} .panel-scroll{flex:1;min-height:280px;max-height:420px;overflow:auto}
.records-card{grid-column:1/-1} .records-card{grid-column:1/-1}
.review-card{grid-column:1/-1} .review-card{grid-column:1/-1}
.review-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.review-card-head h2{margin:0}
.review-card-fs-btn{padding:6px 12px;background:#1f3a5a;color:#8fc8ff;border:none;border-radius:8px;cursor:pointer;font-size:.82rem;white-space:nowrap}
.review-card-fs-btn:hover{filter:brightness(1.08)}
body.review-card-fullscreen-open{overflow:hidden}
.review-card.is-fullscreen{
position:fixed;inset:12px;z-index:1100;margin:0;
width:auto !important;max-width:none;height:auto;
overflow:auto;display:flex;flex-direction:column;
box-shadow:0 12px 48px rgba(0,0,0,.55);
}
.review-card.is-fullscreen .panel-list{flex:1;min-height:320px}
.review-card.is-fullscreen .panel-item{max-height:none;height:auto;min-height:280px}
.review-card.is-fullscreen .ai-result{max-height:min(36vh, 320px)}
@media (max-width: 1200px){ @media (max-width: 1200px){
.stat-box{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))} .stat-box{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
} }
@@ -752,8 +766,11 @@
</form> </form>
</div> </div>
<div class="card full review-card"> <div class="card full review-card" id="review-card">
<div class="review-card-head">
<h2>AI复盘(按交易记录)</h2> <h2>AI复盘(按交易记录)</h2>
<button type="button" class="review-card-fs-btn" id="review-card-fs-btn" onclick="toggleReviewCardFullscreen()">全屏</button>
</div>
<div class="form-row"> <div class="form-row">
<input type="date" id="day_date"> <input type="date" id="day_date">
<button type="button" onclick="genDaily()">生成日复盘</button> <button type="button" onclick="genDaily()">生成日复盘</button>
@@ -894,6 +911,20 @@ function forceCloseDetailModal(){
} }
function closeDetailModal(e){if(e.target && e.target.id==="detailModal"){forceCloseDetailModal();}} function closeDetailModal(e){if(e.target && e.target.id==="detailModal"){forceCloseDetailModal();}}
function expandDetailToFullscreen(){ setDetailModalFullscreen(true); } function expandDetailToFullscreen(){ setDetailModalFullscreen(true); }
function toggleReviewCardFullscreen(){
const card = document.getElementById("review-card");
if(!card) return;
const on = !card.classList.contains("is-fullscreen");
card.classList.toggle("is-fullscreen", on);
document.body.classList.toggle("review-card-fullscreen-open", on);
const btn = document.getElementById("review-card-fs-btn");
if(btn){ btn.textContent = on ? "退出全屏" : "全屏"; }
}
document.addEventListener("keydown", function(e){
if(e.key !== "Escape") return;
const card = document.getElementById("review-card");
if(card && card.classList.contains("is-fullscreen")){ toggleReviewCardFullscreen(); }
});
function openAiInlineResultFullscreen(title, elementId){ function openAiInlineResultFullscreen(title, elementId){
const el = document.getElementById(elementId || "daily_result"); const el = document.getElementById(elementId || "daily_result");
const text = String((el && el.innerText) || "").trim(); const text = String((el && el.innerText) || "").trim();