设计页面添加物料组件 - 文件改动分析

灵枢低代码平台 (LCDP) · 物料组件开发完整指南 · 点击流程图节点查看详细文档

7
必改文件数
3
场景类型
5
层级涉及

三种开发场景

🧩 纯物料组件

7 个文件

不对应业务字段类型,仅是页面设计器中的纯 UI/交互/容器能力。如 CommonBtn、CommonTxt、GroupPanel、Tabs 等。

推荐参考样板:CommonBtn、GroupPanel

🔗 字段类型 + 物料组件

20+ 个文件

既有业务字段定义,又有页面物料渲染。如金额、币种、手机号码、业务组织/人员等。

推荐参考样板:mobile-number

📝 纯字段类型

5 个文件

只存在于业务模型,没有页面物料组件。如 BinaryObject 等仅服务后端的字段类型。

推荐参考样板:BinaryObject

纯物料组件添加流程图(点击节点下钻查看详解)

纯物料组件 - 文件改动清单(7个必改)

步骤文件路径操作作用说明
1packages/types/widget-pc/WidgetType.ts修改在 WidgetType 枚举中添加新组件类型值,作为全局唯一标识
2packages/form-designer/src/config/widget/<组件名>.vue新建实际的 Vue 渲染组件,定义 UI 结构和样式
3packages/form-designer/src/config/widget-helper/<组件名>Helper.ts新建Helper 配置对象,实现 buildMaterialConfig、buildSettings、buildWidget、dragInfo 等接口
4packages/form-designer/src/config/RegisterWidget.ts修改导入 Vue 组件并在 SYS_COMPS_MAP 中注册:[WidgetType.Xxx]: { instance: XxxWidget }
5packages/form-designer/src/config/RegisterWidgetHelper.ts修改导入 Helper 并添加到 SYS_WIDGET_HELPERS 数组
6packages/form-designer/src/config/Material.ts修改在对应分组(通用/容器/导航等)的 widgetTypeList 中添加 WidgetType,使其出现在左侧物料面板
7packages/form-designer/src/locales/model/Info.json修改添加物料显示名称、属性面板文案等国际化文案

架构分层与文件分布

共享契约层
packages/types
WidgetType.tsFieldType.tsSettingType.tsregistry.ts
↓ 类型定义
页面设计器层
packages/form-designer
Material.tsRegisterWidget.tsRegisterWidgetHelper.tswidget/*.vuewidget-helper/*.tsRegisterSettings.tssettings-helper/*.tslocales/Info.json
↓ (纯物料通常不涉及以下层)
业务组件层
packages/business-components
enum/settings/<field>/utils/*Utils.tsservice/*.ts
↓ (纯物料通常不涉及以下层)
建模层
apps/lcdp
FieldType.tshelper/<field>/Schema.tsmodeling.json
↓ (按需)
移动端镜像层
form-designer/widget-mobile
widget/*.vuewidget-helper/*.tsMaterial.ts

高亮文件 = 纯物料组件必改文件    灰色文件 = 纯物料通常可跳过

注册执行链

RegisterWeb.ts

setPcConfigAll()

↓ 调用 setConfigAll(PC, config)

registry.ts

registerConfigAll(platform)

↓ 依次调用

register/widget.ts

注册 widget 实例

+

register/material.ts

注册物料面板

+

register/setting.ts

注册设置项

+

register/helper.ts

注册 helper

最小验证建议

场景验证方式
纯物料组件pnpm form-designer:dev → 访问 /designer/:pageId
验证:左侧物料面板出现新组件 → 拖入画布 → 右侧属性面板正常 → 画布渲染正常
运行型物料额外验证:/form/:pageId/list/:pageId
验证:运行时页面能正确渲染该组件