nsn-comp
Version:
NSN核心组件
91 lines (75 loc) • 2.55 kB
JavaScript
"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;