UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

60 lines (57 loc) 2.04 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.getUpdateResult = exports.getFilterKeyValue = exports.flatDeepDeps = void 0; var _castArray = _interopRequireDefault(require("lodash/castArray")); var _isNil = _interopRequireDefault(require("lodash/isNil")); var _constants = require("./constants"); const getFilterKeyValue = conditions => { const values = (conditions || []).reduce((pre, cur) => { if ((0, _isNil.default)(cur.value)) return pre; pre[cur?.[_constants.DYNAMIC_ENUM.FIELD_NAME]] = cur[_constants.DYNAMIC_ENUM.VALUE]; return pre; }, {}); return values; }; /** * 根据指定字段获取数据源中的依赖字段 * 遍历依赖字段返回需要更新的字段 * @return {Array} string[] * @example * * flatDeepDeps('a', [{fieldName: 'a'}, {fieldName: 'b', dependencies: ['a']}]) * // => ['b'] */ exports.getFilterKeyValue = getFilterKeyValue; const flatDeepDeps = (field, dataSource) => { if (!Array.isArray(dataSource)) return []; const depsField = dataSource.reduce((pre, cur) => { if (!cur.dependencies) return pre; const deps = (0, _castArray.default)(cur.dependencies); if (pre.includes(cur[_constants.DYNAMIC_ENUM.FIELD_NAME])) return pre; if (deps.includes(field)) { return pre.concat(cur[_constants.DYNAMIC_ENUM.FIELD_NAME], flatDeepDeps(cur[_constants.DYNAMIC_ENUM.FIELD_NAME], dataSource)); } return pre; }, []); return depsField; }; /** * 返回更新后的数据 */ exports.flatDeepDeps = flatDeepDeps; const getUpdateResult = (updateFields, conditions) => { if (!updateFields?.length) return; const resetConditions = conditions.map(item => { const excitingField = updateFields.includes(item[_constants.DYNAMIC_ENUM.FIELD_NAME]); if (excitingField) return { ...item, value: undefined }; return item; }); return resetConditions; }; exports.getUpdateResult = getUpdateResult;