feat: 迭代03-05 交易记录接入、行情实时、QMT连接配置、data store 标准化

- R-004 QMT连接配置:多配置管理 + 会话头部快捷切换(03-QMT连接配置)
- R-005 WS盘中价格实时更新:服务端中转+缓存+前端轮询(04-WS盘中价格实时更新)
- R-006 策略数据 JSON data store 标准化(store.json/market.json/schema.json)
- R-007 交易记录接入:当日订单+成交单表合并(委托主行+展开成交明细)、时间段查询(今日/本周/本月+手动起止)、费用计算(佣金费率万m_dCommission+最低5元、印花税卖出万5、过户费双向万0.1)
- 架构治理:api 按领域拆分、component 目录、QmtHealthMonitor
This commit is contained in:
2026-09-01 13:21:49 +08:00
parent 5a723d514e
commit bb3f8bd28d
57 changed files with 5244 additions and 397 deletions
+14 -3
View File
@@ -15,8 +15,11 @@ import { createElement } from 'react';
import { AllPositionsTab } from './views/AllPositionsTab.jsx';
import { StrategyTab } from './views/StrategyTab.jsx';
import { PlaceholderTab } from './views/PlaceholderTab.jsx';
import { TradeRecordsTab } from './views/TradeRecordsTab.jsx';
import { SettingsSection } from './views/SettingsSection.jsx';
import { QmtConnectionChip } from './views/QmtConnectionChip.jsx';
import { ConnectionProvider } from './views/connection.jsx';
import { MarketDataProvider } from './market/MarketDataProvider.jsx';
export const inject = ['slots', 'connection'];
@@ -61,7 +64,7 @@ const GENERAL_TABS = [
{ key: 'allPositions', id: 'odl-all-positions', label: '全部持仓', order: 10,
render: (withConnection) => withConnection((props) => createElement(AllPositionsTab, props)) },
{ key: 'tradeRecords', id: 'odl-trade-records', label: '交易记录', order: 11,
render: (withConnection) => withConnection((props) => createElement(PlaceholderTab, { ...props, title: '交易记录' })) },
render: (withConnection) => withConnection((props) => createElement(TradeRecordsTab, props)) },
{ key: 'watchlist', id: 'odl-watchlist', label: '关注列表', order: 12,
render: (withConnection) => withConnection((props) => createElement(PlaceholderTab, { ...props, title: '关注列表' })) },
];
@@ -73,7 +76,8 @@ export function apply(ctx) {
}
const withConnection = (render) => (props) =>
createElement(ConnectionProvider, { connection }, render(props));
createElement(ConnectionProvider, { connection },
createElement(MarketDataProvider, null, render(props)));
ctx.slots.register({
name: 'settings.section',
@@ -130,10 +134,17 @@ export function apply(ctx) {
registerAllTabs();
// R-004 Q9:会话头部快捷切换 chip(与 DSH 内置 PTC 标签 order=-10 并排,技术约束-009
ctx.slots.register({
name: 'conversation.session.header.actions',
id: 'odl-qmt-switch',
order: -9,
}, withConnection((props) => createElement(QmtConnectionChip, props)));
ctx.effect(() => {
return () => {
disposed = true;
disposeAllTabs();
};
}, 'one-divine-lot.client');
}
}