feat(web): AI 工作台意图规划与规划思考模型

- 新增 workbenchAiIntentPlannerModel,基于 LLM function_call 解析建单/草稿/提交意图,区分 model 与 rule_fallback 来源
- 新增 workbenchAiPlanningThinkingModel 合并规划思考事件流,按 eventId 去重合并
- application gate/preview 模型接入意图规划,usePersonalWorkbenchAiMode/useWorkbenchAiStewardFlow/useWorkbenchAiActionRouter 链路适配,支持上下文提交
- steward 服务与 stewardPlanModel 适配新动作结构,receipt-folder-view 微调样式
- 新增 intent-planner-model/application-context-submit/steward-actions-service 测试,更新 gate-model/action-router/plan-message-copy/fast-preview 测试
This commit is contained in:
caoxiaozhu
2026-06-24 21:58:46 +08:00
parent 5311c99d69
commit bc560145a4
18 changed files with 1914 additions and 38 deletions

View File

@@ -549,59 +549,156 @@
}
.associate-hint {
margin: 0;
margin: 0 0 2px 0;
color: #64748b;
font-size: 13px;
line-height: 1.4;
}
.receipt-checkbox-list,
.draft-choice-list {
max-height: 360px;
max-height: 340px;
display: grid;
gap: 8px;
overflow-y: auto;
padding: 1px;
}
.receipt-checkbox-list :deep(.el-checkbox),
.draft-choice {
min-height: 50px;
display: flex !important;
min-height: 52px;
align-items: center;
margin-right: 0;
padding: 9px 10px;
border: 1px solid #dbe4ee;
padding: 10px 14px;
border: 1px solid #e2e8f0;
border-radius: 4px;
background: #fff;
transition: all 150ms ease;
box-sizing: border-box;
}
.receipt-checkbox-list :deep(.el-checkbox:hover),
.draft-choice:hover {
border-color: #cbd5e1;
background: #f8fafc;
}
.receipt-checkbox-list :deep(.el-checkbox.is-checked) {
border-color: var(--theme-primary);
background: rgba(58, 124, 165, 0.04);
}
.receipt-checkbox-list :deep(.el-checkbox__label) {
flex: 1;
display: grid;
gap: 3px;
gap: 2px;
color: #0f172a;
font-weight: 750;
font-size: 13px;
font-weight: 600;
line-height: 1.35;
}
.receipt-checkbox-list small,
.draft-choice small {
color: #64748b;
font-size: 12px;
font-weight: 650;
font-size: 11.5px;
font-weight: 400;
line-height: 1.35;
}
.draft-choice {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
gap: 9px;
gap: 10px;
cursor: pointer;
}
.draft-choice.active {
border-color: rgba(58, 124, 165, .42);
background: rgba(58, 124, 165, .07);
border-color: var(--theme-primary);
background: rgba(58, 124, 165, 0.04);
}
.draft-choice span {
display: grid;
gap: 3px;
gap: 2px;
}
.draft-choice strong {
color: #0f172a;
font-size: 13px;
font-weight: 600;
line-height: 1.35;
}
/* Global styles for the association dialog */
:global(.receipt-associate-dialog.el-dialog) {
border-radius: 6px;
box-shadow: 0 16px 36px rgba(15, 23, 42, 0.12);
}
:global(.receipt-associate-dialog .el-dialog__header) {
padding: 20px 24px 12px 24px;
margin-right: 0;
}
:global(.receipt-associate-dialog .el-dialog__headerbtn) {
top: 20px;
right: 24px;
}
:global(.receipt-associate-dialog .el-dialog__title) {
font-size: 15px;
font-weight: 600;
color: #0f172a;
}
:global(.receipt-associate-dialog .el-dialog__body) {
padding: 0 24px 20px 24px;
}
:global(.receipt-associate-dialog .el-dialog__footer) {
padding: 12px 24px 16px 24px;
background: #f8fafc;
border-top: 1px solid #e2e8f0;
display: flex;
justify-content: flex-end;
gap: 8px;
}
:global(.receipt-associate-dialog .el-dialog__footer .apply-btn),
:global(.receipt-associate-dialog .el-dialog__footer .ghost-btn) {
min-height: 36px;
height: 36px;
padding: 0 16px;
border-radius: 4px;
font-size: 13px;
font-weight: 500;
transition: all 150ms ease;
}
:global(.receipt-associate-dialog .el-dialog__footer .ghost-btn) {
border-color: #cbd5e1;
color: #334155;
background: #fff;
}
:global(.receipt-associate-dialog .el-dialog__footer .ghost-btn:hover) {
background: #f8fafc;
border-color: #94a3b8;
color: #0f172a;
}
:global(.receipt-associate-dialog .el-dialog__footer .apply-btn) {
background: var(--theme-primary);
border-color: var(--theme-primary);
color: #fff;
}
:global(.receipt-associate-dialog .el-dialog__footer .apply-btn:hover:not(:disabled)) {
background: var(--theme-primary-active);
border-color: var(--theme-primary-active);
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}
@media (max-width: 1180px) {