UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

50 lines (48 loc) 1.78 kB
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; import castArray from 'lodash/castArray'; import isNil from 'lodash/isNil'; import { DYNAMIC_ENUM } from "./constants"; export var getFilterKeyValue = function getFilterKeyValue(conditions) { var values = (conditions || []).reduce(function (pre, cur) { if (isNil(cur.value)) return pre; pre[cur === null || cur === void 0 ? void 0 : cur[DYNAMIC_ENUM.FIELD_NAME]] = cur[DYNAMIC_ENUM.VALUE]; return pre; }, {}); return values; }; /** * 根据指定字段获取数据源中的依赖字段 * 遍历依赖字段返回需要更新的字段 * @return {Array} string[] * @example * * flatDeepDeps('a', [{fieldName: 'a'}, {fieldName: 'b', dependencies: ['a']}]) * // => ['b'] */ export var flatDeepDeps = function flatDeepDeps(field, dataSource) { if (!Array.isArray(dataSource)) return []; var depsField = dataSource.reduce(function (pre, cur) { if (!cur.dependencies) return pre; var deps = castArray(cur.dependencies); if (pre.includes(cur[DYNAMIC_ENUM.FIELD_NAME])) return pre; if (deps.includes(field)) { return pre.concat(cur[DYNAMIC_ENUM.FIELD_NAME], flatDeepDeps(cur[DYNAMIC_ENUM.FIELD_NAME], dataSource)); } return pre; }, []); return depsField; }; /** * 返回更新后的数据 */ export var getUpdateResult = function getUpdateResult(updateFields, conditions) { if (!(updateFields !== null && updateFields !== void 0 && updateFields.length)) return; var resetConditions = conditions.map(function (item) { var excitingField = updateFields.includes(item[DYNAMIC_ENUM.FIELD_NAME]); if (excitingField) return _objectSpread(_objectSpread({}, item), {}, { value: undefined }); return item; }); return resetConditions; };