feat(web): 统一平台管理员判定与 AI 工作台申请预览动作接入

- authUser 抽出 resolveAuthUserAdminFlag,统一 isAdmin 解析(含 superadmin、role_codes、中英文角色名),accessControl 复用同一逻辑
- 登录态、应用外壳路由、系统状态接入统一管理员判定,LoginView 与相关 composable 配套调整
- AI 工作台申请提交改为调用新的 /application-preview-action 接口,草稿保存仍走 orchestrator;预审模型补充重叠冲突提示与阻断判断
- 同步更新 accessControl/api-request/ai 预览动作等前端测试
This commit is contained in:
caoxiaozhu
2026-06-20 14:42:04 +08:00
parent 729d833edb
commit 96c2e1099a
21 changed files with 1364 additions and 331 deletions

View File

@@ -1556,12 +1556,28 @@
cursor: pointer;
}
.application-preview-row.is-disabled {
cursor: wait;
}
.application-preview-row.is-disabled .application-preview-label,
.application-preview-row.is-disabled .application-preview-value {
background: rgba(248, 250, 252, 0.84);
color: #64748b;
}
.application-preview-row.editable:hover,
.application-preview-row.editable:hover .application-preview-label,
.application-preview-row.editable:hover .application-preview-value {
background: rgba(239, 246, 255, 0.58);
}
.application-preview-row.is-disabled:hover,
.application-preview-row.is-disabled:hover .application-preview-label,
.application-preview-row.is-disabled:hover .application-preview-value {
background: rgba(248, 250, 252, 0.84);
}
.application-preview-row.editable:focus-visible {
z-index: 1;
outline: 2px solid rgba(37, 99, 235, 0.42);
@@ -1655,6 +1671,12 @@
transform: translateY(-1px);
}
.application-preview-edit-btn:disabled {
cursor: wait;
opacity: 0.46;
transform: none;
}
.application-preview-footer {
color: #334155;
font-size: 15px;
@@ -1748,11 +1770,17 @@
transform 160ms ease;
}
.workbench-ai-suggested-actions button:hover {
.workbench-ai-suggested-actions button:hover:not(:disabled) {
transform: translateY(-1px);
background: #eff6ff;
}
.workbench-ai-suggested-actions button:disabled {
cursor: wait;
opacity: 0.6;
transform: none;
}
.workbench-ai-message-actions {
display: flex;
align-items: center;
@@ -1940,6 +1968,12 @@
box-shadow: 0 12px 22px rgba(220, 38, 38, 0.2);
}
.workbench-ai-confirm-actions .primary {
background: #2563eb;
color: #fff;
box-shadow: 0 12px 22px rgba(37, 99, 235, 0.2);
}
.workbench-ai-confirm-fade-enter-active,
.workbench-ai-confirm-fade-leave-active {
transition: opacity 180ms ease;