📱 頁面架構(3 層)
第 1 頁|Login z-index:600
· 帳號/密碼驗證 · 背景透出第 2 頁
第 2 頁|Landing z-index:500
· 黑洞動畫(事件視界+吸積盤+光子環)
· SCP 大字(68px)+ 跑馬燈(6 圓點)
· 10 功能按鈕(2 列×5)
· 累積折線圖(lnd_cumul)AllFundsHistory
· Racing Chart iframe→racing_v3.html→racing_data.json
· Credit Limit Inquiry iframe→cl_panel.html
· White List Inquiry iframe→wl_panel.html
第 3 頁|Dashboard switchView()
· Overview AllFundsHistory+AllFund+ReturnHistory
KPI×8 / Credit Limit / Return / Repayment BD
Coverage / Roll-ups / Top-10 Buyers / Annual
· Performance + Summarizes AllFund+ReturnHistory
Maturity / VTeam Return / Days / OC Ratio
Summarizes:5 區塊月度比對
· Credit Rating CreditRatingChanged+AllFund
cr-left(305px):QD / CLP / BB Alert / CR Record
cr-panel:Specific Date / Monitoring / Rating Desc.
· VTeam Turnover VTeamTurnover
· Fund Facts FundFacts
· Inquiry afhdata.json(AllFundsHistory全量)
Return / Invoice No. / Top-10 / Expected Date
· AUM AUM worksheet → {{AUM_MONTHS}} 個月
· Value at Risk AllFund → VaR 計算
· NAV NAV worksheet → {{NAV_RECORDS}} 筆
📊 資料來源(RefrenceSource.xlsx)
Google Drive: Cooper/100 RefrenceSource/ · Drive modifiedTime 比對→有更新才下載
AllFundsHistory Row 11 header
{{AFH_ROWS}} 筆 · 最新購買日:{{AFH_LATEST}}
基金:{{AFH_FUNDS}}
21 欄名稱定位(_AFH_MAP + 備援索引)
→ Overview / Performance / Inquiry / VaR / lnd_cumul / Racing Chart
AllFund Row 9 header
{{AF_POSITIONS}} 部位 · USD {{AF_TOTAL_M}} M · CL: {{AF_CL_M}} M
名稱定位(_af_find_col)
→ Performance / Credit Rating / VaR / cl_used
CreditRatingChanged Row 2 header
{{CR_CHANGES}} 筆變動 · Fund/Date/Old/New/Action
→ Credit Rating 頁
ReturnHistory Row 2 header · _rh_find_col
{{RH_MONTHS}} 個月 · 未來:{{RH_FUTURE}} 筆
→ Performance VTeam Return / Overview Return / Summarizes
VTeamTurnover → VTeam Turnover 頁
AUM Row 1/2 header → AUM 頁({{AUM_MONTHS}} 個月)
FundFacts → Fund Facts 頁
NAV → NAV 頁({{NAV_RECORDS}} 筆)
WhiteList Row 4 基金欄自動發現
→ cl_panel.html Credit Limit Inquiry / cldata.json
CreditRating (P col) → CR Credit Limit 欄
⏰ 更新流程(自動)
每日 06:30 HKT ID: fbf130e1
① Drive modifiedTime 比對 → 有更新才下載
② generate_dashboard.py
→ 讀所有工作表(名稱定位)
→ allfunds_dashboard.html(~911KB)
→ 8 個 JSON 中繼 + data_source_snapshot.json
→ dashboard_data_latest.json 同步 /tmp/
③ generate_mindmap.py(本圖自動重生)
每月 5 日 01:00 HKT ID: 6f5b12d7
racing_chart_monthly_update.py
→ AllFundsHistory(Date purchased AR)
→ racing_data.json({{RC_DAYS}} days,最新:{{RC_LAST_DAY}})
每月 5 日 01:10 HKT ID: b7b1aafa
generate_dashboard.py(Racing 後觸發)
每日 07:00 HKT ID: adfa174f
Mission Endurance 日報
→ data_source_snapshot.json → 雙重驗證
→ CASE1-5 巡檢 + Dashboard 還原點
📌 手動:Derek 說「更新 Dashboard」→ Cooper 立刻執行
🖥️ 伺服器架構
serve_nocache.py port 18999
serve /tmp/ · no-cache headers · 防 iOS Safari 快取
HTTP 直連
http://143.198.88.210:18999/allfunds_dashboard.html
HTTPS(nginx 反代理)
https://scp.siegfriedfund.com/ → nginx → port 18999
Git 版本管理
還原點 tag: dashboard-YYYYMMDD-HHMM
當前:dashboard-20261004-1251 (18fb39d)
系統路徑
workspace: /root/.openclaw-cooper/workspace/
generate: dashboard/scripts/generate_dashboard.py
template: dashboard/scripts/dashboard_template.html
mindmap: scripts/mindmap_template.html