Skip to content

创建同名字兄弟节点覆盖 #87

@chengandguo

Description

@chengandguo

如果子节点包含field_2, 创建兄弟节点需要从3开始
`一种可能得修复方法
getRandomName(propertiesData) {
const currentField = "field_" + fieldNum++;
for (const key in propertiesData) {
if (key === currentField) {
return this.getRandomName(propertiesData);
}
}
return currentField;
},

addFieldAction: function (state, action, oldState) {
const keys = action.prefix;
let oldData = oldState.data;
let name = action.name;
let propertiesData = utils.getData(oldData, keys);
let newPropertiesData = {};

let parentKeys = utils.getParentKeys(keys);
let parentData = utils.getData(oldData, parentKeys);
let requiredData = [].concat(parentData.required || []);

if (!name) {
  newPropertiesData = Object.assign({}, propertiesData);
  let ranName = "field_" + fieldNum++;
  newPropertiesData[ranName] = utils.defaultSchema.string;
  requiredData.push(ranName);
} else {
  for (let i in propertiesData) {
    newPropertiesData[i] = propertiesData[i];
    if (i === name) {
      let ranName = this.getRandomName(propertiesData);   // 不能简单自增需要判断
      newPropertiesData[ranName] = utils.defaultSchema.string;
      requiredData.push(ranName);
    }
  }
}
utils.setData(state.data, keys, newPropertiesData);
// add required
parentKeys.push("required");
utils.setData(state.data, parentKeys, requiredData);

}
`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions