feat(ui): 重构注册审核平台原型界面
This commit is contained in:
58
templates/platform_ui/command_center.html
Normal file
58
templates/platform_ui/command_center.html
Normal file
@@ -0,0 +1,58 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}工作台大屏{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<section class="page-header">
|
||||
<span class="eyebrow">Workbench</span>
|
||||
<h1 class="page-title">工作台</h1>
|
||||
<p class="page-lead">用简洁视图展示当前批次状态、主要问题和下一步动作。</p>
|
||||
</section>
|
||||
|
||||
<section class="metric-grid">
|
||||
<article class="metric-card">
|
||||
<div class="metric-label">当前阶段</div>
|
||||
<div class="metric-value">{{ batch.stage }}</div>
|
||||
</article>
|
||||
<article class="metric-card">
|
||||
<div class="metric-label">整体完成度</div>
|
||||
<div class="metric-value">{{ batch.completion }}</div>
|
||||
</article>
|
||||
<article class="metric-card">
|
||||
<div class="metric-label">高优先级问题</div>
|
||||
<div class="metric-value">03</div>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
<section class="grid-3">
|
||||
<article class="panel">
|
||||
<h2 class="section-title">流程</h2>
|
||||
<div class="stack" style="margin-top: 14px;">
|
||||
{% for step in workflow_overview %}
|
||||
<div class="detail-item"><strong>{{ step.title }}</strong><div class="muted">{{ step.detail }}</div></div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="panel">
|
||||
<h2 class="section-title">执行记录</h2>
|
||||
<div class="stack" style="margin-top: 14px;">
|
||||
{% for step in workflow_steps %}
|
||||
<div class="detail-item"><strong>{{ step.time }} {{ step.title }}</strong><div class="muted">{{ step.detail }}</div></div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="panel">
|
||||
<h2 class="section-title">待处理问题</h2>
|
||||
<ul class="risk-list">
|
||||
{% for risk in risk_board %}
|
||||
<li class="risk-item">
|
||||
<strong>{{ risk.title }}</strong>
|
||||
<div class="muted">{{ risk.action|default:risk.detail }}</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</article>
|
||||
</section>
|
||||
{% endblock %}
|
||||
198
templates/platform_ui/knowledge_base.html
Normal file
198
templates/platform_ui/knowledge_base.html
Normal file
@@ -0,0 +1,198 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}知识库配置{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<section class="page-header">
|
||||
<span class="eyebrow">Knowledge Base</span>
|
||||
<h1 class="page-title">知识库配置</h1>
|
||||
<p class="page-lead">支持传统增删改查:新增知识源、编辑规则项、删除无效配置、筛选和搜索当前知识内容。</p>
|
||||
</section>
|
||||
|
||||
<section class="metric-grid">
|
||||
{% for item in knowledge_stats %}
|
||||
<article class="metric-card">
|
||||
<div class="metric-label">{{ item.label }}</div>
|
||||
<div class="metric-value">{{ item.value }}</div>
|
||||
</article>
|
||||
{% endfor %}
|
||||
</section>
|
||||
|
||||
<section class="panel">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<h2 class="section-title">操作栏</h2>
|
||||
<p class="section-copy">把知识库做成传统后台,而不是只读展示页。</p>
|
||||
</div>
|
||||
<div class="button-row">
|
||||
<a class="button button-primary" href="#">新增知识源</a>
|
||||
<a class="button" href="#">新增规则项</a>
|
||||
<a class="button" href="#">批量删除</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid-3">
|
||||
<div>
|
||||
<label for="knowledge-search">搜索</label>
|
||||
<input id="knowledge-search" type="text" value="体外诊断试剂" />
|
||||
</div>
|
||||
<div>
|
||||
<label for="knowledge-type">知识类型</label>
|
||||
<select id="knowledge-type">
|
||||
{% for filter in knowledge_filters %}
|
||||
<option{% if filter.active %} selected{% endif %}>{{ filter.label }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<label for="knowledge-status">状态</label>
|
||||
<select id="knowledge-status">
|
||||
<option selected>全部状态</option>
|
||||
<option>已生效</option>
|
||||
<option>待人工校订</option>
|
||||
<option>已入库</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="workspace-grid-wide">
|
||||
<article class="panel">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<h2 class="section-title">知识源管理</h2>
|
||||
<p class="section-copy">传统 CRUD 列表,直接在表格里做查看、编辑、删除。</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-wrap">
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>编码</th>
|
||||
<th>名称</th>
|
||||
<th>类型</th>
|
||||
<th>范围</th>
|
||||
<th>状态</th>
|
||||
<th>负责人</th>
|
||||
<th>更新时间</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for source in knowledge_sources %}
|
||||
<tr>
|
||||
<td class="nowrap">{{ source.code }}</td>
|
||||
<td><div class="cell-min-280">{{ source.name }}</div></td>
|
||||
<td class="nowrap">{{ source.type }}</td>
|
||||
<td class="nowrap">{{ source.scope }}</td>
|
||||
<td>
|
||||
<span class="pill {% if source.status == '已生效' or source.status == '已入库' %}pill-success{% else %}pill-signal{% endif %}">
|
||||
{{ source.status }}
|
||||
</span>
|
||||
</td>
|
||||
<td class="nowrap">{{ source.owner }}</td>
|
||||
<td class="nowrap">{{ source.updated_at }}</td>
|
||||
<td>
|
||||
<div class="button-row">
|
||||
<a class="button" href="#">查看</a>
|
||||
<a class="button" href="#">编辑</a>
|
||||
<a class="button" href="#">删除</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<div class="stack">
|
||||
<article class="panel">
|
||||
<h2 class="section-title">{{ knowledge_form.title }}</h2>
|
||||
<div class="stack" style="margin-top: 14px;">
|
||||
{% for field in knowledge_form.fields %}
|
||||
<div>
|
||||
<label>{{ field.label }}</label>
|
||||
<input type="text" value="{{ field.value }}" />
|
||||
</div>
|
||||
{% endfor %}
|
||||
<div class="button-row">
|
||||
<a class="button button-primary" href="#">保存知识源</a>
|
||||
<a class="button" href="#">重置</a>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="panel">
|
||||
<h2 class="section-title">批量操作</h2>
|
||||
<ul class="detail-list">
|
||||
<li class="detail-item">支持批量启用 / 停用知识源</li>
|
||||
<li class="detail-item">支持批量重建切片</li>
|
||||
<li class="detail-item">支持批量删除过期规则</li>
|
||||
</ul>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="grid-2">
|
||||
<article class="panel">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<h2 class="section-title">规则项管理</h2>
|
||||
<p class="section-copy">规则项也用传统表格管理,支持新增、编辑、删除。</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-wrap">
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>编码</th>
|
||||
<th>章节</th>
|
||||
<th>规则名称</th>
|
||||
<th>模板字段</th>
|
||||
<th>状态</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in rule_tree %}
|
||||
<tr>
|
||||
<td class="nowrap">{{ item.code }}</td>
|
||||
<td class="nowrap">{{ item.chapter }}</td>
|
||||
<td><div class="cell-min-220">{{ item.item }}</div></td>
|
||||
<td><div class="cell-min-220">{{ item.field }}</div></td>
|
||||
<td>
|
||||
<span class="pill {% if item.status == '启用' %}pill-success{% else %}pill-signal{% endif %}">
|
||||
{{ item.status }}
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<div class="button-row">
|
||||
<a class="button" href="#">查看</a>
|
||||
<a class="button" href="#">编辑</a>
|
||||
<a class="button" href="#">删除</a>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="panel">
|
||||
<h2 class="section-title">{{ rule_form.title }}</h2>
|
||||
<div class="stack" style="margin-top: 14px;">
|
||||
{% for field in rule_form.fields %}
|
||||
<div>
|
||||
<label>{{ field.label }}</label>
|
||||
<input type="text" value="{{ field.value }}" />
|
||||
</div>
|
||||
{% endfor %}
|
||||
<div class="button-row">
|
||||
<a class="button button-primary" href="#">保存规则项</a>
|
||||
<a class="button" href="#">删除规则项</a>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
</section>
|
||||
{% endblock %}
|
||||
67
templates/platform_ui/mcp_center.html
Normal file
67
templates/platform_ui/mcp_center.html
Normal file
@@ -0,0 +1,67 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}MCP 中心{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<section class="page-header">
|
||||
<span class="eyebrow">MCP Connectors</span>
|
||||
<h1 class="page-title">外部 MCP 能力导入与协同接入中心</h1>
|
||||
<p class="page-lead">MCP 页面说明平台不是封闭工作台,它可以导入法规源、飞书通知、模板服务和企业数据源,但仍服务于注册审核这一条主线。</p>
|
||||
</section>
|
||||
|
||||
<section class="card-grid">
|
||||
{% for connector in mcp_connectors %}
|
||||
<article class="panel" style="padding: 20px;">
|
||||
<div class="badge-row">
|
||||
<span class="pill">{{ connector.kind }}</span>
|
||||
<span class="pill {% if connector.status == '已连接' %}pill-success{% elif connector.status == '待验证' %}pill-signal{% else %}pill-danger{% endif %}">{{ connector.status }}</span>
|
||||
</div>
|
||||
<h3 style="margin-top: 16px;">{{ connector.name }}</h3>
|
||||
<p class="muted">鉴权方式:{{ connector.auth }}</p>
|
||||
<p>最近同步:{{ connector.sync }}</p>
|
||||
</article>
|
||||
{% endfor %}
|
||||
</section>
|
||||
|
||||
<section class="layout-two-columns">
|
||||
<article class="panel">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<h2 class="section-title">导入向导</h2>
|
||||
<p class="section-copy">原型用一个简洁流程展示外部能力如何进入平台。</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flow-strip">
|
||||
<article class="flow-node">
|
||||
<div class="flow-index">01</div>
|
||||
<h3>选择能力类型</h3>
|
||||
<p>法规源、协同工具、模板服务或企业主数据。</p>
|
||||
</article>
|
||||
<article class="flow-node">
|
||||
<div class="flow-index">02</div>
|
||||
<h3>完成鉴权</h3>
|
||||
<p>支持 API Key、App Token、文件轮询和 MCP Bridge。</p>
|
||||
</article>
|
||||
<article class="flow-node">
|
||||
<div class="flow-index">03</div>
|
||||
<h3>定义输入输出契约</h3>
|
||||
<p>明确它向 Agent 暴露什么能力、返回什么结构。</p>
|
||||
</article>
|
||||
<article class="flow-node">
|
||||
<div class="flow-index">04</div>
|
||||
<h3>纳入审核编排</h3>
|
||||
<p>由 Skill 或 Agent 任务按需调用,不在页面层散落实现。</p>
|
||||
</article>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="panel">
|
||||
<h2 class="section-title">本题重点接入建议</h2>
|
||||
<ul class="detail-list">
|
||||
<li class="detail-item"><strong>飞书任务通知</strong> 把高风险项和责任人通知闭环到群聊机器人或会话入口。</li>
|
||||
<li class="detail-item"><strong>Word 模板服务</strong> 用于报送版式输出与模板回填能力。</li>
|
||||
<li class="detail-item"><strong>法规规则源</strong> 为后续规则包更新和版本治理提供自动化入口。</li>
|
||||
</ul>
|
||||
</article>
|
||||
</section>
|
||||
{% endblock %}
|
||||
69
templates/platform_ui/skill_studio.html
Normal file
69
templates/platform_ui/skill_studio.html
Normal file
@@ -0,0 +1,69 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Skill Studio{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<section class="page-header">
|
||||
<span class="eyebrow">Skill Studio</span>
|
||||
<h1 class="page-title">Skill 编辑、编排与运行预览</h1>
|
||||
<p class="page-lead">Skill 页面用于解释 Agent 行为为何可控、可维护、可复用。通过角色说明、工具绑定、输入输出约束和测试运行预览,展示平台的治理能力。</p>
|
||||
</section>
|
||||
|
||||
<section class="workspace-grid">
|
||||
<article class="panel">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<h2 class="section-title">Skill 列表</h2>
|
||||
<p class="section-copy">围绕注册审核主流程沉淀能力单元。</p>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="detail-list">
|
||||
{% for skill in skills %}
|
||||
<li class="detail-item">
|
||||
<span class="pill {% if skill.status == '已发布' %}pill-success{% elif skill.status == '发布中' %}pill-accent{% else %}pill-signal{% endif %}">{{ skill.status }}</span>
|
||||
<strong>{{ skill.name }}</strong>
|
||||
<div class="muted">触发场景:{{ skill.trigger }}</div>
|
||||
<div class="muted">工具链:{{ skill.tools }}</div>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
<article class="panel">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<h2 class="section-title">Skill 编辑区</h2>
|
||||
<p class="section-copy">展示角色、约束、工具和输出契约如何被治理。</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stack">
|
||||
<div class="detail-item">
|
||||
<strong>角色说明</strong>
|
||||
当前 Skill 负责对照 NMPA 注册申报资料要求执行完整性检查,优先输出命中项、缺失项、风险等级和建议动作。
|
||||
</div>
|
||||
<div class="detail-item">
|
||||
<strong>工具绑定</strong>
|
||||
规则树匹配、RAG 引用、字段池比对、风险映射、审计写入。
|
||||
</div>
|
||||
<div class="detail-item">
|
||||
<strong>输入输出约束</strong>
|
||||
输入限定资料范围、任务类型与批次;输出必须包含结构化结果、证据引用和人工复核提示。
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="panel">
|
||||
<div class="section-heading">
|
||||
<div>
|
||||
<h2 class="section-title">运行预览</h2>
|
||||
<p class="section-copy">通过最近一次测试运行说明 Skill 的稳定性。</p>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="detail-list">
|
||||
<li class="detail-item"><strong>最近测试结果</strong> 命中 3 个规则项,识别 1 个缺失项,生成 2 条建议动作。</li>
|
||||
<li class="detail-item"><strong>命中工具</strong> completeness_rule_match、rag_lookup、risk_mapper</li>
|
||||
<li class="detail-item"><strong>失败原因样例</strong> 当法规模板未配置时,页面会提示“法规规则未配置,无法执行完整性检查”。</li>
|
||||
</ul>
|
||||
</article>
|
||||
</section>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user