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>
This commit is contained in:
2026-09-13 09:07:23 +08:00
co-authored by Devin
commit f307e877c9
30 changed files with 11397 additions and 0 deletions
+72
View File
@@ -0,0 +1,72 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>画像中心 · OPC 公共服务平台 Demo</title>
<link rel="stylesheet" href="assets/style.css">
</head>
<body data-page="profile">
<header class="topnav" id="topnav"></header>
<div class="container">
<div class="page-title">主题画像中心</div>
<div class="page-sub" id="pf-sub">OPC / 企业 / 订单 / 学员 核心主题统一画像 · AI 自动匹配的数据底座(REQ-116)</div>
<!-- REQ-116 主题画像 -->
<div class="grid grid-2" id="pf-grid"></div>
<!-- REQ-117 AI 匹配演示 -->
<div class="section">
<h2>AI 自动匹配演示 <span class="req">REQ-117 · score + evidence + confidence</span></h2>
<div class="card">
<p class="muted" id="md-req"></p>
<table id="md-tbl"></table>
<p class="muted" style="margin-top:8px">confidence < 0.6 提示人工核对;匹配依据可追溯,不编造(REQ-117)。画像维度随业务行为自动更新(REQ-116)。</p>
<button class="btn sm" onclick="runMatch()">重新计算匹配</button>
</div>
</div>
</div>
<div class="footer">OPC 公共服务平台 Demo · 主题画像中心</div>
<script src="assets/app.js"></script>
<script src="assets/store.js"></script>
<script>
function renderPage(DB) {
const P = DB.profiles;
const role = currentRole();
const subMap = {
gov: '监管视角 · 脱敏主题画像与 AI 匹配监测(REQ-116/117)',
enterprise: '需求方视角 · 查看候选 OPC 画像与 AI 匹配结果(REQ-117)',
operator: '运营管理视角 · 全量主题画像与 AI 匹配数据底座(REQ-116/117)',
};
if (subMap[role]) document.getElementById('pf-sub').textContent = subMap[role];
document.getElementById('pf-grid').innerHTML = P.entities.map(e => `
<div class="card">
<h3>${e.type} · ${e.name} <span class="req">${e.code}</span></h3>
<ul class="list">
${e.dims.map(d => `<li><span>${d[0]}</span><span class="muted">${d[1]}</span></li>`).join('')}
</ul>
</div>`).join('');
document.getElementById('md-req').textContent = '输入 · ' + P.matchDemo.req;
renderMatch();
}
function renderMatch() {
document.getElementById('md-tbl').innerHTML =
`<tr><th>候选 OPC</th><th>匹配分</th><th>依据(evidence)</th><th>置信度</th></tr>` +
DB.profiles.matchDemo.results.map(r => `<tr><td>${r.target}</td><td><b>${r.score}</b></td><td>${r.evidence}</td><td>${
r.conf === 'high' ? '<span class="badge ok">高 · 可直接派单</span>' : '<span class="badge warn">中 · 建议人工复核</span>'
}</td></tr>`).join('');
}
let matching = false;
function runMatch() {
if (matching) return;
matching = true;
document.getElementById('md-tbl').innerHTML = '<tr><td colspan="4">AI 正在基于主题画像计算匹配…</td></tr>';
setTimeout(() => { renderMatch(); toast('匹配重算完成:TOP1 OPC_00017(96 分,可直接派单)'); matching = false; }, 900);
}
</script>
</body>
</html>