简化行情数据页面,修复同步数据无法补全历史的问题
This commit is contained in:
@@ -31,8 +31,6 @@ def fetch_contract_bars(contract_code: str, start_date: str | None = None) -> li
|
|||||||
else:
|
else:
|
||||||
d = date.fromisoformat(str(val)[:10])
|
d = date.fromisoformat(str(val)[:10])
|
||||||
|
|
||||||
if start_date and d <= date.fromisoformat(start_date):
|
|
||||||
continue
|
|
||||||
|
|
||||||
bars.append({
|
bars.append({
|
||||||
"date": d,
|
"date": d,
|
||||||
|
|||||||
@@ -35,11 +35,6 @@ def contract_index(request: Request, db: Session = Depends(get_db)):
|
|||||||
if bar.contract not in contract_bars:
|
if bar.contract not in contract_bars:
|
||||||
contract_bars[bar.contract] = bar
|
contract_bars[bar.contract] = bar
|
||||||
|
|
||||||
total_bars = db.query(DailyBar).count()
|
|
||||||
latest_bar = (
|
|
||||||
db.query(DailyBar).order_by(DailyBar.date.desc()).first()
|
|
||||||
)
|
|
||||||
|
|
||||||
template = request.app.state.templates.get_template("index.html")
|
template = request.app.state.templates.get_template("index.html")
|
||||||
return HTMLResponse(
|
return HTMLResponse(
|
||||||
template.render(
|
template.render(
|
||||||
@@ -47,8 +42,6 @@ def contract_index(request: Request, db: Session = Depends(get_db)):
|
|||||||
active_nav="contracts",
|
active_nav="contracts",
|
||||||
contracts=active_contracts,
|
contracts=active_contracts,
|
||||||
contract_bars=contract_bars,
|
contract_bars=contract_bars,
|
||||||
total_bars=total_bars,
|
|
||||||
latest_date=latest_bar.date.strftime("%Y-%m-%d") if latest_bar else "—",
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -177,15 +177,6 @@
|
|||||||
.amp-cell { cursor: pointer; color: var(--accent); font-weight: 600; }
|
.amp-cell { cursor: pointer; color: var(--accent); font-weight: 600; }
|
||||||
.amp-cell:hover { text-decoration: underline; }
|
.amp-cell:hover { text-decoration: underline; }
|
||||||
|
|
||||||
/* ── Tags / Chips ── */
|
|
||||||
.tag-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
|
|
||||||
.tag {
|
|
||||||
padding: 5px 12px; border-radius: 20px; font-size: 0.78rem;
|
|
||||||
font-weight: 500; cursor: pointer; text-decoration: none;
|
|
||||||
border: 1px solid var(--border); color: var(--sub);
|
|
||||||
transition: all .12s;
|
|
||||||
}
|
|
||||||
.tag:hover, .tag.active { border-color: var(--accent); color: var(--accent); background: var(--accent-light); }
|
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
@@ -4,27 +4,8 @@
|
|||||||
{% block breadcrumb %}<a href="/contracts/">合约总览</a>{% endblock %}
|
{% block breadcrumb %}<a href="/contracts/">合约总览</a>{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="stat-grid">
|
|
||||||
<div class="stat-card">
|
|
||||||
<div class="label">监控合约</div>
|
|
||||||
<div class="value">{{ contracts|length }}</div>
|
|
||||||
</div>
|
|
||||||
<div class="stat-card">
|
|
||||||
<div class="label">数据条数</div>
|
|
||||||
<div class="value">{{ total_bars }}</div>
|
|
||||||
</div>
|
|
||||||
<div class="stat-card">
|
|
||||||
<div class="label">最新日期</div>
|
|
||||||
<div class="value">{{ latest_date }}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="section-title">合约列表</div>
|
<div class="section-title">合约列表</div>
|
||||||
<div class="tag-row">
|
|
||||||
{% for c in contracts %}
|
|
||||||
<a class="tag" href="/contracts/{{ c }}">{{ c }}</a>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="table-wrap">
|
<div class="table-wrap">
|
||||||
<table>
|
<table>
|
||||||
|
|||||||
Reference in New Issue
Block a user