in packages/form-render/src/models/filterValuesHidden.ts [25:74]
export default (_values: any, flattenSchema: object) => {
const recursiveArray = (list: any[], _path: string) => {
return list.map(item => {
if (isObject(item)) {
return recursiveObj(item, _path, item);
}
return item;
});
};
const recursiveObj = (obj: any, prePath?: string, parentData?: any) => {
for (let key of Object.keys(obj)) {
const item = obj[key];
let path = prePath ? `${prePath}.${key}` : key;
let schema = flattenSchema[path]?.schema;
if (isArray(item) && !schema) {
path = prePath ? `${prePath}.${key}[]` : `${key}[]`;
schema = flattenSchema[path]?.schema;
}
// 剔除隐藏数据
if (schema?.hidden) {
const hidden = transformHidden(schema.hidden, _values, parentData);
if (hidden) {
obj[key] = undefined;
continue;
}
}
if (isObject(item)) {
obj[key] = recursiveObj(item, path, parentData);
continue;
}
if (isArray(item) && schema?.items) {
obj[key] = recursiveArray(item, path) || [];
continue;
}
obj[key] = item;
}
return obj;
};
return recursiveObj(_values) || {};
}