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 (