dareway-rui
Version:
109 lines (96 loc) • 3.49 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.validateTreeNodeUnique = validateTreeNodeUnique;
exports.validateTreeNodeExist = validateTreeNodeExist;
exports.validateTreeNodes = validateTreeNodes;
function getTreeNodeNameNum(name, treeNodes) {
var count = 0;
for (var i = 0; i < treeNodes.length; i++) {
if (treeNodes[i].name == name) count++;
if ('children' in treeNodes[i] && treeNodes[i].children)
count += getTreeNodeNameNum(name, treeNodes[i].children);
}
return count;
}
/**
* 校验该节点在树中是否是唯一的
*/
function validateTreeNodeUnique(node, treeNodes) {
return getTreeNodeNameNum(typeof node == 'string' ? node : node.name, treeNodes) > 1 ? false : true;
}
/**
* 校验该节点在树中是否存在
*/
function validateTreeNodeExist(node, treeNodes) {
return getTreeNodeNameNum(typeof node == 'string' ? node : node.name, treeNodes) > 0 ? true : false;
}
/**
* 树节点参数校验
*
* @param treeNodes
* {
* name: '',
* title: '',
* iconId: '',
* biz: null,
* vmPath: 'app/tagdemo/segment/SegmentTest1.js',
* functionId: null,
* params: {},
* children: []
* }
* @throws Error
*/
function validateTreeNodes(treeNodes) {
for (var i = 0; i < treeNodes.length; i++) {
var node = treeNodes[i]; // 校验name title iconId 类型及必填校验
if (!('name' in node && node.name != null && typeof node.name == 'string')) {
throw new Error(
'\u8282\u70B9 '.concat(
node.name,
' \u53C2\u6570 [name] \u4E0D\u5408\u6CD5\uFF0C\u8BF7\u68C0\u67E5\uFF01'
)
);
}
if (!('title' in node && node.title != null && typeof node.title == 'string')) {
throw new Error(
'\u8282\u70B9 '.concat(
node.name,
' \u53C2\u6570 [title] \u4E0D\u5408\u6CD5\uFF0C\u8BF7\u68C0\u67E5\uFF01'
)
);
}
if ('iconId' in node && typeof node.iconId != 'string') {
throw new Error(
'\u8282\u70B9 '.concat(
node.name,
' \u53C2\u6570 [iconId] \u4E0D\u5408\u6CD5\uFF0C\u8BF7\u68C0\u67E5\uFF01'
)
);
} // 校验节点的唯一性
if (!validateTreeNodeUnique(node, treeNodes)) {
throw new Error(
'\u8282\u70B9 '.concat(
node.name,
' \u4E0D\u662F\u552F\u4E00\u7684\u8282\u70B9\uFF0C\u8BF7\u68C0\u67E5\uFF01'
)
);
}
if ('children' in node && node.children) {
// 非叶子节点,校验子节点
validateTreeNodes(node.children);
} else {
// 叶子节点,校验vmPath
if (!('vmPath' in node && node.vmPath != null && typeof node.vmPath == 'string')) {
throw new Error(
'\u8282\u70B9 '.concat(
node.name,
' \u53C2\u6570 [vmPath] \u4E0D\u5408\u6CD5\uFF0C\u8BF7\u68C0\u67E5\uFF01'
)
);
}
}
}
}
//@ sourceMappingURL=validate.js.map