UNPKG

nsn-comp

Version:

NSN核心组件

91 lines (75 loc) 2.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transformData = void 0; var _nsnUtil = require("nsn-util"); var getAllParents = function getAllParents(id, records, valueLabel, parents) { var node = records.find(function (ele) { return ele[valueLabel] === id; }); if (node) { var pId = node['parentId']; if (pId) { // 获取的父级节点依照倒序排列,如: 1-1-1、1-1、1 parents.push(pId); getAllParents(pId, records, valueLabel, parents); } } }; var getDisabledChildren = function getDisabledChildren(id, records, valueLabel, disabledSet) { var parents = [id]; // 获取当前节点的所有父级节点 getAllParents(id, records, valueLabel, parents); var pIndex = -1; parents.forEach(function (pId, index) { // 查找最后一个存在于 disabledSet 的 pId if (disabledSet.has(pId)) { pIndex = index; } }); if (pIndex > 0) { for (var i = 0; i <= pIndex; i++) { disabledSet.add(parents[i]); } } }; /** * 平面数据内容转换 */ var transformData = function transformData(params) { var _params$records = params.records, records = _params$records === void 0 ? [] : _params$records, _params$titleLabel = params.titleLabel, titleLabel = _params$titleLabel === void 0 ? 'title' : _params$titleLabel, _params$valueLabel = params.valueLabel, valueLabel = _params$valueLabel === void 0 ? 'id' : _params$valueLabel, _params$disabledIds = params.disabledIds, disabledIds = _params$disabledIds === void 0 ? [] : _params$disabledIds, disabledChildren = params.disabledChildren, _params$hiddenIds = params.hiddenIds, hiddenIds = _params$hiddenIds === void 0 ? [] : _params$hiddenIds; if (records.length === 0) { return []; } var dataList = []; // Set数据结构成员的值都是唯一的 var disabledSet = new Set(_nsnUtil.NType.isArray(disabledIds) ? disabledIds : [disabledIds]); records.forEach(function (ele) { var id = ele[valueLabel]; var isHidden = hiddenIds.includes(id); if (!isHidden) { // 禁用当前节点以及所有子节点 if (disabledChildren) { getDisabledChildren(id, records, valueLabel, disabledSet); } dataList.push({ id: id, pId: ele['parentId'], title: ele[titleLabel] || ele[valueLabel], value: id, disabled: disabledSet.has(id) }); } }); return dataList; }; exports.transformData = transformData;