refactor: 代码架构重构 - 提取组件、统一状态管理和数据访问层

- 新增布局组件(SidebarBrand、SidebarUser、SidebarNavItem)
- 新增通用UI组件(EmptyState、StatusBadge、TagInput、SearchBar)
- 新增全局状态管理(UserContext)
- 新增自定义Hooks(usePageState、useNavigation)
- 新增统一数据访问层(src/services/api.js)
- 新增常量配置(constants/pages.js、constants/storageKeys.js)
- 样式文件模块化,拆分页面特定样式
- 更新README文档,添加组件和使用说明
- 同步OpenSpec规范到主specs目录
This commit is contained in:
2026-03-20 10:19:31 +08:00
parent f2e0ec047e
commit 56c08a34ff
27 changed files with 1812 additions and 199 deletions

52
src/constants/pages.js Normal file
View File

@@ -0,0 +1,52 @@
// 页面配置常量
/**
* 工作台页面配置
*/
export const CONSOLE_PAGES = {
chat: { title: '智能助手', icon: 'FiMessageSquare' },
skills: { title: '技能市场', icon: 'FaPuzzlePiece' },
skillDetail: { title: '技能详情', icon: null },
logs: { title: '日志查询', icon: 'FiList' },
scheduledTasks: { title: '定时任务', icon: 'FiClock' },
taskDetail: { title: '任务详情', icon: null },
account: { title: '账号管理', icon: 'FiUser' },
projects: { title: '项目管理', icon: 'FiUsers' },
memberConfig: { title: '成员配置', icon: null },
addMember: { title: '增加成员', icon: null },
};
/**
* 管理台页面配置
*/
export const ADMIN_PAGES = {
overview: { title: '总览', icon: 'FiHome' },
departments: { title: '部门管理', icon: 'FiBarChart2' },
users: { title: '用户管理', icon: 'FiUsers' },
projects: { title: '项目管理', icon: 'FiList' },
addDepartment: { title: '新增部门', icon: null },
addUser: { title: '新增用户', icon: null },
addProject: { title: '新增项目', icon: null },
};
/**
* 开发台页面配置
*/
export const DEVELOPER_PAGES = {
mySkills: { title: '我的技能', icon: 'FaPuzzlePiece' },
uploadSkill: { title: '创建技能', icon: 'FiPlus' },
newVersion: { title: '上传新版本', icon: null },
devDocs: { title: '开发文档', icon: 'FiTerminal' },
devAccount: { title: '开发者设置', icon: 'FiSettings' },
skillEditor: { title: '技能详情', icon: null },
};
/**
* 获取页面标题
* @param {string} pageId - 页面ID
* @param {Object} pagesConfig - 页面配置对象
* @returns {string} 页面标题
*/
export function getPageTitle(pageId, pagesConfig) {
return pagesConfig[pageId]?.title || '';
}

View File

@@ -0,0 +1,24 @@
// localStorage 键名常量
/**
* 工作台相关键名
*/
export const CONSOLE_KEYS = {
CURRENT_PAGE: 'console_currentPage',
CURRENT_SCENE: 'console_currentScene',
};
/**
* 管理台相关键名
*/
export const ADMIN_KEYS = {
CURRENT_PAGE: 'admin_currentPage',
};
/**
* 开发台相关键名
*/
export const DEVELOPER_KEYS = {
CURRENT_PAGE: 'developer_currentPage',
CURRENT_SKILL_ID: 'developer_currentSkillId',
};