refactor(原型设计): 调整导航并合并法规依据入口

This commit is contained in:
2026-06-03 23:43:16 +08:00
parent 134e0fb5ff
commit 12a92ad278

View File

@@ -647,7 +647,9 @@
display: flex; display: flex;
align-items: stretch; align-items: stretch;
gap: 2px; gap: 2px;
margin-left: 26px; justify-content: center;
flex: 1;
margin-left: 0;
} }
.system-nav-btn { .system-nav-btn {
@@ -792,9 +794,8 @@
<p>以对话为核心的人机协同审核原型,聚焦上传、知识库、留痕与结构化结论。</p> <p>以对话为核心的人机协同审核原型,聚焦上传、知识库、留痕与结构化结论。</p>
</div> </div>
<nav class="system-nav"> <nav class="system-nav">
<button class="system-nav-btn" data-top-nav="materials">资料包</button>
<button class="system-nav-btn" data-top-nav="regulations">法规依据</button>
<button class="system-nav-btn" data-top-nav="chat">审核智能体</button> <button class="system-nav-btn" data-top-nav="chat">审核智能体</button>
<button class="system-nav-btn" data-top-nav="materials">资料包</button>
<button class="system-nav-btn" data-top-nav="knowledge">知识库</button> <button class="system-nav-btn" data-top-nav="knowledge">知识库</button>
<button class="system-nav-btn" data-top-nav="history">处理历史</button> <button class="system-nav-btn" data-top-nav="history">处理历史</button>
</nav> </nav>
@@ -1059,19 +1060,6 @@
{ path: "第1章 监管信息/CH1.11.5 真实性声明.docx", chapter: "CH1.11.5", pages: "1", status: "已识别", note: "监管声明材料" }, { path: "第1章 监管信息/CH1.11.5 真实性声明.docx", chapter: "CH1.11.5", pages: "1", status: "已识别", note: "监管声明材料" },
{ path: "目标产品说明书.docx", chapter: "CH3", pages: "18", status: "已识别", note: "主要字段来源文档" } { path: "目标产品说明书.docx", chapter: "CH3", pages: "18", status: "已识别", note: "主要字段来源文档" }
] ]
},
regulations: {
metrics: [
{ label: "法规源数量", value: "6", note: "公告、申报要求、批准证明文件格式等" },
{ label: "适用条款", value: "24", note: "当前原型重点命中 CH1 相关条款" },
{ label: "命中规则包", value: "4", note: "完整性、一致性、风险与导出规则" },
{ label: "高风险依据", value: "2", note: "缺失必交项与冲突字段命中阻断条件" }
],
refs: [
{ title: "附件 4 体外诊断试剂注册申报资料要求及说明", type: "核心法规", hit: "CH1.11.4 必交项", summary: "用于判断授权书/声明类资料缺失是否构成高风险。" },
{ title: "关于公布体外诊断试剂注册申报资料要求和批准证明文件格式的公告", type: "配套公告", hit: "资料结构要求", summary: "用于说明申报资料章节结构和材料格式要求。" },
{ title: "目标产品说明书.docx", type: "业务依据", hit: "字段取值比对", summary: "作为字段抽取和一致性核查的重要业务依据。" }
]
} }
}; };
@@ -1348,68 +1336,6 @@
`; `;
} }
function renderRegulationsPage() {
return `
<section class="page ${activeTabId === "regulations" ? "active" : ""}" data-page="regulations">
${renderMetrics(data.regulations.metrics)}
<div class="knowledge-layout">
<div class="history-layout">
<section class="panel">
<div class="panel-head">
<div>
<h2>法规依据总览</h2>
<p>展示当前审核 Agent 会引用的核心法规、公告和业务说明材料。</p>
</div>
</div>
<div class="panel-body">
<div class="record-list">
${data.regulations.refs.map(item => `
<div class="queue-item">
<div class="meta-row">
<span class="mini-tag">${item.type}</span>
<span class="status-tag warning">${item.hit}</span>
</div>
<strong>${item.title}</strong>
<div class="muted">${item.summary}</div>
</div>
`).join("")}
</div>
</div>
</section>
</div>
<div class="side-stack">
<section class="panel">
<div class="panel-head">
<div>
<h3>当前命中依据</h3>
<p>本轮高风险结论主要来自以下两类法规判断。</p>
</div>
</div>
<div class="panel-body">
<div class="process-steps">
<div class="step-card blocked">
<div>
<strong>CH1.11.4 缺失必交资料</strong>
<div class="muted">依据申报资料要求及说明,授权书/声明类文件属于必交项,缺失即触发高风险。</div>
</div>
<span class="status-tag danger">高风险</span>
</div>
<div class="step-card running">
<div>
<strong>产品名称冲突待确认</strong>
<div class="muted">说明书与申请表出现表述差异,进入一致性核查并阻断正式导出。</div>
</div>
<span class="status-tag warning">核查中</span>
</div>
</div>
</div>
</section>
</div>
</div>
</section>
`;
}
function renderKnowledgePage() { function renderKnowledgePage() {
return ` return `
<section class="page ${activeTabId === "knowledge" ? "active" : ""}" data-page="knowledge"> <section class="page ${activeTabId === "knowledge" ? "active" : ""}" data-page="knowledge">
@@ -1420,7 +1346,7 @@
<div class="panel-head"> <div class="panel-head">
<div> <div>
<h2>知识库管理</h2> <h2>知识库管理</h2>
<p>保留基本 CRUD、手动上传、切片解析与重建能力支撑 Agent 问答和核查。</p> <p>保留基本 CRUD、手动上传、切片解析与重建能力支撑 Agent 通过 RAG 检索法规依据、业务知识和模板映射。</p>
</div> </div>
</div> </div>
<div class="panel-body"> <div class="panel-body">
@@ -1452,7 +1378,7 @@
<div class="panel-head"> <div class="panel-head">
<div> <div>
<h3>知识库能力卡片</h3> <h3>知识库能力卡片</h3>
<p>将治理能力保持为轻量卡片入口,避免回到传统中台页面。</p> <p>法规依据不再单独成页,而是作为法规资料进入知识库,在对话中由 RAG 命中后返回解释。</p>
</div> </div>
</div> </div>
<div class="panel-body"> <div class="panel-body">
@@ -1530,7 +1456,7 @@
<div class="panel-head"> <div class="panel-head">
<div> <div>
<h3>切片解析流程</h3> <h3>切片解析流程</h3>
<p>展示从上传到切片可召回的处理链路。</p> <p>展示从法规/业务文档上传到切片可召回,再到对话中返回依据的处理链路。</p>
</div> </div>
</div> </div>
<div class="panel-body"> <div class="panel-body">
@@ -1558,10 +1484,47 @@
</div> </div>
<div class="step-card pending"> <div class="step-card pending">
<div> <div>
<strong>向量入库</strong> <strong>对话命中依据</strong>
<div class="muted">完成向量化、写入索引并开放检索。</div> <div class="muted">完成入库后,可在审核智能体对话中命中法规条款、模板约束和示例依据。</div>
</div> </div>
<span class="status-tag">待执行</span> <span class="status-tag">可检索</span>
</div>
</div>
</div>
</section>
<section class="panel">
<div class="panel-head">
<div>
<h3>RAG 命中依据示例</h3>
<p>模拟 Agent 在对话中返回的法规依据片段。</p>
</div>
</div>
<div class="panel-body">
<div class="record-list">
<div class="queue-item">
<div class="meta-row">
<span class="mini-tag">核心法规</span>
<span class="status-tag warning">CH1.11.4 必交项</span>
</div>
<strong>附件 4 体外诊断试剂注册申报资料要求及说明</strong>
<div class="muted">用于判断授权书/声明类资料缺失是否构成高风险Agent 在完整性检查对话中会引用该依据。</div>
</div>
<div class="queue-item">
<div class="meta-row">
<span class="mini-tag">配套公告</span>
<span class="status-tag warning">资料结构要求</span>
</div>
<strong>关于公布体外诊断试剂注册申报资料要求和批准证明文件格式的公告</strong>
<div class="muted">用于解释章节结构和申报资料组织要求,支持目录错放和资料结构判断。</div>
</div>
<div class="queue-item">
<div class="meta-row">
<span class="mini-tag">业务依据</span>
<span class="status-tag warning">字段取值比对</span>
</div>
<strong>目标产品说明书.docx</strong>
<div class="muted">用于字段抽取、一致性核查和最终采用值解释。</div>
</div> </div>
</div> </div>
</div> </div>
@@ -1658,7 +1621,6 @@
function renderPages() { function renderPages() {
document.getElementById("pages").innerHTML = [ document.getElementById("pages").innerHTML = [
renderMaterialsPage(), renderMaterialsPage(),
renderRegulationsPage(),
renderChatPage(), renderChatPage(),
renderKnowledgePage(), renderKnowledgePage(),
renderHistoryPage() renderHistoryPage()
@@ -1676,7 +1638,7 @@
const topNav = event.target.closest("[data-top-nav]"); const topNav = event.target.closest("[data-top-nav]");
if (topNav) { if (topNav) {
const target = topNav.dataset.topNav; const target = topNav.dataset.topNav;
if (target === "materials" || target === "regulations" || target === "chat" || target === "knowledge" || target === "history") { if (target === "materials" || target === "chat" || target === "knowledge" || target === "history") {
activeTabId = target; activeTabId = target;
} }
rerender(); rerender();