feat(web): AI 工作台多 task 串行推进与会话适配

- useWorkbenchAiApplicationPreviewFlow/useWorkbenchAiActionRouter/useWorkbenchAiCommandIntents 支持 task1 完成后自动推进 task2,确认按钮直接拉起申请预览,草稿/提交成功后继续推进下一 task
- workbenchAiIntentPlannerModel/workbenchAiMessageModel/workbenchAiCommandIntentModel 适配多 task 意图规划与消息结构
- aiApplicationPreviewActions/aiApplicationPrecheckModel/aiExpenseDraftModel/aiWorkbenchConversationStore 草稿与会话存储适配
- PersonalWorkbenchAiMode 与样式适配,更新 preview-actions/expense-draft/conversation-store/fast-preview/action-router/command-intent/intent-planner 测试
This commit is contained in:
caoxiaozhu
2026-06-26 22:42:23 +08:00
parent 5753899eb3
commit c4b5fcc067
22 changed files with 1171 additions and 144 deletions

View File

@@ -1274,71 +1274,71 @@
}
.workbench-ai-answer-markdown :deep(li::marker) {
color: #2563eb;
font-weight: 850;
color: #64748b;
font-weight: 600;
}
.workbench-ai-answer-markdown :deep(strong) {
color: #0f172a;
font-weight: 850;
font-weight: 600;
}
.workbench-ai-answer-markdown :deep(hr) {
margin: 26px 0;
border: 0;
border-top: 1px solid rgba(226, 232, 240, 0.9);
border-top: 1px solid #e2e8f0;
}
.workbench-ai-answer-markdown :deep(blockquote) {
margin: 18px 0 0;
padding: 14px 16px;
border-left: 3px solid rgba(37, 99, 235, 0.5);
border-radius: 12px;
background: rgba(239, 246, 255, 0.62);
color: #475569;
border-left: 3px solid #cbd5e1;
border-radius: 8px;
background: #f8fafc;
color: #334155;
}
.workbench-ai-answer-markdown :deep(.ai-html-callout) {
margin: 0;
padding: 14px 16px;
border-left: 3px solid rgba(37, 99, 235, 0.5);
border-radius: 12px;
background: rgba(239, 246, 255, 0.62);
color: #475569;
border-left: 3px solid #cbd5e1;
border-radius: 8px;
background: #f8fafc;
color: #334155;
}
.workbench-ai-answer-markdown :deep(.ai-html-focus-grid) {
display: grid;
gap: 0;
margin: 2px 0 18px;
padding-left: 22px;
border-left: 3px solid rgba(96, 165, 250, 0.66);
padding-left: 20px;
border-left: 3px solid #cbd5e1;
}
.workbench-ai-answer-markdown :deep(.ai-html-focus-card) {
padding: 11px 0 16px;
padding: 8px 0 12px;
border: 0;
border-radius: 0;
background: transparent;
}
.workbench-ai-answer-markdown :deep(.ai-html-focus-card + .ai-html-focus-card) {
border-top: 1px solid rgba(226, 232, 240, 0.92);
border-top: 1px solid #e2e8f0;
}
.workbench-ai-answer-markdown :deep(.ai-html-focus-label) {
display: block;
margin-bottom: 4px;
color: #1d4ed8;
font-size: 15px;
font-weight: 900;
color: #475569;
font-size: 14px;
font-weight: 600;
}
.workbench-ai-answer-markdown :deep(.ai-html-focus-card p) {
color: #475569;
font-size: 16px;
font-weight: 650;
line-height: 1.72;
color: #1e293b;
font-size: 15px;
font-weight: 500;
line-height: 1.6;
}
.workbench-ai-answer-markdown :deep(.ai-html-steps),
@@ -1366,9 +1366,9 @@
padding-top: 1px;
border-radius: 0;
background: transparent;
color: #1d4ed8;
font-size: 17px;
font-weight: 900;
color: #64748b;
font-size: 15px;
font-weight: 600;
line-height: 1.45;
}
@@ -1482,34 +1482,27 @@
}
.workbench-ai-answer-markdown :deep(.ai-document-card) {
--ai-document-card-head-bg: rgba(37, 99, 235, 0.075);
--ai-document-card-head-bg: rgba(241, 245, 249, 0.5);
position: relative;
display: grid;
gap: 0;
overflow: hidden;
padding: 0;
border: 0;
border-radius: 14px;
border: 1px solid #e2e8f0;
border-radius: 12px;
background-color: #ffffff;
background-image:
linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.9)),
url("../../ai-document-card-bg.png");
background-position: center;
background-size: cover;
box-shadow:
inset 0 0 0 1px rgba(203, 213, 225, 0.5),
0 1px 2px rgba(15, 23, 42, 0.035),
0 14px 34px rgba(15, 23, 42, 0.05);
0 1px 2px 0 rgba(15, 23, 42, 0.05);
color: #334155;
animation: workbenchDocumentCardReveal 360ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
transition: box-shadow 180ms ease, transform 180ms ease;
transition: box-shadow 180ms ease, border-color 180ms ease, transform 180ms ease;
}
.workbench-ai-answer-markdown :deep(.ai-document-card:hover) {
border-color: #cbd5e1;
box-shadow:
inset 0 0 0 1px rgba(148, 163, 184, 0.46),
0 1px 2px rgba(15, 23, 42, 0.04),
0 18px 38px rgba(15, 23, 42, 0.07);
0 4px 6px -1px rgba(15, 23, 42, 0.08),
0 2px 4px -2px rgba(15, 23, 42, 0.08);
transform: translateY(-1px);
}
@@ -1532,8 +1525,9 @@
justify-content: space-between;
gap: 16px;
min-width: 0;
padding: 13px 18px 13px 20px;
padding: 12px 18px;
background: var(--ai-document-card-head-bg);
border-bottom: 1px solid #f1f5f9;
}
.workbench-ai-answer-markdown :deep(.ai-document-card__status) {
@@ -1543,31 +1537,31 @@
padding: 0;
border-radius: 0;
background: transparent;
color: #1d4ed8;
font-size: 15px;
font-weight: 860;
color: #475569;
font-size: 14px;
font-weight: 600;
line-height: 1.3;
white-space: nowrap;
}
.workbench-ai-answer-markdown :deep(.ai-document-card.is-success .ai-document-card__head) {
background: rgba(22, 163, 74, 0.08);
background: rgba(240, 253, 250, 0.6);
}
.workbench-ai-answer-markdown :deep(.ai-document-card.is-warning .ai-document-card__head) {
background: rgba(217, 119, 6, 0.09);
background: rgba(254, 243, 199, 0.6);
}
.workbench-ai-answer-markdown :deep(.ai-document-card.is-danger .ai-document-card__head) {
background: rgba(220, 38, 38, 0.08);
background: rgba(254, 226, 226, 0.6);
}
.workbench-ai-answer-markdown :deep(.ai-document-card.is-pending .ai-document-card__status) {
color: #1d4ed8;
color: #2563eb;
}
.workbench-ai-answer-markdown :deep(.ai-document-card.is-success .ai-document-card__status) {
color: #15803d;
color: #0f766e;
}
.workbench-ai-answer-markdown :deep(.ai-document-card.is-warning .ai-document-card__status) {
@@ -1588,9 +1582,9 @@
.workbench-ai-answer-markdown :deep(.ai-document-card__reason) {
display: -webkit-box;
min-width: 0;
color: #1e40af;
color: #1e293b;
font-size: 15px;
font-weight: 760;
font-weight: 600;
line-height: 1.45;
overflow: hidden;
-webkit-line-clamp: 1;
@@ -1598,19 +1592,19 @@
}
.workbench-ai-answer-markdown :deep(.ai-document-card.is-success .ai-document-card__reason) {
color: #166534;
color: #1e293b;
}
.workbench-ai-answer-markdown :deep(.ai-document-card.is-warning .ai-document-card__reason) {
color: #92400e;
color: #1e293b;
}
.workbench-ai-answer-markdown :deep(.ai-document-card.is-danger .ai-document-card__reason) {
color: #991b1b;
color: #1e293b;
}
.workbench-ai-answer-markdown :deep(.ai-document-card--application) {
--ai-document-card-head-bg: rgba(37, 99, 235, 0.075);
--ai-document-card-head-bg: rgba(239, 246, 255, 0.5);
}
.workbench-ai-answer-markdown :deep(.ai-document-card--application .ai-document-card__head) {
@@ -1618,11 +1612,11 @@
}
.workbench-ai-answer-markdown :deep(.ai-document-card--application .ai-document-card__reason) {
color: #1e40af;
color: #1e293b;
}
.workbench-ai-answer-markdown :deep(.ai-document-card--reimbursement) {
--ai-document-card-head-bg: rgba(13, 148, 136, 0.075);
--ai-document-card-head-bg: rgba(240, 253, 250, 0.5);
}
.workbench-ai-answer-markdown :deep(.ai-document-card--reimbursement .ai-document-card__head) {
@@ -1630,15 +1624,11 @@
}
.workbench-ai-answer-markdown :deep(.ai-document-card--reimbursement .ai-document-card__reason) {
color: #0f766e;
color: #1e293b;
}
.workbench-ai-answer-markdown :deep(.ai-document-card--approval-task) {
--ai-document-card-head-bg: rgba(245, 158, 11, 0.1);
box-shadow:
inset 0 0 0 1px rgba(245, 158, 11, 0.18),
0 1px 2px rgba(120, 53, 15, 0.04),
0 14px 34px rgba(120, 53, 15, 0.06);
--ai-document-card-head-bg: rgba(254, 243, 199, 0.5);
}
.workbench-ai-answer-markdown :deep(.ai-document-card--approval-task .ai-document-card__head) {
@@ -1646,15 +1636,17 @@
}
.workbench-ai-answer-markdown :deep(.ai-document-card--approval-task .ai-document-card__reason) {
color: #92400e;
color: #1e293b;
}
.workbench-ai-answer-markdown :deep(.ai-document-card--approval-task .ai-document-card__status) {
min-height: 26px;
padding: 0 10px;
border-radius: 999px;
background: rgba(245, 158, 11, 0.18);
min-height: 22px;
padding: 0 8px;
border-radius: 4px;
background: rgba(217, 119, 6, 0.1);
color: #b45309;
font-size: 13px;
font-weight: 600;
}
.workbench-ai-answer-markdown :deep(.ai-document-card__summary),
@@ -1666,7 +1658,7 @@
.workbench-ai-answer-markdown :deep(.ai-document-card__summary) {
padding-bottom: 14px;
border-bottom: 1px solid rgba(203, 213, 225, 0.76);
border-bottom: 1px solid #f1f5f9;
}
.workbench-ai-answer-markdown :deep(.ai-document-card__details) {
@@ -1690,26 +1682,26 @@
}
.workbench-ai-answer-markdown :deep(.ai-document-card__label) {
color: #8a94a6;
color: #64748b;
font-size: 13px;
font-weight: 640;
font-weight: 500;
line-height: 1.4;
white-space: nowrap;
}
.workbench-ai-answer-markdown :deep(.ai-document-card__value) {
min-width: 0;
color: #334155;
color: #1e293b;
font-size: 14px;
font-weight: 720;
font-weight: 500;
line-height: 1.45;
overflow-wrap: anywhere;
}
.workbench-ai-answer-markdown :deep(.ai-document-card__amount) {
color: #0f172a;
font-size: 18px;
font-weight: 900;
font-size: 17px;
font-weight: 700;
line-height: 1.2;
white-space: nowrap;
}
@@ -1717,33 +1709,30 @@
.workbench-ai-answer-markdown :deep(.ai-document-card__number) {
color: #64748b;
font-size: 13px;
font-weight: 740;
font-weight: 500;
letter-spacing: 0;
}
.workbench-ai-answer-markdown :deep(.ai-attachment-association-card) {
background-image:
linear-gradient(180deg, rgba(255, 255, 255, 0.82), rgba(248, 250, 252, 0.94)),
url("../../ai-document-card-bg.png");
background-image: none;
background-color: #ffffff;
}
.workbench-ai-answer-markdown :deep(.ai-attachment-association-card .ai-document-card__head) {
background: linear-gradient(90deg, rgba(219, 234, 254, 0.92), rgba(240, 253, 250, 0.82));
background: rgba(241, 245, 249, 0.5);
}
.workbench-ai-answer-markdown :deep(.ai-ocr-recognition-card) {
box-shadow:
inset 0 0 0 1px rgba(147, 197, 253, 0.42),
0 1px 2px rgba(15, 23, 42, 0.03),
0 12px 28px rgba(37, 99, 235, 0.045);
border-color: #cbd5e1;
box-shadow: 0 1px 2px 0 rgba(15, 23, 42, 0.05);
}
.workbench-ai-answer-markdown :deep(.ai-ocr-recognition-card .ai-document-card__head) {
background: linear-gradient(90deg, rgba(219, 234, 254, 0.92), rgba(239, 246, 255, 0.74));
background: rgba(239, 246, 255, 0.5);
}
.workbench-ai-answer-markdown :deep(.ai-ocr-recognition-card .ai-document-card__reason) {
color: #1d4ed8;
color: #1e293b;
}
.workbench-ai-answer-markdown :deep(.ai-ocr-recognition-card .ai-document-card__status) {
@@ -1781,16 +1770,16 @@
padding: 0;
border-radius: 0;
background: transparent;
color: #1d4ed8;
color: #2563eb;
font-size: 14px;
font-weight: 820;
font-weight: 600;
box-shadow: none;
white-space: nowrap;
}
.workbench-ai-answer-markdown :deep(.ai-document-card__action:hover) {
background: transparent;
color: #1e40af;
color: #1d4ed8;
text-decoration: underline;
}
@@ -1798,10 +1787,10 @@
.workbench-ai-answer-markdown :deep(.ai-html-table-wrap) {
overflow-x: auto;
margin-top: 18px;
border: 1px solid rgba(226, 232, 240, 0.9);
border-radius: 14px;
border: 1px solid #e2e8f0;
border-radius: 8px;
background: #ffffff;
box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.workbench-ai-answer-markdown :deep(table) {
@@ -1813,7 +1802,7 @@
.workbench-ai-answer-markdown :deep(th),
.workbench-ai-answer-markdown :deep(td) {
padding: 11px 14px;
border-bottom: 1px solid rgba(226, 232, 240, 0.9);
border-bottom: 1px solid #f1f5f9;
text-align: left;
}
@@ -1922,6 +1911,149 @@
}
}
[data-theme-mode="enterprise"] .workbench-ai-mode {
--ai-ink: #111827;
--ai-text: #334155;
--ai-muted: #64748b;
--ai-line: #d8dee8;
--ai-blue: #475569;
--ai-blue-deep: #334155;
--ai-purple: #64748b;
--ai-cyan: #64748b;
background:
linear-gradient(180deg, #f8fafc 0%, #ffffff 56%, #f8fafc 100%),
var(--bg);
}
[data-theme-mode="enterprise"] .workbench-ai-mode::after {
background:
linear-gradient(90deg, rgba(148, 163, 184, 0.08) 1px, transparent 1px),
linear-gradient(180deg, rgba(148, 163, 184, 0.06) 1px, transparent 1px);
background-size: 64px 64px;
opacity: 0.36;
filter: none;
}
[data-theme-mode="enterprise"] .workbench-ai-mode.has-conversation {
background: #f8fafc;
}
[data-theme-mode="enterprise"] .workbench-ai-mode.has-conversation::after {
opacity: 0.22;
}
[data-theme-mode="enterprise"] .workbench-ai-orb {
width: clamp(96px, 7vw, 112px);
height: clamp(96px, 7vw, 112px);
border: 0;
border-radius: 50%;
background: transparent;
color: #475569;
box-shadow: none;
}
[data-theme-mode="enterprise"] .workbench-ai-composer,
[data-theme-mode="enterprise"] .workbench-ai-composer--inline {
border-color: #d8dee8;
border-radius: 8px;
background: #ffffff;
box-shadow:
0 10px 26px rgba(15, 23, 42, 0.06),
0 1px 2px rgba(15, 23, 42, 0.04);
}
[data-theme-mode="enterprise"] .workbench-ai-icon-btn:hover,
[data-theme-mode="enterprise"] .workbench-ai-icon-btn.active {
color: #334155;
background: #f1f5f9;
}
[data-theme-mode="enterprise"] .workbench-ai-send-btn {
background: #334155;
box-shadow: none;
}
[data-theme-mode="enterprise"] .workbench-ai-send-btn:hover:not(:disabled) {
background: #1f2937;
box-shadow: none;
}
[data-theme-mode="enterprise"] .workbench-ai-message {
animation-duration: 220ms;
}
[data-theme-mode="enterprise"] .workbench-ai-user-bubble {
border-radius: 8px 8px 3px;
background: #334155;
box-shadow: none;
}
[data-theme-mode="enterprise"] .workbench-ai-answer-card {
border-color: #d8dee8;
border-radius: 8px;
background: #ffffff;
box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
[data-theme-mode="enterprise"] .workbench-ai-thinking-panel {
border-color: #d8dee8;
border-radius: 8px;
background: #f8fafc;
}
[data-theme-mode="enterprise"] .workbench-ai-thinking-toggle {
border-radius: 8px;
color: #334155;
}
[data-theme-mode="enterprise"] .workbench-ai-thinking-toggle:hover {
background: #ffffff;
}
[data-theme-mode="enterprise"] .workbench-ai-thinking-toggle strong,
[data-theme-mode="enterprise"] .workbench-ai-thinking-item strong {
color: #334155;
}
[data-theme-mode="enterprise"] .workbench-ai-thinking-dot {
background: #64748b;
box-shadow: 0 0 0 4px rgba(100, 116, 139, 0.12);
}
[data-theme-mode="enterprise"] .workbench-ai-suggested-actions button {
border-color: #d8dee8;
border-radius: 6px;
background: #ffffff;
color: #334155;
}
[data-theme-mode="enterprise"] .workbench-ai-suggested-actions button:hover:not(:disabled) {
background: #f8fafc;
}
[data-theme-mode="intelligent"] .workbench-ai-mode {
--ai-blue: #5f6f9f;
--ai-blue-deep: #465275;
--ai-purple: #6d6a9f;
--ai-cyan: #477c9e;
background:
radial-gradient(circle at 16% 0%, rgba(95, 111, 159, 0.1), transparent 36%),
linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.94)),
var(--bg);
}
[data-theme-mode="intelligent"] .workbench-ai-mode.has-conversation {
background:
radial-gradient(circle at 12% 0%, rgba(95, 111, 159, 0.1), transparent 34%),
linear-gradient(180deg, #ffffff, #f8fafc);
}
[data-theme-mode="intelligent"] .workbench-ai-composer,
[data-theme-mode="intelligent"] .workbench-ai-composer--inline,
[data-theme-mode="intelligent"] .workbench-ai-answer-card {
border-radius: 12px;
}
@media (prefers-reduced-motion: reduce) {
.workbench-ai-answer-markdown :deep(.ai-document-card) {
animation: none;