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

@@ -1,6 +1,6 @@
import { useState, useEffect } from 'react';
import { useLocation, useNavigate } from 'react-router-dom';
import { FiHome, FiBarChart2, FiUsers, FiList, FiCheckCircle, FiActivity } from 'react-icons/fi';
import { FiHome, FiBarChart2, FiUsers, FiList, FiCheckCircle, FiActivity, FiSettings } from 'react-icons/fi';
import Layout from '../components/Layout.jsx';
import SidebarBrand from '../components/layout/SidebarBrand.jsx';
import SidebarUser from '../components/layout/SidebarUser.jsx';
@@ -18,6 +18,8 @@ import AddProjectPage from './admin/AddProjectPage.jsx';
import AdminLogsPage from './admin/AdminLogsPage.jsx';
import ConsoleReviewListPage from './console/ConsoleReviewListPage.jsx';
import ConsoleReviewDetailPage from './console/ConsoleReviewDetailPage.jsx';
import ModelConfigsPage from './admin/ModelConfigsPage.jsx';
import AddModelConfigPage from './admin/AddModelConfigPage.jsx';
function AdminPage() {
const location = useLocation();
@@ -94,15 +96,25 @@ function AdminPage() {
onBack={() => navigateTo('projects')}
editData={editData}
/>;
case 'modelConfigs':
return <ModelConfigsPage
onAdd={() => navigateTo('addModelConfig')}
onEdit={(config) => navigateTo('addModelConfig', config)}
/>;
case 'addModelConfig':
return <AddModelConfigPage
onBack={() => navigateTo('modelConfigs')}
editData={editData}
/>;
default:
return <div>Page not found</div>;
}
};
const getPageTitle = () => {
if (editData && (currentPage === 'addDepartment' || currentPage === 'addUser' || currentPage === 'addProject')) {
if (editData && (currentPage === 'addDepartment' || currentPage === 'addUser' || currentPage === 'addProject' || currentPage === 'addModelConfig')) {
const prefix = '编辑';
const nameMap = { addDepartment: '部门', addUser: '用户', addProject: '项目' };
const nameMap = { addDepartment: '部门', addUser: '用户', addProject: '项目', addModelConfig: '配置' };
return prefix + nameMap[currentPage];
}
if (currentPage === 'reviewDetail') {
@@ -171,6 +183,15 @@ function AdminPage() {
iconClassName="admin-nav-icon"
textClassName="admin-nav-text"
/>
<SidebarNavItem
icon={<FiSettings />}
label="模型配置"
active={currentPage === 'modelConfigs' || currentPage === 'addModelConfig'}
onClick={() => navigateTo('modelConfigs')}
itemClassName="admin-nav-item"
iconClassName="admin-nav-icon"
textClassName="admin-nav-text"
/>
</nav>
<SidebarUser
onClick={() => {}}