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:
52
src/constants/pages.js
Normal file
52
src/constants/pages.js
Normal 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 || '';
|
||||
}
|
||||
24
src/constants/storageKeys.js
Normal file
24
src/constants/storageKeys.js
Normal 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',
|
||||
};
|
||||
Reference in New Issue
Block a user