vue-ant-patterns
Version:
vue-ant-patterns
42 lines (37 loc) • 1.08 kB
JavaScript
/*
* @Author: w.pengfei
* @Date: 2020-09-06 12:09:37
* @LastEditTime: 2020-09-06 12:16:43
* @Description: ''
* @LastEditors: w.pengfei
*/
import extend from 'extend';
import { relationHandler } from '../../es/_utils';
// 利用map去重
function uniq() {
var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'id';
var map = {};
var list = [];
source.map(function (it) {
var k = relationHandler(key, it);
map[k] = extend({}, it);
});
Object.keys(map).map(function (k) {
list.push(extend({}, map[k]));
});
return { list: list, map: map };
}
// 递归查找匹配的节点
function recursionDragNode(data, key, rel, callback) {
data.forEach(function (item, index, arr) {
var kVal = relationHandler(rel, item);
if (kVal === key) {
return callback(item, index, arr);
}
if (item.children) {
return recursionDragNode(item.children, key, rel, callback);
}
});
}
export { recursionDragNode, uniq };