Files
vf_react/public/htmls/TMA引领化工涨价.html
2025-10-11 16:16:02 +08:00

558 lines
29 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>TMA引领化工涨价 - 行业洞察报告</title>
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css?family=Inter:300,400,500,600,700,800" rel="stylesheet" />
<!-- CSS -->
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/daisyui@5" rel="stylesheet" type="text/css" />
<link href="https://cdn.jsdelivr.net/npm/daisyui@5/themes.css" rel="stylesheet" type="text/css" />
<!-- Font Awesome -->
<script src="https://kit.fontawesome.com/1d2b6c4f81.js" crossorigin="anonymous"></script>
<!-- Particles.js -->
<script src="https://cdn.jsdelivr.net/npm/tsparticles@3/tsparticles.bundle.min.js"></script>
<style>
:root {
--primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
--secondary-gradient: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}
body {
font-family: 'Inter', sans-serif;
background-color: #f8fafc;
}
.gradient-bg {
background: var(--primary-gradient);
}
.card-shadow {
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}
.timeline-item::before {
content: '';
position: absolute;
left: -1px;
top: 0;
bottom: 0;
width: 2px;
background: linear-gradient(to bottom, #667eea, #764ba2);
}
.timeline-dot {
position: absolute;
left: -8px;
top: 8px;
width: 16px;
height: 16px;
border-radius: 50%;
background: #667eea;
border: 3px solid #f8fafc;
}
.table-responsive {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
@media (max-width: 768px) {
.timeline-item::before {
left: 15px;
}
.timeline-dot {
left: 8px;
}
.timeline-content {
margin-left: 40px;
}
}
.highlight-text {
background: linear-gradient(120deg, #667eea 0%, #764ba2 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
#particles-js {
position: fixed;
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: -1;
opacity: 0.5;
}
</style>
</head>
<body class="bg-gray-50">
<div id="particles-js"></div>
<div class="container mx-auto px-4 py-8 max-w-7xl">
<!-- 标题部分 -->
<div class="text-center mb-12">
<h1 class="text-4xl md:text-5xl font-bold mb-4 highlight-text">TMA引领化工涨价</h1>
<p class="text-xl text-gray-600">行业深度洞察与投资机会分析</p>
<div class="mt-6 flex justify-center space-x-4">
<span class="badge badge-primary">化工行业</span>
<span class="badge badge-secondary">涨价概念</span>
<span class="badge badge-accent">供需失衡</span>
</div>
</div>
<!-- 概念事件时间轴 -->
<div class="card bg-white card-shadow mb-8">
<div class="card-body p-6">
<h2 class="text-2xl font-bold mb-6 flex items-center">
<i class="fas fa-clock mr-3 text-purple-600"></i>
概念事件时间轴
</h2>
<div class="relative">
<div class="timeline-item relative pl-8 pb-8">
<div class="timeline-dot"></div>
<div class="timeline-content">
<h3 class="font-semibold text-lg mb-2">2024年3月</h3>
<p class="text-gray-700">美国英力士7万吨TMA工厂爆炸停产占全球产能<span class="font-bold text-purple-600">28%</span>全球总产能25.5万吨)</p>
</div>
</div>
<div class="timeline-item relative pl-8 pb-8">
<div class="timeline-dot"></div>
<div class="timeline-content">
<h3 class="font-semibold text-lg mb-2">2024年4月</h3>
<p class="text-gray-700">国内TMA价格从<span class="font-bold text-purple-600">1.4万元/吨</span>跳涨至<span class="font-bold text-purple-600">2.5万元/吨</span>涨幅78.6%</p>
</div>
</div>
<div class="timeline-item relative pl-8 pb-8">
<div class="timeline-dot"></div>
<div class="timeline-content">
<h3 class="font-semibold text-lg mb-2">2024年5月</h3>
<p class="text-gray-700">价格进一步突破<span class="font-bold text-purple-600">4.5万元/吨</span>(累计涨幅<span class="font-bold text-purple-600">221%</span>),库存降至<span class="font-bold text-purple-600">300吨</span>(历史最低)</p>
</div>
</div>
<div class="timeline-item relative pl-8">
<div class="timeline-dot"></div>
<div class="timeline-content">
<h3 class="font-semibold text-lg mb-2">2024年Q2</h3>
<p class="text-gray-700">正丹股份8.5万吨产能)净利润同比增<span class="font-bold text-purple-600">1112%</span>,验证涨价传导</p>
</div>
</div>
</div>
</div>
</div>
<!-- 核心观点摘要 -->
<div class="grid md:grid-cols-3 gap-6 mb-8">
<div class="card bg-gradient-to-br from-purple-500 to-purple-700 text-white card-shadow">
<div class="card-body p-6">
<div class="text-4xl mb-4">
<i class="fas fa-chart-line"></i>
</div>
<h3 class="text-xl font-bold mb-2">阶段判断</h3>
<p class="text-sm">TMA涨价已从事件驱动进入供需失衡主导的高景气周期价格弹性远超市场预期</p>
</div>
</div>
<div class="card bg-gradient-to-br from-blue-500 to-blue-700 text-white card-shadow">
<div class="card-body p-6">
<div class="text-4xl mb-4">
<i class="fas fa-bolt"></i>
</div>
<h3 class="text-xl font-bold mb-2">核心驱动力</h3>
<p class="text-sm">海外产能永久性退出 + 国内寡头垄断 + 下游成本不敏感TMA占终端成本<3%</p>
</div>
</div>
<div class="card bg-gradient-to-br from-green-500 to-green-700 text-white card-shadow">
<div class="card-body p-6">
<div class="text-4xl mb-4">
<i class="fas fa-rocket"></i>
</div>
<h3 class="text-xl font-bold mb-2">未来潜力</h3>
<p class="text-sm">供给缺口6万吨/年占需求30%短期无法填补高盈利周期或持续至2026年</p>
</div>
</div>
</div>
<!-- 核心逻辑分析 -->
<div class="card bg-white card-shadow mb-8">
<div class="card-body p-6">
<h2 class="text-2xl font-bold mb-6 flex items-center">
<i class="fas fa-brain mr-3 text-purple-600"></i>
核心逻辑与市场认知分析
</h2>
<div class="grid md:grid-cols-3 gap-6">
<div class="border-l-4 border-purple-500 pl-4">
<h3 class="font-bold text-lg mb-3 text-purple-700">供给端硬收缩</h3>
<ul class="space-y-2 text-sm text-gray-700">
<li>• 英力士永久退出全球有效产能降至14.8万吨</li>
<li>• 开工率上限80%需求达21万吨含补库</li>
<li>• 国内CR3>90%,形成寡头垄断格局</li>
</ul>
</div>
<div class="border-l-4 border-blue-500 pl-4">
<h3 class="font-bold text-lg mb-3 text-blue-700">需求端刚性</h3>
<ul class="space-y-2 text-sm text-gray-700">
<li>• PVC增塑剂TOTM52%和粉末涂料40%</li>
<li>• 无替代品且下游对涨价敏感度极低</li>
<li>• TMA占终端成本<3%成本传导顺畅</li>
</ul>
</div>
<div class="border-l-4 border-green-500 pl-4">
<h3 class="font-bold text-lg mb-3 text-green-700">库存极端低位</h3>
<ul class="space-y-2 text-sm text-gray-700">
<li>• 国内库存300吨仅够1周需求</li>
<li>• 贸易商囤货加剧短缺</li>
<li>• 开工率99.1%(满产状态)</li>
</ul>
</div>
</div>
<div class="mt-6 p-4 bg-yellow-50 rounded-lg">
<h4 class="font-bold text-yellow-800 mb-2">预期差分析</h4>
<p class="text-sm text-yellow-700">市场仍低估长期缺口:多数投资者认为涨价不可持续,但海外剩余产能因环保限制无法扩产,国内新产能审批趋严</p>
</div>
</div>
</div>
<!-- 产业链分析 -->
<div class="card bg-white card-shadow mb-8">
<div class="card-body p-6">
<h2 class="text-2xl font-bold mb-6 flex items-center">
<i class="fas fa-sitemap mr-3 text-purple-600"></i>
产业链与核心公司深度剖析
</h2>
<div class="mb-6">
<h3 class="font-bold text-lg mb-3">产业链图谱</h3>
<div class="bg-gray-100 p-4 rounded-lg">
<div class="flex flex-col md:flex-row items-center justify-between space-y-4 md:space-y-0">
<div class="text-center">
<div class="bg-blue-500 text-white px-4 py-2 rounded-lg font-semibold">上游</div>
<p class="mt-2 text-sm">偏三甲苯<br>成本占比60%</p>
</div>
<i class="fas fa-arrow-right text-2xl text-gray-400"></i>
<div class="text-center">
<div class="bg-purple-500 text-white px-4 py-2 rounded-lg font-semibold">中游</div>
<p class="mt-2 text-sm">TMA<br>正丹8.5万吨、百川4万吨、泰达3万吨</p>
</div>
<i class="fas fa-arrow-right text-2xl text-gray-400"></i>
<div class="text-center">
<div class="bg-green-500 text-white px-4 py-2 rounded-lg font-semibold">下游</div>
<p class="mt-2 text-sm">TOTM增塑剂、粉末涂料<br>(电缆料、家电/建材)</p>
</div>
</div>
</div>
</div>
<div>
<h3 class="font-bold text-lg mb-3">核心玩家对比</h3>
<div class="overflow-x-auto">
<table class="table w-full">
<thead>
<tr class="bg-gray-100">
<th class="text-left p-3 font-semibold">公司</th>
<th class="text-left p-3 font-semibold">产能</th>
<th class="text-left p-3 font-semibold">市值弹性</th>
<th class="text-left p-3 font-semibold">风险点</th>
</tr>
</thead>
<tbody>
<tr class="border-b">
<td class="p-3 font-semibold text-purple-600">正丹股份</td>
<td class="p-3">8.5万吨</td>
<td class="p-3">每涨1万元/吨→增厚利润6.8亿</td>
<td class="p-3">新产能审批延迟</td>
</tr>
<tr class="border-b">
<td class="p-3 font-semibold text-blue-600">百川股份</td>
<td class="p-3">4万吨</td>
<td class="p-3">弹性次之估值更低PE 10x</td>
<td class="p-3">历史包袱(多元化业务)</td>
</tr>
<tr>
<td class="p-3 font-semibold text-green-600">泰达新材</td>
<td class="p-3">3万吨</td>
<td class="p-3">新三板流动性差</td>
<td class="p-3">产能利用率不足</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- 关联股票数据表格 -->
<div class="card bg-white card-shadow mb-8">
<div class="card-body p-6">
<h2 class="text-2xl font-bold mb-6 flex items-center">
<i class="fas fa-table mr-3 text-purple-600"></i>
关联股票数据
</h2>
<div class="table-responsive">
<table class="table w-full" id="stockTable">
<thead>
<tr class="bg-gray-100">
<th class="text-left p-3 font-semibold">股票名称</th>
<th class="text-left p-3 font-semibold">行业</th>
<th class="text-left p-3 font-semibold">项目</th>
<th class="text-left p-3 font-semibold">分类</th>
<th class="text-left p-3 font-semibold">产业链</th>
<th class="text-left p-3 font-semibold">产能/市值</th>
<th class="text-left p-3 font-semibold">投资逻辑</th>
</tr>
</thead>
<tbody id="stockTableBody">
<!-- 动态生成的股票数据将插入这里 -->
</tbody>
</table>
</div>
</div>
</div>
<!-- 风险与结论 -->
<div class="grid md:grid-cols-2 gap-6 mb-8">
<div class="card bg-white card-shadow">
<div class="card-body p-6">
<h2 class="text-2xl font-bold mb-4 flex items-center">
<i class="fas fa-exclamation-triangle mr-3 text-red-600"></i>
潜在风险与挑战
</h2>
<div class="space-y-3">
<div class="flex items-start">
<i class="fas fa-circle text-xs text-red-500 mt-1.5 mr-2"></i>
<div>
<h4 class="font-semibold">技术风险</h4>
<p class="text-sm text-gray-600">TMA生产涉及高温氧化工艺安全事故可能触发停产</p>
</div>
</div>
<div class="flex items-start">
<i class="fas fa-circle text-xs text-red-500 mt-1.5 mr-2"></i>
<div>
<h4 class="font-semibold">政策风险</h4>
<p class="text-sm text-gray-600">环保核查趋严,中小产能复产难度加大</p>
</div>
</div>
<div class="flex items-start">
<i class="fas fa-circle text-xs text-red-500 mt-1.5 mr-2"></i>
<div>
<h4 class="font-semibold">需求风险</h4>
<p class="text-sm text-gray-600">若PVC电缆被无卤材料替代TMA需求或下滑</p>
</div>
</div>
</div>
</div>
</div>
<div class="card bg-gradient-to-br from-purple-600 to-blue-600 text-white card-shadow">
<div class="card-body p-6">
<h2 class="text-2xl font-bold mb-4 flex items-center">
<i class="fas fa-lightbulb mr-3"></i>
投资启示
</h2>
<div class="space-y-4">
<div>
<h4 class="font-bold text-lg mb-2">阶段判断</h4>
<p class="text-sm">TMA处于基本面驱动的超级周期非主题炒作</p>
</div>
<div>
<h4 class="font-bold text-lg mb-2">投资方向</h4>
<ul class="text-sm space-y-1">
<li>• 首选正丹股份:全产业链+产能最大,涨价弹性最高</li>
<li>• 次选百川股份:低估值+产能扩张预期</li>
</ul>
</div>
<div>
<h4 class="font-bold text-lg mb-2">关键跟踪指标</h4>
<ul class="text-sm space-y-1">
<li>• 库存:国内库存<500吨时价格易暴涨</li>
<li>• 出口数据:月度出口量>5000吨预示海外缺口扩大</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
// 初始化粒子背景
tsParticles.load("particles-js", {
particles: {
number: {
value: 80,
density: {
enable: true,
value_area: 800
}
},
color: {
value: "#667eea"
},
shape: {
type: "circle"
},
opacity: {
value: 0.5,
random: false
},
size: {
value: 3,
random: true
},
line_linked: {
enable: true,
distance: 150,
color: "#667eea",
opacity: 0.4,
width: 1
},
move: {
enable: true,
speed: 2,
direction: "none",
random: false,
straight: false,
out_mode: "out",
bounce: false
}
},
interactivity: {
detect_on: "canvas",
events: {
onhover: {
enable: true,
mode: "grab"
},
onclick: {
enable: true,
mode: "push"
},
resize: true
}
},
retina_detect: true
});
// 处理股票数据并生成表格
const stockData = [
{'TMA偏苯三酸酐(240410)': {'74A97D1C-C3D4-45C9-B117-7F8493C6EF12.jpg': [{'stock': '正丹股份', '行业': '化工', '项目': 'TMA生产', '分类': '环保增塑剂', '产业链': 'TMA产业链', '现有TMA产能': '8.5万吨', '当前市值': '21亿元', '产能/市值': '0.41吨/万元', 'TMA每上涨1000元增厚市值(10xPE)': '27%', '增厚EPS(相对23Q3)': '209%', 'reason': '公司拥有8.5万吨TMA产能下游应用于环保增塑剂占比53%'}, {'stock': '百川股份', '行业': '化工', '项目': 'TMA生产', '分类': '粉末涂料', '产业链': 'TMA产业链', '现有TMA产能': '4.0万吨', '当前市值': '31亿元', '产能/市值': '0.13吨/万元', 'TMA每上涨1000元增厚市值(10xPE)': '8%', '增厚EPS(相对23Q3)': '41%', 'reason': '公司拥有4万吨TMA产能下游应用于粉末涂料占比33%'}, {'stock': '泰达新材', '行业': '化工', '项目': 'TMA生产', '分类': '高性能绝缘材料', '产业链': 'TMA产业链', '现有TMA产能': '3.0万吨', '当前市值': '3亿元', '产能/市值': '1.10吨/万元', 'TMA每上涨1000元增厚市值(10xPE)': '73%', '增厚EPS(相对23Q3)': '-', 'reason': '公司拥有3万吨TMA产能下游应用于高性能绝缘材料占比6%'}]}},
{'TMA偏苯三酸酐(240412)': {'47F23337-7F2E-49D6-9447-69D17FFCA3AF.jpg': [{'stock': '正丹股份', '行业': '化工', '项目': 'TMA产能8.5万吨', '分类': '上市公司', '产业链': 'TMA生产', '市值': '38.5', '产能/市值': '0.22', '来源': '券商研报', 'reason': '美国英力士FHR工厂7万吨产能停产占全球产能28%导致TMA价格上涨'}, {'stock': '百川股份', '行业': '化工', '项目': 'TMA产能4万吨', '分类': '上市公司', '产业链': 'TMA生产', '市值': '41.6', '产能/市值': '0.10', '来源': '券商研报', 'reason': '美国英力士FHR工厂7万吨产能停产占全球产能28%导致TMA价格上涨'}, {'stock': '泰达新材', '行业': '化工', '项目': 'TMA产能3万吨', '产业链': 'TMA生产', '市值': '5.3', '产能/市值': '0.57', '来源': '券商研报', 'reason': '美国英力士FHR工厂7万吨产能停产占全球产能28%导致TMA价格上涨'}, {'stock': '华锦股份', '行业': '化工', '项目': '偏三甲苯生产', '分类': '上市公司', '产业链': '上游原料供应商', '市值': '97.4', '成本占比': '占TMA成本60%', '来源': '公司公告', 'reason': 'TMA价格上涨作为上游原料供应商受益'}], 'E810BE6C-3128-4A7F-8839-B00164CBBF77.jpg': [{'stock': '正丹股份', '项目': '现有TMA产能8.5万吨', '产业链': '偏苯三酸酐生产', 'reason': '美国英力士7万吨产能停产导致TMA价格从1.5万涨至2.1万元/吨,预计继续上调'}, {'stock': '百川股份', '项目': '现有TMA产能4万吨', '产业链': '偏苯三酸酐生产', 'reason': '美国英力士7万吨产能停产导致TMA价格从1.5万涨至2.1万元/吨,预计继续上调'}, {'stock': '泰达新材', '项目': '现有TMA产能3万吨', '产业链': '偏苯三酸酐生产', 'reason': '美国英力士7万吨产能停产导致TMA价格从1.5万涨至2.1万元/吨,预计继续上调'}, {'stock': '嘉澳环保', '产业链': '生产所需材料包括偏苯三酸酐', '分类': '下游应用企业', 'reason': '美国英力士7万吨产能停产导致TMA价格从1.5万涨至2.1万元/吨,预计继续上调'}, {'stock': '凯盛新材', '技术储备': '偏苯三酸酐提纯技术储备', '项目': '技术储备', 'reason': '美国英力士7万吨产能停产导致TMA价格从1.5万涨至2.1万元/吨,预计继续上调'}, {'stock': '怡达股份', '产业链': '醋酸偏苯三酸酐生产与销售', '项目': '醋酸偏苯三酸酐项目', 'reason': '美国英力士7万吨产能停产导致TMA价格从1.5万涨至2.1万元/吨,预计继续上调'}, {'stock': '华锦股份', '供应链': '正丹股份供应商', '分类': '上游供应商', 'reason': '美国英力士7万吨产能停产导致TMA价格从1.5万涨至2.1万元/吨,预计继续上调'}]}},
{'化工概念240506': {'3121CB72-7B87-4AB4-B4E0-FF52EC4D9017.png': [{'stock': '兴业股份', '行业': '树脂', '项目': '公司研发、生产、销售功能新材料,包括铸造工艺材料和丙烯酸等其他化工新材料、特种酚醛树脂等', '分类': '二连板', '产业链': '新材料、化工', 'reason': '公司研发、生产、销售功能新材料,包括铸造工艺材料和丙烯酸等其他化工新材料、特种酚醛树脂等'}, {'stock': '百川股份', '行业': 'TMA', '项目': '公司是国内醋酸丁酯偏苯三酸酐的龙头企业公司一季度营业总收入11.78亿元同比增长52.24%', '分类': '二连板', '产业链': '化工材料', 'reason': '醋酸丁酯偏苯三酸酐的龙头企业,营收增长显著'}, {'stock': '新凤鸣', '行业': '化纤', '项目': '国内民用涤纶长丝行业排名第二主要产品为POY、FDY和DTY', '分类': '二连板', '产业链': '化纤', 'reason': '国内民用涤纶长丝行业排名第二'}, {'stock': '新乡化纤', '行业': '化纤', '项目': '公司是国际领先的氨纶纤维、粘胶长丝和粘胶短纤维的生产企业', '分类': '二连板', '产业链': '化纤', 'reason': '国际领先的氨纶纤维、粘胶长丝和粘胶短纤维生产企业'}, {'stock': '七彩化学', '行业': '染料', '项目': '公司专业从事高性能有机颜料(HPP)、溶剂染料及相关中间体领域', '分类': '二连板', '产业链': '染料、化工', 'reason': '高性能有机颜料和溶剂染料领域专业企业'}, {'stock': '宝丽迪', '行业': 'COFs', '项目': '公司的子公司耀科量产的COFs材料正在产业化和商业化实践中', '分类': '二连板', '产业链': '新材料', 'reason': '子公司COFs材料量产推进产业化'}, {'stock': '百合花', '行业': '染料', '项目': '公司是有机颜料行业综合竞争力领先的龙头企业', '分类': '二连板', '产业链': '染料', 'reason': '有机颜料行业龙头企业'}, {'stock': '川恒股份', '行业': '磷化工', '项目': '公司饲料级磷酸二氢钙和消防用磷酸一铵的市占率已多年稳居行业首位', '分类': '二连板', '产业链': '磷化工', 'reason': '磷酸二氢钙和磷酸一铵市占率行业首位'}, {'stock': '世龙实业', '行业': '染料', '项目': '公司是生产医药中间体及染料和精细化工的企业', '分类': '二连板', '产业链': '染料、医药中间体', 'reason': '医药中间体及染料精细化工生产企业'}, {'stock': '联合化学', '行业': '染料', '项目': '公司的主营业务为偶氮类有机颜料、挤水基墨的研发、生产与销售', '分类': '二连板', '产业链': '染料', 'reason': '偶氮类有机颜料和挤水基墨专业企业'}, {'stock': '醋化股份', '行业': 'TMA', '项目': '公司主要从事以醋酸衍生物、吡啶衍生物为主体的高端专用精细化学品的研发、生产和销售', '分类': '二连板', '产业链': '精细化工', 'reason': '醋酸和吡啶衍生物精细化学品专业企业'}, {'stock': '丹化科技', '行业': '乙二醇', '项目': '公司是国内较早开展以褐煤为原料生产乙二醇的高新技术企业', '分类': '二连板', '产业链': '煤化工', 'reason': '国内较早褐煤制乙二醇技术企业'}, {'stock': '桐昆股份', '行业': '化纤', '项目': '公司是国内产能、产量、销量最大的涤纶长丝制造企业', '分类': '二连板', '产业链': '化纤', 'reason': '国内最大涤纶长丝制造企业'}, {'stock': '金牛化工', '行业': '甲醇', '项目': '公司的主营业务为甲醇的生产和销售,是一家化学原料及化学制品制造业公司', '分类': '二连板', '产业链': '甲醇', 'reason': '甲醇生产和销售专业企业'}, {'stock': '沧州大化', '行业': 'TDI', '项目': '公司是中国化工旗下国内首家规模生产TDI的公司产能全球前列', '分类': '二连板', '产业链': '化工', 'reason': '国内首家规模生产TDI企业'}, {'stock': '鼎龙科技', '行业': '染料', '项目': '公司是全球主要的染发剂原料生产商之一', '分类': '二连板', '产业链': '染料', 'reason': '全球主要染发剂原料生产商'}, {'stock': '湘潭电化', '行业': '锰', '项目': '公司是国内最大电解二氧化锰生产商', '分类': '二连板', '产业链': '锰产业', 'reason': '国内最大电解二氧化锰生产商'}, {'stock': '正丹股份', '行业': 'TMA', '项目': '公司是一家特种精细化工领域的高科技企业,主要产品有偏苯三酸酐等', '分类': '二连板', '产业链': '精细化工', 'reason': '特种精细化工领域高科技企业'}, {'stock': '鲁北化工', '行业': '钛白粉', '项目': '公司主营业务有钛白粉业务、甲烷氯化物业务、化肥业务、水泥业务、盐业业务等', '分类': '二连板', '产业链': '化工', 'reason': '多业务化工企业'}, {'stock': '双乐股份', '行业': '染料', '项目': '公司是国内主要颜料生产厂家之一', '分类': '涨幅>10%', '产业链': '染料', 'reason': '国内主要颜料生产厂家'}, {'stock': '江天化学', '行业': '甲醇', '项目': '公司主营甲醇下游深加工为产业链的高端专用精细化学品的研发、生产和销售', '分类': '涨幅>10%', '产业链': '甲醇', 'reason': '甲醇下游深加工精细化学品专业企业'}, {'stock': '惠云钛业', '行业': '钛白粉', '项目': '公司专业从事钛白粉产品的研发、生产和销售', '分类': '涨幅>10%', '产业链': '钛白粉', 'reason': '钛白粉产品研发生产销售专业企业'}]}}
];
// 提取所有股票数据
const allStocks = [];
stockData.forEach(category => {
Object.values(category).forEach(imageData => {
Object.values(imageData).forEach(stocks => {
allStocks.push(...stocks);
});
});
});
// 去重
const uniqueStocks = [];
const stockNames = new Set();
allStocks.forEach(stock => {
if (!stockNames.has(stock.stock)) {
stockNames.add(stock.stock);
uniqueStocks.push(stock);
}
});
// 生成表格行
const tableBody = document.getElementById('stockTableBody');
uniqueStocks.forEach(stock => {
const row = document.createElement('tr');
row.className = 'border-b hover:bg-gray-50';
// 获取行业,如果没有则显示'-'
const industry = stock.行业 || '-';
// 获取项目,如果没有则显示'-'
const project = stock.项目 || '-';
// 获取分类,如果没有则显示'-'
const category = stock.分类 || '-';
// 获取产业链,如果没有则显示'-'
const industryChain = stock.产业链 || '-';
// 获取产能/市值,如果没有则显示'-'
const capacityMarketValue = stock['产能/市值'] || '-';
// 获取投资逻辑,如果没有则显示'-'
const reason = stock.reason || '-';
row.innerHTML = `
<td class="p-3 font-semibold">${stock.stock}</td>
<td class="p-3">${industry}</td>
<td class="p-3">${project}</td>
<td class="p-3">${category}</td>
<td class="p-3">${industryChain}</td>
<td class="p-3">${capacityMarketValue}</td>
<td class="p-3">${reason}</td>
`;
tableBody.appendChild(row);
});
// 添加表格排序功能
const table = document.getElementById('stockTable');
const headers = table.querySelectorAll('th');
headers.forEach((header, index) => {
header.style.cursor = 'pointer';
header.addEventListener('click', () => {
sortTable(index);
});
});
function sortTable(columnIndex) {
const tbody = table.querySelector('tbody');
const rows = Array.from(tbody.querySelectorAll('tr'));
rows.sort((a, b) => {
const aValue = a.cells[columnIndex].textContent.trim();
const bValue = b.cells[columnIndex].textContent.trim();
// 尝试数字排序
const aNum = parseFloat(aValue);
const bNum = parseFloat(bValue);
if (!isNaN(aNum) && !isNaN(bNum)) {
return bNum - aNum; // 降序
}
// 字符串排序
return aValue.localeCompare(bValue);
});
// 重新插入排序后的行
rows.forEach(row => tbody.appendChild(row));
}
</script>
</body>
</html>
```