摘要

本文聚焦低代码平台模版配置面板参数元数据协议及 PRD2Code Schema 协议,明确协议结构、字段定义、预置设置器使用及相关约定,为低代码组件开发、模版配置提供标准化指导,适用于低代码平台开发者、组件封装者及模版配置人员。

一、术语与缩略语

明确核心术语,统一认知,避免歧义:

名称 描述
模版 低代码平台“样板间”,用于快速生成标准化页面/组件
编辑器 可视化操作平台,用于模版个性化配置、属性修改及结构调整

二、元数据定义协议

元数据定义协议是低代码模版配置的核心,用于规范模版描述格式、配置逻辑及扩展能力,核心分为两大模块:模版配置面板参数元数据协议、PRD2Code Schema 协议。

2.1 模版配置面板参数元数据协议

物料配置需产出符合《低代码引擎物料协议规范》的 JSON Schema,如需补充属性描述、定制编辑体验(如修改 Setter、调整展示顺序),可直接修改该 Schema。本协议用于定义模版配置面板参数,保障配置标准化、可复用。

2.1.1 协议结构

单个模版的描述为 JSON 结构,核心包含两个独立且职责清晰的模块:

  • 基础信息:组件/模版的核心标识,用于平台展示、识别和引入。
  • 能力配置/体验增强:优化搭建编辑体验,定制配置面板交互逻辑与控件样式。

2.1.2 基础信息字段定义

基础信息字段用于唯一标识模版,必填字段需严格填写,确保平台正常识别使用,具体说明如下:

字段 字段描述 字段类型 允许空
componentName 组件/模版唯一名称,用于代码引用和平台识别 String
title 组件/模版中文名称,用于平台界面展示 String
description 组件/模版功能描述,帮助使用者了解用途 String
screenshot 组件/模版快照图片 URL,用于平台可视化展示 String
icon 组件/模版小图标 URL,用于平台列表快速识别 String (URL)
npm npm 源引入描述对象,用于加载组件源码 Object
npm.package 源码组件库名称,对应 npm 包名 String
npm.exportName 源码组件导出名称,用于代码导入 String
npm.subName 子组件名称(组件存在子组件时) String
npm.destructuring 是否采用解构方式导入组件 Bool
npm.main 组件入口路径,用于加载组件源码 String
npm.version 源码组件版本号,保障版本一致性 String
snippets 组件库展示描述,用于平台组件面板配置 Object[]
priority 组件在同一分类中的排序优先级 String

2.1.3 编辑体验增强配置(configure)

用于定制模版配置面板编辑体验,包含 4 个核心配置维度,可灵活调整,具体说明如下:

字段 字段描述 字段类型
props 属性面板配置,定义面板字段、控件等 Array
component 组件能力配置,定义组件约束、行为等 Object
supports 通用扩展配置能力,定义样式、事件等扩展支持 Object
advanced 高级特性配置,控制组件在设计器中的个性化表现 Object
2.1.3.1 属性面板配置(props)

props 是 configure 的核心子配置,用于定义属性面板具体字段和控件,数组中每个对象对应一个配置项,核心字段说明:

字段 字段描述 字段类型 备注
type 指定配置项类型 Enum 可选:‘field’(单个字段)、‘group’(字段分组)
display 指定配置项展示方式 Enum 可选:‘accordion’等,默认’inline’
title 分组标题 String 仅 type = 'group’时生效
items 分组下的属性列表 Array 仅 type = 'group’时生效
name 属性名,与组件 props 字段对应 String 仅 type = 'field’时生效
defaultValue 属性默认值 Any 仅 type = 'field’时生效,视字段类型而定
condition 控制当前 prop 是否展示 Function 参数:(target: IPublicModelSettingField) => boolean
setter 定义属性编辑控件 String|Object|Function 仅 type = 'field’时生效,支持 JSExpression/JSFunction
extraProps 扩展配置属性,不做流通要求 Object 用于扩展 setter 额外功能(如取值/赋值钩子)

核心说明:需根据 type 选择合适的 setter,以下介绍设置器扩展属性及系统预置 setter 类型。

2.1.3.1.1 设置器扩展属性(setter)

setter 可通过配置 props 定制展示和交互效果,以 StringSetter 为例,配置示例如下:

示例:StringSetter配置
// StringSetter 配置(多语言支持+占位提示)
const PageMeta: IPublicComponentMetadata = {
  "configure": {
    "props": [
      {
        "name": "pageTitle",
        "title": {
          "label": {
            "type": "i18n",
            "zh_CN": "标题",
            "en_US": "Title"
          }
        },
        "setter": {
          "componentName": "StringSetter",
          "props": {
            "placeholder": "请输入标题"
          }
        }
      }
    ]
  }
};

配置效果:
说明:setter 可配置属性因类型而异,需结合业务需求选择。

2.1.3.1.2 预置设置器列表

系统内置常用 setter,覆盖多数业务场景,可直接使用,无需重复开发,详情如下:

预置 Setter 返回类型 用途
ArraySetter T[] 配置数组类型属性(表格列、列表项等)
BoolSetter boolean 配置开关类属性(是否显示、启用等)
ColorSetter string 配置颜色类属性(字体色、背景色等)
DateMonthSetter - 配置仅需月份的日期属性
DateRangeSetter - 配置时间区间(开始-结束时间)
DateSetter - 配置单个日期属性
DateYearSetter - 配置仅需年份的日期属性
JsonSetter object 配置复杂 JSON 对象属性
NumberSetter number 配置数字类属性(大小、数量等)
ObjectSetter Record<string, any> 配置数组中的对象项(通常内嵌于 ArraySetter)
RadioGroupSetter string | number | boolean tab 形式单选项配置
SelectSetter string | number | boolean 下拉形式单选项配置
StringSetter string 配置短文本属性(标题、标签等,不可换行)
TextAreaSetter string 配置长文本属性(描述、备注等,可换行)
TimePicker - 配置时间属性(开始时间、结束时间等)
2.1.3.2 组件能力配置(component)

用于定义组件的能力、约束和行为,部分信息可从组件视图实例直接获取,核心字段如下:

字段 用途 类型
isContainer 标识组件是否为容器组件(可包含子组件) Boolean
descriptor 组件树描述信息,用于识别组件结构 String
disableBehaviors 屏蔽设计器中选中组件时的操作项(默认:copy、hide、remove) String[]
配置示例
// 容器组件能力声明示例
{
  configure: {
    component: {
      isContainer: true, // 标识为容器组件,可嵌套子组件
      descriptor: 'container', // 组件树描述
      disableBehaviors: ['copy', 'remove'] // 禁止复制、删除操作
    },
  },
}
2.1.3.3 通用扩展面板支持性配置(supports)

用于声明模版配置面板的通用扩展能力,适用于样式、事件等场景,配置示例如下:

// 通用扩展能力声明示例
{
  "configure": {
    "supports": {
      "events": ["onClick", "onChange"], // 支持的交互事件
      "loop": true, // 支持循环配置
      "condition": true, // 支持条件显示/隐藏
      "style": true // 支持自定义样式编辑
    }
  }
}
2.1.3.4 高级特性配置(advanced)

用于控制组件在设计器中的个性化表现,可实现自动初始化子组件、截获组件操作事件等高级功能,无需额外开发即可扩展组件能力。
说明:advanced 配置无固定字段,需结合具体业务场景灵活调整。

2.1.4 协议设计

协议统一规范,定义组件配置格式,确保组件正常渲染、配置及复用,是物料化开发的核心基础。

1. IPublicComponentMetadata(组件元数据接口)

定义组件核心元信息的配置格式,明确组件基础属性及必填要求,支撑组件在低代码平台的展示与识别。

属性名 类型 必填 默认值 描述
componentName string - 组件唯一标识名称
title string - 组件展示标题
icon string - 组件展示图标
description string - 组件功能描述
screenshot string - 组件快照截图地址
npm IPublicNpmInfo - npm源引入配置对象
configure IPublicConfigure - 组件编辑体验配置
template_id string - 样板间唯一标识ID
blocks TemplateBlock[] - 样板间变体配置集合
2. TemplateBlock(模版区块)

定义样板间变体的基础结构,用于区分不同变体的核心配置,支撑样板间变体切换功能。

属性名 类型 必填 描述
name string 区块唯一名称
value string 区块对应值
3. IPublicNpmInfo(NPM源配置接口)

规范组件 npm 源引入格式,确保组件可从 npm 仓库正常拉取、引入和使用。

属性名 类型 必填 描述
componentName string 源码组件名称
package string 源码组件库名称
version string 源码组件版本号
isDestructuring boolean 是否解构引入组件
exportName string 源码组件导出名称
subName string 子组件名称
main string 组件入口文件路径
4. IPublicFieldConfig(属性面板配置接口)

定义组件属性面板的结构、属性及显示规则,支撑组件在低代码平台的可视化配置。

属性名 类型 必填 描述
type 'field' | 'group' 配置类型(单个字段/分组)
name string 属性名称
title string 属性显示标题
setter IPublicSetterType 属性设置器配置
items IPublicFieldConfig[] 分组类型下的子配置项
5. IPublicConfigure(编辑体验配置接口)

优化组件在低代码平台的编辑操作体验,定义组件编辑相关核心能力。

属性名 类型 必填 描述
props IPublicFieldConfig[] 属性面板配置项集合
component IPublicComponentConfigure 组件核心操作能力配置
supports IPublicConfigureSupport 通用扩展面板支持配置
6. IPublicConfigureSupport(通用扩展支持配置)

定义组件是否支持低代码平台的样式、循环、条件渲染等通用扩展功能。

属性名 类型 必填 描述
style boolean 是否支持样式设置
loop boolean 是否支持循环设置
condition boolean 是否支持条件渲染设置
7. IPublicComponentConfigure(组件能力配置接口)

定义组件在低代码平台中的核心操作能力及组件树描述信息。

属性名 类型 必填 描述
descriptor string 组件树结构描述
disableBehaviors string[] | string 禁用操作(copy/move/remove)
8. IPublicSetterType(设置器类型)

定义组件属性设置器的两种形式,支撑属性的可视化配置。

type IPublicSetterType = IPublicSetterConfig | string;
  • IPublicSetterConfig - 设置器详细配置对象
  • string - 已注册的设置器名称
9. IPublicSetterConfig(设置器配置接口)

定义具体设置器的使用规则及参数传递方式,确保设置器正常生效。

属性名 类型 必填 描述
componentName string 指定设置器组件名称
props Record<string, unknown> 传递给设置器的参数
condition (target: any) => boolean MixedSetter优先选中判断条件

2.2 PRD2Code Schema 协议

PRD2Code Schema 是基于低代码引擎的结构化 JSON 对象,核心用于将产品需求(PRD)转化为低代码平台可直接使用的结构化配置,支持快速生成页面/组件。其核心特点:

  • 包含 componentsTree、props、children、fields 等核心字段,完整描述页面结构与属性;
  • 可描述表格列、搜索条件、表单字段等业务配置;
  • 遵循低代码引擎标准,配置可直接在引擎中运行。

2.2.1 协议示例

// PRD2Code Schema 核心示例
{
  "version": "1.0.0", // 协议版本(兼容控制)
  "componentsMap": [ // 组件映射:页面所需组件引入配置
    {
      "componentName": "ProForm",
      "package": "react-pro-components",
      "version": "1.0.0",
      "destructuring": true,
      "exportName": "ProForm"
    }
  ],
  "componentsTree": [ // 页面组件树:描述页面结构
    {
      "id": "demo-form-page", // 页面唯一标识
      "componentName": "Page", // 固定为Page(页面容器)
      "fileName": "DemoFormPage", // 页面文件名
      "props": {},
      "children": [ // 页面子组件:核心表单
        {
          "componentName": "ProForm.CardForm",
          "props": {
            "formProps": {
              "initialValues": { "userName": "admin", "phone": "13800138000" },
              "layout": "horizontal"
            },
            "pageHeaderProps": { "title": "用户表单", "tag": { "children": "编辑中", "color": "blue" } },
            "fields": [ // 表单字段
              [
                { "type": "title", "title": "基础信息" },
                {
                  "columns": 1,
                  "fields": [
                    {
                      "type": "input",
                      "name": "userName",
                      "label": "用户名",
                      "required": true,
                      "rules": [{ "required": true, "message": "请输入用户名" }]
                    }
                  ]
                }
              ]
            ],
            "onSubmit": { // 提交事件
              "type": "JSFunction",
              "value": "function() { message.success('提交成功:' + JSON.stringify(this.form.getFieldsValue())) }"
            }
          }
        }
      ]
    }
  ],
  "meta": { // 页面元信息
    "name": "用户表单示例",
    "creator": "admin",
    "gmt_create": "2026-04-17 10:00:00"
  },
  "router": { // 路由配置
    "baseUrl": "/",
    "routes": [{ "path": "user-form", "page": "demo-form-page" }]
  },
  "pages": [{ "id": "demo-form-page", "treeId": "demo-form-page" }]
}

2.2.2 协议约定

PRD2Code Schema 遵循低代码引擎核心规范,明确各接口/类型的字段约束与关联,保障配置规范、兼容可扩展,为低代码应用搭建及组件加载提供标准依据。

核心区别标注说明:

  • 【接口(interface)】用于定义对象固定结构,含具体属性;
  • 【类型别名(type)】用于描述联合、复合、数组等数据类型,无固定属性名。
1. IAppDescriptionSchema(应用描述核心接口)【接口(interface)】

应用描述核心接口,定义低代码应用完整结构。

属性名 类型 是否必填 描述
version string 应用协议版本号
componentsMap IComponentImportSchema[] 应用所有组件映射关系
componentsTree IPageContainerSchema[] 应用组件树,长度固定为 1
2. IComponentImportSchema(组件映射接口)【接口(interface)】

组件映射核心接口,定义组件引入相关配置。

属性名 类型 是否必填 描述
componentName string 源码组件名
package string 源码组件库名
version string 源码组件版本
destructuring boolean 是否解构导入
exportName string 组件导出名
subName string 子组件名
main string 组件入口路径
3. IPageContainerSchema(页面容器Schema)【接口(interface)】

页面容器 Schema,继承自 IComponentTreeNodeSchema,作为组件树顶层容器。

属性名 类型 是否必填 描述
componentName ‘Page’ 组件名,固定为’Page’
(继承自IComponentTreeNodeSchema) - - 继承节点所有属性
4. IComponentTreeNodeSchema(组件树节点描述)【接口(interface)】

组件树基础协议,描述单个组件树节点信息。

属性名 类型 是否必填 描述
id string 节点唯一标识
componentName string 组件名,必填且首字母大写
props { children?: IComponentNodeData IComponentNodeData[] } & IComponentPropsMap
children IComponentNodeData IComponentNodeData[]
5. IComponentPropsMap(组件属性映射类型)【类型别名(type)】

定义组件属性映射规则。

类型 描述
ICompositeObject<IComponentNodeData IComponentNodeData[]>
6. IComponentNodeData(节点数据联合类型)【类型别名(type)】

定义组件树节点数据源类型。

类型 描述
IComponentTreeNodeSchema string
7. ICompositeValue(复合类型)【类型别名(type)】

包含所有可能的值类型,支撑复杂配置。

类型 描述
IJSONValue ICompositeValue[]
8. ICompositeObject(复合对象类型)【接口(interface)】

泛型复合对象类型,用于复杂属性配置。

属性名 类型 是否必填 描述
[key: string] ICompositeValue T
9. IJSONObject(JSON对象类型)【接口(interface)】

标准JSON键值对结构,支撑基础配置传递。

属性名 类型 是否必填 描述
[key: string] IJSONValue 键值对,值为任意JSON类型
10. IJSONValue(JSON值类型联合类型)【类型别名(type)】

定义所有可能的JSON值类型。

类型 描述
boolean string
11. IJSONArray(JSON数组类型)【类型别名(type)】

标准JSON数组类型,作为IJSONValue的组成部分。

类型 描述
IJSONValue[] 数组元素均为IJSONValue类型

三、核心接口定义

3.1 接口列表

适配页面模板、Schema、代码生成、文件上传全场景业务,接口语义清晰、易维护。

接口说明 请求方法 接口路径 入参 返回值 备注
根据模板 ID 查询页面模板 GET /spc/template/{id} 模板 ID 模板基础信息+样板代码 路径传参
根据 Jira ID 查询 Schema GET /spc/template/schema/jira/{jiraId} Jira ID Schema 结构化数据 业务关联查询
根据 Schema ID 查询 Schema GET /spc/template/schema/{schemaId} Schema ID 完整 Schema 配置 详情查询
新增/更新 Schema POST /spc/template/schema Schema 结构化数据 操作结果+ID 传ID=更新,不传=新增
根据 Schema ID 删除 Schema DELETE /spc/template/schema/{id} Schema ID 操作结果 逻辑删除/物理删除
Schema 列表分页搜索 GET /spc/template/schema/list 分页参数/搜索关键词 Schema 列表+分页信息 支持名称、Jira ID 筛选
Schema 转前端代码 POST /spc/template/schema-to-codes Schema 结构化数据 生成的代码实体 核心AI代码生成接口
根据 Schema ID 查询前端代码 GET /spc/template/code/{schemaId} Schema ID 代码内容+版本信息 一对一关联查询
图片上传至 CDN POST /spc/template/upload/cdn form-data(文件) 文件 CDN 地址 支持图片/附件上传

3.2 模板template id协议

模板 ID 采用 8 位数字分层编码,按「端类型+业务属性+模板类型+细分变种」四级定义,用于唯一标识、分类管理所有页面模板。

3.2.1 编码结构

[端类型(2位)][业务属性(2位)][模板类型(2位)][细分变种(2位)]

位数 名称 说明
1-2 端类型 设备端标识(PC/移动端)
3-4 业务属性 通用/各业务线专属
5-6 模板类型 页面类型(表格/表单/详情/日志)
7-8 细分变种 模板细分类型 + 版本序号

3.2.2 字段取值规范

1. 端类型(1-2位)

编码 类型
01 PC 端
02 移动端(预留)
03 小程序(预留)

2. 业务属性(3-4位)

编码 类型
01 通用
02 业务线 A
03 业务线 B
04 业务线 C
05 业务线 D

3. 模板类型(5-6位)

编码 类型
01 表格查询页
02 表单页
03 详情页
04 日志页

4. 细分变种(7-8位)

  • 固定规则:从 01 开始自增编号
  • 代表同类型下的不同页面形态(基础版、带 Tab 版、高级版等)

3.2.3 核心编码映射表

端类型 业务属性 模板类型 细分变种 模板ID 模板名称
01 PC 01 通用 01 表格查询页 01 基础表格 01010101 基础表格查询页
02 带Tab表格 01010102 带 Tab 表格查询页
03 高级表格 01010103 高级表格查询页
02 表单页 01 基础表单 01010201 基础表单页
02 高级表单 01010202 高级表单页
03 分步表单 01010203 分步表单页
03 详情页 01 基础详情 01010301 基础详情页
04 日志页 01 基础日志 01010401 基础日志页

3.2.4 设计优势

  • 唯一性:8 位编码全局唯一,无冲突
  • 可读性:层级清晰,一眼识别模板属性
  • 扩展性:预留编码位,支持后续业务扩展
  • 易管理:按规则自动生成,便于检索维护

四、核心表结构设计(MySQL)

4.1 核心表总览

表名 中文名称 核心作用
spc_page_template 页面模板表 存储页面模板基础配置信息
spc_page_schema 页面 Schema 表 存储 GUI 配置后的页面 Schema 结构化数据
spc_page_code 页面代码表 存储 AI 生成的标准化前端代码
spc_operation_log 操作日志表 记录全流程操作,生成日志

4.2 分表详细设计

1. spc_page_template(页面模板表)
存储系统内置/自定义的页面样板模板,是代码生成的基础骨架来源

字段名 类型 约束 说明
id bigint 主键 自增 ID
template_name varchar(255) NOT NULL 模板名称
template_schema text NOT NULL 模板默认 Schema 结构
template_code text NOT NULL 模板样板代码(带注释)
create_time datetime NOT NULL 创建时间
update_time datetime NOT NULL 更新时间

2. spc_page_schema(页面 Schema 表)
存储用户在配置平台生成的页面 Schema 数据,关联模板与业务标识

字段名 类型 约束 说明
id bigint 主键 自增 ID
template_id bigint 外键 关联模板 ID
jira_id varchar(100) - 业务关联 Jira ID
page_name varchar(255) NOT NULL 页面名称
schema_json text NOT NULL 页面 Schema 结构化数据
operator_name varchar(100) NOT NULL 操作人名称
create_time datetime NOT NULL 创建时间
update_time datetime NOT NULL 更新时间

3. spc_page_code(页面代码表)
存储 AI 根据 Schema 生成的前端源码,支持多版本管理

字段名 类型 约束 说明
id bigint 主键 自增 ID
schema_id bigint 外键 关联 Schema ID
code_content text NOT NULL 生成的前端源码
version varchar(50) - 代码版本号
create_time datetime NOT NULL 创建时间

4. spc_operation_log(操作日志表)
记录 Schema 保存、代码生成、导出等全链路操作日志,用于审计排查

字段名 类型 约束 说明
id bigint 主键 自增 ID
schema_id bigint 外键 关联 Schema ID
operate_type varchar(50) NOT NULL 操作类型(生成/保存/导出)
request_json text - 请求参数数据
response_json text - 响应结果数据
operate_status tinyint NOT NULL 状态:0 失败;1 成功
cost_time double - 执行耗时(秒)
operator_name varchar(100) NOT NULL 操作人名称
create_time datetime NOT NULL 日志生成时间

4.3 表关联关系

  1. 一对多spc_page_template.idspc_page_schema.template_id(一个模板对应多个 Schema)
  2. 一对多spc_page_schema.idspc_page_code.schema_id(一个 Schema 生成多版代码)
  3. 一对多spc_page_schema.idspc_operation_log.schema_id(一个 Schema 对应多条操作日志)

5. 样板间代码协议(注释规范+转译规则)

5.1 样板间代码注释规范协议

5.1.1 规范目标

为实现代码块与 Schema 的精准映射,便于系统识别关联关系,核心要求如下:所有可映射到 Schema 的代码块,需添加含结构路径、绑定字段名、组件名等核心信息的特定格式注释,确保系统可识别、映射准确。

5.1.2 注释语法规范

根据代码块类型(单行/区块),采用对应简洁统一的注释格式,具体如下:

Case 1: 单行代码注释
// 单行注释:绑定单个表单字段
// @schema-mapping:<路径描述> | <绑定字段>
Case 2: 区块代码注释
// 区块注释
// @schema-block-begin:<路径描述> | <绑定字段>
// ... 代码块 ...
// @schema-block-end:<路径描述>

5.1.3 区块类型(block-type)规范

定义不同页面 UI 区块对应的 block-type,明确其用途及典型组件位置,助力系统识别映射,具体规范如下表:

Block 类型(block-type) 用途 对应Schema字段路径示例 常见组件
table-fields 表格列配置 props.columns Table, ProTable
table-filters 表格搜索/筛选项 props.searchConfig.items ProTable, SearchBar
form-fields 表单字段 props.fields, formProps.fields Form, ProForm
header-info 页头信息展示 pageHeaderProps.form.fields PageHeader, CardHeader
actions 操作按钮区域 props.actions, toolBarRender Button, Dropdown
section 页面结构分段(卡片、Panel等) children[n], tabs[n].content Card, Panel, Section
tabs 多页签区域 props.tabs.items Tabs, ProCard.Tabs
modal-fields 弹框内表单字段 modalProps.fieldsmodal.content Modal, DrawerForm
table-operations 表格操作列 props.columns[].render Table, ProTable
custom-block 自定义区块 按业务场景定义 自定义组件

5.1.4 注释字段说明

注释核心字段的含义及要求如下,确保信息准确可解析:

字段名 说明
路径描述 基于componentsTree的 Schema 路径(支持 dotPath,示例:children[0].props.fields[0][1].fields[0]
绑定字段 对应代码中props.nameprops.label等核心字段名

5.1.5 注释示例

// 表格筛选项区块注释示例
// @schema-block-begin:componentsTree[0].props.searchConfig.items | createTime
{
  label: '创建时间',
  name: 'createTime',
  type: 'rangePicker',
},
// @schema-block-end:componentsTree[0].props.searchConfig.items

5.2 样板间代码约束关系与转译规则协议

5.2.1 转译目标

保障代码转译准确规范、保留业务灵活性,实现:保留样板间核心布局与逻辑,移除 Schema 未提及冗余 UI 元素,允许用户补充默认值、初始值、函数体等个性化配置。

5.2.2 核心转译规则

规则1:映射关系识别

@schema- 前缀注释的代码段,即与 Schema 指定路径字段存在映射关系,系统将按注释关联匹配。

单行注释与区块注释示例,参考:“5.1.2 注释语法规范”

识别映射关系后,需根据 block-type 匹配页面区块,参考:“5.1.3 区块类型(block-type)规范”

规则2:结构一致性判断

核心依据 type(组件类型)、name(字段名)、label(标签名)三项字段,三者均与 Schema 一致,则认定结构一致。

规则3:未映射内容删除

为避免冗余,以下代码段直接删除,不参与转译:

  • @schema- 前缀注释的代码段;
  • name 字段在对应 Schema 中不存在的代码段;
  • type(组件类型)未在 Schema 当前节点出现的代码段;
  • 注释路径描述无效或与 Schema 实际路径不匹配的代码段。
规则4:属性值覆盖

结构与 Schema 一致但部分字段值不同时,按以下规则替换属性值,确保与 Schema 同步:

  • 需替换属性(若存在,用 Schema 对应值覆盖内容):label(标签)、required(必填项)、rules(校验规则)、initialValues(初始值)、onSubmit(提交事件);
  • 样板代码有某字段但 Schema 未提及的,保留样板原始值。
规则5:样板结构优先

转译优先保留样板间代码原有结构,不重组顺序、不调整分组,即使 Schema 字段顺序、嵌套位置与样板不同,仍保留样板结构,仅替换字段值。

规则6:业务逻辑保留

完整保留工程基础结构(import导入、export default导出、函数组件定义、页面layout及样式容器)。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐