59 lines
2.4 KiB
Markdown
59 lines
2.4 KiB
Markdown
# AI Context — FMS 新系统配置中心 Demo
|
||
|
||
## 项目目标
|
||
|
||
这是一个 **FMS 新系统配置中心演示**,用 React 实现,用于直观展示如何配置业务域、实体、菜单与权限,对应《FMS新系统核心表结构设计.md》中的核心元数据结构。
|
||
|
||
命名风格参考旧系统:表名 `s_` 前缀、字段 `b_` 前缀 + 驼峰(如 `b_viewtable`、`b_inputdatetime`)。
|
||
|
||
## 技术栈
|
||
|
||
| 项 | 值 |
|
||
|---|-----|
|
||
| 框架 | React 19 + TypeScript 6 |
|
||
| 构建 | Vite 8 |
|
||
| 样式 | Tailwind CSS v4 (`@tailwindcss/vite`) |
|
||
| 包管理 | pnpm |
|
||
|
||
## 文件结构
|
||
|
||
```
|
||
src/
|
||
└── src/
|
||
├── App.tsx # 单页配置中心:总览 / 业务域与实体 / 菜单与权限 / 角色与用户
|
||
├── index.css # 整体样式
|
||
└── main.tsx # 入口
|
||
```
|
||
|
||
## 设计理念
|
||
|
||
1. **四个工作区**:总览、业务域与实体、菜单与权限、角色与用户
|
||
2. **业务域只管归属**:`s_module` 仅表示业务分组,不承载菜单和权限
|
||
3. **实体维护数据边界**:`s_entity` 负责数据源、保存表、主键,字段属于实体
|
||
4. **菜单承载访问入口**:`s_menu` 直接绑定实体或固定页面,动作权限跟着菜单生成
|
||
5. **权限跟随菜单**:角色只做授权主体,权限点来源于菜单动作
|
||
|
||
## 覆盖的表
|
||
|
||
| 工作区 | 表 |
|
||
| --- | --- |
|
||
| 业务域 | `s_module` |
|
||
| 实体与字段 | `s_entity`、`s_field_group`、`s_field`、`s_field_list`、`s_field_edit`、`s_field_query` |
|
||
| 菜单与页面 | `s_menu` |
|
||
| 权限 | `s_role`、`s_user_role`、`s_power`、`s_role_power` |
|
||
|
||
## 启动
|
||
|
||
```bash
|
||
pnpm install # 已安装
|
||
pnpm dev # http://localhost:3000
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
- 这版 Demo 按维护关联度合并页面:业务域、实体和实体关系在同一棵配置树及详情工作区维护,菜单和权限一起维护
|
||
- 业务模型树同时展示 `s_module` 和 `s_entity`:业务域节点表达归属,实体节点表达数据对象;只有 `owned` 主从实体继续嵌套,`reference` 引用不改变树位置
|
||
- 权限是跟着菜单走的:一个数据菜单或页面菜单会生成一组动作权限,再由角色去勾选
|
||
- `s_relation` 在实体详情中维护关系类型、来源字段、目标字段、所有权和删除策略
|
||
- `src/index.css` 里有完整布局样式;如果要继续精修,可以在这份文件上直接改
|