# amis-admin-fastify **Repository Path**: alexfengfeng/amis-admin-fastify ## Basic Information - **Project Name**: amis-admin-fastify - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-22 - **Last Updated**: 2025-10-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AMIS Admin Fastify 基于 Fastify + AMIS JSON + TypeScript 的全栈管理系统 ## 技术栈 - **后端框架**: Fastify - **前端框架**: AMIS JSON Schema - **包管理器**: pnpm - **开发语言**: TypeScript - **代码规范**: ESLint 严格模式 - **架构模式**: 纯函数式编程(禁用面向对象) ## 目录结构规范 ### 根目录结构 ``` amis-admin-fastify/ ├── controllers/ # 业务逻辑控制器目录 ├── pages/ # 页面级组件和路由文件目录 ├── lib/ # 公共库文件 ├── public/ # 静态资源文件 ├── docs/ # 项目文档 ├── jssdk/ # JavaScript SDK ├── server.js # 服务器入口文件 ├── package.json # 项目依赖配置 └── README.md # 项目说明文档 ``` ### Controllers 目录结构 ``` controllers/ ├── system/ # 系统管理模块 │ ├── menu.controller.js # 菜单管理控制器 │ ├── role.controller.js # 角色管理控制器 │ └── office.controller.js # 组织机构管理控制器 ├── user/ # 用户管理模块 │ └── user.controller.js # 用户管理控制器 ├── dict/ # 字典管理模块 │ ├── dict.controller.js # 字典管理控制器 │ └── dict-items.controller.js # 字典项管理控制器 ├── tools/ # 开发工具模块 │ └── validation.controller.js # 数据校验控制器 └── common/ # 通用模块 └── sample.controller.js # 示例控制器 ``` ### Pages 目录结构 ``` pages/ ├── system/ # 系统管理页面 │ ├── menu-list.json # 菜单列表页面 │ ├── menu-new.json # 新增菜单页面 │ ├── menu-edit.json # 编辑菜单页面 │ ├── role-list.json # 角色列表页面 │ ├── role-new.json # 新增角色页面 │ ├── role-edit.json # 编辑角色页面 │ ├── office-list.json # 组织机构列表页面 │ ├── office-new.json # 新增组织机构页面 │ └── office-edit.json # 编辑组织机构页面 ├── user/ # 用户管理页面 │ ├── user-list.json # 用户列表页面 │ ├── user-new.json # 新增用户页面 │ └── user-edit.json # 编辑用户页面 ├── dict/ # 字典管理页面 │ ├── dict-list.json # 字典列表页面 │ ├── dict-new.json # 新增字典页面 │ ├── dict-edit.json # 编辑字典页面 │ ├── dict-items-list.json # 字典项列表页面 │ ├── dict-items-new.json # 新增字典项页面 │ └── dict-items-edit.json # 编辑字典项页面 ├── tools/ # 开发工具页面 │ ├── json-validator.json # JSON校验器页面 │ └── validation-schema.json # 校验规则页面 ├── common/ # 通用页面 │ ├── console.json # 控制台页面 │ ├── schema.json # 通用Schema页面 │ ├── crud-list.json # CRUD列表页面 │ ├── crud-new.json # CRUD新增页面 │ └── crud-edit.json # CRUD编辑页面 └── site.json # 站点配置文件 ``` ## 目录命名规范 1. **目录命名**: 采用小写字母加下划线格式 (snake_case) - ✅ `system` - ✅ `user` - ❌ `systemManagement` - ❌ `SystemManagement` 2. **目录层级**: 保持目录层级不超过3层 - 第1层: 功能域分类 (`controllers/`, `pages/`) - 第2层: 业务模块分类 (`system/`, `user/`) - 第3层: 具体文件 (`menu.controller.js`, `menu-list.json`) 3. **业务域分类**: 相同业务域的文件放在同一目录 - `system`: 系统管理相关功能 - `user`: 用户管理相关功能 - `dict`: 字典管理相关功能 - `tools`: 开发工具相关功能 - `common`: 通用功能模块 ## 架构原则 ### 五层分离架构 1. **Controller**: 控制器层,处理HTTP请求和响应 2. **Model**: 数据模型层,定义数据结构 3. **Service**: 业务逻辑层,处理业务规则 4. **Schema**: 数据验证层,定义请求/响应格式 5. **Page**: 页面展示层,AMIS JSON配置 ### 请求生命周期 ``` Request → Schema验证 → Controller → Service → Model → Response ``` ### 多租户隔离 - 数据库级隔离或集合前缀隔离 - 确保不同租户数据完全隔离 ## 开发规范 1. **纯函数式编程**: 禁止使用面向对象编程模式 2. **TypeScript**: 所有代码必须使用TypeScript编写 3. **ESLint**: 代码必须通过ESLint严格模式检查 4. **模块化**: 严格按照功能模块组织代码结构 5. **路径引用**: 使用相对路径或配置好的别名 ## 启动项目 ```bash # 安装依赖 pnpm install # 启动开发服务器 npm start ``` ## 功能模块 - ✅ 用户管理 (User Management) - ✅ 字典管理 (Dictionary Management) - ✅ 菜单管理 (Menu Management) - ✅ 角色管理 (Role Management) - ✅ 组织机构管理 (Organization Management) - ✅ JSON校验器 (JSON Validator) - ✅ CRUD示例 (CRUD Examples) ## 贡献指南 1. 遵循目录结构规范 2. 保持代码风格一致 3. 编写完整的类型定义 4. 确保ESLint检查通过 5. 按功能模块组织代码