← 返回首页
24 模块配置化语义 Schema、表单与视图
# 24 模块配置化语义 Schema、表单与视图
## 分层原则
动态配置必须分为四层:
1. 领域模型:业务对象和核心不变量,写在代码中。
2. 语义 Schema:实体、字段、敏感等级、AI 提取和审核规则,持久化并版本化。
3. 表单定义:在特定场景和平台展示哪些字段、顺序、控件和帮助文本。
4. 视图定义:列表、卡片、详情、时间轴、日历、看板、地图、关系图和仪表盘的字段布局。
AI 读取语义 Schema,不读取 CSS、栅格或按钮位置。前端读取已发布表单;复杂业务视图仍由专用 Vue 组件实现。
## 24 模块默认配置
系统启动时为 24 个业务模块建立:
- 一个实体类型定义;
- 模块专用字段定义;
- 快速创建、完整创建、编辑、AI 提案审核、移动快速采集五类表单;
- 模块适用的业务视图。
这些默认配置不是通用 JSON 工作台的替代品,而是为模块专用规则和专用组件提供统一元数据。
## 字段能力
配置中心的逻辑字段统一在标签后显示帮助入口。鼠标悬浮可查看字段含义、影响范围和限制,帮助内容可以复制到设计文档或问题反馈中。
`select` / `Select` / `MultiSelect` 字段可以在“字段语义与 AI 策略”中维护字典选项。当前存储结构为稳定字符串数组,每行一个选项;发布表单后,PC 与移动端模块表单读取同一字段选项目录。
字段可以配置:
- 数据类型、是否多值和默认值;
- `REQUIRED_TO_CREATE`、`REQUIRED_TO_ACT`、`RECOMMENDED`、`OPTIONAL`、`NEVER_ASK`;
- `PUBLIC` 至 `NEVER_SEND_TO_CLOUD` 的敏感等级;
- `DENY`、显式提取、允许推断、本地限定;
- AI 工作负载和审核策略;
- 确定性验证规则、存储策略、枚举和默认控件。
## 表单配置边界
数据库只能选择预实现控件和受限条件:
- TextInput、Textarea、NumberInput、日期、模糊时间、枚举、人物、项目、隐私、标签、附件和证据;
- equals、notEquals、contains、exists、in 等受限表达式。
禁止保存任意 Vue、JavaScript、SQL 或 HTTP 脚本。权限、加密、事务、幂等、删除、合并、模型硬性路由和复杂组件必须由代码实现。
## 发布与回滚
实体、字段、表单和视图均有草稿、已发布、废弃状态和修订号。记录必须保留自己使用的 Schema 版本;发布新表单不会改变历史记录含义。PC 可以发布和回滚,移动端只能读取已发布版本。
## 运行时消费状态
本候选版不再只生成配置表和配置中心页面。Web 与 uni-app 的业务表单已经接入已发布表单运行时:
```text
模块创建/编辑页面
→ 根据 moduleCode、usageContext 和 platform 请求已发布表单
→ 按 section、displayOrder、visibilityRule 和 readonlyRule 渲染
→ 使用语义字段定义生成校验和帮助文本
→ 配置服务不可用时回退代码内置字段
```
Web 通过 `usePublishedFormSchema` 获取 `WEB` 配置;移动端通过 `published-form.ts` 获取 `MOBILE` 配置。移动端接口只提供读取能力,不提供实体、字段、表单或视图的写入方法。
运行时仍遵守以下边界:
- 动态表单不能放宽服务端权限和隐私规则;
- 隐藏字段不代表服务端不校验;
- 只读、必填和显示条件使用受限表达式;
- 历史记录保留原 Schema 和表单版本;
- 模块专用时间轴、关系图、看板、媒体批注和提案差异仍由专用组件实现。
## PC 配置中心布局约束
数据模型配置页使用统一的配置中心布局:左侧实体目录保持独立滚动,右侧按“实体类型、字段语义与 AI 策略、表单设计、业务视图”切换。实体目录、定义网格、表单设计器、配置卡片和表格必须复用 `main.css` 中的配置中心共享样式,禁止退化为无间距的按钮和文本堆叠。窄屏下目录与内容自动改为单列,业务字段仍保持可读顺序。