From 76202e0937dffc651ff52d06d4184bb37807947c Mon Sep 17 00:00:00 2001 From: intfoo Date: Sun, 26 Jul 2026 19:59:30 +0800 Subject: [PATCH] =?UTF-8?q?fix(index):=20=E5=89=8D=E7=AB=AF=E6=8C=87?= =?UTF-8?q?=E6=95=B0=E5=88=86=E9=92=9FK=E9=99=8D=E7=BA=A7=E4=B8=8E?= =?UTF-8?q?=E6=96=87=E6=A1=88=E8=B5=84=E4=BA=A7=E4=B8=AD=E7=AB=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - StockIntradayChart 指数不显示「获取分钟K/重新获取」按钮, 改静态提示 (指数分钟K仅实时读取, 后端 sync_minute_single 显式拒绝落库) - api.ts klineMinute 响应类型加 asset_type 可选字段 - RuleEditor/Monitor 文案: 默认规则名/徽标/placeholder/报错/空状态 "个股信号(监控)→信号(监控)" "指定股票→指定标的" "股票→标的" --- frontend/src/components/StockIntradayChart.tsx | 5 +++++ frontend/src/components/monitor/RuleEditor.tsx | 10 +++++----- frontend/src/lib/api.ts | 1 + frontend/src/pages/Monitor.tsx | 8 ++++---- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/frontend/src/components/StockIntradayChart.tsx b/frontend/src/components/StockIntradayChart.tsx index 22afd75..438c699 100644 --- a/frontend/src/components/StockIntradayChart.tsx +++ b/frontend/src/components/StockIntradayChart.tsx @@ -48,6 +48,8 @@ export function StockIntradayChart({ // source=none 表示本地无数据且 TickFlow 也拉不到 (停牌/复牌延迟/非交易日) // 此时不弹"是否获取"询问窗, 只做静态提示, 避免误导用户去拉明知拉不到的数据 const sourceIsNone = minute.data?.source === 'none' + // 指数分钟K无本地存储且不支持落库获取 (后端 sync_minute_single 显式拒绝), 不显示获取按钮 + const isIndex = minute.data?.asset_type === 'index' useEffect(() => { setMinuteDismissed(false) @@ -66,6 +68,9 @@ export function StockIntradayChart({ 正在获取分钟K数据… + ) : isIndex ? ( + // 指数: 分钟K仅支持实时读取, 无落库获取入口 +
指数暂无分钟数据
) : sourceIsNone ? ( // 数据源确认无此日分钟数据 (停牌/复牌延迟等): 静态提示 + 保留重试
diff --git a/frontend/src/components/monitor/RuleEditor.tsx b/frontend/src/components/monitor/RuleEditor.tsx index 90b3a85..f340c08 100644 --- a/frontend/src/components/monitor/RuleEditor.tsx +++ b/frontend/src/components/monitor/RuleEditor.tsx @@ -20,7 +20,7 @@ interface Props { } const TYPE_DEFAULT_NAME: Record = { - signal: '个股信号监控', price: '价格监控', market: '市场异动监控', strategy: '策略监控', + signal: '信号监控', price: '价格监控', market: '市场异动监控', strategy: '策略监控', } const TYPE_ICONS = { @@ -110,7 +110,7 @@ export function RuleEditor({ rule, preset, simple, onClose, onSaved }: Props) { if (c.op !== 'truth' && (c.value === null || c.value === undefined)) throw new Error('阈值条件需要数值') } } - if (d.scope === 'symbols' && d.symbols.length === 0) throw new Error('请选择至少一只股票') + if (d.scope === 'symbols' && d.symbols.length === 0) throw new Error('请选择至少一只标的') return api.monitorRuleSave(d) }, onSuccess: () => { @@ -391,7 +391,7 @@ export function RuleEditor({ rule, preset, simple, onClose, onSaved }: Props) { setSymbolQuery(e.target.value)} - placeholder="搜索股票..." + placeholder="搜索代码或名称..." className="h-7 w-32 rounded border border-border bg-base pl-6 pr-2 text-[11px] text-foreground focus:outline-none focus:border-accent/50" /> @@ -408,7 +408,7 @@ export function RuleEditor({ rule, preset, simple, onClose, onSaved }: Props) {
)} - {draft.scope === 'all' && 对全市场所有股票生效} + {draft.scope === 'all' && 对全市场所有标的生效} {draft.scope === 'sector' && 板块精确过滤(开发中,当前等同全市场)} @@ -446,7 +446,7 @@ export function RuleEditor({ rule, preset, simple, onClose, onSaved }: Props) {
{intradaySupport?.available === false ? intradaySupport.reason - : `分时穿越按已完成的一分钟判断,仅支持指定股票,当前最多监听 ${intradaySupport?.max_symbols ?? 0} 只。`} + : `分时穿越按已完成的一分钟判断,仅支持指定标的,当前最多监听 ${intradaySupport?.max_symbols ?? 0} 只。`}
)} diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index 948e6d6..3902ad4 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -1293,6 +1293,7 @@ export const api = { date: string | null rows: MinuteKlineRow[] source?: 'local' | 'live' | 'none' + asset_type?: 'stock' | 'etf' | 'index' price_limit?: PriceLimitInfo | null }>( `/api/kline/minute?symbol=${encodeURIComponent(symbol)}${date ? `&date=${date}` : ''}`, diff --git a/frontend/src/pages/Monitor.tsx b/frontend/src/pages/Monitor.tsx index 3ddfaad..c1c6cc7 100644 --- a/frontend/src/pages/Monitor.tsx +++ b/frontend/src/pages/Monitor.tsx @@ -18,7 +18,7 @@ import { DimensionMembersDialog, type DimensionKind, type DimensionMembersTarget import { usePreferences } from '@/lib/useSharedQueries' const TYPE_LABEL: Record = { - signal: '个股信号', price: '价格/涨跌', market: '市场异动', strategy: '策略监控', + signal: '信号', price: '价格/涨跌', market: '市场异动', strategy: '策略监控', } /** 严重级别 → 左侧色条 + 图标 */ @@ -336,7 +336,7 @@ function AlertsList({ alertsQuery, confirmClear, setConfirmClear, total, enterTs ) : (
@@ -633,11 +633,11 @@ function RulesList({ rulesQuery, onEdit }: { ) : ( rules.map(r => { - // 名称截取: "策略监控 · MACD金叉" → "MACD金叉", "个股信号监控 · 300750.SZ" → "个股信号监控" + // 名称截取: "策略监控 · MACD金叉" → "MACD金叉", "信号监控 · 300750.SZ" → "信号监控" const dotIdx = r.name.indexOf(' · ') const displayName = dotIdx >= 0 ? r.name.slice(dotIdx + 3) : r.name return (