UNPKG

dareway-rui

Version:

109 lines (96 loc) 3.49 kB
'use strict'; 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