Files
vf_react/public/htmls/阿洛酮糖.html
2025-12-05 13:29:18 +08:00

582 lines
32 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" data-theme="night">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>阿洛酮糖 - 深度行业研究报告</title>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://cdn.jsdelivr.net/npm/daisyui@4.10.2/dist/full.min.css" rel="stylesheet" type="text/css" />
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/echarts@5.5.0/dist/echarts.min.js"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700&display=swap');
body {
font-family: 'Manrope', sans-serif;
background: #010218;
color: #E0E0FF;
overflow-x: hidden;
position: relative;
}
.glass-card {
background: rgba(15, 16, 53, 0.4);
-webkit-backdrop-filter: blur(20px);
backdrop-filter: blur(20px);
border: 1px solid rgba(56, 71, 255, 0.2);
transition: all 0.3s ease;
}
.glass-card:hover {
border-color: rgba(100, 116, 255, 0.5);
box-shadow: 0 0 25px rgba(56, 71, 255, 0.2);
}
.bento-grid {
display: grid;
gap: 1.5rem;
grid-template-columns: repeat(12, 1fr);
}
.gradient-text {
background: linear-gradient(90deg, #A7B3FF, #687BFF);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.glow-divider {
height: 1px;
background: linear-gradient(90deg, transparent, rgba(100, 116, 255, 0.5), transparent);
}
.tag {
background-color: rgba(56, 71, 255, 0.2);
border: 1px solid rgba(100, 116, 255, 0.3);
color: #C0C8FF;
padding: 0.25rem 0.75rem;
border-radius: 9999px;
font-size: 0.8rem;
display: inline-block;
}
.bg-pattern {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 100vw;
height: 100vh;
z-index: -1;
}
.bg-pattern::before,
.bg-pattern::after {
content: '';
position: absolute;
filter: blur(150px);
border-radius: 50%;
}
.bg-pattern::before {
background: radial-gradient(circle, rgba(76, 0, 255, 0.2) 0%, transparent 70%);
width: 800px;
height: 800px;
top: -20%;
left: -10%;
animation: pulse-glow-1 15s infinite alternate;
}
.bg-pattern::after {
background: radial-gradient(circle, rgba(0, 153, 255, 0.15) 0%, transparent 70%);
width: 1000px;
height: 1000px;
bottom: -30%;
right: -20%;
animation: pulse-glow-2 20s infinite alternate;
}
@keyframes pulse-glow-1 {
from { transform: scale(0.8) translate(50px, -50px); opacity: 0.7; }
to { transform: scale(1.2) translate(-50px, 50px); opacity: 1; }
}
@keyframes pulse-glow-2 {
from { transform: scale(1.2) translate(-50px, 50px); opacity: 1; }
to { transform: scale(0.9) translate(50px, -50px); opacity: 0.8; }
}
th {
background-color: rgba(56, 71, 255, 0.1) !important;
color: #A7B3FF !important;
}
.table-custom :where(thead, tbody) :where(tr:not(:last-child)) {
border-bottom-color: rgba(56, 71, 255, 0.2) !important;
}
</style>
</head>
<body class="min-h-screen">
<div class="bg-pattern"></div>
<div class="container mx-auto p-4 md:p-8" x-data="{ loaded: false }" x-init="setTimeout(() => loaded = true, 100)">
<main class="space-y-8 transition-opacity duration-1000 ease-out" :class="loaded ? 'opacity-100' : 'opacity-0'">
<!-- Header -->
<header class="text-center space-y-4 py-8">
<h1 class="text-4xl md:text-6xl font-bold tracking-tight text-transparent bg-clip-text bg-gradient-to-r from-gray-200 via-gray-300 to-gray-400">
阿洛酮糖 (Allulose)
</h1>
<p class="text-lg md:text-xl font-light text-[#A7B3FF]">深度行业研究报告</p>
<div class="flex justify-center items-center gap-4 text-xs text-gray-400 pt-4">
<span>由 北京价值前沿科技有限公司 AI投研agent“价小前投研” 呈现</span>
<div class="w-px h-4 bg-gray-600"></div>
<span>本报告为AI合成数据投资需谨慎</span>
</div>
</header>
<!-- Bento Grid - Key Info -->
<section class="bento-grid">
<div class="col-span-12 md:col-span-8 glass-card rounded-3xl p-6 space-y-4">
<h2 class="text-xl font-bold gradient-text">核心观点摘要</h2>
<p class="text-gray-300 leading-relaxed">
阿洛酮糖概念已完成从<span class="tag">政策预期驱动</span><span class="tag">产业化落地验证</span>的关键一跃,正式进入商业化初期的高速成长期。核心驱动力在于国内市场的正式放开,叠加其优于传统代糖的产品特性,打开了巨大的市场替代与增量空间。未来,行业焦点将从“能否获批”转向“谁能胜出”,竞争核心将围绕<span class="font-semibold text-white">成本控制</span><span class="font-semibold text-white">技术壁垒(尤其是结晶工艺)</span><span class="font-semibold text-white">下游客户拓展能力</span>展开。
</p>
</div>
<div class="col-span-12 md:col-span-4 glass-card rounded-3xl p-6">
<h2 class="text-xl font-bold gradient-text mb-4">关键属性</h2>
<ul class="space-y-3 text-sm">
<li class="flex items-start gap-3">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-[#687BFF] flex-shrink-0 mt-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.657 18.657A8 8 0 016.343 7.343S7 9 9 10c0-2 .5-5 2.986-7C14 5 16.09 5.777 17.657 7.343A8 8 0 0117.657 18.657z" /><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.879 16.121A3 3 0 1014.12 11.88l-4.242 4.242z" /></svg>
<span><strong class="text-white">天然低卡:</strong> 热量仅为蔗糖的10%,口感接近。</span>
</li>
<li class="flex items-start gap-3">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-[#687BFF] flex-shrink-0 mt-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z" /></svg>
<span><strong class="text-white">功能性:</strong> 控血糖、降血脂、抗氧化预防II型糖尿病。</span>
</li>
<li class="flex items-start gap-3">
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-[#687BFF] flex-shrink-0 mt-0.5" viewBox="0 0 20 20" fill="currentColor"><path d="M5 4a2 2 0 012-2h6a2 2 0 012 2v1h-2V4H7v1H5V4zM5 7h10v9a2 2 0 01-2 2H7a2 2 0 01-2-2V7z" /></svg>
<span><strong class="text-white">应用广泛:</strong> 可发生美拉德反应,适用于烘焙、饮料、乳品等。</span>
</li>
</ul>
</div>
<div class="col-span-12 md:col-span-4 glass-card rounded-3xl p-6">
<h2 class="text-xl font-bold gradient-text mb-4">市场规模预测</h2>
<div class="flex flex-col justify-center h-full space-y-4">
<div class="stat p-0">
<div class="stat-title text-gray-400">2023全球规模</div>
<div class="stat-value text-3xl text-white">1.73亿美元</div>
<div class="stat-desc text-success">CAGR (19-23): 51.62%</div>
</div>
<div class="stat p-0">
<div class="stat-title text-gray-400">2030全球预测</div>
<div class="stat-value text-3xl text-white">5.45亿美元</div>
<div class="stat-desc text-info">CAGR (24-30): 17.8%</div>
</div>
</div>
</div>
<div class="col-span-12 md:col-span-8 glass-card rounded-3xl p-6">
<h2 class="text-xl font-bold gradient-text mb-4">国内获批关键时间轴</h2>
<ul class="timeline timeline-vertical">
<li>
<div class="timeline-start timeline-box glass-card !bg-opacity-80">
<time class="font-mono italic text-xs">2020-11</time>
<div class="text-md font-black text-white">申报启动</div>
国家卫健委首次受理D-阿洛酮糖新食品原料申报。
</div>
<div class="timeline-middle">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 text-indigo-400"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" clip-rule="evenodd" /></svg>
</div>
<hr class="bg-indigo-400" />
</li>
<li>
<hr class="bg-indigo-400" />
<div class="timeline-middle">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 text-indigo-400"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" clip-rule="evenodd" /></svg>
</div>
<div class="timeline-end timeline-box glass-card !bg-opacity-80">
<time class="font-mono italic text-xs">2025-03-21</time>
<div class="text-md font-black text-white">技术审查通过</div>
通过国家食品安全风险评估中心专家评审,进入公开征求意见阶段。
</div>
<hr class="bg-indigo-400" />
</li>
<li>
<hr class="bg-indigo-400" />
<div class="timeline-start timeline-box glass-card !bg-opacity-80">
<time class="font-mono italic text-xs">2025-07-02</time>
<div class="text-md font-black text-white">正式获批</div>
国家卫健委正式公告批准D-阿洛酮糖作为新食品原料,引爆概念。
</div>
<div class="timeline-middle">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 text-indigo-400"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" clip-rule="evenodd" /></svg>
</div>
<hr class="bg-indigo-400" />
</li>
<li>
<hr class="bg-indigo-400" />
<div class="timeline-middle">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 text-indigo-400"><path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z" clip-rule="evenodd" /></svg>
</div>
<div class="timeline-end timeline-box glass-card !bg-opacity-80">
<time class="font-mono italic text-xs">2025-09-23</time>
<div class="text-md font-black text-white">首个产品上市</div>
中粮集团发布国内首款阿洛酮糖产品,标志产业化快速响应。
</div>
</li>
</ul>
</div>
</section>
<!-- Core Logic -->
<section class="glass-card rounded-3xl p-6 md:p-8 space-y-6">
<h2 class="text-2xl font-bold gradient-text">概念核心逻辑与市场认知分析</h2>
<div class="glow-divider"></div>
<div>
<h3 class="text-lg font-semibold text-white mb-2">核心驱动力</h3>
<ul class="list-disc list-inside space-y-2 text-gray-300">
<li><strong class="text-indigo-300">政策准入 (根本驱动):</strong> 2025年7月2日的正式批准是引爆概念的决定性因素将不确定性转变为确定性打开了巨大的本土市场。</li>
<li><strong class="text-indigo-300">产品力优势 (替代逻辑):</strong> 相较其他代糖,阿洛酮糖在口感、低热量、高耐受性上优势显著,且具备参与美拉德反应的独特性,应用场景无可替代。</li>
<li><strong class="text-indigo-300">市场需求 (成长逻辑):</strong> 在“健康中国”和全球减糖大趋势下,下游食品饮料企业对优质甜味剂的需求是刚性的,获批后市场渗透速度可能快于预期。</li>
</ul>
</div>
<div>
<h3 class="text-lg font-semibold text-white mb-2">预期差分析</h3>
<div class="space-y-4">
<div class="collapse collapse-plus glass-card !bg-opacity-80">
<input type="radio" name="my-accordion-3" checked="checked" />
<div class="collapse-title text-md font-medium text-indigo-300">
【预期差一】竞争格局:蓝海之下的暗流
</div>
<div class="collapse-content">
<p class="text-gray-300">市场普遍认为这是一个蓝海市场但可能低估了竞争烈度和同质化风险。研报强调广阔空间但路演数据显示国内规划产能惊人规划新增超10万吨远超当前全球2-3万吨的实际成交量。中期2-3年后产能集中释放可能重蹈赤藓糖醇价格战的覆辙这是市场预期不足的关键风险点。</p>
</div>
</div>
<div class="collapse collapse-plus glass-card !bg-opacity-80">
<input type="radio" name="my-accordion-3" />
<div class="collapse-title text-md font-medium text-indigo-300">
【预期差二】技术壁垒的结构性差异
</div>
<div class="collapse-content">
<p class="text-gray-300">市场可能模糊了“能生产”和“能生产好”的区别。路演明确指出,液体阿洛酮糖制备相对简单,而海外客户青睐的<span class="tag">晶体阿洛酮糖</span>技术门槛极高,国内仅少数企业(如百龙创园)掌握。具备晶体技术的公司拥有显著护城河和议价能力,而仅能生产液体的厂商可能面临更激烈的竞争。</p>
</div>
</div>
<div class="collapse collapse-plus glass-card !bg-opacity-80">
<input type="radio" name="my-accordion-3" />
<div class="collapse-title text-md font-medium text-indigo-300">
【预期差三】商业化节奏的现实考量
</div>
<div class="collapse-content">
<p class="text-gray-300">市场可能高估了短期内的放量速度。其成本高于赤藓糖醇,且从政策获批到下游厂商完成配方测试、产品上市、渠道铺货需要时间。全行业的规模化应用渗透可能是一个季度甚至半年的过程,短期业绩兑现速度可能慢于股价上涨速度。</p>
</div>
</div>
</div>
</div>
</section>
<!-- Catalysts & Path -->
<section class="grid md:grid-cols-2 gap-8">
<div class="glass-card rounded-3xl p-6 md:p-8 space-y-4">
<h2 class="text-2xl font-bold gradient-text">未来催化剂与发展路径</h2>
<div class="glow-divider mb-4"></div>
<h3 class="text-lg font-semibold text-white">近期催化剂 (未来3-6个月)</h3>
<ul class="list-decimal list-inside space-y-2 text-gray-300">
<li><strong class="text-indigo-300">下游标杆产品上市:</strong> 知名品牌(如元气森林、伊利)推出使用阿洛酮糖的大单品,验证市场接受度。</li>
<li><strong class="text-indigo-300">核心公司Q3/Q4财报:</strong> 首次体现国内销售增量、毛利率变化,是验证基本面逻辑的试金石。</li>
<li><strong class="text-indigo-300">产能建设进度公告:</strong> 大规模新建产能项目的进度将影响市场对未来供给格局的判断。</li>
</ul>
<h3 class="text-lg font-semibold text-white mt-6">长期发展路径</h3>
<ul class="steps steps-vertical">
<li class="step step-primary" data-content="●">
<div class="text-left ml-2">
<strong class="text-white">导入期 (2025-2026):</strong> B端客户教育和配方导入为主价格坚挺先发优势企业主导。
</div>
</li>
<li class="step step-primary" data-content="●">
<div class="text-left ml-2">
<strong class="text-white">成长期 (2026-2028):</strong> 成本下降,应用扩展,新增产能释放,可能出现价格竞争与行业洗牌。
</div>
</li>
<li class="step" data-content="●">
<div class="text-left ml-2">
<strong class="text-white">成熟期 (2028以后):</strong> 成为主流甜味剂,市场格局稳定,龙头企业凭借规模与成本优势占据主导。
</div>
</li>
</ul>
</div>
<div class="glass-card rounded-3xl p-6 md:p-8 space-y-4">
<h2 class="text-2xl font-bold gradient-text">产业链与产能格局</h2>
<div class="glow-divider mb-4"></div>
<div id="capacity-chart" style="width: 100%; height: 400px;"></div>
<p class="text-sm text-gray-400 text-center">注:图表展示了主要参与者的现有及规划产能,凸显了未来供给侧的巨大增长潜力与竞争风险。</p>
</div>
</section>
<!-- Risk Analysis -->
<section class="glass-card rounded-3xl p-6 md:p-8 space-y-4">
<h2 class="text-2xl font-bold gradient-text">潜在风险与挑战</h2>
<div class="glow-divider mb-4"></div>
<div class="grid md:grid-cols-2 gap-x-8 gap-y-4">
<div>
<h4 class="font-semibold text-white">技术风险</h4>
<p class="text-sm text-gray-300">无法掌握高质量晶体生产技术的企业竞争力将大打折扣;生物发酵法等下一代技术可能对现有工艺形成降维打击。</p>
</div>
<div>
<h4 class="font-semibold text-white">商业化风险 (最核心)</h4>
<p class="text-sm text-gray-300">国内规划产能巨大远超短期需求极有可能在2026年后重演赤藓糖醇的“产能过剩 -> 价格战 -> 行业利润崩塌”的局面。</p>
</div>
<div>
<h4 class="font-semibold text-white">政策与竞争风险</h4>
<p class="text-sm text-gray-300">出口业务面临关税政策风险;新进入者可能通过低价策略抢占市场,加剧行业内卷。</p>
</div>
<div>
<h4 class="font-semibold text-white">信息交叉验证风险</h4>
<p class="text-sm text-gray-300">路演中企业对价格战的乐观预期 vs. 数据揭示的巨大规划产能形成核心矛盾,市场可能对竞争格局过度乐观。</p>
</div>
</div>
</section>
<!-- Stock Table -->
<section class="glass-card rounded-3xl p-6 md:p-8 space-y-4">
<h2 class="text-2xl font-bold gradient-text">相关A股上市公司梳理</h2>
<div class="glow-divider mb-4"></div>
<div class="overflow-x-auto">
<table class="table table-custom w-full">
<thead>
<tr>
<th class="rounded-tl-xl">股票名称</th>
<th>股票代码</th>
<th>核心逻辑</th>
<th class="rounded-tr-xl">其他标签 / 产能数据</th>
</tr>
</thead>
<tbody id="stock-table-body">
<!-- JS will populate this -->
</tbody>
</table>
</div>
</section>
</main>
</div>
<script>
const stockData = {
"阿洛酮糖(250410)": {
"AC4FD4E7-8450-45A3-B492-4281FE17D041.jpg": [
{
"stock": "百龙创园",
"reason": "【行业领导者&逻辑最纯粹】国内最早产业化,掌握高质量晶体技术核心壁垒,并前瞻性布局泰国工厂规避关税。",
"其他标签": {
"现有产能(吨/年)": 15000,
"新建产能(吨/年)": 19000,
"技术优势": "晶体技术领先",
"战略布局": "泰国建厂"
},
"stock_code": "605016"
},
{
"stock": "三元生物",
"reason": "【实力追赶者】全球赤藓糖醇龙头,具备规模化生产、成本控制和渠道复用能力,扩产决心大。",
"其他标签": {
"现有产能(吨/年)": 10000,
"新建产能(吨/年)": 10000,
"核心优势": "成本控制&渠道复用"
},
"stock_code": "301206"
},
{
"stock": "保龄宝",
"reason": "【产能野心家】现有产能基础上规划新增产能巨大属于高Beta标的。",
"其他标签": {
"现有产能(吨/年)": 7000,
"新建产能(吨/年)": 30000,
"合计产能/总市值": 1268
},
"stock_code": "002286"
},
{
"stock": "华康股份",
"reason": "【产能野心家】从0起步直接规划大规模产能对未来市场极度看好。",
"其他标签": {
"现有产能(吨/年)": 0,
"新建产能(吨/年)": 40000,
"合计产能/总市值": 858
},
"stock_code": "605077"
},
{
"stock": "金禾实业",
"reason": "拥有阿洛酮糖现有产能和新建产能规划。",
"其他标签": {
"现有产能(吨/年)": 1500,
"新建产能(吨/年)": 9800,
"合计产能/总市值": 83
},
"stock_code": "002597"
},
{
"stock": "中粮科技",
"reason": "【产业化先锋】联合研发的阿洛酮糖首批获批,并发布国内首款产品,积极进行专利布局。",
"其他标签": {
"项目阶段": "研发与专利布局",
"新建产能(吨/年)": 10000
},
"stock_code": "000930"
},
{
"stock": "金达威",
"reason": "计划新建阿洛酮糖产能。",
"其他标签": {
"现有产能(吨/年)": 0,
"新建产能(吨/年)": 30000,
"合计产能/总市值": 330
},
"stock_code": "002626"
},
{
"stock": "鲁信创投",
"reason": "通过投资方式间接布局,投资了未上市的阿洛酮糖生产公司福洋生物。",
"其他标签": {
"投资标的": "福洋生物 (规划2万吨)"
},
"stock_code": "600783"
},
{
"stock": "诚志股份",
"reason": "其阿洛酮糖研发项目获得江西省重点研发计划项目拨款。",
"其他标签": {
"项目阶段": "研发"
},
"stock_code": "000990"
}
]
}
};
// Populate Stock Table
function populateStockTable() {
const tableBody = document.getElementById('stock-table-body');
let html = '';
const stocks = stockData["阿洛酮糖(250410)"]["AC4FD4E7-8450-45A3-B492-4281FE17D041.jpg"];
// Custom sort order
const sortOrder = ["605016", "301206", "002286", "605077", "000930"];
const sortedStocks = [...stocks].sort((a, b) => {
const indexA = sortOrder.indexOf(a.stock_code);
const indexB = sortOrder.indexOf(b.stock_code);
if (indexA !== -1 && indexB !== -1) return indexA - indexB;
if (indexA !== -1) return -1;
if (indexB !== -1) return 1;
return 0;
});
sortedStocks.forEach(stock => {
let otherLabelsHtml = '';
if (stock['其他标签']) {
otherLabelsHtml = Object.entries(stock['其他标签']).map(([key, value]) => {
return `<div class="whitespace-nowrap"><span class="font-semibold text-gray-400">${key}:</span> ${value}</div>`;
}).join('');
}
html += `
<tr class="hover:bg-opacity-50 hover:bg-base-200 transition-colors">
<td class="font-bold text-white">${stock.stock}</td>
<td><a href="https://valuefrontier.cn/company?scode=${stock.stock_code}" target="_blank" class="text-indigo-400 hover:text-indigo-300 transition-colors">${stock.stock_code}</a></td>
<td class="text-sm text-gray-300">${stock.reason}</td>
<td class="text-xs text-gray-300">${otherLabelsHtml}</td>
</tr>
`;
});
tableBody.innerHTML = html;
}
// Initialize ECharts
function initCapacityChart() {
const chartDom = document.getElementById('capacity-chart');
const myChart = echarts.init(chartDom);
const stocksForChart = stockData["阿洛酮糖(250410)"]["AC4FD4E7-8450-45A3-B492-4281FE17D041.jpg"]
.filter(s => (s['其他标签']['现有产能(吨/年)'] || 0) + (s['其他标签']['新建产能(吨/年)'] || 0) > 0)
.sort((a, b) => ((b['其他标签']['现有产能(吨/年)'] || 0) + (b['其他标签']['新建产能(吨/年)'] || 0)) - ((a['其他标签']['现有产能(吨/年)'] || 0) + (a['其他标签']['新建产能(吨/年)'] || 0)));
const option = {
backgroundColor: 'transparent',
tooltip: {
trigger: 'axis',
axisPointer: { type: 'shadow' },
backgroundColor: 'rgba(15, 16, 53, 0.7)',
borderColor: 'rgba(56, 71, 255, 0.3)',
textStyle: { color: '#E0E0FF' }
},
legend: {
data: ['现有产能', '新建产能'],
textStyle: { color: '#A7B3FF' },
top: '5%'
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
xAxis: {
type: 'value',
axisLine: { lineStyle: { color: 'rgba(100, 116, 255, 0.3)' } },
splitLine: { lineStyle: { color: 'rgba(100, 116, 255, 0.1)' } },
axisLabel: { color: '#A7B3FF' }
},
yAxis: {
type: 'category',
data: stocksForChart.map(s => s.stock),
axisLine: { lineStyle: { color: 'rgba(100, 116, 255, 0.3)' } },
axisLabel: { color: '#E0E0FF' }
},
series: [
{
name: '现有产能',
type: 'bar',
stack: 'total',
label: { show: true, position: 'inside', color: '#fff' },
emphasis: { focus: 'series' },
data: stocksForChart.map(s => s['其他标签']['现有产能(吨/年)'] || 0),
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{ offset: 0, color: '#4338ca' },
{ offset: 1, color: '#6366f1' }
])
}
},
{
name: '新建产能',
type: 'bar',
stack: 'total',
label: { show: true, position: 'inside', color: '#fff' },
emphasis: { focus: 'series' },
data: stocksForChart.map(s => s['其他标签']['新建产能(吨/年)'] || 0),
itemStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 1, 0, [
{ offset: 0, color: '#1d4ed8' },
{ offset: 1, color: '#3b82f6' }
])
}
}
]
};
myChart.setOption(option);
window.addEventListener('resize', function() {
myChart.resize();
});
}
document.addEventListener('DOMContentLoaded', () => {
populateStockTable();
initCapacityChart();
});
</script>
</body>
</html>