feat: 10.10线上最新代码提交

This commit is contained in:
zdl
2025-10-11 16:16:02 +08:00
parent 4d0dc109bc
commit 495ad758ea
3338 changed files with 460147 additions and 152745 deletions

571
public/htmls/正丙醇.html Normal file
View File

@@ -0,0 +1,571 @@
<!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">
<link rel="apple-touch-icon" sizes="76x76" href="../../static/assets/img/apple-icon.png">
<link rel="icon" type="image/png" href="../../static/assets/img/favicon.png">
<link href="https://fonts.googleapis.com/css?family=Inter:300,400,500,600,700,800" rel="stylesheet" />
<!-- Nucleo Icons -->
<link href="../../static/assets/css/nucleo-icons.css" rel="stylesheet" />
<link href="../../static/assets/css/nucleo-svg.css" rel="stylesheet" />
<!-- Font Awesome Icons -->
<script src="https://kit.fontawesome.com/1d2b6c4f81.js" crossorigin="anonymous"></script>
<!-- CSS Files -->
<link id="pagestyle" href="../../static/assets/css/soft-design-system-pro.css?v=1.2.0" rel="stylesheet" />
<script src="../../static/assets/js/core/popper.min.js" type="text/javascript"></script>
<script src="../../static/assets/js/core/bootstrap.min.js" type="text/javascript"></script>
<script src="../../static/assets/js/plugins/perfect-scrollbar.min.js"></script>
<script src="../../static/assets/js/plugins/typedjs.js"></script>
<script src="../../static/assets/js/plugins/parallax.min.js"></script>
<script src="../../static/assets/js/plugins/smooth-scroll.min.js"></script>
<script src="../../static/assets/js/plugins/nouislider.min.js" type="text/javascript"></script>
<script src="../../static/assets/js/plugins/glidejs.min.js" type="text/javascript"></script>
<script src="../../static/assets/js/plugins/anime.min.js" type="text/javascript"></script>
<script src="../../static/assets/js/plugins/chartjs.min.js"></script>
<script src="../../static/assets/js/soft-design-system-pro.min.js?v=1.2.0" type="text/javascript"></script>
<script src="https://cdn.jsdelivr.net/npm/tsparticles@3/tsparticles.bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r134/three.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vanta/0.5.24/vanta.waves.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/rellax/1.12.1/rellax.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/daisyui@5" rel="stylesheet" type="text/css" />
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
<link href="https://cdn.jsdelivr.net/npm/daisyui@5/themes.css" rel="stylesheet" type="text/css" />
<script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
<style>
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700&display=swap');
body {
font-family: 'Noto Sans SC', 'Inter', sans-serif;
background-color: #f8f9fa;
color: #333;
}
.particle-bg {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
}
.section-card {
background: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(10px);
border-radius: 16px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
margin-bottom: 2rem;
overflow: hidden;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.section-card:hover {
transform: translateY(-5px);
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
}
.timeline-item {
position: relative;
padding-left: 30px;
margin-bottom: 20px;
}
.timeline-item::before {
content: '';
position: absolute;
left: 0;
top: 5px;
width: 12px;
height: 12px;
border-radius: 50%;
background: #3b82f6;
}
.timeline-item::after {
content: '';
position: absolute;
left: 5px;
top: 20px;
width: 2px;
height: calc(100% + 10px);
background: #e5e7eb;
}
.timeline-item:last-child::after {
display: none;
}
.highlight {
background: linear-gradient(120deg, #a5b4fc 0%, #c7d2fe 100%);
padding: 2px 6px;
border-radius: 4px;
font-weight: 600;
}
.price-trend {
height: 80px;
background: linear-gradient(90deg, #dbeafe, #bfdbfe);
border-radius: 8px;
position: relative;
overflow: hidden;
}
.price-line {
position: absolute;
bottom: 0;
height: 2px;
background: #3b82f6;
width: 100%;
}
.price-point {
position: absolute;
width: 8px;
height: 8px;
background: #3b82f6;
border-radius: 50%;
transform: translate(-50%, -50%);
}
.risk-badge {
display: inline-block;
padding: 4px 12px;
border-radius: 20px;
font-size: 0.8rem;
font-weight: 500;
margin-right: 8px;
margin-bottom: 8px;
}
.risk-high {
background: #fee2e2;
color: #b91c1c;
}
.risk-medium {
background: #fef3c7;
color: #b45309;
}
.risk-low {
background: #dcfce7;
color: #166534;
}
.stock-table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
}
.stock-table th {
background: #f3f4f6;
padding: 12px;
text-align: left;
font-weight: 600;
color: #4b5563;
border-bottom: 2px solid #e5e7eb;
}
.stock-table td {
padding: 16px 12px;
border-bottom: 1px solid #f3f4f6;
}
.stock-table tr:hover {
background: #f9fafb;
}
.stock-name {
font-weight: 600;
color: #1f2937;
}
.industry-tag {
display: inline-block;
padding: 2px 8px;
background: #e0e7ff;
color: #4338ca;
border-radius: 4px;
font-size: 0.75rem;
}
.chain-diagram {
display: flex;
align-items: center;
justify-content: space-between;
padding: 20px;
background: #f8fafc;
border-radius: 8px;
margin: 20px 0;
}
.chain-item {
text-align: center;
padding: 10px;
background: white;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
flex: 1;
margin: 0 5px;
}
.chain-arrow {
color: #9ca3af;
font-size: 1.5rem;
}
@media (max-width: 768px) {
.chain-diagram {
flex-direction: column;
}
.chain-arrow {
transform: rotate(90deg);
margin: 10px 0;
}
}
</style>
</head>
<body>
<div id="particle-bg" class="particle-bg"></div>
<div class="container mx-auto px-4 py-8 max-w-6xl">
<!-- 标题区域 -->
<div class="text-center mb-10">
<h1 class="text-4xl md:text-5xl font-bold text-gray-800 mb-4">正丙醇行业深度分析</h1>
<p class="text-xl text-gray-600 max-w-3xl mx-auto">供需错配驱动的涨价周期与固态电池新需求的双重机遇</p>
<div class="mt-6 flex justify-center">
<span class="bg-blue-100 text-blue-800 px-4 py-2 rounded-full text-sm font-medium">化工新材料</span>
<span class="bg-green-100 text-green-800 px-4 py-2 rounded-full text-sm font-medium ml-2">涨价概念</span>
<span class="bg-purple-100 text-purple-800 px-4 py-2 rounded-full text-sm font-medium ml-2">固态电池</span>
</div>
</div>
<!-- 价格趋势图 -->
<div class="section-card p-6 mb-8">
<h2 class="text-2xl font-bold text-gray-800 mb-4">价格走势</h2>
<div class="price-trend mb-4">
<div class="price-line"></div>
<div class="price-point" style="left: 0%; bottom: 30%;"></div>
<div class="price-point" style="left: 33%; bottom: 40%;"></div>
<div class="price-point" style="left: 66%; bottom: 20%;"></div>
<div class="price-point" style="left: 100%; bottom: 60%;"></div>
</div>
<div class="flex justify-between text-sm text-gray-600">
<div>2024年6月<br><span class="font-bold">7400元/吨</span></div>
<div>2024年10月<br><span class="font-bold">9000元/吨</span></div>
<div>2024年11月<br><span class="font-bold">13000元/吨</span></div>
<div>2025年3月<br><span class="font-bold">7500元/吨</span></div>
</div>
</div>
<!-- 时间轴 -->
<div class="section-card p-6 mb-8">
<h2 class="text-2xl font-bold text-gray-800 mb-6">事件时间轴</h2>
<div class="timeline">
<div class="timeline-item">
<h3 class="text-lg font-semibold text-gray-800">2024年6月</h3>
<p class="text-gray-600">正丙醇价格从<span class="highlight">7400元/吨</span>启动上涨</p>
</div>
<div class="timeline-item">
<h3 class="text-lg font-semibold text-gray-800">2024年10月</h3>
<p class="text-gray-600">价格突破<span class="highlight">9000元/吨</span></p>
</div>
<div class="timeline-item">
<h3 class="text-lg font-semibold text-gray-800">2024年11月15日</h3>
<p class="text-gray-600">价格跳涨至<span class="highlight">13000元/吨</span>(南京诺奥报价),创<span class="highlight">三年新高</span></p>
</div>
<div class="timeline-item">
<h3 class="text-lg font-semibold text-gray-800">2024年11月</h3>
<p class="text-gray-600">下游醋酸正丙酯新增15万吨产能投产安徽瑞柏、山东金沂蒙对应正丙醇需求<span class="highlight">+9万吨/年</span></p>
</div>
<div class="timeline-item">
<h3 class="text-lg font-semibold text-gray-800">2024年12月</h3>
<p class="text-gray-600">天风、华西等机构密集路演,将涨价归因于<span class="highlight">"固态电池电解液新需求"</span></p>
</div>
<div class="timeline-item">
<h3 class="text-lg font-semibold text-gray-800">2025年3月</h3>
<p class="text-gray-600">三维化学年报确认正丙醇贡献<span class="highlight">4000万元额外利润</span>,但提示价格已回落至<span class="highlight">7500元/吨</span></p>
</div>
</div>
</div>
<!-- 核心观点 -->
<div class="section-card p-6 mb-8">
<h2 class="text-2xl font-bold text-gray-800 mb-4">核心观点摘要</h2>
<div class="bg-blue-50 border-l-4 border-blue-500 p-4 mb-4">
<p class="text-gray-700"><span class="font-semibold">阶段判断:</span>正丙醇处于<span class="highlight">"供需错配驱动的涨价周期中段"</span>,短期价格高位震荡,长期需验证固态电池需求落地。</p>
</div>
<div class="bg-green-50 border-l-4 border-green-500 p-4 mb-4">
<p class="text-gray-700"><span class="font-semibold">核心驱动力:</span><span class="highlight">供给零增长</span>2021年后无新增产能<span class="highlight">需求双轮驱动</span>(传统醋酸正丙酯扩产+新兴电解液应用)。</p>
</div>
<div class="bg-purple-50 border-l-4 border-purple-500 p-4">
<p class="text-gray-700"><span class="font-semibold">潜力空间:</span>若固态电池电解液渗透率提升至30%,正丙醇需求增量可达<span class="highlight">20万吨</span>当前国内产能27万吨</p>
</div>
</div>
<!-- 产业链分析 -->
<div class="section-card p-6 mb-8">
<h2 class="text-2xl font-bold text-gray-800 mb-4">产业链分析</h2>
<div class="chain-diagram">
<div class="chain-item">
<div class="font-semibold text-gray-800">上游</div>
<div class="text-sm text-gray-600">乙烯</div>
<div class="text-xs text-gray-500">(MTO/石化路线)</div>
</div>
<div class="chain-arrow"></div>
<div class="chain-item">
<div class="font-semibold text-gray-800">中游</div>
<div class="text-sm text-gray-600">正丙醇</div>
<div class="text-xs text-gray-500">(国内产能27万吨)</div>
</div>
<div class="chain-arrow"></div>
<div class="chain-item">
<div class="font-semibold text-gray-800">下游</div>
<div class="text-sm text-gray-600">醋酸正丙酯</div>
<div class="text-xs text-gray-500">(2024-2025新增40万吨)</div>
</div>
<div class="chain-arrow"></div>
<div class="chain-item">
<div class="font-semibold text-gray-800">终端</div>
<div class="text-sm text-gray-600">油墨/电解液</div>
<div class="text-xs text-gray-500">(固态电池新需求)</div>
</div>
</div>
<h3 class="text-xl font-semibold text-gray-800 mt-6 mb-4">核心玩家对比</h3>
<div class="overflow-x-auto">
<table class="stock-table w-full">
<thead>
<tr>
<th>公司</th>
<th>产能</th>
<th>弹性测算</th>
<th>风险点</th>
</tr>
</thead>
<tbody>
<tr>
<td class="stock-name">三维化学</td>
<td>10万吨</td>
<td>涨价1000元→<span class="highlight">8500万利润</span></td>
<td>工程业务占比高,正丙醇利润占比<span class="text-red-500">&lt;30%</span></td>
</tr>
<tr>
<td class="stock-name">鲁西化工</td>
<td>8万吨</td>
<td>2025年二期投产<span class="highlight">+8万吨</span></td>
<td>MTO成本高<span class="text-red-500">乙烯自给率50%</span></td>
</tr>
<tr>
<td class="stock-name">巨化股份</td>
<td>5万吨</td>
<td>制冷剂主业占比<span class="text-red-500">&gt;80%</span></td>
<td>正丙醇弹性有限</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- 风险分析 -->
<div class="section-card p-6 mb-8">
<h2 class="text-2xl font-bold text-gray-800 mb-4">潜在风险与挑战</h2>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div class="bg-white p-4 rounded-lg shadow-sm">
<h3 class="font-semibold text-gray-800 mb-2">技术风险</h3>
<p class="text-gray-600 text-sm">固态电池电解液技术路线未定(硫化物/氧化物),正丙醇可能被替代。</p>
<span class="risk-badge risk-high">高风险</span>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm">
<h3 class="font-semibold text-gray-800 mb-2">商业化风险</h3>
<p class="text-gray-600 text-sm">醋酸正丙酯价格9010元/吨(较年初+34%若正丙醇涨至15000元/吨,下游或转向醋酸乙酯。</p>
<span class="risk-badge risk-medium">中风险</span>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm">
<h3 class="font-semibold text-gray-800 mb-2">政策风险</h3>
<p class="text-gray-600 text-sm">美国进口正丙醇反倾销税257%若取消,国内价格或腰斩。</p>
<span class="risk-badge risk-high">高风险</span>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm">
<h3 class="font-semibold text-gray-800 mb-2">信息矛盾</h3>
<p class="text-gray-600 text-sm">路演称"下游醋酸正丙酯开工率仅42%",与研报"需求旺盛"表述冲突。</p>
<span class="risk-badge risk-medium">中风险</span>
</div>
</div>
</div>
<!-- 投资建议 -->
<div class="section-card p-6 mb-8">
<h2 class="text-2xl font-bold text-gray-800 mb-4">投资启示</h2>
<div class="bg-gradient-to-r from-blue-50 to-indigo-50 p-6 rounded-lg">
<h3 class="text-xl font-semibold text-gray-800 mb-3">阶段判断</h3>
<p class="text-gray-700 mb-4">正丙醇处于<span class="highlight">"主题炒作向基本面过渡"</span>阶段,短期看库存周期,长期看固态电池需求。</p>
<h3 class="text-xl font-semibold text-gray-800 mb-3">投资价值</h3>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-4">
<div class="bg-white p-4 rounded-lg shadow-sm">
<h4 class="font-semibold text-gray-800 mb-2">最纯标的</h4>
<p class="text-gray-600"><span class="highlight">三维化学</span>(正丙醇利润占比最高,无新增产能竞争)</p>
</div>
<div class="bg-white p-4 rounded-lg shadow-sm">
<h4 class="font-semibold text-gray-800 mb-2">弹性标的</h4>
<p class="text-gray-600"><span class="highlight">鲁西化工</span>2025年二期投产成本劣势可能被规模抵消</p>
</div>
</div>
<h3 class="text-xl font-semibold text-gray-800 mb-3">关键跟踪指标</h3>
<ul class="list-disc pl-5 text-gray-700 space-y-2">
<li><span class="font-semibold">库存</span>:若回升至<span class="highlight">1.5万吨以上</span>,涨价逻辑弱化</li>
<li><span class="font-semibold">固态电池订单</span>宁德时代2025年电解液招标是否明确正丙醇用量</li>
<li><span class="font-semibold">进口政策</span>:商务部是否调整美国正丙醇反倾销税</li>
</ul>
</div>
</div>
<!-- 相关股票表格 -->
<div class="section-card p-6">
<h2 class="text-2xl font-bold text-gray-800 mb-4">相关股票</h2>
<div class="overflow-x-auto">
<table class="stock-table w-full">
<thead>
<tr>
<th>股票名称</th>
<th>行业</th>
<th>项目/产能</th>
<th>产业链</th>
<th>投资逻辑</th>
</tr>
</thead>
<tbody>
<tr>
<td class="stock-name">三维化学</td>
<td><span class="industry-tag">化工</span></td>
<td>收购诺奥差</td>
<td>丙醇涨价受益</td>
<td>化工产品受益于丙醇涨价收购诺奥差获得利润近期丙醇涨价20-30%</td>
</tr>
<tr>
<td class="stock-name">恒兴新材</td>
<td><span class="industry-tag">化工材料</span></td>
<td>-</td>
<td>原材料供应</td>
<td>生产所需原材料包括丙酸、异丁醛等丙醇相关化学品</td>
</tr>
<tr>
<td class="stock-name">巨化股份</td>
<td><span class="industry-tag">化工</span></td>
<td>10万吨/年正丙醇技改扩能</td>
<td>-</td>
<td>自筹资金实施正丙醇技改扩能项目</td>
</tr>
<tr>
<td class="stock-name">东华能源</td>
<td><span class="industry-tag">化工</span></td>
<td>-</td>
<td>生产与储存</td>
<td>经营范围包含正丙醇生产及储存</td>
</tr>
<tr>
<td class="stock-name">辉丰股份</td>
<td><span class="industry-tag">化工</span></td>
<td>江苏辉丰石化二期</td>
<td>-</td>
<td>子公司二期项目包含正丙醇生产</td>
</tr>
<tr>
<td class="stock-name">鲁西化工</td>
<td><span class="industry-tag">化工</span></td>
<td>8万吨丙醇</td>
<td>-</td>
<td>现有丙醇产能8万吨建设乙烯下游二期项目</td>
</tr>
<tr>
<td class="stock-name">综艺股份</td>
<td><span class="industry-tag">化工</span></td>
<td>参股南京某正丙醇企业</td>
<td>-</td>
<td>参股12.28%正丙醇生产企业</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<script>
// 初始化粒子背景
document.addEventListener('DOMContentLoaded', function() {
if (typeof tsParticles !== 'undefined') {
tsParticles.load("particle-bg", {
fpsLimit: 60,
particles: {
color: {
value: "#3b82f6"
},
links: {
color: "#93c5fd",
distance: 150,
enable: true,
opacity: 0.3,
width: 1
},
move: {
direction: "none",
enable: true,
outModes: {
default: "bounce"
},
random: false,
speed: 1,
straight: false
},
number: {
density: {
enable: true,
area: 800
},
value: 60
},
opacity: {
value: 0.3
},
shape: {
type: "circle"
},
size: {
value: { min: 1, max: 3 }
}
},
detectRetina: true
});
}
// 初始化波浪效果(如果粒子效果不可用)
if (typeof VANTA !== 'undefined' && VANTA.WAVES) {
VANTA.WAVES({
el: "#particle-bg",
mouseControls: true,
touchControls: true,
gyroControls: false,
minHeight: 200.00,
minWidth: 200.00,
scale: 1.00,
scaleMobile: 1.00,
color: 0x1e40af,
shininess: 30.00,
waveHeight: 10.00,
waveSpeed: 0.75,
zoom: 0.85
});
}
});
</script>
</body>
</html>
```