Sakurasan
|
6478e0d403
|
feat: AI分析单页展示 + 主题切换 + 移动端适配
- AI分析页改为直接展示最新报告,历史存数据库
- 新增浅色/深色/系统自动主题切换
- 市场看板、AI分析页适配主题变量
- 移动端表格可滑动、按钮自动换行
- Mermaid图表支持
- Markdown表格渲染支持(remark-gfm)
|
2026-09-01 12:33:27 +08:00 |
|
Sakurasan
|
912a224b6b
|
feat: AI市场分析功能
- 后端:AI分析服务、工具调用、定时任务
- 前端:报告列表、详情页、Mermaid图表支持
- 支持OpenAI API兼容模型
- 收盘后自动分析生成报告
|
2026-09-01 04:21:29 +08:00 |
|
Sakurasan
|
d7d019c2c4
|
feat: 市场看板 - 聚合同花顺SDK全量数据的A股实时看板
- 新增 /dashboard 页面:暗色主题,指数行情/市场温度/涨跌分布/行业强度/概念热度/事件情报
- 后端聚合接口 /api/market-dashboard,30秒缓存
- 利用SDK接口:指数行情、全市场快照、涨停/跌停/炸板池、连板天梯、热门股、飙升榜、龙虎榜、异动分析、集合竞价基准、行业/概念目录
- 市场温度评分:6因子加权(涨跌比/中位涨跌/强弱比/涨停活跃度/炸板惩罚/竞价信号)
- 首页添加市场看板导航入口
|
2026-08-31 10:29:37 +08:00 |
|
Sakurasan
|
b1f216b2a4
|
feat: K线增加分钟/小时周期切换,拆分独立KLineCard组件
- 后端:腾讯 mkline 新增 /api/stock/history-minute(m1/m5/m15/m30/m60)
- 新组件 kline-card.tsx:自包含周期/折线蜡烛/指标开关与K线数据加载,
切周期只重拉K线,不刷新页面其他模块
- 详情页瘦身为独立模块:K线图 / 今开最高最低昨收 / 每日行情明细互不耦合
- 时间统一按 UTC 解析传 Unix 秒,修复日线 invalid date/N/A 与分钟线时区问题
- 资金流向失败降级为非致命,不再导致整页报错
- vite 构建拆分 recharts/lightweight-charts/router 独立 chunk
|
2026-08-28 17:43:11 +08:00 |
|
Sakurasan
|
c4ed3346ab
|
feat: K线成交量独立pane、浅色调、移除KDJ
|
2026-08-28 15:37:17 +08:00 |
|
Sakurasan
|
813e5c345a
|
feat: 默认仅显示均线MA(5/10/20),MACD默认关闭;图表增加线颜色图例
- 默认指标改为只开 MA(MACD 默认关)
- MA 周期改为 5/10/20(去掉 30)
- 图表下方新增颜色图例:按启用的指标显示对应颜色线(MA各周期/DIF/DEA/RSI/K/D/J)
|
2026-08-28 12:25:45 +08:00 |
|
Sakurasan
|
bc9ce37dff
|
chore: MACD 参数由默认(12,26,9)改为(10,20,7)
|
2026-08-28 12:13:24 +08:00 |
|
Sakurasan
|
0743014f1a
|
feat: 详情页K线增加技术指标 MA/MACD/RSI/KDJ
- 新增 indicators.ts 指标计算库:SMA/EMA/MACD(12,26,9)/RSI(14)/KDJ(9,3,3)
- KLineChart 支持指标开关:MA(5/10/20/30) 主图叠加、MACD/RSI/KDJ 独立副图 pane
- 图表高度随指标 pane 数量动态增长(主图 300 + 每个副图 95),主图不被压缩
- 指标全部前端本地计算,无需后端
|
2026-08-28 12:05:37 +08:00 |
|
Sakurasan
|
25c179dc06
|
feat: 详情页K线改用 TradingView Lightweight Charts,蜡烛图原生支持
- 新增 KLineChart 组件(lightweight-charts v5):原生蜡烛图/折线切换、成交量副图(涨红跌绿)、自选日标记、双指缩放拖动
- 保留时间范围切换(3月/6月/1年,默认3月,一次性拉取365天前端切片)
- 修复 lightweight-charts 无法解析 CSS 变量/oklch 颜色的问题(改用固定 hex)
- 替换原 recharts K线(recharts Bar 自定义 shape 无法渲染蜡烛的问题彻底解决)
|
2026-08-28 11:15:48 +08:00 |
|
Sakurasan
|
24c8b31301
|
fix: 股票详情页K线 React 310 崩溃(useMemo置于early return前) + 时间范围切换
- 修复 React error #310:displayData 的 useMemo 原置于 if(loading) early return 之后,
导致 loading 切换时 hook 数量变化触发崩溃。移到所有 early return 之前。
- K线一次性拉取 365 天,前端按 3月/6月/1年 切片展示,默认近3月。
|
2026-08-28 03:41:18 +08:00 |
|
Sakurasan
|
d5516b72d7
|
feat: 接入同花顺官方SDK,新增v2数据接口,股票详情K线改用v2(前复权日K)
- vendor 同花顺官方 SDK 到 backend/sdk(含K线>10年自动切片、重试、拼音首字母检索兜底)
- 新增 /api/v2 路由:行情/估值/财务/日历/指数/K线/标的检索
- 股票详情页K线改用 v2 同花顺接口(前复权日K+总手+按昨收涨跌幅)
- 密钥仅后端持有,响应/日志无泄露
- 新增 run_local.sh 本地直接拉起(不再依赖 docker)
|
2026-08-28 02:09:49 +08:00 |
|
Sakurasan
|
86d0dded3a
|
feat: 题材热点历史页展示最近10个交易日题材涨幅矩阵
|
2026-08-27 20:18:51 +08:00 |
|
Sakurasan
|
57548c791d
|
fix: null guard toFixed in ThemeStockRow to prevent crash when API returns null
|
2026-08-22 00:10:48 +08:00 |
|
Sakurasan
|
bb2be17ae2
|
feat: 热点穿透题材数从50提升到100,支持缓存定向清理
- 热点穿透top由50提升到100(涨幅榜+热度榜各取前100合并),保证题材数≥100
- themes.py graph路由top上限le由60放宽到200
- daily_collector HOTMAP_TOP_N同步到100与页面一致
- auvops.sh新增cache-clear-graph子命令定向清理theme_graph缓存
|
2026-08-18 04:14:17 +08:00 |
|
 SakurasanandClaude
|
a6497caf73
|
fix: 无领涨股题材导致/themes页面崩溃(startsWith null)
东方财富题材列表存在 securityCode 为 null 的题材(如"铟"01726),
getStockBoard(null) 调用 startsWith 抛 TypeError,React 渲染崩溃,
页面被错误边界接管。修复 getStockBoard 使其对空值兜底返回主板,
同时保护全部 8 处调用方;ThemeItem.securityCode/securityName 类型
如实标注为 string|null。新增最小回归脚本复现并验证修复。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-12 18:49:27 +08:00 |
|
 SakurasanandClaude
|
8cf4c40e2b
|
feat: 热点穿透股票球最小间隔4px改为6px
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 20:12:09 +08:00 |
|
 SakurasanandClaude
|
90569918a3
|
refactor: 删除板块资金流向,题材板块功能更全
- 删除前端 /sectors 页面、首页入口按钮、stock-api 板块类型与 fetchSectors
- 删除后端 /api/sectors 路由,main.py 移除注册
- eastmoney.py 移除板块数据段(_fetch_push2/_fetch_akshare/UT令牌管理),
清理重复 import 与无用 datetime 子导入
- mootdx.py 移除板块降级方案(fetch_sector_list)
- routeTree.gen.ts 由 build 自动重新生成,移除 sectors 路由
题材热点/热点穿透/核心股已覆盖板块能力,功能更全,板块资金流向不再需要
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 18:50:54 +08:00 |
|
 SakurasanandClaude
|
7fe8074e22
|
feat: 题材列表盘中120s缓存共用,题材详情新增全量新闻分页+强度热度行情
- 题材热点与热点穿透共用题材列表缓存:盘中由"不缓存实时拉取"改为120s短缓存,
东财全量列表拉取降到每120s一次,图重建时涨幅/热度两榜直接命中缓存
- 详情页相关新闻升级为全量分页(getThemeRelatedNews):支持翻页+评论数,
替换原 getDetail 固定3条
- 详情页统计条新增强度+热度(getSingleThemeQuote)实时指标
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 16:56:44 +08:00 |
|
 SakurasanandClaude
|
f98a9255a5
|
feat: 股票球按涨幅绝对值调整大小
半径 = 覆盖数基础 + 涨幅绝对值增量(|f3|/10*4, 封顶20),
涨得猛/跌得深球更大。同覆盖下 0%vs10% 球径差约4px。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 01:07:59 +08:00 |
|
 SakurasanandClaude
|
776ab55fc3
|
feat: 股票球跌幅改为绿色空心球体
涨: 保留分级实心(覆盖数越多越红) + 红色光晕;
跌: 绿色空心球(绿描边+内部淡绿留白) + 绿色光晕。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 00:59:07 +08:00 |
|
 SakurasanandClaude
|
dfcce3abaf
|
feat: 所有股票小球统一光晕强度,涨红光晕/跌绿光晕更明显
光晕透明度不再乘覆盖数 alpha(覆盖1的股票 alpha=0.45 导致光晕过淡),
改为所有股票统一 0.5 强度,高亮淡出时降为 0.06。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 00:50:52 +08:00 |
|
 SakurasanandClaude
|
d473bbad6b
|
feat: 股票小球心跳动画(覆盖≥5题材) + 涨幅正红光晕/负绿光晕
- 覆盖≥5题材股票球按正弦脉动(周期900ms, 幅度22%), 越大越醒目
- 涨幅≥0红色径向渐变光晕, <0绿色光晕, 随心跳一起脉动
- 架构: 静态层不再画股票节点(只画边+题材), 股票常驻动态层重绘
以支撑持续动画; 新增常驻rAF动画循环驱动 timeRef
- 高亮态邻居淡出时, 光晕/心跳随 alpha 同步淡出
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 00:44:42 +08:00 |
|
 SakurasanandClaude
|
c4a0c50ed0
|
feat: 题材小球正涨幅蓝实心、负涨幅蓝空心
负涨幅球改为仅描边空心(内部淡蓝留白),边框加粗;
图例同步改为空心蓝球示意。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-11 00:10:31 +08:00 |
|
 SakurasanandClaude
|
0a32bfad78
|
feat: 题材小球整体放大(半径 6~30)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 23:53:47 +08:00 |
|
 SakurasanandClaude
|
69535bc782
|
feat: 题材小球改平方根映射,拉大中小涨幅区分度
线性映射被极端涨幅拉平均,多数 0~3% 题材球挤在最小值附近。
改平方根映射:零涨幅 4px、1%≈10px、3%≈15px、极值 22px,
中等涨幅区间球径差显著放大。碰撞力半径动态跟随节点,无需额外适配。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 23:51:58 +08:00 |
|
 SakurasanandClaude
|
254deb6a80
|
feat: 热点穿透题材节点按涨幅正蓝负绿、球大小随涨幅绝对值
- 后端题材列表下发 bf3(题材涨幅)
- 题材节点: 正涨幅蓝色/负涨幅绿色, 半径按 |bf3| 在 6~20 映射
- 题材标签文字颜色跟随正负
- 信息卡/底部浮层题材分支显示涨幅
- 图例拆分涨/跌两项并说明球大小含义
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 23:34:38 +08:00 |
|
 SakurasanandClaude
|
b29ca8413c
|
feat: 核心股追踪改名热点股追踪
页面标题、页面内'活跃核心股'描述、入口链接文案同步更名;
热点穿透页内'穿透核心股'列表概念(覆盖题材数)保留原名。
底层路由/表名/代码标识符 core_stocks 不变。
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 23:02:39 +08:00 |
|
 SakurasanandClaude
|
1d3ec3194c
|
feat: 核心股追踪题材默认展开显示
移除展开/收起交互,题材标签区始终展示
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 21:56:18 +08:00 |
|
 SakurasanandClaude
|
b4d48180b7
|
feat: 核心股追踪题材标签跳题材详情、股票名跳股票详情
- 题材标签 → /theme/$code
- 股票名 → /stock/$code(阻止冒泡避免触发行展开)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 21:53:47 +08:00 |
|
 SakurasanandClaude
|
6d3c470b7b
|
feat: 核心股追踪行点击展开显示所属题材列表
- active 接口返回每只核心股 themes(窗口内按题材去重)
- 页面行点击展开题材标签,chevron 指示展开状态
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 21:50:16 +08:00 |
|
 SakurasanandClaude
|
036a87bac9
|
feat: 核心股页面补最近上榜日期列
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 21:13:58 +08:00 |
|
 SakurasanandClaude
|
258fc9184d
|
feat: 补齐 spec 遗漏 — themes/history 接口 + cover_count/coverCount/daysSinceLastAppear
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 21:08:39 +08:00 |
|
 SakurasanandClaude
|
ac985a2140
|
feat: 题材/热点穿透页加入核心股追踪入口
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 20:59:12 +08:00 |
|
 SakurasanandClaude
|
a7cff0930d
|
style: 核心股页面 formatGain 符号一致 + 表格 a11y 增强
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 20:56:38 +08:00 |
|
 SakurasanandClaude
|
5e7f0c4f13
|
feat: 活跃核心股 10 日涨幅矩阵页面
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-10 20:50:39 +08:00 |
|
Sakurasan
|
77f6e36c13
|
fix: dailyGains 类型精度 + 补 try/catch 与 theme-api 对齐
|
2026-08-10 20:40:33 +08:00 |
|
Sakurasan
|
cd56f6c158
|
feat: 核心股历史前端 API 客户端
|
2026-08-10 20:30:28 +08:00 |
|
 SakurasanandClaude
|
a1736c8a17
|
fix: 热点穿透顶栏手机端换行自适应
- 顶栏去掉固定 h-12,改为 flex-wrap + py-2,按钮组窄屏自动换行不再溢出
- 统计条 flex-wrap + whitespace-nowrap,题材/股票/穿透核心股窄屏自动换行
- 返回箭头/标题/刷新按钮 shrink-0 防压缩
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-07 14:03:40 +08:00 |
|
 SakurasanandClaude
|
548ebee47f
|
perf: 优化热点穿透加载速度 + Canvas 渲染 + 触控板/手机交互
后端加载优化(盘中原本每次访问都重新聚合,耗时 10-30 秒):
- 图聚合结果与题材股票子层盘中加 60 秒缓存
- 缓存过期时返回旧数据并后台幂等重建(stale-while-revalidate),打开即秒开
- 缓存基础支持秒级 TTL(set_cache 新增 ttl_seconds)
- 响应体瘦身:移除 edges(前端从 stocks[].themeCodes 重建)、
themes 精简字段、stocks 按 limit 裁剪,JSON 从数 MB 降至数百 KB
前端 Canvas 渲染重构:
- d3-force 布局保留,SVG 渲染层替换为 Canvas 双缓冲(静止态离屏层 drawImage)
- tick 由每帧 setState 改为 rAF 合帧,拖拽/缩放期间零 React 重渲染,800 节点流畅
交互优化:
- 手机:新增 +/−/适应 缩放按钮、命中半径放大至 22px、tap/drag 6px 阈值区分、
双指捏合缩放、触屏禁用 hover 避免与选中冲突
- Mac 触控板:双指滚动=平移、捏合(ctrlKey)=缩放、滚轮缩放保留、点空白取消选中
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-07 13:21:08 +08:00 |
|
 SakurasanandClaude
|
e28d1a2fd0
|
feat: 新增热点穿透网状关系图 + 移动端优化
- 新增 /hot-map 热点穿透页:d3-force 力导向网状图展示题材-股票 M:N 关系
- 股票节点面积/颜色按覆盖题材数分级,穿透核心股高亮
- 图/核心股列表双视图切换,列表覆盖题材>2 公司降序展示
- 悬停信息卡、缩放平移、点击跳转股票/题材详情
- 数据采样改为涨幅+热度双榜合并(各 Top50 去重=82 题材),修复覆盖数低估
(有研新材覆盖数 2→10,核心股 66→1124 家)
- 移动端适配:触屏 tap 选中底部浮层、标签缩放阈值防重叠、自动 fit、紧凑图例
- 主页/题材列表增加热点穿透入口
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-06 20:34:14 +08:00 |
|
 SakurasanandClaude
|
45836f4a30
|
feat: 新增题材页面(列表 + 详情)
- 主页增加「题材热点」入口,跳转题材列表页
- 题材列表页:展示全部题材,支持按涨幅/强度/热度/成交额排序
- 题材详情页:简介、热点事件、相关新闻、板块涨跌统计、全部相关股票(含入选理由默认展开)
- 后端逆向封装东方财富题材接口 getThemeList/getDetail/getStockList,含交易时段感知缓存
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-06 17:22:04 +08:00 |
|
 SakurasanandClaude
|
b67d07e977
|
主页集合展示从 10 条改为 20 条
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-14 00:00:31 +08:00 |
|
 SakurasanandClaude
|
ea3da4e138
|
默认排序改为升序
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-13 23:49:02 +08:00 |
|
 SakurasanandClaude
|
bd1df35456
|
重构板块资金流向页面:三层数据分离(缓存→排序→展示),切换 Tab 清空缓存,排序改为资金/涨幅,新增 error/empty 状态处理
- 缓存数据、排序数据、展示数据三层分离架构
- 切换板块时 queryClient.removeQueries 清空全部缓存
- 排序维度改为 mainNetInflow(资金)和 mainNetInflowPercent(涨幅)
- 卡片展示主力净流入金额 + 占比
- 新增加载骨架屏、请求失败重试、空数据提示等状态
- 资金流向明细条(超大单/大单/中单/小单)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-07-13 23:46:00 +08:00 |
|
Sakurasan
|
22692be45e
|
Revert "重构板块资金流向:行业/概念改用独立 path,后端排序,前端不缓存直接请求"
This reverts commit eea2ce86d0.
|
2026-07-13 23:24:26 +08:00 |
|
Sakurasan
|
eea2ce86d0
|
重构板块资金流向:行业/概念改用独立 path,后端排序,前端不缓存直接请求
|
2026-07-13 23:22:09 +08:00 |
|
Sakurasan
|
94d84a368f
|
切换板块 tab 时强制 refetch,绕过前端/反代缓存确保数据正确
|
2026-07-13 22:44:34 +08:00 |
|
Sakurasan
|
3bfeb81c90
|
修复板块切换数据合并:禁止 API 响应缓存(反代按 path 忽略 query 导致两个 tab 数据相同)
|
2026-07-13 21:15:16 +08:00 |
|
Sakurasan
|
ef795c46b2
|
修复板块切换数据合并:行业/概念使用独立 useQuery 隔离数据
|
2026-07-13 21:07:44 +08:00 |
|
Sakurasan
|
677482639d
|
板块资金流向默认按升序排序
|
2026-07-13 21:03:31 +08:00 |
|