feat: LLM多阶段交互式Schema生成 + UI布局优化
- AI Service: 多阶段对话模型(理解→澄清→生成→校验→确认),支持对话历史和当前Schema上下文 - Backend: 适配多阶段AI模型,Gateway/Service/Controller传递history和currentSchema - Frontend: AiDesignerChat组件重写,支持阶段徽章、快速回复、Schema校验展示 - Frontend: 表单/流程设计器布局优化,AI助手和Schema预览作为独立列 - Frontend: 流程设计器元数据和模式选择器合并为一行 - Keycloak: 自定义登录主题(中文化) - 修复CSS媒体查询括号平衡问题
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
/*
|
||||
* AIOA 自定义登录主题样式
|
||||
* 适配 Keycloak v2 主题 (PatternFly v5)
|
||||
*/
|
||||
|
||||
:root {
|
||||
--pf-v5-global--primary-color--100: #2563eb;
|
||||
--pf-v5-global--primary-color--200: #1d4ed8;
|
||||
--pf-v5-global--BackgroundColor--100: #f0f4f8;
|
||||
--aioa-gradient-start: #1e3a8a;
|
||||
--aioa-gradient-end: #2563eb;
|
||||
}
|
||||
|
||||
/* 整体页面背景 */
|
||||
.login-pf body,
|
||||
body.pf-v5-c-login {
|
||||
background: linear-gradient(135deg, var(--aioa-gradient-start) 0%, var(--aioa-gradient-end) 100%) !important;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
/* 登录卡片 */
|
||||
.pf-v5-c-login__main {
|
||||
background: #ffffff;
|
||||
border-radius: 16px;
|
||||
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
.pf-v5-c-login__main-header {
|
||||
padding: 40px 36px 0 36px;
|
||||
}
|
||||
|
||||
.pf-v5-c-login__main-header h1 {
|
||||
font-size: 22px;
|
||||
font-weight: 700;
|
||||
color: #1e293b;
|
||||
}
|
||||
|
||||
.pf-v5-c-login__main-header p {
|
||||
font-size: 14px;
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
.pf-v5-c-login__main-body {
|
||||
padding: 28px 36px;
|
||||
}
|
||||
|
||||
/* 表单输入框 */
|
||||
.pf-v5-c-form__group {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.pf-v5-c-form-control {
|
||||
border: 1.5px solid #cbd5e1 !important;
|
||||
border-radius: 8px !important;
|
||||
padding: 10px 14px !important;
|
||||
font-size: 15px !important;
|
||||
transition: border-color 0.2s, box-shadow 0.2s;
|
||||
}
|
||||
|
||||
.pf-v5-c-form-control:focus {
|
||||
border-color: #2563eb !important;
|
||||
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15) !important;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
/* 登录按钮 */
|
||||
.pf-v5-c-button.pf-m-primary {
|
||||
background: linear-gradient(135deg, #1e3a8a, #2563eb) !important;
|
||||
border: none !important;
|
||||
border-radius: 8px !important;
|
||||
padding: 12px 24px !important;
|
||||
font-size: 15px !important;
|
||||
font-weight: 600 !important;
|
||||
width: 100%;
|
||||
cursor: pointer;
|
||||
transition: opacity 0.2s, transform 0.1s;
|
||||
}
|
||||
|
||||
.pf-v5-c-button.pf-m-primary:hover {
|
||||
opacity: 0.92;
|
||||
}
|
||||
|
||||
.pf-v5-c-button.pf-m-primary:active {
|
||||
transform: scale(0.98);
|
||||
}
|
||||
|
||||
/* 次要链接 */
|
||||
.pf-v5-c-login__main-footer a,
|
||||
.pf-v5-c-form__helper-text a {
|
||||
color: #2563eb;
|
||||
font-size: 14px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.pf-v5-c-login__main-footer a:hover,
|
||||
.pf-v5-c-form__helper-text a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* 提示信息 */
|
||||
.pf-v5-c-alert {
|
||||
border-radius: 8px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
/* 页脚 */
|
||||
.pf-v5-c-login__footer {
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
/* 响应式 */
|
||||
@media (max-width: 480px) {
|
||||
.pf-v5-c-login__main {
|
||||
border-radius: 12px;
|
||||
}
|
||||
.pf-v5-c-login__main-header,
|
||||
.pf-v5-c-login__main-body {
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// AIOA 开发环境:预填充测试管理员凭据
|
||||
(function () {
|
||||
function prefill() {
|
||||
var usernameInput = document.getElementById('username');
|
||||
var passwordInput = document.getElementById('password');
|
||||
if (usernameInput && !usernameInput.value) {
|
||||
usernameInput.value = 'admin';
|
||||
}
|
||||
if (passwordInput && !passwordInput.value) {
|
||||
passwordInput.value = 'Admin123!';
|
||||
}
|
||||
}
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener('DOMContentLoaded', prefill);
|
||||
} else {
|
||||
prefill();
|
||||
}
|
||||
})();
|
||||
Reference in New Issue
Block a user