From 9d56f6169a510dfbbe62f59b00409a5cecafc8f9 Mon Sep 17 00:00:00 2001 From: Blizzard Date: Fri, 9 Oct 2026 22:57:56 +0800 Subject: [PATCH] fix: display stock codes alongside names across admin views --- docs/development-state.md | 5 ++++- web/admin/src/components/CandidatesPanel.tsx | 5 +++-- web/admin/src/components/MarketPanel.tsx | 3 ++- web/admin/src/components/StockIdentity.tsx | 8 ++++++++ web/admin/src/components/TradingOverview.tsx | 5 +++-- 5 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 web/admin/src/components/StockIdentity.tsx diff --git a/docs/development-state.md b/docs/development-state.md index 329da9d..440d902 100644 --- a/docs/development-state.md +++ b/docs/development-state.md @@ -17,7 +17,10 @@ ## 股票名称搜索修复(2026-10-09) - 实际 HTTPS 查询复现:名称“诺普信”无结果,但代码 002215 和名称“诺 普 信”均返回该深交所股票。数据源在名称中填充了空格,原 SQL LIKE 连续匹配漏掉无空格查询,证券并未漏同步。 -- 查询统一忽略名称与输入中的空格、制表符和全角空格,保持原始源名称;转义 LIKE 通配符为字面匹配,避免输入 % 或 _ 返回全部股票。管理端无搜索结果文案与无同步数据区分。真实 PostgreSQL 隔离 schema 的 race 回归覆盖名称/代码/空格和通配符,go vet、管理端类型检查/build/embed 通过;待 PR / CI 上线后实查。 +- 查询统一忽略名称与输入中的空格、制表符和全角空格,保持原始源名称;转义 LIKE 通配符为字面匹配,避免输入 % 或 _ 返回全部股票。管理端无搜索结果文案与无同步数据区分。真实 PostgreSQL 隔离 schema 的 race 回归覆盖名称/代码/空格和通配符,go vet、管理端类型检查/build/embed 通过;已通过 PR #6 合并,待 CI 上线后实查。 + +- 按用户补充要求,管理端行情列表/详情、候选队列、审核详情/确认、总览观察与信号卡将代码与名称并列展示,代码使用等宽字形;选股、回测、策略证券列表以及 App 候选/计划/持仓/成交原已有代码,继续保留。管理端统一 StockIdentity 组件,类型检查/build/embed 通过。 +- 用户最新指示先不处理 App 安装,保留已有 IPA 产物;当前优先验证名称搜索、股票代码展示与模型运行配置。 ## App Expo Go 真机入口(2026-10-09) diff --git a/web/admin/src/components/CandidatesPanel.tsx b/web/admin/src/components/CandidatesPanel.tsx index 5c01fee..228f7a3 100644 --- a/web/admin/src/components/CandidatesPanel.tsx +++ b/web/admin/src/components/CandidatesPanel.tsx @@ -1,3 +1,4 @@ +import {StockIdentity} from "./StockIdentity" import {useEffect,useRef,useState,type FormEvent} from "react" import {ScreeningRunControl} from "./ScreeningRunControl" import {StockHistoryChart} from "./StockHistoryChart" @@ -35,10 +36,10 @@ export function CandidatesPanel({onSessionExpired,initialCandidateID}:{onSession {([["观察逻辑","thesis"],["反证与风险","counter_evidence"],["失效条件","invalidation"]] as const).map(([label,key])=>