# 自动匹配

自动匹配就是把所有的二级的项在输出时提升为一级。
应用场景:一般用于表单结构和接口字段不一致时匹配。比如:现需要保存一个页面信息,后台需要保存接口的字段只需要一级{pageName, fontSize, fontColor, backgroundImage, backgroundColor), 但对产品设计来说,可能需要把字体和背景按各自模块区分,页面结构才更加清晰。
字段(见行高亮):


 










schema: {
  autoMatch: true,    // 设置autoMatch为true; autoMatch只有在要节点中有效
  properties: {
    name: {
      label: "名称",
      component: "el-input",
      value: "天天" 
    }
    // ... 其它项
  }
}

# 实例

可打开调试面版查看输出结果,formValue全部都平级了

注意

  • autoMatch设置只能在根节点中设置,其它块是无效的;
  • 自动匹配只影响一级和二级的表单值输出,对根值rootData没有影响;
  • 因为输出表单值时,二级要提升为一级,为了保持key的唯一性,编写schema时,一级和二级的所有的key(如:pageName、font、background、fontSize、backgroundImage)不能相同。

# 设值

在自动匹配中,因为key是唯一的,下面的值的设置效果是一样的:
如:

form.setValue({     // 正常结构
  font: {
    fontSize: 12
    }
  });

form.setValue({     // 简化结构
  fontSize: 12
  });

form.setValue("font.fontSize", 12);  // 正常结构
form.setValue("fontSize", 12);  // 简化结构