x-render icon indicating copy to clipboard operation
x-render copied to clipboard

旧元数据的动态适配等

Open killdada opened this issue 3 years ago • 0 comments

期望的新功能 (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:设计时选中某个组件时,识别组件进行内置规则补充,

目前在迭代开发使用的过程中发现,还是发现有很多很多这种情况,然后发现无论时上面处理方式的那种,都有比较明显的缺陷,都太过于繁琐。

是否可以 有其他方式或者思路更方便的处理上面的情况,自动适配补充配置?(目前上面的情况迭代中发现还是比较多的)

killdada avatar May 13 '22 09:05 killdada