20260823210241
This commit is contained in:
1 parent
5ff4583aeb
commit
f4c7413dc6
2766 files changed
+1836409
-94689
No files matched your search
@@ -0,0 +1,372 @@
|
||||
# 元数据设计
|
||||
|
||||
<cite>
|
||||
**本文引用的文件**
|
||||
- [100_initialize_fms_new.sql](file://fms-api/config/migrations/100_initialize_fms_new.sql)
|
||||
- [ModuleFieldsPanel.vue](file://fms-vue/src/views/system/module-management/components/ModuleFieldsPanel.vue)
|
||||
- [ModuleEditConfigPanel.vue](file://fms-vue/src/views/system/module-management/components/ModuleEditConfigPanel.vue)
|
||||
- [moduleListUtils.js](file://fms-vue-old1/src/components/fms-module-list/moduleListUtils.js)
|
||||
- [FmsModuleTable.vue](file://fms-vue-old1/src/components/fms-module-list/FmsModuleTable.vue)
|
||||
- [validate.js.html](file://fms-vue/coverage/src/components/ui/form/validate.js.html)
|
||||
- [index.vue(模块管理)](file://fms-vue-old2/src/views/system/module-management/index.vue)
|
||||
</cite>
|
||||
|
||||
## 目录
|
||||
1. [简介](#简介)
|
||||
2. [项目结构](#项目结构)
|
||||
3. [核心组件](#核心组件)
|
||||
4. [架构总览](#架构总览)
|
||||
5. [详细组件分析](#详细组件分析)
|
||||
6. [依赖关系分析](#依赖关系分析)
|
||||
7. [性能考虑](#性能考虑)
|
||||
8. [故障排查指南](#故障排查指南)
|
||||
9. [结论](#结论)
|
||||
10. [附录](#附录)
|
||||
|
||||
## 简介
|
||||
本文件系统性阐述 FMS 的“元数据驱动”架构:通过 s_module、s_field、s_field_group、s_field_edit、s_field_view、s_field_query 等配置表,实现动态表单与表格生成。文档覆盖字段类型映射机制、编辑/视图/查询配置、分组布局、验证规则与完整性约束、性能优化策略,以及自定义字段类型的扩展方法。读者可据此理解从数据库元数据到前端渲染的完整链路,并安全地扩展系统能力。
|
||||
|
||||
## 项目结构
|
||||
- 后端元数据表定义集中在迁移脚本中,定义了模块、字段、分组、编辑/视图/查询配置、关系、权限、日志等基础表结构及约束。
|
||||
- 前端在“模块管理”页面提供可视化维护界面:字段定义面板、表单设计面板(编辑配置)、列表与查询配置同步等。
|
||||
- 运行时渲染由通用表格/表单组件根据元数据动态生成 UI,并通过工具函数将前端值转换为 SQL 字面量以构建查询条件。
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph "后端元数据"
|
||||
M["s_module"]
|
||||
F["s_field"]
|
||||
G["s_field_group"]
|
||||
E["s_field_edit"]
|
||||
V["s_field_view"]
|
||||
Q["s_field_query"]
|
||||
end
|
||||
subgraph "前端管理界面"
|
||||
MF["ModuleFieldsPanel.vue"]
|
||||
ME["ModuleEditConfigPanel.vue"]
|
||||
end
|
||||
subgraph "运行时渲染"
|
||||
RT["通用表格/表单组件"]
|
||||
UTL["SQL 字面量/查询构建"]
|
||||
end
|
||||
M --> F
|
||||
F --> E
|
||||
F --> V
|
||||
F --> Q
|
||||
G --> E
|
||||
MF --> F
|
||||
ME --> E
|
||||
RT --> F
|
||||
RT --> E
|
||||
RT --> V
|
||||
RT --> Q
|
||||
UTL --> Q
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [100_initialize_fms_new.sql:56-203](file://fms-api/config/migrations/100_initialize_fms_new.sql#L56-L203)
|
||||
- [ModuleFieldsPanel.vue:1-182](file://fms-vue/src/views/system/module-management/components/ModuleFieldsPanel.vue#L1-L182)
|
||||
- [ModuleEditConfigPanel.vue:1-800](file://fms-vue/src/views/system/module-management/components/ModuleEditConfigPanel.vue#L1-L800)
|
||||
|
||||
章节来源
|
||||
- [100_initialize_fms_new.sql:56-203](file://fms-api/config/migrations/100_initialize_fms_new.sql#L56-L203)
|
||||
- [ModuleFieldsPanel.vue:1-182](file://fms-vue/src/views/system/module-management/components/ModuleFieldsPanel.vue#L1-L182)
|
||||
- [ModuleEditConfigPanel.vue:1-800](file://fms-vue/src/views/system/module-management/components/ModuleEditConfigPanel.vue#L1-L800)
|
||||
|
||||
## 核心组件
|
||||
- s_module:模块元数据,定义业务模块、视图表、保存表、主键字段、排序字段、删除策略等。
|
||||
- s_field:字段元数据,定义字段名、显示名、控件类型、数据库类型、长度/精度/小数位、是否可空、默认值、写入模式、选项、启用状态等。
|
||||
- s_field_group:字段分组,支持父子分组、标题、多语言、布局方向(垂直/水平)、排序、启用。
|
||||
- s_field_edit:编辑配置,控制字段在表单中的可见性、必填、只读、禁用、栅格宽度、高度、占位符、排序等。
|
||||
- s_field_view:视图配置,控制字段在列表/详情中的可见性、分组归属、多语言、排序、列宽等。
|
||||
- s_field_query:查询配置,控制字段在查询面板中的组件、操作符、默认值、排序、启用等。
|
||||
|
||||
章节来源
|
||||
- [100_initialize_fms_new.sql:56-203](file://fms-api/config/migrations/100_initialize_fms_new.sql#L56-L203)
|
||||
|
||||
## 架构总览
|
||||
元数据驱动的典型流程:
|
||||
- 设计期:管理员在“模块管理”中维护 s_module/s_field/s_field_group/s_field_edit/s_field_view/s_field_query。
|
||||
- 运行期:前端根据 s_field 的 b_type 选择对应控件;根据 s_field_edit 决定表单布局与校验;根据 s_field_view 决定列表展示;根据 s_field_query 生成查询条件。
|
||||
- 数据层:b_dbtype 与 b_type 共同决定存储类型与前后端转换逻辑;写模式 b_writemode 控制字段写入行为。
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant Admin as "管理员"
|
||||
participant UI as "模块管理界面"
|
||||
participant Meta as "元数据表(s_*)"
|
||||
participant Runtime as "运行时渲染"
|
||||
participant DB as "业务表"
|
||||
Admin->>UI : 维护字段/分组/编辑/视图/查询配置
|
||||
UI->>Meta : 持久化 s_field / s_field_edit / s_field_view / s_field_query
|
||||
Runtime->>Meta : 读取 s_field, s_field_edit, s_field_view, s_field_query
|
||||
Runtime-->>Runtime : 根据 b_type/b_dbtype 渲染控件/格式化
|
||||
Runtime->>DB : 提交数据/执行查询
|
||||
DB-->>Runtime : 返回结果
|
||||
Runtime-->>Admin : 展示表单/列表/查询结果
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [ModuleFieldsPanel.vue:1-182](file://fms-vue/src/views/system/module-management/components/ModuleFieldsPanel.vue#L1-L182)
|
||||
- [ModuleEditConfigPanel.vue:1-800](file://fms-vue/src/views/system/module-management/components/ModuleEditConfigPanel.vue#L1-L800)
|
||||
- [100_initialize_fms_new.sql:56-203](file://fms-api/config/migrations/100_initialize_fms_new.sql#L56-L203)
|
||||
|
||||
## 详细组件分析
|
||||
|
||||
### 字段类型与数据库映射
|
||||
- 支持的控件类型(b_type):input、textarea、number、money、date、datetime、checkbox、select、selectId。
|
||||
- 支持的数据库类型(b_dbtype):varchar、nvarchar、char、nchar、int、bigint、smallint、tinyint、decimal、numeric、float、real、date、datetime、datetime2、bit、text、ntext、uniqueidentifier。
|
||||
- 写模式(b_writemode):direct、createOnly、readOnly、computed、system,用于控制字段写入行为。
|
||||
- 前端渲染:
|
||||
- ModuleFieldsPanel 暴露控件类型与数据库类型下拉项,供管理员配置。
|
||||
- 运行时根据 b_type 选择输入控件,并根据 b_dbtype 进行数值/日期/布尔等格式化处理。
|
||||
- 查询构建:
|
||||
- moduleListUtils 中 sqlLiteral 根据 b_type 将前端值转为 SQL 字面量(数字、金额、日期时间、复选框等)。
|
||||
- buildQueryCondition 根据 s_field_query 的操作符(如 =、like、in、范围)拼接 SQL 条件。
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
Start(["开始"]) --> ReadField["读取 s_field<br/>b_type / b_dbtype / b_writemode"]
|
||||
ReadField --> Render{"渲染场景?"}
|
||||
Render --> |表单| EditCfg["读取 s_field_edit<br/>可见/必填/只读/禁用/栅格/高度/占位"]
|
||||
Render --> |列表| ViewCfg["读取 s_field_view<br/>可见/分组/排序/列宽"]
|
||||
Render --> |查询| QueryCfg["读取 s_field_query<br/>组件/操作符/默认值/排序"]
|
||||
EditCfg --> BuildValue["根据 b_type/b_dbtype 转换值"]
|
||||
ViewCfg --> FormatDisplay["格式化显示"]
|
||||
QueryCfg --> BuildSQL["构建 SQL 条件"]
|
||||
BuildValue --> Save["写入业务表"]
|
||||
FormatDisplay --> Show["展示列表/详情"]
|
||||
BuildSQL --> Exec["执行查询"]
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [ModuleFieldsPanel.vue:21-42](file://fms-vue/src/views/system/module-management/components/ModuleFieldsPanel.vue#L21-L42)
|
||||
- [ModuleEditConfigPanel.vue:283-363](file://fms-vue/src/views/system/module-management/components/ModuleEditConfigPanel.vue#L283-L363)
|
||||
- [moduleListUtils.js:96-176](file://fms-vue-old1/src/components/fms-module-list/moduleListUtils.js#L96-L176)
|
||||
- [100_initialize_fms_new.sql:92-123](file://fms-api/config/migrations/100_initialize_fms_new.sql#L92-L123)
|
||||
|
||||
章节来源
|
||||
- [ModuleFieldsPanel.vue:21-42](file://fms-vue/src/views/system/module-management/components/ModuleFieldsPanel.vue#L21-L42)
|
||||
- [moduleListUtils.js:96-176](file://fms-vue-old1/src/components/fms-module-list/moduleListUtils.js#L96-L176)
|
||||
- [100_initialize_fms_new.sql:92-123](file://fms-api/config/migrations/100_initialize_fms_new.sql#L92-L123)
|
||||
|
||||
### 字段编辑配置(s_field_edit)
|
||||
- 作用:控制字段在表单中的行为与布局,包括可见性、必填、只读、禁用、栅格宽度(1-24)、文本域高度(64-480)、占位符、排序等。
|
||||
- 前端设计器:
|
||||
- 支持拖拽字段到画布、跨分组移动、自动栅格分配、说明文字行、批量同步到列表/查询配置。
|
||||
- 属性面板可调整必填、只读、禁用、栅格宽度、占位符、文本域高度等。
|
||||
- 数据视图:提供高密度表格编辑,便于批量修改可见性与排序。
|
||||
|
||||
```mermaid
|
||||
classDiagram
|
||||
class SFieldEdit {
|
||||
+bigint b_id
|
||||
+bigint b_module_id
|
||||
+bigint b_field_id
|
||||
+bigint b_group_id
|
||||
+int b_visible
|
||||
+int b_required
|
||||
+int b_readonly
|
||||
+int b_disabled
|
||||
+int b_colspan
|
||||
+int b_height
|
||||
+nvarchar b_placeholder
|
||||
+int b_xh
|
||||
}
|
||||
class ModuleEditConfigPanel {
|
||||
+insertField()
|
||||
+rebalanceInsert()
|
||||
+syncToList()
|
||||
+syncToQuery()
|
||||
}
|
||||
ModuleEditConfigPanel --> SFieldEdit : "维护/渲染"
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [ModuleEditConfigPanel.vue:1-800](file://fms-vue/src/views/system/module-management/components/ModuleEditConfigPanel.vue#L1-L800)
|
||||
- [100_initialize_fms_new.sql:161-182](file://fms-api/config/migrations/100_initialize_fms_new.sql#L161-L182)
|
||||
|
||||
章节来源
|
||||
- [ModuleEditConfigPanel.vue:1-800](file://fms-vue/src/views/system/module-management/components/ModuleEditConfigPanel.vue#L1-L800)
|
||||
- [100_initialize_fms_new.sql:161-182](file://fms-api/config/migrations/100_initialize_fms_new.sql#L161-L182)
|
||||
|
||||
### 视图配置(s_field_view)
|
||||
- 作用:控制字段在列表/详情中的可见性、分组归属、多语言、排序、列宽等。
|
||||
- 与编辑配置的联动:可通过“同步到列表”将编辑配置的可见性快速复制到视图配置,减少重复维护。
|
||||
|
||||
章节来源
|
||||
- [100_initialize_fms_new.sql:144-159](file://fms-api/config/migrations/100_initialize_fms_new.sql#L144-L159)
|
||||
- [ModuleEditConfigPanel.vue:177-226](file://fms-vue/src/views/system/module-management/components/ModuleEditConfigPanel.vue#L177-L226)
|
||||
|
||||
### 查询配置(s_field_query)
|
||||
- 作用:为每个字段定义查询组件、操作符(=、like、in、范围等)、默认值、排序、启用状态。
|
||||
- 查询构建:
|
||||
- 根据 b_operator 与前端输入值,调用 sqlLiteral 生成安全的 SQL 字面量。
|
||||
- 支持范围查询(BETWEEN)、多选(IN)、模糊匹配(LIKE)等。
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant User as "用户"
|
||||
participant Form as "查询表单"
|
||||
participant Cfg as "s_field_query"
|
||||
participant Utils as "sqlLiteral/buildQueryCondition"
|
||||
participant DB as "业务表"
|
||||
User->>Form : 输入查询条件
|
||||
Form->>Cfg : 读取字段查询配置
|
||||
Form->>Utils : 转换值并构建条件
|
||||
Utils-->>Form : 返回 SQL 片段
|
||||
Form->>DB : 执行查询
|
||||
DB-->>Form : 返回结果
|
||||
Form-->>User : 展示结果
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [moduleListUtils.js:96-176](file://fms-vue-old1/src/components/fms-module-list/moduleListUtils.js#L96-L176)
|
||||
- [100_initialize_fms_new.sql:184-203](file://fms-api/config/migrations/100_initialize_fms_new.sql#L184-L203)
|
||||
|
||||
章节来源
|
||||
- [moduleListUtils.js:96-176](file://fms-vue-old1/src/components/fms-module-list/moduleListUtils.js#L96-L176)
|
||||
- [100_initialize_fms_new.sql:184-203](file://fms-api/config/migrations/100_initialize_fms_new.sql#L184-L203)
|
||||
|
||||
### 字段分组(s_field_group)与布局
|
||||
- 分组支持父子层级、标题、多语言、布局方向(vertical/horizontal)、排序、启用。
|
||||
- 表单设计器:
|
||||
- 支持按分组组织字段,统一切换整体布局方向。
|
||||
- 画布内支持拖拽字段到不同分组,自动维护顺序与栅格宽度。
|
||||
- 新增说明文字行作为非字段占位,提升表单可读性。
|
||||
|
||||
章节来源
|
||||
- [100_initialize_fms_new.sql:125-142](file://fms-api/config/migrations/100_initialize_fms_new.sql#L125-L142)
|
||||
- [ModuleEditConfigPanel.vue:364-377](file://fms-vue/src/views/system/module-management/components/ModuleEditConfigPanel.vue#L364-L377)
|
||||
- [ModuleEditConfigPanel.vue:459-500](file://fms-vue/src/views/system/module-management/components/ModuleEditConfigPanel.vue#L459-L500)
|
||||
|
||||
### 元数据验证规则与数据完整性约束
|
||||
- 数据库级约束:
|
||||
- s_field 的 b_type、b_dbtype、b_writemode 使用 CHECK 约束限制取值范围。
|
||||
- s_field_edit 的 b_colspan 限制 1-24,b_height 限制 64-480。
|
||||
- s_field_query 的 b_condition_no > 0。
|
||||
- s_module 的 b_module_type 与相关字段组合约束,确保不同类型模块的字段一致性。
|
||||
- 前端校验:
|
||||
- 表单验证框架支持静态规则与自定义 validator,可在字段级别聚合多条规则并返回错误信息。
|
||||
- 数据同步:
|
||||
- 模块管理页面在同步字段时,会对比视图列与现有字段,增删改合并后批量更新 s_field,并清理不在视图中的字段关联配置。
|
||||
|
||||
章节来源
|
||||
- [100_initialize_fms_new.sql:56-203](file://fms-api/config/migrations/100_initialize_fms_new.sql#L56-L203)
|
||||
- [validate.js.html:445-455](file://fms-vue/coverage/src/components/ui/form/validate.js.html#L445-L455)
|
||||
- [index.vue(模块管理):780-858](file://fms-vue-old2/src/views/system/module-management/index.vue#L780-L858)
|
||||
|
||||
### 性能优化策略
|
||||
- 索引设计:
|
||||
- s_field、s_field_edit、s_field_view、s_field_query、s_module 等均建立常用查询索引(如按模块、排序号、启用状态)。
|
||||
- 前端交互优化:
|
||||
- 设计器采用局部重算与缓存(sectionRowCache),避免全量重建。
|
||||
- 栅格宽度动态分配仅在必要时触发,减少不必要的重排。
|
||||
- 查询构建优化:
|
||||
- 使用 sqlLiteral 对值进行安全且高效的转换,避免字符串拼接错误与注入风险。
|
||||
- 数据同步优化:
|
||||
- 增量 diff 与临时 ID 分配,减少无谓的插入/更新/删除。
|
||||
|
||||
章节来源
|
||||
- [100_initialize_fms_new.sql:88-203](file://fms-api/config/migrations/100_initialize_fms_new.sql#L88-L203)
|
||||
- [ModuleEditConfigPanel.vue:409-433](file://fms-vue/src/views/system/module-management/components/ModuleEditConfigPanel.vue#L409-L433)
|
||||
- [moduleListUtils.js:96-176](file://fms-vue-old1/src/components/fms-module-list/moduleListUtils.js#L96-L176)
|
||||
- [index.vue(模块管理):780-858](file://fms-vue-old2/src/views/system/module-management/index.vue#L780-L858)
|
||||
|
||||
### 自定义字段类型扩展指南
|
||||
- 步骤建议:
|
||||
1. 在后端迁移中扩展 s_field.b_type 的允许值(如需新增类型),或在前端扩展控件映射。
|
||||
2. 在 ModuleFieldsPanel 中添加新控件类型选项,并在运行时组件中实现对应的渲染逻辑。
|
||||
3. 在 moduleListUtils 中为 sqlLiteral 添加对新类型的值转换逻辑。
|
||||
4. 在 s_field_query 中为新类型配置合适的组件与操作符。
|
||||
5. 在 s_field_edit 中为新类型设置合理的默认宽度/高度/占位符。
|
||||
- 注意事项:
|
||||
- 保持 b_dbtype 与新类型的语义一致,确保存储与展示正确。
|
||||
- 为查询构建提供安全转换,避免 SQL 注入。
|
||||
- 在表单验证中为新类型添加必要规则(如必填、范围、格式)。
|
||||
|
||||
章节来源
|
||||
- [ModuleFieldsPanel.vue:21-42](file://fms-vue/src/views/system/module-management/components/ModuleFieldsPanel.vue#L21-L42)
|
||||
- [moduleListUtils.js:96-176](file://fms-vue-old1/src/components/fms-module-list/moduleListUtils.js#L96-L176)
|
||||
- [100_initialize_fms_new.sql:92-123](file://fms-api/config/migrations/100_initialize_fms_new.sql#L92-L123)
|
||||
|
||||
## 依赖关系分析
|
||||
- s_module 与 s_field:一个模块包含多个字段,字段通过 b_module_id 关联。
|
||||
- s_field 与 s_field_edit/s_field_view/s_field_query:同一字段在不同场景下的配置独立维护,通过 b_field_id 关联。
|
||||
- s_field_group 与 s_field_edit:字段在表单中的分组归属由 s_field_edit.b_group_id 指定。
|
||||
- 前端组件依赖:
|
||||
- ModuleFieldsPanel 负责字段定义的可视化维护。
|
||||
- ModuleEditConfigPanel 负责编辑配置的设计与数据视图编辑,并与列表/查询配置联动。
|
||||
- FmsModuleTable 根据字段类型与编辑配置生成行内编辑器。
|
||||
|
||||
```mermaid
|
||||
graph LR
|
||||
SM["s_module"] --> SF["s_field"]
|
||||
SF --> SE["s_field_edit"]
|
||||
SF --> SV["s_field_view"]
|
||||
SF --> SQ["s_field_query"]
|
||||
SG["s_field_group"] --> SE
|
||||
MFP["ModuleFieldsPanel.vue"] --> SF
|
||||
MEP["ModuleEditConfigPanel.vue"] --> SE
|
||||
FMT["FmsModuleTable.vue"] --> SF
|
||||
FMT --> SE
|
||||
```
|
||||
|
||||
图表来源
|
||||
- [100_initialize_fms_new.sql:56-203](file://fms-api/config/migrations/100_initialize_fms_new.sql#L56-L203)
|
||||
- [ModuleFieldsPanel.vue:1-182](file://fms-vue/src/views/system/module-management/components/ModuleFieldsPanel.vue#L1-L182)
|
||||
- [ModuleEditConfigPanel.vue:1-800](file://fms-vue/src/views/system/module-management/components/ModuleEditConfigPanel.vue#L1-L800)
|
||||
- [FmsModuleTable.vue:76-113](file://fms-vue-old1/src/components/fms-module-list/FmsModuleTable.vue#L76-L113)
|
||||
|
||||
章节来源
|
||||
- [100_initialize_fms_new.sql:56-203](file://fms-api/config/migrations/100_initialize_fms_new.sql#L56-L203)
|
||||
- [ModuleFieldsPanel.vue:1-182](file://fms-vue/src/views/system/module-management/components/ModuleFieldsPanel.vue#L1-L182)
|
||||
- [ModuleEditConfigPanel.vue:1-800](file://fms-vue/src/views/system/module-management/components/ModuleEditConfigPanel.vue#L1-L800)
|
||||
- [FmsModuleTable.vue:76-113](file://fms-vue-old1/src/components/fms-module-list/FmsModuleTable.vue#L76-L113)
|
||||
|
||||
## 性能考虑
|
||||
- 数据库层面:
|
||||
- 合理使用索引(模块、排序、启用状态)提升查询效率。
|
||||
- 使用 CHECK 约束保证数据合法性,减少应用层校验开销。
|
||||
- 前端层面:
|
||||
- 设计器局部更新与缓存,避免全量重绘。
|
||||
- 栅格宽度计算仅在必要时触发,减少 DOM 重排。
|
||||
- 查询层面:
|
||||
- 使用安全的字面量转换,避免复杂字符串处理带来的性能损耗。
|
||||
- 合理配置查询操作符,避免过度使用 LIKE 或 IN 导致扫描放大。
|
||||
|
||||
[本节为通用指导,不直接分析具体文件]
|
||||
|
||||
## 故障排查指南
|
||||
- 字段类型不匹配:
|
||||
- 检查 s_field.b_type 与 s_field.b_dbtype 是否一致,确保前端渲染与后端存储兼容。
|
||||
- 查询结果为空:
|
||||
- 检查 s_field_query 的操作符与默认值是否正确,确认 sqlLiteral 转换是否符合预期。
|
||||
- 表单布局错乱:
|
||||
- 检查 s_field_edit.b_colspan 总和是否超过 24,必要时重新分配栅格宽度。
|
||||
- 验证失败:
|
||||
- 查看表单验证规则,确认必填、格式、范围等规则是否合理。
|
||||
- 数据同步异常:
|
||||
- 检查模块管理页面的字段同步逻辑,确认视图列与现有字段的一致性。
|
||||
|
||||
章节来源
|
||||
- [moduleListUtils.js:96-176](file://fms-vue-old1/src/components/fms-module-list/moduleListUtils.js#L96-L176)
|
||||
- [ModuleEditConfigPanel.vue:317-363](file://fms-vue/src/views/system/module-management/components/ModuleEditConfigPanel.vue#L317-L363)
|
||||
- [validate.js.html:445-455](file://fms-vue/coverage/src/components/ui/form/validate.js.html#L445-L455)
|
||||
- [index.vue(模块管理):780-858](file://fms-vue-old2/src/views/system/module-management/index.vue#L780-L858)
|
||||
|
||||
## 结论
|
||||
FMS 的元数据驱动架构通过清晰的表结构与严格约束,实现了高内聚、低耦合的动态表单与表格生成能力。管理员仅需维护少量配置即可快速迭代业务界面,开发者则可基于统一的字段类型与查询构建机制扩展新功能。结合索引设计与前端优化,系统在易用性与性能之间取得良好平衡。
|
||||
|
||||
[本节为总结性内容,不直接分析具体文件]
|
||||
|
||||
## 附录
|
||||
- 关键表字段速查:
|
||||
- s_module:模块编码、名称、类型、视图表、保存表、主键字段、排序字段、删除策略。
|
||||
- s_field:字段名、显示名、控件类型、数据库类型、长度/精度/小数位、是否可空、默认值、写模式、选项、启用。
|
||||
- s_field_group:分组标题、多语言、布局方向、排序、启用。
|
||||
- s_field_edit:可见性、必填、只读、禁用、栅格宽度、高度、占位符、排序。
|
||||
- s_field_view:可见性、分组归属、多语言、排序、列宽。
|
||||
- s_field_query:组件、操作符、默认值、排序、启用。
|
||||
|
||||
[本节为概览性内容,不直接分析具体文件]
|
||||
Reference in new issue
Block a user