feat: 核心股追踪题材标签跳题材详情、股票名跳股票详情

- 题材标签 → /theme/$code
- 股票名 → /stock/$code(阻止冒泡避免触发行展开)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Sakurasan
2026-08-10 21:53:47 +08:00
co-authored by Claude
parent 6d3c470b7b
commit b4d48180b7
+13 -4
View File
@@ -87,7 +87,14 @@ function CoreStocksPage() {
<td className="px-3 py-1.5 whitespace-nowrap">
<span className="inline-flex items-center gap-1">
{isOpen ? <ChevronDown className="h-3.5 w-3.5 text-muted-foreground" /> : <ChevronRight className="h-3.5 w-3.5 text-muted-foreground" />}
<span className="font-medium">{s.stockName}</span>
<Link
to="/stock/$code"
params={{ code: s.stockCode }}
onClick={(e) => e.stopPropagation()}
className="font-medium hover:text-primary hover:underline"
>
{s.stockName}
</Link>
<span className="ml-1 text-[10px] text-muted-foreground">{s.stockCode}</span>
</span>
</td>
@@ -120,12 +127,14 @@ function CoreStocksPage() {
{s.themes && s.themes.length > 0 ? (
<div className="flex flex-wrap gap-1">
{s.themes.map((t) => (
<span
<Link
key={t.theme_code}
className="px-1.5 py-0.5 rounded bg-primary/10 text-primary text-[11px]"
to="/theme/$code"
params={{ code: t.theme_code }}
className="px-1.5 py-0.5 rounded bg-primary/10 text-primary text-[11px] hover:bg-primary/20 transition-colors"
>
{t.theme_name}
</span>
</Link>
))}
</div>
) : (