feat: 重构报销单服务并完善前端提交与审核交互

重构 expense_claims 服务模块结构并优化差旅票据审核逻辑,
增强用户代理服务的票据类型识别,前端报销创建页面拆分为
附件模型和会话模型模块,重构提交编排器和草稿关联确认流
程,更新知识库索引,补充单元测试。
This commit is contained in:
caoxiaozhu
2026-05-22 08:58:59 +08:00
parent f6f787ff38
commit 5fe3b201d9
42 changed files with 13697 additions and 9496 deletions

View File

@@ -661,7 +661,7 @@
.message-answer-content {
display: grid;
gap: 7px;
gap: 9px;
}
.message-answer-content p,
@@ -672,15 +672,33 @@
margin: 0;
}
.message-answer-markdown h1,
.message-answer-markdown h2,
.message-answer-markdown h3,
.message-answer-markdown h4 {
margin: 0;
.message-answer-markdown :deep(h1),
.message-answer-markdown :deep(h2),
.message-answer-markdown :deep(h3),
.message-answer-markdown :deep(h4) {
margin: 12px 0 4px;
color: #0f172a;
font-size: var(--wb-fs-md-h3);
font-weight: 750;
line-height: 1.46;
font-size: max(13px, calc(var(--wb-fs-bubble) + 1px));
font-weight: 820;
line-height: 1.42;
letter-spacing: 0;
}
.message-answer-markdown :deep(h1:first-child),
.message-answer-markdown :deep(h2:first-child),
.message-answer-markdown :deep(h3:first-child),
.message-answer-markdown :deep(h4:first-child) {
margin-top: 0;
}
.message-answer-markdown :deep(h3) {
padding-left: 8px;
border-left: 3px solid #2563eb;
}
.message-answer-markdown :deep(h3 + p),
.message-answer-markdown :deep(h3 + .markdown-table-wrap) {
margin-top: 6px;
}
.message-answer-markdown {
@@ -690,26 +708,31 @@
line-height: 1.58;
}
.message-answer-markdown p,
.message-answer-markdown li,
.message-answer-markdown td,
.message-answer-markdown th,
.message-answer-markdown blockquote {
.message-answer-markdown :deep(p),
.message-answer-markdown :deep(li),
.message-answer-markdown :deep(td),
.message-answer-markdown :deep(th),
.message-answer-markdown :deep(blockquote) {
font-size: inherit;
color: inherit;
line-height: 1.58;
}
.message-answer-markdown ul,
.message-answer-markdown ol {
.message-answer-markdown :deep(p) {
margin: 0;
}
.message-answer-markdown :deep(ul),
.message-answer-markdown :deep(ol) {
margin: 0;
padding-left: 20px;
}
.message-answer-markdown strong {
.message-answer-markdown :deep(strong) {
color: #0f172a;
}
.message-answer-markdown blockquote {
.message-answer-markdown :deep(blockquote) {
padding: 8px 10px;
border-left: 3px solid #cbd5e1;
border-radius: 0 10px 10px 0;
@@ -717,14 +740,14 @@
color: #475569;
}
.message-answer-markdown code {
.message-answer-markdown :deep(code) {
padding: 2px 6px;
border-radius: 6px;
background: #e2e8f0;
font-size: 12px;
}
.message-answer-markdown pre {
.message-answer-markdown :deep(pre) {
overflow-x: auto;
padding: 12px;
border-radius: 14px;
@@ -732,47 +755,64 @@
color: #e2e8f0;
}
.message-answer-markdown pre code {
.message-answer-markdown :deep(pre code) {
padding: 0;
background: transparent;
color: inherit;
}
.message-answer-markdown a {
.message-answer-markdown :deep(a) {
color: #2563eb;
text-decoration: underline;
}
.message-answer-markdown table {
width: auto;
.message-answer-markdown :deep(.markdown-table-wrap) {
width: 100%;
max-width: 100%;
margin: 8px 0 10px;
overflow-x: auto;
border: 1px solid #dbe4ee;
border-radius: 16px;
border-collapse: collapse;
background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
border-radius: 10px;
background: #fff;
box-shadow: 0 8px 20px rgba(15, 23, 42, 0.05);
}
.message-answer-markdown :deep(table) {
width: 100%;
min-width: 460px;
border: 0;
border-collapse: separate;
border-spacing: 0;
background: #fff;
font-size: inherit;
}
.message-answer-markdown th,
.message-answer-markdown td {
padding: 10px 12px;
.message-answer-markdown :deep(th),
.message-answer-markdown :deep(td) {
padding: 8px 10px;
border-bottom: 1px solid #e2e8f0;
text-align: left;
white-space: nowrap;
vertical-align: top;
white-space: normal;
}
.message-answer-markdown th {
background: #eff6ff;
.message-answer-markdown :deep(th) {
background: #f8fafc;
color: #0f172a;
font-weight: 850;
font-weight: 760;
border-bottom-color: #cbd5e1;
}
.message-answer-markdown td {
.message-answer-markdown :deep(td) {
color: #334155;
font-weight: 650;
font-weight: 520;
}
.message-answer-markdown tbody tr:last-child td {
.message-answer-markdown :deep(tbody tr:nth-child(even) td) {
background: #fbfdff;
}
.message-answer-markdown :deep(tbody tr:last-child td) {
border-bottom: 0;
}