UNPKG

fx-form-widget

Version:
140 lines (135 loc) 3.99 kB
"use strict"; 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; };