feat: 实现技能审核全流程 - 新增审核管理模块、技能状态机、版本审核机制
- 新增审核管理页面:版本审核列表、下架审核列表、审核详情页 - 完善技能状态机:开发中/已上架/下架审核中/已下架四种状态 - 实现版本审核机制:审核中/通过/拒绝/撤销四种状态 - 更新 README:详细记录技能开发流程与审核机制 - 优化技能详情页:根据状态展示不同操作按钮 - 完善我的技能列表:状态筛选与操作限制 - 新增上传新版本页面:分离版本上传与基本信息编辑 - 更新 openspec 规范:技能审核流程与状态定义
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { useState, useEffect } from 'react';
|
||||
import { useLocation, useNavigate } from 'react-router-dom';
|
||||
import { FiHome, FiBarChart2, FiUsers, FiList, FiActivity } from 'react-icons/fi';
|
||||
import { FiHome, FiBarChart2, FiUsers, FiList, FiCheckCircle, FiActivity } from 'react-icons/fi';
|
||||
import Layout from '../components/Layout.jsx';
|
||||
import SidebarBrand from '../components/layout/SidebarBrand.jsx';
|
||||
import SidebarUser from '../components/layout/SidebarUser.jsx';
|
||||
@@ -16,6 +16,8 @@ import AddDepartmentPage from './admin/AddDepartmentPage.jsx';
|
||||
import AddUserPage from './admin/AddUserPage.jsx';
|
||||
import AddProjectPage from './admin/AddProjectPage.jsx';
|
||||
import AdminLogsPage from './admin/AdminLogsPage.jsx';
|
||||
import ConsoleReviewListPage from './console/ConsoleReviewListPage.jsx';
|
||||
import ConsoleReviewDetailPage from './console/ConsoleReviewDetailPage.jsx';
|
||||
|
||||
function AdminPage() {
|
||||
const location = useLocation();
|
||||
@@ -28,12 +30,26 @@ function AdminPage() {
|
||||
});
|
||||
|
||||
const [editData, setEditData] = useState(null);
|
||||
const [reviewType, setReviewType] = useState(null);
|
||||
const [reviewId, setReviewId] = useState(null);
|
||||
|
||||
const navigateTo = (page, data) => {
|
||||
setEditData(data || null);
|
||||
setCurrentPage(page);
|
||||
};
|
||||
|
||||
const handleReviewClick = (type, id) => {
|
||||
setReviewType(type);
|
||||
setReviewId(id);
|
||||
navigateTo('reviewDetail');
|
||||
};
|
||||
|
||||
const handleReviewBack = () => {
|
||||
setReviewType(null);
|
||||
setReviewId(null);
|
||||
navigateTo('reviewList');
|
||||
};
|
||||
|
||||
const renderPage = () => {
|
||||
switch (currentPage) {
|
||||
case 'overview':
|
||||
@@ -55,6 +71,14 @@ function AdminPage() {
|
||||
/>;
|
||||
case 'adminLogs':
|
||||
return <AdminLogsPage />;
|
||||
case 'reviewList':
|
||||
return <ConsoleReviewListPage onReviewClick={handleReviewClick} />;
|
||||
case 'reviewDetail':
|
||||
return <ConsoleReviewDetailPage
|
||||
type={reviewType}
|
||||
reviewId={reviewId}
|
||||
onBack={handleReviewBack}
|
||||
/>;
|
||||
case 'addDepartment':
|
||||
return <AddDepartmentPage
|
||||
onBack={() => navigateTo('departments')}
|
||||
@@ -81,6 +105,9 @@ function AdminPage() {
|
||||
const nameMap = { addDepartment: '部门', addUser: '用户', addProject: '项目' };
|
||||
return prefix + nameMap[currentPage];
|
||||
}
|
||||
if (currentPage === 'reviewDetail') {
|
||||
return reviewType === 'version' ? '版本审核' : '下架审核';
|
||||
}
|
||||
return ADMIN_PAGES[currentPage]?.title || '';
|
||||
};
|
||||
|
||||
@@ -99,6 +126,15 @@ function AdminPage() {
|
||||
iconClassName="admin-nav-icon"
|
||||
textClassName="admin-nav-text"
|
||||
/>
|
||||
<SidebarNavItem
|
||||
icon={<FiCheckCircle />}
|
||||
label="审核管理"
|
||||
active={currentPage === 'reviewList' || currentPage === 'reviewDetail'}
|
||||
onClick={() => navigateTo('reviewList')}
|
||||
itemClassName="admin-nav-item"
|
||||
iconClassName="admin-nav-icon"
|
||||
textClassName="admin-nav-text"
|
||||
/>
|
||||
<SidebarNavItem
|
||||
icon={<FiBarChart2 />}
|
||||
label="部门管理"
|
||||
|
||||
Reference in New Issue
Block a user