feat: 新增管理台模型配置管理功能

- 支持配置类型注册表机制(basic、zhisuan)
- 配置列表展示(生效中/未生效状态区分)
- 新增/编辑配置表单,支持动态字段渲染
- 生效中配置不可编辑/删除限制
- 配置类型创建后不可修改
- 密钥掩码显示与显示/隐藏切换
- 操作二次确认弹窗(设为默认、删除)
This commit is contained in:
2026-03-26 11:14:42 +08:00
parent a576a5e40e
commit b00d75de8a
12 changed files with 931 additions and 10 deletions

View File

@@ -2878,3 +2878,161 @@ input:checked + .slider:before {
color: var(--color-danger);
margin-top: 4px;
}
/* ============================================
模型配置管理页面样式
============================================ */
/* 配置列表页面基础样式 */
.model-configs-page {
padding: 20px 0;
}
/* 新增/编辑配置页面 */
.add-model-config-page {
padding: 20px 0;
}
.add-model-config-page .page-header {
display: flex;
align-items: center;
gap: 16px;
margin-bottom: 24px;
}
.add-model-config-page .page-title {
font-size: 20px;
font-weight: 600;
color: #111827;
margin: 0;
flex: 1;
}
.add-model-config-page .header-spacer {
width: 80px;
}
.config-form {
background: white;
border-radius: 8px;
border: 1px solid #E5E7EB;
padding: 24px;
}
.config-form .form-section {
margin-bottom: 32px;
}
.config-form .form-section:last-of-type {
margin-bottom: 24px;
}
.config-form .form-section .section-title {
font-size: 16px;
font-weight: 600;
color: #111827;
margin-bottom: 20px;
padding-bottom: 12px;
border-bottom: 1px solid #E5E7EB;
}
.config-form .form-group {
margin-bottom: 20px;
}
.config-form .form-label {
display: block;
font-size: 14px;
font-weight: 500;
color: #374151;
margin-bottom: 8px;
}
.config-form .form-label.required::after {
content: ' *';
color: #EF4444;
}
.config-form .form-input,
.config-form .form-select {
width: 100%;
padding: 10px 12px;
font-size: 14px;
border: 1px solid #D1D5DB;
border-radius: 6px;
background: white;
color: #111827;
transition: border-color 0.2s, box-shadow 0.2s;
}
.config-form .form-input:focus,
.config-form .form-select:focus {
outline: none;
border-color: #3B82F6;
box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}
.config-form .form-input:disabled,
.config-form .form-select:disabled {
background: #F3F4F6;
color: #6B7280;
cursor: not-allowed;
}
.config-form .form-group.has-error .form-input,
.config-form .form-group.has-error .form-select {
border-color: #EF4444;
}
.config-form .error-message {
display: block;
font-size: 12px;
color: #EF4444;
margin-top: 6px;
}
.config-form .help-text {
display: block;
font-size: 12px;
color: #6B7280;
margin-top: 6px;
}
/* 密码输入框 */
.password-input-wrapper {
position: relative;
display: flex;
align-items: center;
}
.password-input-wrapper .form-input {
padding-right: 40px;
}
.password-toggle-btn {
position: absolute;
right: 8px;
top: 50%;
transform: translateY(-50%);
background: none;
border: none;
padding: 6px;
cursor: pointer;
color: #6B7280;
display: flex;
align-items: center;
justify-content: center;
}
.password-toggle-btn:hover {
color: #374151;
}
/* 表单操作按钮 */
.config-form .form-actions {
display: flex;
justify-content: flex-end;
gap: 12px;
padding-top: 20px;
border-top: 1px solid #E5E7EB;
}