feat: 增强风险规则生成引擎与预算中心页面

后端拆分风险规则生成为解释器、语义分析、本体对齐等子模块,
优化模板执行和流程图生成,完善员工种子数据和导入逻辑,增强
报销单权限策略和草稿持久化,前端新增预算中心视图和趋势图
组件,重构审计页面和风险规则测试对话框交互,完善文档中心
和报销创建页面细节,补充单元测试覆盖。
This commit is contained in:
caoxiaozhu
2026-05-26 09:15:14 +08:00
parent d0e946cf47
commit 0e861d8fa6
150 changed files with 14953 additions and 4099 deletions

View File

@@ -36,6 +36,8 @@
.risk-sim-context-panel span,
.risk-sim-result-head span,
.risk-sim-evidence span,
.risk-sim-recognition-debug > span,
.risk-sim-recognized-fields > span,
.risk-sim-file-strip > span {
color: #64748b;
font-size: 12px;
@@ -115,6 +117,12 @@
color: #b91c1c;
}
.risk-sim-meta .tone-critical {
border-color: #fca5a5;
background: #fff1f2;
color: #991b1b;
}
.risk-sim-main {
min-height: 0;
display: grid;
@@ -263,6 +271,78 @@
background: rgba(255, 255, 255, 0.12);
}
.risk-sim-recognition-debug {
display: grid;
gap: 8px;
margin-top: 11px;
}
.risk-sim-recognition-debug article {
display: grid;
gap: 8px;
padding: 10px;
border: 1px solid #e2e8f0;
border-radius: 12px;
background: #f8fafc;
}
.risk-sim-recognition-debug article header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
margin: 0;
}
.risk-sim-recognition-debug article header strong {
min-width: 0;
overflow: hidden;
color: #0f172a;
font-size: 12px;
text-overflow: ellipsis;
white-space: nowrap;
}
.risk-sim-recognition-debug article header em {
flex: 0 0 auto;
color: #64748b;
font-size: 11px;
font-style: normal;
}
.risk-sim-debug-field-list {
display: flex;
flex-wrap: wrap;
gap: 6px;
}
.risk-sim-debug-field-list b {
max-width: 100%;
display: inline-flex;
align-items: center;
min-height: 26px;
padding: 0 8px;
overflow: hidden;
border: 1px solid #dbeafe;
border-radius: 999px;
background: #eff6ff;
color: #1d4ed8;
font-size: 11px;
font-weight: 800;
text-overflow: ellipsis;
white-space: nowrap;
}
.risk-sim-debug-ocr-text {
max-height: 112px;
overflow: auto;
padding: 8px 9px;
border: 1px solid #e2e8f0;
border-radius: 10px;
background: #fff;
color: #334155;
}
.risk-sim-result-card {
margin-top: 12px;
overflow: hidden;
@@ -364,6 +444,53 @@
white-space: nowrap;
}
.risk-sim-recognized-fields {
display: grid;
gap: 7px;
padding: 0 12px 12px;
}
.risk-sim-recognized-fields ul {
display: grid;
gap: 6px;
margin: 0;
padding: 0;
list-style: none;
}
.risk-sim-recognized-fields li {
min-width: 0;
display: grid;
grid-template-columns: minmax(140px, 0.75fr) auto minmax(130px, 1fr);
gap: 8px;
align-items: center;
padding: 8px 9px;
border: 1px solid #edf2f7;
border-radius: 10px;
background: #f8fafc;
}
.risk-sim-recognized-fields strong,
.risk-sim-recognized-fields b {
min-width: 0;
overflow: hidden;
color: #0f172a;
font-size: 12px;
text-overflow: ellipsis;
white-space: nowrap;
}
.risk-sim-recognized-fields em {
padding: 3px 7px;
border-radius: 999px;
background: #ecfdf5;
color: #047857;
font-size: 11px;
font-style: normal;
font-weight: 850;
white-space: nowrap;
}
.risk-sim-evidence {
display: grid;
gap: 6px;
@@ -730,6 +857,10 @@
grid-template-columns: 1fr;
}
.risk-sim-recognized-fields li {
grid-template-columns: 1fr;
}
.risk-sim-foot {
align-items: stretch;
flex-direction: column;