前端代码结构
SurveyKing Pro 前端采用 Umi.js 4 + React 18 + TypeScript + Ant Design 5 + Formily 2 技术栈,是一个现代化的企业级前端应用架构。
🛠️ 技术栈概览
基于 package.json
的实际依赖:
- 核心框架: Umi.js 4.0.73 (React 全家桶)
- UI 组件库: Ant Design 5.23.1 + Ant Design Pro Components 2.6.8
- 状态管理: Formily Reactive (基于 @formily/reactive)
- 表单方案: Formily 2.2.27 (阿里巴巴表单解决方案)
- 类型支持: TypeScript 4+
- 样式方案: Less + CSS-in-JS (@emotion/css、@emotion/styled)
- 图表库: BizCharts 4.1.22 + ECharts 5.4.3
- 移动端: Ant Design Mobile 5.37.0
- 工具库: ahooks 3.7.4、lodash 4.17.21、dayjs 1.11.10
- 构建工具: Umi Max (内置 Webpack)
📁 项目目录结构
client/
├── public/ # 静态资源目录
│ ├── favicon.ico # 网站图标
│ ├── logo.svg # Logo 图片
│ ├── CNAME # 域名配置
│ ├── assets/ # 公共资源
│ └── icons/ # PWA 图标集合
├── src/ # 源代码目录
│ ├── components/ # 公共组件库 (44个组件)
│ │ ├── Answer/ # 答题相关组件
│ │ ├── AudioRecord/ # 音频录制组件
│ │ ├── Charts/ # 图表组件
│ │ ├── FormulaEditor/ # 公式编辑器
│ │ ├── QuillEditor/ # Quill富文本编辑器
│ │ ├── Quill2/ # Quill 2.0版本
│ │ ├── ReactQuill/ # React Quill组件
│ │ ├── CanvasDatagrid/ # 高性能表格组件
│ │ ├── FortuneSheet/ # 在线表格(类Excel)
│ │ ├── AuthComponent/ # 权限控制组件
│ │ ├── DynamicGrid/ # 动态网格布局
│ │ ├── SliderCaptcha/ # 滑块验证码
│ │ ├── QrScanner/ # 二维码扫描
│ │ ├── ReactViewer/ # 文件预览
│ │ ├── FormilyAntd/ # Formily Antd适配器
│ │ └── ... # 其他30+个组件
│ ├── pages/ # 页面组件
│ │ ├── Home/ # 首页
│ │ ├── Survey/ # 问卷相关页面
│ │ ├── exam/ # 考试相关页面
│ │ ├── Exercise/ # 练习页面
│ │ ├── project/ # 项目管理
│ │ ├── system/ # 系统管理
│ │ ├── user/ # 用户相关页面
│ │ ├── Template/ # 模板页面
│ │ ├── repo/ # 题库页面
│ │ ├── infra/ # 基础设施页面
│ │ ├── Access/ # 访问控制页面
│ │ ├── mobile/ # 移动端页面
│ │ │ ├── Account/ # 移动端账户
│ │ │ ├── Exercise/ # 移动端练习
│ │ │ └── Home/ # 移动端首页
│ │ ├── 401.tsx # 401错误页面
│ │ ├── 404.tsx # 404错误页面
│ │ └── Loading.tsx # 加载页面
│ ├── services/ # API 服务层
│ │ ├── auth/ # 认证服务
│ │ ├── survey/ # 问卷服务
│ │ ├── system/ # 系统服务
│ │ ├── exam/ # 考试服务
│ │ ├── project/ # 项目服务
│ │ ├── home/ # 首页服务
│ │ ├── repo/ # 题库服务
│ │ ├── infra/ # 基础设施服务
│ │ ├── demo/ # 演示服务
│ │ └── types.ts # API 通用类型
│ ├── store/ # Formily响应式状态管理
│ │ ├── index.ts # Store 配置
│ │ ├── UserStore.ts # 用户状态管理
│ │ ├── ProjectStore.ts # 项目状态管理
│ │ ├── AnswerStore.ts # 答题状态管理
│ │ ├── DictStore.ts # 字典数据管理
│ │ ├── HomeStore.ts # 首页状态管理
│ │ ├── SystemStore.ts # 系统状态管理
│ │ ├── TemplateStore.ts # 模板状态管理
│ │ └── FlowStore.ts # 流程状态管理
│ ├── shared/ # 共享工具库 (30+个文件)
│ │ ├── types.ts # 全局类型定义
│ │ ├── utils.ts # 工具函数集合
│ │ ├── api.ts # API 请求工具