x-render
x-render copied to clipboard
旧元数据的动态适配等
期望的新功能 (describe the expected new feature)
自定义组件新增内置配置后(非显式配置),对于已经配置好的表单元数据,再不拖动组件的前提下,自动增长内置的配置。
简述一下使用场景,便于开发者更好理解新功能的必要性 (describe your scenario for us to understand the need)
背景
列:
1: 在内置input组件配置基础上额外新增个性化配置,比如isMoney (显式配置可以在配置面板进行配置)
{
text: '输入框',
name: 'input',
schema: {
text: '输入框',
name: 'input',
title: '输入框',
type: 'string',
},
setting: {
props: {
title: '选项',
type: 'object',
labelWidth: 80,
},
isMoney: {
title: '是否金额',
type: 'boolean',
},
***,
},
},
2:此时该组件 正常在迭代使用的过程中,产生了很多基于该组件的表单页面正常使用
3:此时因为业务的扩展等其他问题,我需要在上面的配置的基础上新增 一个内置的rule (非显示配置,不再配置面板里面)
{
text: '输入框',
name: 'input',
schema: {
text: '输入框',
name: 'input',
title: '输入框',
type: 'string',
// 这里我需要额外内置通用的一些正则检验,不再setting配置面版里面
rules: inputBaseRules,
},
setting: {
props: {
title: '选项',
type: 'object',
labelWidth: 80,
},
isMoney: {
title: '是否金额',
type: 'boolean',
},
****
},
},
4:新增上面的内置检验以后,对于新表单页面重新拖动以后自然而然携带了新的rule支持
现在的问题是,对于在第2步正常迭代产生的历史的配置元数据,是无法携带该rule的,
rule 不是显式的在配置面板可以编辑,而且我们的场景是该rule需要在所有的表单都直接生效,(旧历史组件数据无法生效)
目前的处理方式:
1:因为暂时使用的表单页面还不多,通过导入导出的功能,手动修复部分数据,给旧的组件元数据手动添加
2:在某些组件的显示配置更改的时候,在代码里面,自动携带补充内置的一些通用规则
3:设计时选中某个组件时,识别组件进行内置规则补充,
目前在迭代开发使用的过程中发现,还是发现有很多很多这种情况,然后发现无论时上面处理方式的那种,都有比较明显的缺陷,都太过于繁琐。
是否可以 有其他方式或者思路更方便的处理上面的情况,自动适配补充配置?(目前上面的情况迭代中发现还是比较多的)