// 【重要】必须使用 const Component 作为组件变量名 // 小羚羚氢能产业数字化平台方案书 · Axhub Runtime 可交互响应式汇报页 const Component = function (props) { var useState = React.useState; var useEffect = React.useEffect; var useMemo = React.useMemo; var useCallback = React.useCallback; var antd = window.antd || {}; var App = antd.App || React.Fragment; var Tag = antd.Tag; var C_PRIMARY = '#16D1A1'; var C_PRIMARY_D = '#00BFA5'; var C_HERO_BG = '#071218'; var C_HERO_ACCENT = '#0d2a24'; var C_PAGE = '#f4f6f8'; var C_CARD = '#ffffff'; var C_TEXT = '#1a1f2e'; var C_MUTED = '#5c6578'; var C_LINE = 'rgba(15,23,42,0.08)'; var C_BLUE = '#2563eb'; var C_ORANGE = '#ea580c'; var C_PURPLE = '#7c3aed'; var FONT = '-apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", "Segoe UI", sans-serif'; var sectionNav = [ { key: 'hero', label: '总览' }, { key: 'chain', label: '产业链' }, { key: 'roles', label: '用户角色' }, { key: 'loops', label: '业务闭环' }, { key: 'roadmap', label: '路线图' }, { key: 'summary', label: '汇报要点' } ]; var kpiStats = [ { label: '目标用户角色', value: '7', unit: '类', color: C_BLUE }, { label: '业务闭环', value: '3', unit: '条', color: C_PRIMARY }, { label: '产业链覆盖', value: '上中下游', unit: '', color: C_ORANGE }, { label: '首期上线', value: '6', unit: '个月', color: C_PURPLE } ]; var chainSteps = [ { key: 'upstream', title: '上游 · 制氢采购', desc: '制氢企业挂牌售氢、管束车调度、到站交付', revenue: '交易撮合费 · 物流调度 · 数据监测', color: C_BLUE, icon: 'H₂' }, { key: 'mid', title: '中游 · 加氢站', desc: '预约接单、电子加氢卡结算、巡检与对账', revenue: 'SaaS 服务费 · 支付通道 · 对账增值', color: C_PRIMARY, icon: '站' }, { key: 'down', title: '下游 · 氢能车运营', desc: '租赁/自营、交还车、能源与 ETC 账单闭环', revenue: '租赁服务 · 资产管理 · 金融结算', color: C_ORANGE, icon: '车' } ]; var roles = [ { id: 'internal', name: '内部用户', sub: '羚牛氢能员工', tag: '运营中枢', color: C_BLUE, capability: '合同-收款-交还车-结算全链路;车辆全生命周期;风控审批', scenes: '业务员 / 运维 / 能源 / 财务 / 法务 / CEO', detail: [ { title: '租赁/自营闭环', text: '合同发起 → 客户评级/敏感客户校验 → 标准/非标审批 → 收款 → 交车 → 账单 → 还车 → 结算(含替换车)' }, { title: '车辆全生命周期', text: '采购/外租 → 验车入库 → 维修/年审/保养/故障/事故 → 出库(出售/报废/停租)' } ] }, { id: 'captain', name: '车队长', sub: '车队管理者', tag: '在线租车', color: C_PRIMARY, capability: '一键租车报价签约;车辆运行/账单/开票/对讲', scenes: '注册验证、在线合同、实时定位', detail: [ { title: '租车签约流程', text: '选车型租期 → 推送业务员 → 自动报价 → 在线确认 → 电子合同签章' }, { title: '交车后管控', text: '实时定位轨迹、氢电账单、ETC、合同账单、付款、开票、语音对讲' } ] }, { id: 'driver', name: '氢能车司机', sub: '自营 + 外部租赁', tag: '运输执行', color: C_ORANGE, capability: '路线导航、能源账单、安全培训、预约加氢、故障救援', scenes: '内外部司机差异化权限', detail: [ { title: '内部自营司机', text: '定位轨迹、路线规划导航、氢电ETC账单、安全考试、证照管理、预约加氢、紧急救援' }, { title: '外部租赁司机', text: '轨迹导航、能源账单、安全培训、车辆证件、预约加氢、故障提报' } ] }, { id: 'station', name: '加氢站用户', sub: '站点运营', tag: '加注服务', color: C_PRIMARY_D, capability: '预约接单、电子加氢卡、OCR 识别加氢量、氢费对账', scenes: '特种设备/行驶证校验', detail: [ { title: '核心能力', text: '预约接单验证、电子加氢卡结算、加氢前中后检查、OCR 识别面板加氢量、氢费对账、氢气采购' } ] }, { id: 'repair', name: '维修站用户', sub: '维保服务', tag: '派单对账', color: C_PURPLE, capability: '维修/保养派单接单、费用记录、运维核实对账', scenes: '配件人工自动入账', detail: [ { title: '流程', text: '接收派单 → 记录维修过程与费用 → 生成维修记录 → 运维核实 → 在线对账账期结算' } ] }, { id: 'producer', name: '制氢企业', sub: '氢气供应', tag: '氢气贸易', color: C_BLUE, capability: '在线挂牌售氢、管束车监测、询价成交与运费结算', scenes: '对接加氢站采购', detail: [ { title: '商业模式', text: '企业验证 → 在线挂牌售氢(类商城)→ 管束车监测 → 询价成交 → 配送到站 → 运费结算' } ] }, { id: 'group', name: '集团客户', sub: '企业级客户', tag: '集团总览', color: C_ORANGE, capability: '多项目车辆/账单/能源/ETC 总览;在线租车签约', scenes: '类车队长但主体为企业', detail: [ { title: '与车队长差异', text: '企业级多项目、多合同、多车队统一视图;支持 APP 在线租车并生成合同闭环' } ] } ]; var loops = [ { id: 'ops', title: '闭环一 · 租赁/自营运营', tag: '核心收入', color: C_BLUE, flow: '意向单 → 报价 → 合同(评级/敏感客户审批)→ 交车 → 运营监控 → 账单收款 → 还车 → 结算 → 替换车' }, { id: 'asset', title: '闭环二 · 车辆资产生命周期', tag: '资产管控', color: C_PRIMARY, flow: '采购/外租 → 验车入库 → 维保/年审/故障/事故 → 能源消耗 → 出库处置 → OneOS 数据底座' }, { id: 'h2', title: '闭环三 · 氢气贸易与加注', tag: '产业延伸', color: C_ORANGE, flow: '制氢挂牌 → 加氢站询价采购 → 管束车配送 → 司机预约加氢 → 电子加氢卡结算 → 氢费对账 → 账单聚合' } ]; var phases = [ { id: 'p1', phase: '第一阶段', period: '0–6 月', focus: '内部用户 + 车队长 + 司机', deliver: '合同审批、交还车、替换车、基础账单', active: true }, { id: 'p2', phase: '第二阶段', period: '6–12 月', focus: '加氢站 + 维修站', deliver: '预约加氢、电子加氢卡、维修派单对账' }, { id: 'p3', phase: '第三阶段', period: '12–18 月', focus: '制氢企业 + 氢气商城', deliver: '挂牌售氢、管束车调度、到站结算' }, { id: 'p4', phase: '第四阶段', period: '18–24 月', focus: '集团客户 + 数据智能', deliver: '集团总览、风控模型、产业数据分析' } ]; var summaryPoints = [ '小羚羚不是单一 App,而是氢能产业多端协同的数字化入口,与 OneOS Web 形成「大屏管控 + 手机执行」互补。', '首期 6 个月聚焦租赁闭环与内部风控,快速产生业务价值;氢气贸易模块作为第二增长曲线。', '客户评级与敏感客户审批内嵌合同流程,从源头降低收账风险,支撑非标业务合规扩张。', '七类用户共用同一数据底座,避免信息孤岛,为智能调度与产业分析奠定基础。' ]; var activeSectionState = useState('hero'); var activeSection = activeSectionState[0]; var setActiveSection = activeSectionState[1]; var activeRoleState = useState('internal'); var activeRole = activeRoleState[0]; var setActiveRole = activeRoleState[1]; var activeChainState = useState('upstream'); var activeChain = activeChainState[0]; var setActiveChain = activeChainState[1]; var activeLoopState = useState('ops'); var activeLoop = activeLoopState[0]; var setActiveLoop = activeLoopState[1]; var activePhaseState = useState('p1'); var activePhase = activePhaseState[0]; var setActivePhase = activePhaseState[1]; var navOpenState = useState(false); var navOpen = navOpenState[0]; var setNavOpen = navOpenState[1]; var selectedRole = useMemo(function () { return roles.find(function (r) { return r.id === activeRole; }) || roles[0]; }, [activeRole]); var selectedChain = useMemo(function () { return chainSteps.find(function (c) { return c.key === activeChain; }) || chainSteps[0]; }, [activeChain]); var selectedPhase = useMemo(function () { return phases.find(function (p) { return p.id === activePhase; }) || phases[0]; }, [activePhase]); var scrollToSection = useCallback(function (key) { setActiveSection(key); setNavOpen(false); var el = document.getElementById('xll-section-' + key); if (el && el.scrollIntoView) { el.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }, []); useEffect(function () { var sectionIds = sectionNav.map(function (s) { return s.key; }); function onScroll() { var found = 'hero'; for (var i = 0; i < sectionIds.length; i++) { var node = document.getElementById('xll-section-' + sectionIds[i]); if (node) { var rect = node.getBoundingClientRect(); if (rect.top <= 120) found = sectionIds[i]; } } setActiveSection(found); } window.addEventListener('scroll', onScroll, { passive: true }); return function () { window.removeEventListener('scroll', onScroll); }; }, []); var css = '*,*::before,*::after{box-sizing:border-box}' + '.xll-plan{font-family:' + FONT + ';color:' + C_TEXT + ';background:' + C_PAGE + ';min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased}' + '.xll-plan a{color:inherit;text-decoration:none}' + '.xll-nav{position:sticky;top:0;z-index:100;background:rgba(255,255,255,0.92);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid ' + C_LINE + '}' + '.xll-nav-inner{max-width:1200px;margin:0 auto;padding:0 20px;height:56px;display:flex;align-items:center;gap:16px}' + '.xll-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;color:' + C_TEXT + ';flex-shrink:0}' + '.xll-brand-mark{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,' + C_PRIMARY + ',' + C_PRIMARY_D + ');color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800}' + '.xll-nav-links{display:flex;gap:4px;flex:1;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}' + '.xll-nav-links::-webkit-scrollbar{display:none}' + '.xll-nav-link{padding:8px 14px;border-radius:999px;font-size:13px;font-weight:500;color:' + C_MUTED + ';cursor:pointer;border:none;background:transparent;white-space:nowrap;transition:color .2s,background .2s}' + '.xll-nav-link:hover{color:' + C_TEXT + ';background:rgba(22,209,161,0.08)}' + '.xll-nav-link.is-active{color:' + C_PRIMARY_D + ';background:rgba(22,209,161,0.14);font-weight:600}' + '.xll-nav-toggle{display:none;padding:8px 12px;border-radius:8px;border:1px solid ' + C_LINE + ';background:#fff;cursor:pointer;font-size:13px}' + '.xll-hero{position:relative;background:' + C_HERO_BG + ';color:#fff;overflow:hidden;padding:64px 20px 72px}' + '.xll-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 70% 20%,rgba(22,209,161,0.18),transparent 55%),radial-gradient(ellipse 50% 40% at 10% 80%,rgba(37,99,235,0.12),transparent 50%);pointer-events:none}' + '.xll-hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.03) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,black 20%,transparent 90%);pointer-events:none}' + '.xll-hero-inner{position:relative;max-width:1200px;margin:0 auto}' + '.xll-hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}' + '.xll-badge{padding:5px 12px;border-radius:999px;font-size:12px;font-weight:500;border:1px solid rgba(255,255,255,0.18);background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.88)}' + '.xll-badge-accent{border-color:rgba(22,209,161,0.45);background:rgba(22,209,161,0.12);color:#6ee7c8}' + '.xll-hero-title{font-size:clamp(28px,5vw,42px);font-weight:800;line-height:1.15;letter-spacing:-0.02em;margin:0 0 16px;max-width:720px}' + '.xll-hero-desc{font-size:clamp(14px,2.5vw,17px);line-height:1.65;color:rgba(255,255,255,0.72);max-width:640px;margin:0 0 28px}' + '.xll-hero-quote{padding:16px 20px;border-radius:12px;border-left:3px solid ' + C_PRIMARY + ';background:' + C_HERO_ACCENT + ';font-size:14px;line-height:1.6;color:rgba(255,255,255,0.9);max-width:720px}' + '.xll-hero-quote strong{color:#6ee7c8;font-weight:600}' + '.xll-kpi-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:-36px;position:relative;z-index:2;padding:0 20px;max-width:1200px;margin-left:auto;margin-right:auto}' + '.xll-kpi{background:' + C_CARD + ';border-radius:16px;padding:20px 18px;border:1px solid ' + C_LINE + ';box-shadow:0 4px 24px rgba(15,23,42,0.06);transition:transform .25s,box-shadow .25s;cursor:default}' + '.xll-kpi:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(15,23,42,0.1)}' + '.xll-kpi-val{font-size:28px;font-weight:800;line-height:1.1;letter-spacing:-0.02em}' + '.xll-kpi-unit{font-size:14px;font-weight:600;margin-left:2px;opacity:.75}' + '.xll-kpi-label{font-size:12px;color:' + C_MUTED + ';margin-top:6px}' + '.xll-main{max-width:1200px;margin:0 auto;padding:48px 20px 64px}' + '.xll-section{margin-bottom:56px;scroll-margin-top:72px}' + '.xll-section-head{margin-bottom:24px}' + '.xll-section-tag{font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:' + C_PRIMARY_D + ';margin-bottom:8px}' + '.xll-section-title{font-size:clamp(22px,3vw,28px);font-weight:800;letter-spacing:-0.02em;margin:0 0 8px;color:' + C_TEXT + '}' + '.xll-section-desc{font-size:14px;color:' + C_MUTED + ';max-width:640px;margin:0;line-height:1.6}' + '.xll-chain-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}' + '.xll-chain-tab{padding:10px 18px;border-radius:12px;border:1px solid ' + C_LINE + ';background:#fff;cursor:pointer;font-size:13px;font-weight:600;color:' + C_MUTED + ';transition:all .2s}' + '.xll-chain-tab.is-active{color:#fff;border-color:transparent;box-shadow:0 4px 16px rgba(15,23,42,0.12)}' + '.xll-chain-panel{background:#fff;border-radius:16px;border:1px solid ' + C_LINE + ';padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center}' + '.xll-chain-panel-title{font-size:20px;font-weight:800;margin:0 0 8px}' + '.xll-chain-panel-desc{font-size:14px;color:' + C_MUTED + ';line-height:1.6;margin:0 0 12px}' + '.xll-chain-revenue{font-size:13px;padding:10px 14px;border-radius:10px;background:rgba(22,209,161,0.08);color:' + C_PRIMARY_D + ';font-weight:500}' + '.xll-chain-visual{aspect-ratio:16/10;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:64px;font-weight:900;color:rgba(255,255,255,0.95);position:relative;overflow:hidden}' + '.xll-chain-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,0.12))}' + '.xll-biz-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}' + '.xll-biz-card{background:#fff;border-radius:14px;padding:20px;border:1px solid ' + C_LINE + '}' + '.xll-biz-card h4{margin:0 0 10px;font-size:15px;font-weight:700}' + '.xll-biz-card p{margin:0;font-size:13px;color:' + C_MUTED + ';line-height:1.6}' + '.xll-roles-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,0.9fr);gap:20px;align-items:start}' + '.xll-role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}' + '.xll-role-card{padding:14px 16px;border-radius:12px;border:1px solid ' + C_LINE + ';background:#fff;cursor:pointer;text-align:left;transition:all .2s;width:100%}' + '.xll-role-card:hover{border-color:rgba(22,209,161,0.35);box-shadow:0 4px 16px rgba(15,23,42,0.06)}' + '.xll-role-card.is-active{border-color:transparent;box-shadow:0 8px 24px rgba(15,23,42,0.1);transform:translateY(-1px)}' + '.xll-role-name{font-size:14px;font-weight:700;margin-bottom:2px}' + '.xll-role-sub{font-size:11px;color:' + C_MUTED + '}' + '.xll-role-detail{background:#fff;border-radius:16px;border:1px solid ' + C_LINE + ';padding:24px;position:sticky;top:80px}' + '.xll-role-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}' + '.xll-role-detail h3{margin:0;font-size:20px;font-weight:800}' + '.xll-role-cap{font-size:13px;color:' + C_MUTED + ';line-height:1.6;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid ' + C_LINE + '}' + '.xll-role-block{margin-bottom:14px}' + '.xll-role-block h5{margin:0 0 6px;font-size:13px;font-weight:700;color:' + C_TEXT + '}' + '.xll-role-block p{margin:0;font-size:13px;color:' + C_MUTED + ';line-height:1.55}' + '.xll-loops{display:flex;flex-direction:column;gap:12px}' + '.xll-loop{padding:18px 20px;border-radius:14px;border:1px solid ' + C_LINE + ';background:#fff;cursor:pointer;transition:all .2s}' + '.xll-loop:hover{border-color:rgba(22,209,161,0.3)}' + '.xll-loop.is-active{border-color:transparent;box-shadow:0 8px 28px rgba(15,23,42,0.08)}' + '.xll-loop-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:0}' + '.xll-loop.is-active .xll-loop-head{margin-bottom:12px}' + '.xll-loop-title{font-size:15px;font-weight:700}' + '.xll-loop-flow{font-size:13px;color:' + C_MUTED + ';line-height:1.65;padding-top:12px;border-top:1px dashed ' + C_LINE + '}' + '.xll-roadmap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}' + '.xll-phase{padding:16px;border-radius:14px;border:1px solid ' + C_LINE + ';background:#fff;cursor:pointer;transition:all .2s;text-align:left;width:100%}' + '.xll-phase:hover{border-color:rgba(22,209,161,0.35)}' + '.xll-phase.is-active{border-color:transparent;box-shadow:0 8px 24px rgba(15,23,42,0.08)}' + '.xll-phase-num{font-size:11px;font-weight:700;color:' + C_PRIMARY_D + ';margin-bottom:6px}' + '.xll-phase-name{font-size:14px;font-weight:700;margin-bottom:4px}' + '.xll-phase-period{font-size:12px;color:' + C_MUTED + '}' + '.xll-phase-detail{background:#fff;border-radius:16px;border:1px solid ' + C_LINE + ';padding:24px}' + '.xll-phase-detail h4{margin:0 0 12px;font-size:18px;font-weight:800}' + '.xll-phase-meta{display:grid;grid-template-columns:1fr 1fr;gap:16px}' + '.xll-phase-meta dt{font-size:11px;font-weight:700;color:' + C_MUTED + ';text-transform:uppercase;letter-spacing:0.05em;margin-bottom:4px}' + '.xll-phase-meta dd{margin:0;font-size:14px;line-height:1.55}' + '.xll-summary{background:linear-gradient(135deg,' + C_HERO_BG + ',' + C_HERO_ACCENT + ');border-radius:20px;padding:32px;color:#fff}' + '.xll-summary h3{margin:0 0 20px;font-size:20px;font-weight:800}' + '.xll-summary-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}' + '.xll-summary-item{display:flex;gap:12px;font-size:14px;line-height:1.6;color:rgba(255,255,255,0.88)}' + '.xll-summary-num{flex-shrink:0;width:24px;height:24px;border-radius:8px;background:rgba(22,209,161,0.25);color:#6ee7c8;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center}' + '.xll-footer{text-align:center;padding:24px 20px 32px;font-size:12px;color:' + C_MUTED + '}' + '@media(max-width:960px){.xll-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:-24px}.xll-chain-panel{grid-template-columns:1fr}.xll-biz-grid{grid-template-columns:1fr}.xll-roles-layout{grid-template-columns:1fr}.xll-role-detail{position:static}.xll-roadmap{grid-template-columns:repeat(2,minmax(0,1fr))}.xll-phase-meta{grid-template-columns:1fr}}' + '@media(max-width:640px){.xll-nav-links{display:none;position:absolute;top:56px;left:0;right:0;background:#fff;flex-direction:column;padding:12px 16px 16px;border-bottom:1px solid ' + C_LINE + ';box-shadow:0 8px 24px rgba(15,23,42,0.08)}.xll-nav.is-open .xll-nav-links{display:flex}.xll-nav-toggle{display:block;margin-left:auto}.xll-nav-inner{position:relative;flex-wrap:wrap;height:auto;min-height:56px;padding-top:10px;padding-bottom:10px}.xll-kpi-row{grid-template-columns:1fr 1fr;gap:10px}.xll-role-grid{grid-template-columns:1fr}.xll-roadmap{grid-template-columns:1fr}.xll-hero{padding:48px 16px 56px}.xll-main{padding:32px 16px 48px}}'; function renderTag(text, color) { if (Tag) { return React.createElement(Tag, { color: color || C_PRIMARY, style: { borderRadius: 6, fontWeight: 600 } }, text); } return React.createElement('span', { style: { display: 'inline-block', padding: '2px 8px', borderRadius: 6, fontSize: 11, fontWeight: 600, background: 'rgba(22,209,161,0.12)', color: C_PRIMARY_D } }, text); } function renderNavLink(item) { return React.createElement('button', { key: item.key, type: 'button', className: 'xll-nav-link' + (activeSection === item.key ? ' is-active' : ''), onClick: function () { scrollToSection(item.key); } }, item.label); } return React.createElement(App, null, React.createElement('div', { className: 'xll-plan' }, React.createElement('style', null, css), React.createElement('nav', { className: 'xll-nav' + (navOpen ? ' is-open' : ''), 'aria-label': '方案导航' }, React.createElement('div', { className: 'xll-nav-inner' }, React.createElement('div', { className: 'xll-brand' }, React.createElement('div', { className: 'xll-brand-mark' }, '羚'), React.createElement('span', null, '小羚羚 · 平台方案') ), React.createElement('button', { type: 'button', className: 'xll-nav-toggle', onClick: function () { setNavOpen(!navOpen); }, 'aria-expanded': navOpen }, navOpen ? '收起' : '导航'), React.createElement('div', { className: 'xll-nav-links', role: 'tablist' }, sectionNav.map(renderNavLink) ) ) ), React.createElement('header', { id: 'xll-section-hero', className: 'xll-hero xll-section' }, React.createElement('div', { className: 'xll-hero-grid' }), React.createElement('div', { className: 'xll-hero-inner' }, React.createElement('div', { className: 'xll-hero-badges' }, React.createElement('span', { className: 'xll-badge xll-badge-accent' }, '方案书 v1.0'), React.createElement('span', { className: 'xll-badge' }, '手机端 · 小羚羚'), React.createElement('span', { className: 'xll-badge' }, 'OneOS 生态') ), React.createElement('h1', { className: 'xll-hero-title' }, '小羚羚氢能产业数字化平台方案'), React.createElement('p', { className: 'xll-hero-desc' }, 以手机端「小羚羚」为统一入口,连接内部运营、车队客户、司机、加氢站、维修站、制氢企业与集团客户,实现氢气采购—加氢站—氢能车运营全链路数字化闭环。' ), React.createElement('div', { className: 'xll-hero-quote' }, React.createElement('strong', null, '一句话定位:'), '小羚羚 = 氢能产业的「业务操作系统」—— 一端登录、多角色协同,把合同、车辆、能源、维保、氢气贸易串成可落地、可风控、可结算的完整商业链条。' ) ) ), React.createElement('div', { className: 'xll-kpi-row' }, kpiStats.map(function (k) { return React.createElement('div', { key: k.label, className: 'xll-kpi' }, React.createElement('div', { className: 'xll-kpi-val', style: { color: k.color } }, k.value, k.unit ? React.createElement('span', { className: 'xll-kpi-unit' }, k.unit) : null ), React.createElement('div', { className: 'xll-kpi-label' }, k.label) ); }) ), React.createElement('main', { className: 'xll-main' }, React.createElement('section', { id: 'xll-section-chain', className: 'xll-section' }, React.createElement('div', { className: 'xll-section-head' }, React.createElement('div', { className: 'xll-section-tag' }, 'Business Plan'), React.createElement('h2', { className: 'xll-section-title' }, '氢能产业链商业计划'), React.createElement('p', { className: 'xll-section-desc' }, 覆盖氢气采购、加氢站运营、氢能车租赁/自营三大环节,形成「制氢—储运—加注—运营—结算」一体化商业模式。' ) ), React.createElement('div', { className: 'xll-chain-tabs', role: 'tablist' }, chainSteps.map(function (step) { var isActive = activeChain === step.key; return React.createElement('button', { key: step.key, type: 'button', role: 'tab', className: 'xll-chain-tab' + (isActive ? ' is-active' : ''), style: isActive ? { background: step.color } : undefined, onClick: function () { setActiveChain(step.key); } }, step.title); }) ), React.createElement('div', { className: 'xll-chain-panel', role: 'tabpanel' }, React.createElement('div', null, React.createElement('h3', { className: 'xll-chain-panel-title' }, selectedChain.title), React.createElement('p', { className: 'xll-chain-panel-desc' }, selectedChain.desc), React.createElement('div', { className: 'xll-chain-revenue' }, '收入来源:' + selectedChain.revenue) ), React.createElement('div', { className: 'xll-chain-visual', style: { background: 'linear-gradient(145deg,' + selectedChain.color + ',rgba(0,0,0,0.25))' }, 'aria-hidden': true }, selectedChain.icon) ), React.createElement('div', { className: 'xll-biz-grid', style: { marginTop: 20 } }, chainSteps.map(function (step) { return React.createElement('div', { key: step.key + '-biz', className: 'xll-biz-card' }, React.createElement('h4', null, step.title), React.createElement('p', null, step.desc + '。' + step.revenue + '。') ); }) ) ), React.createElement('section', { id: 'xll-section-roles', className: 'xll-section' }, React.createElement('div', { className: 'xll-section-head' }, React.createElement('div', { className: 'xll-section-tag' }, 'Platform'), React.createElement('h2', { className: 'xll-section-title' }, '七类用户 · 一套数据底座'), React.createElement('p', { className: 'xll-section-desc' }, 点击角色卡片查看详细能力与业务场景,七端共用 OneOS 数据底座。' ) ), React.createElement('div', { className: 'xll-roles-layout' }, React.createElement('div', { className: 'xll-role-grid', role: 'list' }, roles.map(function (role) { var isActive = activeRole === role.id; return React.createElement('button', { key: role.id, type: 'button', className: 'xll-role-card' + (isActive ? ' is-active' : ''), style: isActive ? { background: 'linear-gradient(135deg,rgba(22,209,161,0.06),#fff)', borderLeft: '3px solid ' + role.color } : { borderLeft: '3px solid transparent' }, onClick: function () { setActiveRole(role.id); } }, React.createElement('div', { className: 'xll-role-name' }, role.name), React.createElement('div', { className: 'xll-role-sub' }, role.sub) ); }) ), React.createElement('div', { className: 'xll-role-detail' }, React.createElement('div', { className: 'xll-role-detail-head' }, React.createElement('h3', null, selectedRole.name), renderTag(selectedRole.tag, selectedRole.color) ), React.createElement('p', { className: 'xll-role-cap' }, selectedRole.capability), selectedRole.detail.map(function (block, idx) { return React.createElement('div', { key: idx, className: 'xll-role-block' }, React.createElement('h5', null, block.title), React.createElement('p', null, block.text) ); }), React.createElement('p', { style: { fontSize: 12, color: C_MUTED, margin: '12px 0 0' } }, '关键场景:', selectedRole.scenes ) ) ) ), React.createElement('section', { id: 'xll-section-loops', className: 'xll-section' }, React.createElement('div', { className: 'xll-section-head' }, React.createElement('div', { className: 'xll-section-tag' }, 'Closed Loop'), React.createElement('h2', { className: 'xll-section-title' }, '三大业务闭环总览'), React.createElement('p', { className: 'xll-section-desc' }, '点击展开查看完整业务流转路径。') ), React.createElement('div', { className: 'xll-loops' }, loops.map(function (loop) { var isActive = activeLoop === loop.id; return React.createElement('div', { key: loop.id, className: 'xll-loop' + (isActive ? ' is-active' : ''), style: isActive ? { borderLeft: '3px solid ' + loop.color } : undefined, role: 'button', tabIndex: 0, onClick: function () { setActiveLoop(isActive ? '' : loop.id); }, onKeyDown: function (e) { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); setActiveLoop(isActive ? '' : loop.id); } } }, React.createElement('div', { className: 'xll-loop-head' }, React.createElement('span', { className: 'xll-loop-title' }, loop.title), renderTag(loop.tag, loop.color) ), isActive ? React.createElement('div', { className: 'xll-loop-flow' }, loop.flow) : null ); }) ) ), React.createElement('section', { id: 'xll-section-roadmap', className: 'xll-section' }, React.createElement('div', { className: 'xll-section-head' }, React.createElement('div', { className: 'xll-section-tag' }, 'Roadmap'), React.createElement('h2', { className: 'xll-section-title' }, '分阶段落地路线图'), React.createElement('p', { className: 'xll-section-desc' }, '24 个月四阶段推进,先闭环后延伸。') ), React.createElement('div', { className: 'xll-roadmap' }, phases.map(function (p, idx) { var isActive = activePhase === p.id; return React.createElement('button', { key: p.id, type: 'button', className: 'xll-phase' + (isActive ? ' is-active' : ''), style: isActive ? { borderLeft: '3px solid ' + C_PRIMARY } : undefined, onClick: function () { setActivePhase(p.id); } }, React.createElement('div', { className: 'xll-phase-num' }, 'PHASE ' + (idx + 1)), React.createElement('div', { className: 'xll-phase-name' }, p.phase), React.createElement('div', { className: 'xll-phase-period' }, p.period) ); }) ), React.createElement('div', { className: 'xll-phase-detail' }, React.createElement('h4', null, selectedPhase.phase + ' · ' + selectedPhase.period), React.createElement('dl', { className: 'xll-phase-meta' }, React.createElement('div', null, React.createElement('dt', null, '重点模块'), React.createElement('dd', null, selectedPhase.focus) ), React.createElement('div', null, React.createElement('dt', null, '交付成果'), React.createElement('dd', null, selectedPhase.deliver) ) ) ) ), React.createElement('section', { id: 'xll-section-summary', className: 'xll-section' }, React.createElement('div', { className: 'xll-summary' }, React.createElement('h3', null, '向管理层汇报要点'), React.createElement('ul', { className: 'xll-summary-list' }, summaryPoints.map(function (text, i) { return React.createElement('li', { key: i, className: 'xll-summary-item' }, React.createElement('span', { className: 'xll-summary-num' }, i + 1), React.createElement('span', null, text) ); }) ) ) ) ), React.createElement('footer', { className: 'xll-footer' }, '文档版本 v1.0 · 羚牛氢能 · 小羚羚平台方案 · 供内部汇报使用 · OneOS 生态' ) ) ); }; export default Component;