fx-form-widget
Version:
140 lines (135 loc) • 3.99 kB
JavaScript
;
exports.__esModule = true;
exports.transformPartitionsToSchemas = exports.transformArrayToMap = exports.setDatas = exports.findSchemaDataIndex = void 0;
// 转换子表单或者分组或者分割线组件中children属性
var transformSchemaChildrenToValue = function transformSchemaChildrenToValue(schemas, map) {
if (!Array.isArray(schemas)) {
return;
}
return schemas.map(function (schema) {
return transformSchemaToValue(schema, map);
});
};
var hasChildrens = ['subform', 'group'];
// 转换schma对象
var transformSchemaToValue = function transformSchemaToValue(schema, map) {
var _schema$viewSchema = schema.viewSchema,
viewSchema = _schema$viewSchema === void 0 ? {} : _schema$viewSchema,
widget = schema.widget,
children = schema.children,
wid = schema.wid;
viewSchema.data = map.get(wid) || map.get(viewSchema.fieldName);
if (hasChildrens.includes(widget)) {
schema.children = transformSchemaChildrenToValue(children, map);
}
return schema;
};
var transformPartitionsToSchemas = exports.transformPartitionsToSchemas = function transformPartitionsToSchemas(schemas, map) {
if (!Array.isArray(schemas)) {
return [];
}
return schemas.map(function (schema) {
return transformSchemaToValue(schema, map);
});
};
var transformArrayToMap = exports.transformArrayToMap = function transformArrayToMap(datas) {
var map = new Map();
if (!Array.isArray(datas)) {
return;
}
datas.forEach(function (data) {
var wid = data.wid,
value = data.value,
fieldName = data.fieldName;
if (wid) {
map.set(wid, value);
}
if (fieldName) {
map.set(fieldName, value);
}
});
return map;
};
// 通过递归去寻找当前正在被选中的节点
var findSchemaDataIndex = exports.findSchemaDataIndex = function findSchemaDataIndex(newSchemaDatas, selectedWid) {
var index = -1;
if (!Array.isArray(newSchemaDatas)) {
return {
index: index
};
}
if (selectedWid) {
var _index = newSchemaDatas.findIndex(function (schemaData) {
return schemaData.wid === selectedWid;
});
if (_index > -1) {
return {
index: _index,
children: newSchemaDatas
};
}
for (var i = 0; i < newSchemaDatas.length; i++) {
var children = newSchemaDatas[i].children;
if (!children) {
continue;
}
var _index2 = findSchemaDataChildrenIndex(children, selectedWid);
if (_index2 > -1) {
return {
index: _index2,
children: children
};
}
return findSchemaDataIndex(children, selectedWid);
}
}
return {
index: index,
children: newSchemaDatas
};
};
//去子节点中寻找
var findSchemaDataChildrenIndex = function findSchemaDataChildrenIndex(children, selectedWid) {
if (!Array.isArray(children)) {
return -1;
}
var index = children.findIndex(function (schemaData) {
return schemaData.wid === selectedWid;
});
return index;
};
// 处理数据
var setDatas = exports.setDatas = function setDatas(schemaDatas, datas, values) {
if (!Array.isArray(schemaDatas)) {
return;
}
schemaDatas.forEach(function (schemaData) {
var viewSchema = schemaData.viewSchema,
wid = schemaData.wid,
children = schemaData.children,
widget = schemaData.widget;
var _viewSchema$fieldName = viewSchema.fieldName,
fieldName = _viewSchema$fieldName === void 0 ? '' : _viewSchema$fieldName;
if (widget !== 'group') {
datas.push({
wid: wid,
fieldName: fieldName,
value: values[wid] || values[fieldName]
});
} else {
setDatas(children, datas, values);
}
});
};
var getDataOrDefaultData = function getDataOrDefaultData(data, defaultData) {
if (!isEmpty(data)) {
return data;
}
if (!isEmpty(defaultData)) {
return defaultData;
}
return null;
};
var isEmpty = function isEmpty(value) {
return value === void 0 || value === null;
};