UNPKG

mrcio-ui

Version:

412 lines (357 loc) 15.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports._Tree = undefined; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _react = require("react"); var _react2 = _interopRequireDefault(_react); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * tree 树相关工具类 * @Author gufuyan * @Date 2018-08-29 */ var TreeFn = //函数参数默认值 function TreeFn() { var idName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "id"; var fIdName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "fId"; _classCallCheck(this, TreeFn); _initialiseProps.call(this); this.idName = idName; this.fIdName = fIdName; } /** * 根据结构id和fId生成树 * @param treeArr 生产树的对象,必须有关键属性id和fId * @param idName 指id的属性名 * @param fIdName 指fId的属性名 * @returns {Array} */ /** * 根据结构id和fId生成树 * @param list 生产树的对象,必须有关键属性id和fId * @param idName 指id的属性名 * @param pidName 指fId的属性名 * @returns {Array} */ /** * 获取根据id获取fid * @param tree * @param id * @returns {Array} */ /** * 场景太多,后面再补上此功能 * @param tree * @param id * @param idName * @returns {{arrIds: Array, arrList: Array}} */ ; var _initialiseProps = function _initialiseProps() { this.renderTree = function () { var treeArr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var idName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "id"; var fIdName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "fId"; var tree = []; var newTreeArr = []; //过滤掉所有父id的不存在的节点,返回fid存在的所有节点item[fIdName] newTreeArr = treeArr.filter(function (item, index) { !item[fIdName] && tree.push(item); //tree 取到所有根节点 return item[fIdName]; //newTreeArr 返回去掉根节点的所有数组 }); var setTreeData = function setTreeData(_newTreeArr, _tree) { var newTreeArr = _newTreeArr.filter(function (treeArrItem, index) { //剩下的每一项数组 去查找已存在的目录树,查找得到添加进去,查找不到继续留着 var renderFlag = function renderFlag(treeArrItem, _tree) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = _tree[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var o = _step.value; if (treeArrItem[fIdName] == o[idName]) { var childList = o.childList || []; childList.push(treeArrItem); o.childList = childList; return true; } else { if (o.childList && o.childList.length) { var resChildListFlag = renderFlag(treeArrItem, o.childList); if (resChildListFlag) return resChildListFlag; } } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } }; var flag = renderFlag(treeArrItem, _tree); //如果查找得到fid, flag为true,需返回查找不到的所有项 !flag return !flag; }); if (newTreeArr.length) { setTreeData(newTreeArr, _tree); } }; setTreeData(newTreeArr, tree); return tree; }; this.getTreeList = function () { var list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var idName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "id"; var pidName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "fId"; var obj = {}; var tree = []; var setTree = function setTree(fo, idName) { if (fo.childList) { var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = fo.childList[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var foo = _step2.value; var idd = foo[idName]; if (obj[idd]) { foo.childList = []; foo.childList = obj[idd]; setTree(foo, idName); } } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } }; var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for (var _iterator3 = list[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { var o = _step3.value; if (!obj[o[pidName]]) { obj[o[pidName]] = []; } if (o[pidName] == null) { tree.push(o); } obj[o[pidName]].push(o); } //父id开头 } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if (!_iteratorNormalCompletion3 && _iterator3.return) { _iterator3.return(); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } var _iteratorNormalCompletion4 = true; var _didIteratorError4 = false; var _iteratorError4 = undefined; try { for (var _iterator4 = tree[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { var fo = _step4.value; var _idName = fo[idName]; if (obj[_idName]) { fo.childList = []; fo.childList = obj[_idName]; } } } catch (err) { _didIteratorError4 = true; _iteratorError4 = err; } finally { try { if (!_iteratorNormalCompletion4 && _iterator4.return) { _iterator4.return(); } } finally { if (_didIteratorError4) { throw _iteratorError4; } } } var _iteratorNormalCompletion5 = true; var _didIteratorError5 = false; var _iteratorError5 = undefined; try { for (var _iterator5 = tree[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { var _fo = _step5.value; setTree(_fo, idName); } } catch (err) { _didIteratorError5 = true; _iteratorError5 = err; } finally { try { if (!_iteratorNormalCompletion5 && _iterator5.return) { _iterator5.return(); } } finally { if (_didIteratorError5) { throw _iteratorError5; } } } return tree; }; this.getFId = function (tree, id) { var idName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "id"; var arrIds = []; var arrList = []; var getId = function getId(obj, id) { var oStr = JSON.stringify(obj); if (oStr.indexOf(':' + id + ',') != -1) { if ((typeof obj === "undefined" ? "undefined" : _typeof(obj)) == "object") { if (obj[idName] == id) { arrIds.push(obj[idName]); arrList.push(obj); } else if (obj[idName]) { arrIds.push(obj[idName]); arrList.push(obj); if (obj.childList && obj.childList.length) { var _iteratorNormalCompletion6 = true; var _didIteratorError6 = false; var _iteratorError6 = undefined; try { for (var _iterator6 = obj.childList[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { var o = _step6.value; getId(o, id); } } catch (err) { _didIteratorError6 = true; _iteratorError6 = err; } finally { try { if (!_iteratorNormalCompletion6 && _iterator6.return) { _iterator6.return(); } } finally { if (_didIteratorError6) { throw _iteratorError6; } } } } } else { if (obj.childList && obj.childList.length) { var _iteratorNormalCompletion7 = true; var _didIteratorError7 = false; var _iteratorError7 = undefined; try { for (var _iterator7 = obj.childList[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { var _o = _step7.value; getId(_o, id); } } catch (err) { _didIteratorError7 = true; _iteratorError7 = err; } finally { try { if (!_iteratorNormalCompletion7 && _iterator7.return) { _iterator7.return(); } } finally { if (_didIteratorError7) { throw _iteratorError7; } } } } } } } }; var _iteratorNormalCompletion8 = true; var _didIteratorError8 = false; var _iteratorError8 = undefined; try { for (var _iterator8 = tree[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) { var o = _step8.value; getId(o, id); } } catch (err) { _didIteratorError8 = true; _iteratorError8 = err; } finally { try { if (!_iteratorNormalCompletion8 && _iterator8.return) { _iterator8.return(); } } finally { if (_didIteratorError8) { throw _iteratorError8; } } } return { arrIds: arrIds, arrList: arrList }; }; this.getCId = function (tree, id) { var idName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "id"; //功能尚未完成 var arrIds = []; var arrList = []; // let loopTree = (data, id)=> { // if (data instanceof Array) { // for (let o of data) { // loopTree(o) // } // } else { // if (!choArr.in_array(data[idText])) { // choArr.push(data[idText]); // choData.push(data); // } // if (!choChlArr.in_array(data[idText])) { // choChlArr.push(data[idText]); // choChlData.push(data); // } // if (data.subList && data.subList.length) { // loopTree(data.subList) // } // } // }; // loopTree(tree, id, ""); return { arrIds: arrIds, arrList: arrList }; }; }; var _Tree = new TreeFn(); exports._Tree = _Tree; //# sourceMappingURL=tree.js.map