前端工程结构
目录结构
根目录结构
innospots-ui/
├── .env # 环境变量配置
├── .eslintrc.js # ESLint 代码规范配置
├── .gitignore # Git 忽略文件配置
├── .prettierrc # Prettier 代码格式化配置
├── README.md # 项目说明文档
├── package.json # 项目依赖和脚本配置
├── tsconfig.json # TypeScript 配置
├── pom.xml # Maven 配置文件(用于 WebJar 打包)
├── config/ # 项目配置目录
│ ├── DefaultSettings.ts # 默认设置配置
│ ├── config.ts # 主配置文件
│ ├── routes.ts # 路由配置
│ ├── proxy.ts # 代理配置
│ └── themes/ # 主题配置
├── mock/ # Mock 数据
├── public/ # 静态资源目录
│ ├── icons/ # 图标文件
│ ├── oauth/ # OAuth 相关静态文件
│ └── static/ # 其他静态资源
└── src/ # 源码目录
关键文件说明
- package.json: 项目依赖管理和构建脚本配置
- pom.xml: Maven 配置,用于将前端构建产物打包成 WebJar 格式
- config/routes.ts: 应用路由配置,定义了所有页面的路由规则
- config/config.ts: UMI 框架主配置文件
- .env: 环境变量配置文件
- tsconfig.json: TypeScript 编译配置
src 源码目录模块
核心模块
📁 pages/ - 页面组件
业务页面组件目录,包含所有功能页面:
App/- 应用管理相关页面Workflow/- 工作流管理页面DataImport/- 数据导入页面Metadata/- 元数据管理页面Organization/- 组织管理页面System/- 系统配置页面Schedule/- 调度管理页面Tasks/- 任务管理页面Login/- 登录页面403.tsx,404.tsx- 错误页面
📁 components/ - 公共组件
可复用的 UI 组件库:
AceCodeEditor/- 代码编辑器组件Chat/- 聊天组件DataSourceModal/- 数据源配置弹窗Expression/- 表达式编辑器IconSelect/- 图标选择器ListTable/- 列表表格组件PageDesign/- 页面设计器RichTextBox/- 富文本编辑器UserAvatar/- 用户头像组件widget/- 小部件组件集合
📁 services/ - 服务层
API 接口服务模块,与后端接口对接:
Account.ts- 账户相关接口DataSource.ts- 数据源接口Workflow.ts- 工作流接口User.ts- 用户管理接口App.ts- 应用管理接口RBAC.ts- 权限控制接口
📁 models/ - 数据模型
状态管理和数据模型定义:
User.ts- 用户数据模型App.ts- 应用数据模型Workflow.ts- 工作流数据模型DataSource.ts- 数据源模型RBAC.ts- 权限模型
📁 layouts/ - 布局组件
页面布局组件:
BasicLayout/- 基础布局(包含侧边栏、头部)FullScreenLayout/- 全屏布局SeniorLayout/- 高级布局
支撑模块
📁 common/ - 公共模块
constants/- 常量定义hooks/- 自定义 React Hooksrequest/- 请求封装types/- TypeScript 类型定义utils/- 工具函数
📁 assets/ - 静态资源
images/- 图片资源js/- JavaScript 文件less/- 样式文件
📁 config/ - 配置文件
DefaultSettings.ts- 默认配置tokens.ts- 令牌配置globalActions/- 全局操作配置
📁 utils/ - 工具模块
format.ts- 格式化工具函数
📄 核心文件
app.ts- 应用入口配置access.ts- 权限控制配置global.less- 全局样式
项目依赖
核心框架依赖
| 模块名称 | 说明 |
|---|---|
| @umijs/max | UMI 企业级前端开发框架 |
| react | React 用户界面构建库 |
| react-dom | React DOM 渲染库 |
| antd | Ant Design 企业级 UI 组件库 |
| @ant-design/icons | Ant Design 图标库 |
| @ant-design/compatible | Ant Design 兼容性组件 |
图表与可视化
| 模块名称 | 说明 |
|---|---|
| echarts | Apache ECharts 图表库 |
| echarts-for-react | ECharts 的 React 封装 |
| echarts-wordcloud | ECharts 词云插件 |
| @antv/x6 | AntV X6 图编辑引擎 |
| @antv/x6-react-components | X6 React 组件 |
| @antv/x6-react-shape | X6 React 图形 |
编辑器组件
| 模块名称 | 说明 |
|---|---|
| ace-builds | Ace 代码编辑器 |
| react-ace | Ace 编辑器的 React 封装 |
| braft-editor | 富文本编辑器 |
| braft-extensions | 富文本编辑器扩展 |
| braft-finder | 富文本编辑器查找器 |
| braft-utils | 富文本编辑器工具 |
表单与数据处理
| 模块名称 | 说明 |
|---|---|
| form-render | 动态表单渲染器 |
| fr-generator | 表单生成器 |
| json-rules-engine | JSON 规则引擎 |
| @microlink/react-json-view | JSON 数据查看器 |
国际化与本地化
| 模块名称 | 说明 |
|---|---|
| i18next | 国际化框架 |
| i18next-browser-languagedetector | 浏览器语言检测 |
| react-i18next | i18next 的 React 集成 |
| flag-icons | 国旗图标库 |
UI 增强组件
| 模块名称 | 说明 |
|---|---|
| react-color | 颜色选择器 |
| react-grid-layout | 网格布局组件 |
| react-split-pane | 分割面板组件 |
| react-sortablejs | 拖拽排序组件 |
| sortablejs | 拖拽排序库 |
| re-resizable | 可调整大小组件 |
| @udidu/timeline | 时间线组件 |
文档与内容处理
| 模块名称 | 说明 |
|---|---|
| react-markdown | Markdown 渲染器 |
| react-syntax-highlighter | 语法高亮组件 |
| rehype-document | HTML 文档处理 |
| rehype-highlight | 代码高亮处理 |
| rehype-raw | 原始 HTML 处理 |
| rehype-starry-night | 星空主题高亮 |
| rehype-stringify | HTML 字符串化 |
| remark-gfm | GitHub 风格 Markdown |
| remark-parse | Markdown 解析 |
| remark-rehype | Markdown 到 HTML 转换 |
| remark-toc | 目录生成 |
工具库
| 模块名称 | 说明 |
|---|---|
| lodash | JavaScript 工具库 |
| lodash-decorators | Lodash 装饰器 |
| lodash.debounce | 防抖函数 |
| lodash.isequal | 深度比较 |
| moment | 日期时间处理库 |
| moment-timezone | 时区处理 |
| classnames | CSS 类名工具 |
| immutability-helper | 不可变数据助手 |
| omit.js | 对象属性过滤 |
网络与通信
| 模块名称 | 说明 |
|---|---|
| umi-request | UMI 请求库 |
| @microsoft/fetch-event-source | 服务器发送事件客户端 |
| ahooks | React Hooks 工具库 |
安全与加密
| 模块名称 | 说明 |
|---|---|
| jsencrypt | RSA 加密库 |
| js-base64 | Base64 编码解码 |
其他功能
| 模块名称 | 说明 |
|---|---|
| qiankun | 微前端框架 |
| copy-text-to-clipboard | 剪贴板复制 |
| html2pdf.js | HTML 转 PDF |
| print-js | 打印功能 |
| sql-formatter | SQL 格式化 |
| tributejs | 提及功能 |
| @multiavatar/multiavatar | 头像生成器 |
| react-helmet | 文档头部管理 |
| react-helmet-async | 异步头部管理 |
| react-dev-inspector | 开发调试工具 |
| react-icons | React 图标库 |
开发依赖
| 模块名称 | 说明 |
|---|---|
| typescript | TypeScript 编译器 |
| @types/react | React 类型定义 |
| @types/react-dom | React DOM 类型定义 |
| prettier | 代码格式化工具 |
| husky | Git hooks 工具 |
| lint-staged | 暂存文件检查 |
| less | Less CSS 预处理器 |