Files
OPC/Demo/showcase.html
freedakandDevin f307e877c9 feat: OPC 社区运营公共服务平台 Demo v1.3
一人公司/超级个体产业社区公共服务基础设施 Demo,包含:
- 18 个角色页面(运营商/OPC/企业/个人/学员/培训机构/服务机构/政府/审计/金融)
- 暖橙活力主题 UI(渐变毛玻璃 + 暖色侧栏)
- 五步运营闭环(选方向→育人才→建平台→立SOP→聚产业)
- 华强北硬件供应链接入
- 蜂群式交付 + 产业集聚效应展示
- 需求文档(REQ-001~118 全覆盖)

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-09-13 09:07:23 +08:00

131 lines
5.1 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>OPC 社区驾驶舱 · 展览大屏</title>
<link rel="stylesheet" href="assets/style.css">
</head>
<body data-page="showcase" class="gov screen">
<header class="topnav" id="topnav"></header>
<div class="container">
<div class="screen-hero">
<h1>OPC 社区驾驶舱</h1>
<p>一人公司 · 超级个体产业社区 · 展览区公开展示 · 全部数据脱敏汇总(REQ-118)</p>
</div>
<!-- 实时动态 -->
<div class="ticker-wrap"><div class="ticker" id="sc-ticker"></div></div>
<!-- 核心指标 -->
<div class="section grid grid-3" id="sc-kpis"></div>
<div class="section">
<div class="two-col">
<!-- 业务模式分布 -->
<div class="card">
<h3>业务模式分布 · 按订单额</h3>
<div id="sc-mix"></div>
</div>
<!-- 供需转化 -->
<div class="card">
<h3>供需转化(本季度)</h3>
<div class="funnel" id="sc-funnel"></div>
</div>
</div>
</div>
<div class="section">
<div class="two-col">
<!-- 明星 OPC -->
<div class="card">
<h3>明星 OPC 榜 <span class="req">脱敏展示</span></h3>
<table id="sc-top"></table>
</div>
<!-- 橙果商城热榜 -->
<div class="card">
<h3>OPC橙果商城 · 热销成果</h3>
<ul class="list" id="sc-market"></ul>
<a class="btn sm ghost" style="margin-top:10px" href="market.html">进入商城 →</a>
</div>
</div>
</div>
<!-- 产业集聚效应(§1.5 步骤⑤) -->
<div class="section">
<h2 style="color:#e2e8f0">产业集聚效应 <span class="req">§1.5 ⑤ · 标杆 + 上下游 + 复购飞轮</span></h2>
<div class="two-col">
<div class="card">
<h3>上游生态</h3>
<table id="sc-upstream"></table>
</div>
<div class="card">
<h3>下游产能</h3>
<table id="sc-downstream"></table>
</div>
</div>
<div class="card" style="margin-top:14px">
<h3>产业链条 · 按业务方向</h3>
<table id="sc-chain"></table>
</div>
<div class="card" style="margin-top:14px">
<h3>标杆带动 <span class="req">REQ-005</span></h3>
<p id="sc-benchmark" style="font-size:13px;line-height:1.8"></p>
</div>
</div>
</div>
<div class="footer">OPC 公共服务平台 Demo · 展览区大屏 · 数据每 5 分钟刷新(演示为静态)</div>
<script src="assets/app.js"></script>
<script src="assets/store.js"></script>
<script>
function renderPage(DB) {
const S = DB.showcase;
// 滚动条:内容复制一遍实现无缝滚动
const items = S.ticker.map(t => `<span>◆ ${t}</span>`).join('');
document.getElementById('sc-ticker').innerHTML = items + items;
document.getElementById('sc-kpis').innerHTML = S.kpis.map(k =>
`<div class="card"><h3>${k.label}</h3><div class="num">${k.num}</div></div>`).join('');
document.getElementById('sc-mix').innerHTML = S.bizMix.map(m => `
<div style="margin-bottom:12px">
<div style="display:flex;justify-content:space-between;font-size:13px"><span>${m[0]}</span><span>${m[1]}%</span></div>
${BAR(m[1])}
</div>`).join('');
document.getElementById('sc-funnel').innerHTML = S.funnel.map((f, i) => `
<div class="funnel-row">
<span class="funnel-stage" style="color:#94a3b8">${f[0]}</span>
<div class="funnel-bar" style="width:${100 - i * 22}%;background:#0ea5e9">${f[1]}</div>
${i ? `<span class="funnel-conv">转化 ${(f[1] / S.funnel[i-1][1] * 100).toFixed(0)}%</span>` : ''}
</div>`).join('');
document.getElementById('sc-top').innerHTML =
`<tr><th>OPC</th><th>等级</th><th>关键指标</th></tr>` +
S.topOpc.map(o => `<tr><td>${o.code} ${o.name}</td><td><span class="badge pri">${o.level}</span></td><td>${o.metric}</td></tr>`).join('');
document.getElementById('sc-market').innerHTML = S.marketTop.map(m =>
`<li><span>${m[0]}</span><span class="muted">${m[1]}</span></li>`).join('');
// 产业集聚效应(§1.5 步骤⑤)
const C = S.cluster || {};
if (C.upstream) {
document.getElementById('sc-upstream').innerHTML =
`<tr><th>类型</th><th>数量</th><th>代表</th></tr>` +
C.upstream.map(u => `<tr><td>${u.type}</td><td><b>${u.count}</b></td><td class="muted" style="font-size:12px">${u.top}</td></tr>`).join('');
document.getElementById('sc-downstream').innerHTML =
`<tr><th>类型</th><th>数量</th><th>构成</th></tr>` +
C.downstream.map(d => `<tr><td>${d.type}</td><td><b>${d.count}</b></td><td class="muted" style="font-size:12px">${d.top}</td></tr>`).join('');
document.getElementById('sc-chain').innerHTML =
`<tr><th>业务方向</th><th>上游</th><th>核心产能</th><th>下游效果</th></tr>` +
C.chain.map(c => `<tr><td><b>${c.dir}</b></td><td style="font-size:12px">${c.upstream}</td><td style="font-size:12px">${c.core}</td><td style="font-size:12px">${c.downstream}</td></tr>`).join('');
document.getElementById('sc-benchmark').textContent = C.benchmark || '';
}
}
</script>
</body>
</html>