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 (