bkui-vue 2.1.0-dev-beta.7 → 2.1.0-dev-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +44 -44
- package/dist/index.esm.js +13484 -13350
- package/dist/index.umd.js +44 -44
- package/lib/index.js +1 -1
- package/lib/popover/index.js +15 -19
- package/lib/tree/constant.d.ts +4 -0
- package/lib/tree/index.d.ts +31 -0
- package/lib/tree/index.js +439 -183
- package/lib/tree/props.d.ts +62 -2
- package/lib/tree/tree.d.ts +17 -0
- package/lib/tree/use-node-action.d.ts +1 -1
- package/lib/tree/use-node-async.d.ts +2 -2
- package/lib/tree/use-node-drag.d.ts +1 -1
- package/lib/tree/use-tree-init.d.ts +1 -1
- package/lib/tree/util.d.ts +23 -1
- package/package.json +2 -1
package/lib/tree/index.js
CHANGED
|
@@ -17461,7 +17461,7 @@ function toPropertyKey(t) {
|
|
|
17461
17461
|
|
|
17462
17462
|
;// CONCATENATED MODULE: ../../node_modules/@babel/runtime/helpers/esm/defineProperty.js
|
|
17463
17463
|
|
|
17464
|
-
function
|
|
17464
|
+
function defineProperty_defineProperty(e, r, t) {
|
|
17465
17465
|
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
17466
17466
|
value: t,
|
|
17467
17467
|
enumerable: !0,
|
|
@@ -17500,6 +17500,8 @@ var _TreeEmitEventsType;
|
|
|
17500
17500
|
*/
|
|
17501
17501
|
var EVENTS;
|
|
17502
17502
|
(function (EVENTS) {
|
|
17503
|
+
EVENTS["NODE_ASYNC_LOAD"] = "nodeAsyncLoad";
|
|
17504
|
+
EVENTS["NODE_ASYNC_LOAD_ERROR"] = "nodeAsyncLoadError";
|
|
17503
17505
|
EVENTS["NODE_CHECKED"] = "nodeChecked";
|
|
17504
17506
|
EVENTS["NODE_CLICK"] = "nodeClick";
|
|
17505
17507
|
EVENTS["NODE_COLLAPSE"] = "nodeCollapse";
|
|
@@ -17515,7 +17517,7 @@ var EVENTS;
|
|
|
17515
17517
|
var EMPTY = function EMPTY() {
|
|
17516
17518
|
return true;
|
|
17517
17519
|
};
|
|
17518
|
-
var TreeEmitEventsType = (_TreeEmitEventsType = {},
|
|
17520
|
+
var TreeEmitEventsType = (_TreeEmitEventsType = {}, defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(_TreeEmitEventsType, EVENTS.NODE_ASYNC_LOAD, EMPTY), EVENTS.NODE_ASYNC_LOAD_ERROR, EMPTY), EVENTS.NODE_CLICK, EMPTY), EVENTS.NODE_COLLAPSE, EMPTY), EVENTS.NODE_EXPAND, EMPTY), EVENTS.NODE_CHECKED, EMPTY), EVENTS.NODE_DRAG_START, EMPTY), EVENTS.NODE_DRAG_OVER, EMPTY), EVENTS.NODE_DRAG_LEAVE, EMPTY), EVENTS.NODE_DRAG_SORT, EMPTY), defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(_TreeEmitEventsType, EVENTS.NODE_DROP, EMPTY), EVENTS.NODE_ENTER_VIEW, EMPTY), EVENTS.NODE_SELECTED, EMPTY));
|
|
17519
17521
|
/**
|
|
17520
17522
|
* 节点扩展属性
|
|
17521
17523
|
*/
|
|
@@ -17542,7 +17544,7 @@ var NODE_ATTRIBUTES;
|
|
|
17542
17544
|
NODE_ATTRIBUTES["TREE_NODE_ATTR"] = "__attr__";
|
|
17543
17545
|
NODE_ATTRIBUTES["UUID"] = "__uuid";
|
|
17544
17546
|
})(NODE_ATTRIBUTES || (NODE_ATTRIBUTES = {}));
|
|
17545
|
-
var NODE_SOURCE_ATTRS =
|
|
17547
|
+
var NODE_SOURCE_ATTRS = defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty({}, NODE_ATTRIBUTES.IS_OPEN, 'isOpen'), NODE_ATTRIBUTES.IS_SELECTED, 'selected'), NODE_ATTRIBUTES.IS_MATCH, 'isMatch'), NODE_ATTRIBUTES.HAS_CHILD, 'hasChild'), NODE_ATTRIBUTES.IS_CHECKED, 'checked'), NODE_ATTRIBUTES.IS_ASYNC, 'async'), NODE_ATTRIBUTES.IS_LOADING, 'loading'), NODE_ATTRIBUTES.IS_ROOT, 'isRoot');
|
|
17546
17548
|
/**
|
|
17547
17549
|
* 节点点击可执行行为配置
|
|
17548
17550
|
*/
|
|
@@ -17588,7 +17590,7 @@ var treeProps = {
|
|
|
17588
17590
|
label: shared_namespaceObject.PropTypes.oneOfType([shared_namespaceObject.PropTypes.func.def(undefined), shared_namespaceObject.PropTypes.string.def('label')]),
|
|
17589
17591
|
/**
|
|
17590
17592
|
* 每个树节点用来作为唯一标识的属性,此标识应该是唯一的
|
|
17591
|
-
*
|
|
17593
|
+
* 启用拖拽、异步、受控选中/勾选等复杂能力时强烈建议显式设置
|
|
17592
17594
|
*/
|
|
17593
17595
|
nodeKey: shared_namespaceObject.PropTypes.string.def(undefined),
|
|
17594
17596
|
/**
|
|
@@ -17623,6 +17625,10 @@ var treeProps = {
|
|
|
17623
17625
|
* 默认 true
|
|
17624
17626
|
*/
|
|
17625
17627
|
prefixIcon: shared_namespaceObject.PropTypes.oneOfType([shared_namespaceObject.PropTypes.func.def(function () {}), shared_namespaceObject.PropTypes.bool.def(false)]).def(true),
|
|
17628
|
+
/**
|
|
17629
|
+
* 当树数据需要由外部接管更新时的统一回调
|
|
17630
|
+
*/
|
|
17631
|
+
onDataChange: Function,
|
|
17626
17632
|
/**
|
|
17627
17633
|
* 异步加载节点数据配置
|
|
17628
17634
|
* @param callback 请求数据回调函数,函数返回 Promise
|
|
@@ -17774,9 +17780,18 @@ var treeProps = {
|
|
|
17774
17780
|
*/
|
|
17775
17781
|
keepSlotData: shared_namespaceObject.PropTypes.bool.def(false),
|
|
17776
17782
|
/**
|
|
17777
|
-
*
|
|
17783
|
+
* 是否启用父子节点勾选联动
|
|
17784
|
+
* true: 父子联动
|
|
17785
|
+
* false: 父子不联动(语义与行业常见 checkStrictly 相反,为兼容历史行为暂保留)
|
|
17778
17786
|
*/
|
|
17779
17787
|
checkStrictly: shared_namespaceObject.PropTypes.bool.def(true),
|
|
17788
|
+
/**
|
|
17789
|
+
* 是否深度监听 props.data 变化
|
|
17790
|
+
* - false (默认): 仅监听 props.data 引用变化,性能更优
|
|
17791
|
+
* - true: 深度监听 props.data 内部节点变化(已废弃,将在下个主版本移除)
|
|
17792
|
+
* @deprecated 请使用 onDataChange 回调更新数据,避免直接修改 props.data 内部节点
|
|
17793
|
+
*/
|
|
17794
|
+
deepWatch: shared_namespaceObject.PropTypes.bool.def(false),
|
|
17780
17795
|
/**
|
|
17781
17796
|
* 是否开启监听Tree节点进入Tree容器可视区域
|
|
17782
17797
|
*/
|
|
@@ -18048,7 +18063,7 @@ const icon_namespaceObject = icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MO
|
|
|
18048
18063
|
console.warn('node is not in schema, please check', id, node);
|
|
18049
18064
|
return;
|
|
18050
18065
|
}
|
|
18051
|
-
flatData.schema.set(node, Object.assign({}, getSchemaVal(node),
|
|
18066
|
+
flatData.schema.set(node, Object.assign({}, getSchemaVal(node), defineProperty_defineProperty({}, attr, val)));
|
|
18052
18067
|
};
|
|
18053
18068
|
var getNodeById = function getNodeById(id) {
|
|
18054
18069
|
return flatData.data.find(function (item) {
|
|
@@ -18179,14 +18194,18 @@ const icon_namespaceObject = icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MO
|
|
|
18179
18194
|
return Array.isArray(pre) ? pre[index] : pre[props.children][index];
|
|
18180
18195
|
}, props.data);
|
|
18181
18196
|
if (uid) {
|
|
18182
|
-
Object.assign(target,
|
|
18197
|
+
Object.assign(target, defineProperty_defineProperty({}, NODE_ATTRIBUTES.UUID, uid));
|
|
18183
18198
|
}
|
|
18184
18199
|
return target;
|
|
18185
18200
|
};
|
|
18186
18201
|
var getChildNodes = function getChildNodes(node) {
|
|
18187
|
-
|
|
18188
|
-
|
|
18202
|
+
var children = [];
|
|
18203
|
+
flatData.data.forEach(function (item) {
|
|
18204
|
+
if (getParentNode(item) === node) {
|
|
18205
|
+
children.push(item);
|
|
18206
|
+
}
|
|
18189
18207
|
});
|
|
18208
|
+
return children;
|
|
18190
18209
|
};
|
|
18191
18210
|
var getSourceNodeByUID = function getSourceNodeByUID(uid) {
|
|
18192
18211
|
return flatData.data.find(function (item) {
|
|
@@ -18199,7 +18218,7 @@ const icon_namespaceObject = icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MO
|
|
|
18199
18218
|
target = getSourceNodeByUID(target);
|
|
18200
18219
|
}
|
|
18201
18220
|
if (isRootNode(target)) {
|
|
18202
|
-
return
|
|
18221
|
+
return defineProperty_defineProperty({}, props.children, props.data);
|
|
18203
18222
|
}
|
|
18204
18223
|
return getParentNode(target);
|
|
18205
18224
|
};
|
|
@@ -18209,10 +18228,10 @@ const icon_namespaceObject = icon_x({ ["DownShape"]: () => __WEBPACK_EXTERNAL_MO
|
|
|
18209
18228
|
* @returns
|
|
18210
18229
|
*/
|
|
18211
18230
|
var resolveScopedSlotParam = function resolveScopedSlotParam(item) {
|
|
18212
|
-
return
|
|
18231
|
+
return defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty({}, NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_LOADING], getNodeAttr(item, NODE_ATTRIBUTES.IS_LOADING)), NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.HAS_CHILD], hasChildNode(item)), NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_MATCH], isNodeMatched(item)), NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_CHECKED], isNodeChecked(item)), NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_OPEN], isNodeOpened(item)), NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_ROOT], isRootNode(item)), "fullPath", getNodeAttr(item, NODE_ATTRIBUTES.PATH)), "uuid", getNodeId(item)), "parent", getNodeAttr(item, NODE_ATTRIBUTES.PARENT)), "parentId", getNodeId(getNodeAttr(item, NODE_ATTRIBUTES.PARENT)));
|
|
18213
18232
|
};
|
|
18214
18233
|
var extendNodeAttr = function extendNodeAttr(item) {
|
|
18215
|
-
return Object.assign({}, item,
|
|
18234
|
+
return Object.assign({}, item, defineProperty_defineProperty({}, NODE_ATTRIBUTES.TREE_NODE_ATTR, resolveScopedSlotParam(item)));
|
|
18216
18235
|
};
|
|
18217
18236
|
var extendNodeScopedData = function extendNodeScopedData(item) {
|
|
18218
18237
|
return {
|
|
@@ -18320,9 +18339,13 @@ function _toConsumableArray(r) {
|
|
|
18320
18339
|
|
|
18321
18340
|
|
|
18322
18341
|
|
|
18342
|
+
|
|
18323
18343
|
var _this = undefined;
|
|
18344
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = util_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
18345
|
+
function util_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return util_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? util_arrayLikeToArray(r, a) : void 0; } }
|
|
18346
|
+
function util_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
18324
18347
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
18325
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
|
|
18348
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { defineProperty_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18326
18349
|
/*
|
|
18327
18350
|
* Tencent is pleased to support the open source community by making
|
|
18328
18351
|
* 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
|
|
@@ -18351,6 +18374,23 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
18351
18374
|
|
|
18352
18375
|
|
|
18353
18376
|
var DEFAULT_LEVLE_LINE = '1px dashed #c3cdd7';
|
|
18377
|
+
var _cloneTreeNode = function cloneTreeNode(node) {
|
|
18378
|
+
if (Array.isArray(node)) {
|
|
18379
|
+
return node.map(function (item) {
|
|
18380
|
+
return _cloneTreeNode(item);
|
|
18381
|
+
});
|
|
18382
|
+
}
|
|
18383
|
+
if (node && _typeof(node) === 'object') {
|
|
18384
|
+
return Object.keys(node).reduce(function (acc, key) {
|
|
18385
|
+
var value = node[key];
|
|
18386
|
+
acc[key] = Array.isArray(value) ? value.map(function (item) {
|
|
18387
|
+
return _cloneTreeNode(item);
|
|
18388
|
+
}) : value;
|
|
18389
|
+
return acc;
|
|
18390
|
+
}, {});
|
|
18391
|
+
}
|
|
18392
|
+
return node;
|
|
18393
|
+
};
|
|
18354
18394
|
/**
|
|
18355
18395
|
* 获取配置项可为Bool|String|Function类型,如果为Bool则配置默认值
|
|
18356
18396
|
* @param props
|
|
@@ -18462,7 +18502,7 @@ var getNodeItemClass = function getNodeItemClass(item, schema, props) {
|
|
|
18462
18502
|
__is_open = _ref.__is_open;
|
|
18463
18503
|
var _usePrefix = (0,config_provider_namespaceObject.usePrefix)(),
|
|
18464
18504
|
resolveClassName = _usePrefix.resolveClassName;
|
|
18465
|
-
return
|
|
18505
|
+
return defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty({
|
|
18466
18506
|
'is-root': __is_root
|
|
18467
18507
|
}, "".concat(resolveClassName('tree-node')), true), 'is-open', __is_open), 'is-virtual-render', props.virtualRender), 'level-line', props.levelLine && showTree);
|
|
18468
18508
|
};
|
|
@@ -18478,7 +18518,7 @@ var getNodeRowClass = function getNodeRowClass(item, schema) {
|
|
|
18478
18518
|
__is_selected = _ref3.__is_selected;
|
|
18479
18519
|
var _usePrefix2 = (0,config_provider_namespaceObject.usePrefix)(),
|
|
18480
18520
|
resolveClassName = _usePrefix2.resolveClassName;
|
|
18481
|
-
return
|
|
18521
|
+
return defineProperty_defineProperty({
|
|
18482
18522
|
'is-checked': __is_checked,
|
|
18483
18523
|
'is-selected': __is_selected,
|
|
18484
18524
|
'node-folder': item.is_folder,
|
|
@@ -18496,6 +18536,187 @@ var getNodeRowClass = function getNodeRowClass(item, schema) {
|
|
|
18496
18536
|
var updateTreeNode = function updateTreeNode(path, treeData, childKey, nodekey, nodeValue) {
|
|
18497
18537
|
assignTreeNode(path, treeData, childKey, _defineProperty({}, nodekey, nodeValue));
|
|
18498
18538
|
};
|
|
18539
|
+
var _cloneTreeData = function cloneTreeData() {
|
|
18540
|
+
var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
18541
|
+
var childKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'children';
|
|
18542
|
+
return (treeData || []).map(function (node) {
|
|
18543
|
+
var clonedNode = _cloneTreeNode(node);
|
|
18544
|
+
if (Array.isArray(node === null || node === void 0 ? void 0 : node[childKey])) {
|
|
18545
|
+
clonedNode[childKey] = _cloneTreeData(node[childKey], childKey);
|
|
18546
|
+
}
|
|
18547
|
+
return clonedNode;
|
|
18548
|
+
});
|
|
18549
|
+
};
|
|
18550
|
+
|
|
18551
|
+
var _findNodeById = function findNodeById() {
|
|
18552
|
+
var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
18553
|
+
var nodeId = arguments.length > 1 ? arguments[1] : undefined;
|
|
18554
|
+
var nodeKey = arguments.length > 2 ? arguments[2] : undefined;
|
|
18555
|
+
var childKey = arguments.length > 3 ? arguments[3] : undefined;
|
|
18556
|
+
var _iterator = _createForOfIteratorHelper(treeData),
|
|
18557
|
+
_step;
|
|
18558
|
+
try {
|
|
18559
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
18560
|
+
var node = _step.value;
|
|
18561
|
+
if ((node === null || node === void 0 ? void 0 : node[nodeKey]) === nodeId) {
|
|
18562
|
+
return node;
|
|
18563
|
+
}
|
|
18564
|
+
var children = node === null || node === void 0 ? void 0 : node[childKey];
|
|
18565
|
+
if (Array.isArray(children) && children.length) {
|
|
18566
|
+
var target = _findNodeById(children, nodeId, nodeKey, childKey);
|
|
18567
|
+
if (target) {
|
|
18568
|
+
return target;
|
|
18569
|
+
}
|
|
18570
|
+
}
|
|
18571
|
+
}
|
|
18572
|
+
} catch (err) {
|
|
18573
|
+
_iterator.e(err);
|
|
18574
|
+
} finally {
|
|
18575
|
+
_iterator.f();
|
|
18576
|
+
}
|
|
18577
|
+
return null;
|
|
18578
|
+
};
|
|
18579
|
+
|
|
18580
|
+
var mutateTreeById = function mutateTreeById() {
|
|
18581
|
+
var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
18582
|
+
var nodeId = arguments.length > 1 ? arguments[1] : undefined;
|
|
18583
|
+
var nodeKey = arguments.length > 2 ? arguments[2] : undefined;
|
|
18584
|
+
var childKey = arguments.length > 3 ? arguments[3] : undefined;
|
|
18585
|
+
var updater = arguments.length > 4 ? arguments[4] : undefined;
|
|
18586
|
+
var target = _findNodeById(treeData, nodeId, nodeKey, childKey);
|
|
18587
|
+
if (target) {
|
|
18588
|
+
updater(target);
|
|
18589
|
+
}
|
|
18590
|
+
return treeData;
|
|
18591
|
+
};
|
|
18592
|
+
var removeTreeNodeById = function removeTreeNodeById() {
|
|
18593
|
+
var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
18594
|
+
var nodeId = arguments.length > 1 ? arguments[1] : undefined;
|
|
18595
|
+
var nodeKey = arguments.length > 2 ? arguments[2] : undefined;
|
|
18596
|
+
var childKey = arguments.length > 3 ? arguments[3] : undefined;
|
|
18597
|
+
var _loop = function loop(list, parentNode) {
|
|
18598
|
+
for (var index = 0; index < list.length; index++) {
|
|
18599
|
+
var current = list[index];
|
|
18600
|
+
if ((current === null || current === void 0 ? void 0 : current[nodeKey]) === nodeId) {
|
|
18601
|
+
var _list$splice = list.splice(index, 1),
|
|
18602
|
+
_list$splice2 = _slicedToArray(_list$splice, 1),
|
|
18603
|
+
node = _list$splice2[0];
|
|
18604
|
+
return {
|
|
18605
|
+
node: node,
|
|
18606
|
+
parentNode: parentNode,
|
|
18607
|
+
index: index
|
|
18608
|
+
};
|
|
18609
|
+
}
|
|
18610
|
+
var children = current === null || current === void 0 ? void 0 : current[childKey];
|
|
18611
|
+
if (Array.isArray(children) && children.length) {
|
|
18612
|
+
var _result = _loop(children, current);
|
|
18613
|
+
if (_result.node) {
|
|
18614
|
+
return _result;
|
|
18615
|
+
}
|
|
18616
|
+
}
|
|
18617
|
+
}
|
|
18618
|
+
return {
|
|
18619
|
+
node: null,
|
|
18620
|
+
parentNode: null,
|
|
18621
|
+
index: -1
|
|
18622
|
+
};
|
|
18623
|
+
};
|
|
18624
|
+
var result = _loop(treeData, null);
|
|
18625
|
+
return _objectSpread(_objectSpread({}, result), {}, {
|
|
18626
|
+
data: treeData
|
|
18627
|
+
});
|
|
18628
|
+
};
|
|
18629
|
+
var insertTreeNodeById = function insertTreeNodeById() {
|
|
18630
|
+
var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
18631
|
+
var node = arguments.length > 1 ? arguments[1] : undefined;
|
|
18632
|
+
var targetNodeId = arguments.length > 2 ? arguments[2] : undefined;
|
|
18633
|
+
var nodeKey = arguments.length > 3 ? arguments[3] : undefined;
|
|
18634
|
+
var childKey = arguments.length > 4 ? arguments[4] : undefined;
|
|
18635
|
+
var options = arguments.length > 5 ? arguments[5] : undefined;
|
|
18636
|
+
var dropType = options.dropType,
|
|
18637
|
+
_options$willInsertAf = options.willInsertAfter,
|
|
18638
|
+
willInsertAfter = _options$willInsertAf === void 0 ? true : _options$willInsertAf;
|
|
18639
|
+
if (dropType === 'child') {
|
|
18640
|
+
var targetNode = _findNodeById(treeData, targetNodeId, nodeKey, childKey);
|
|
18641
|
+
if (!targetNode) {
|
|
18642
|
+
return {
|
|
18643
|
+
data: treeData,
|
|
18644
|
+
parentNode: null,
|
|
18645
|
+
targetNode: null,
|
|
18646
|
+
index: -1
|
|
18647
|
+
};
|
|
18648
|
+
}
|
|
18649
|
+
if (!Array.isArray(targetNode[childKey])) {
|
|
18650
|
+
targetNode[childKey] = [];
|
|
18651
|
+
}
|
|
18652
|
+
var targetChildren = targetNode[childKey];
|
|
18653
|
+
targetChildren.push(node);
|
|
18654
|
+
return {
|
|
18655
|
+
data: treeData,
|
|
18656
|
+
parentNode: targetNode,
|
|
18657
|
+
targetNode: targetNode,
|
|
18658
|
+
index: targetChildren.length - 1
|
|
18659
|
+
};
|
|
18660
|
+
}
|
|
18661
|
+
var _loop2 = function loop(list, parentNode) {
|
|
18662
|
+
for (var index = 0; index < list.length; index++) {
|
|
18663
|
+
var current = list[index];
|
|
18664
|
+
if ((current === null || current === void 0 ? void 0 : current[nodeKey]) === targetNodeId) {
|
|
18665
|
+
var insertIndex = willInsertAfter ? index + 1 : index;
|
|
18666
|
+
list.splice(insertIndex, 0, node);
|
|
18667
|
+
return {
|
|
18668
|
+
parentNode: parentNode,
|
|
18669
|
+
targetNode: current,
|
|
18670
|
+
index: insertIndex
|
|
18671
|
+
};
|
|
18672
|
+
}
|
|
18673
|
+
var children = current === null || current === void 0 ? void 0 : current[childKey];
|
|
18674
|
+
if (Array.isArray(children) && children.length) {
|
|
18675
|
+
var _result2 = _loop2(children, current);
|
|
18676
|
+
if (_result2.targetNode) {
|
|
18677
|
+
return _result2;
|
|
18678
|
+
}
|
|
18679
|
+
}
|
|
18680
|
+
}
|
|
18681
|
+
return {
|
|
18682
|
+
parentNode: null,
|
|
18683
|
+
targetNode: null,
|
|
18684
|
+
index: -1
|
|
18685
|
+
};
|
|
18686
|
+
};
|
|
18687
|
+
var result = _loop2(treeData, null);
|
|
18688
|
+
return _objectSpread({
|
|
18689
|
+
data: treeData
|
|
18690
|
+
}, result);
|
|
18691
|
+
};
|
|
18692
|
+
var moveTreeNodeById = function moveTreeNodeById() {
|
|
18693
|
+
var treeData = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
18694
|
+
var nodeId = arguments.length > 1 ? arguments[1] : undefined;
|
|
18695
|
+
var targetNodeId = arguments.length > 2 ? arguments[2] : undefined;
|
|
18696
|
+
var nodeKey = arguments.length > 3 ? arguments[3] : undefined;
|
|
18697
|
+
var childKey = arguments.length > 4 ? arguments[4] : undefined;
|
|
18698
|
+
var options = arguments.length > 5 ? arguments[5] : undefined;
|
|
18699
|
+
var nextTreeData = _cloneTreeData(treeData, childKey);
|
|
18700
|
+
var removeResult = removeTreeNodeById(nextTreeData, nodeId, nodeKey, childKey);
|
|
18701
|
+
if (!removeResult.node) {
|
|
18702
|
+
return null;
|
|
18703
|
+
}
|
|
18704
|
+
var insertResult = insertTreeNodeById(nextTreeData, removeResult.node, targetNodeId, nodeKey, childKey, options);
|
|
18705
|
+
if (!insertResult.targetNode && options.dropType !== 'child') {
|
|
18706
|
+
return null;
|
|
18707
|
+
}
|
|
18708
|
+
return {
|
|
18709
|
+
trigger: 'drag',
|
|
18710
|
+
data: nextTreeData,
|
|
18711
|
+
node: removeResult.node,
|
|
18712
|
+
targetNode: insertResult.targetNode,
|
|
18713
|
+
parentNode: insertResult.parentNode,
|
|
18714
|
+
oldParentNode: removeResult.parentNode,
|
|
18715
|
+
dropType: options.dropType,
|
|
18716
|
+
sourceIndex: removeResult.index,
|
|
18717
|
+
targetIndex: insertResult.index
|
|
18718
|
+
};
|
|
18719
|
+
};
|
|
18499
18720
|
/**
|
|
18500
18721
|
* 根据路径更新指定节点Child-Data
|
|
18501
18722
|
* @param path 节点路径
|
|
@@ -18514,9 +18735,7 @@ var assignTreeNode = function assignTreeNode(path, treeData, childKey, assignVal
|
|
|
18514
18735
|
var resolveNodeItem = function resolveNodeItem(node) {
|
|
18515
18736
|
if (node === undefined || node === null) {
|
|
18516
18737
|
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
18517
|
-
return {
|
|
18518
|
-
__IS_NULL: true
|
|
18519
|
-
};
|
|
18738
|
+
return defineProperty_defineProperty({}, NODE_ATTRIBUTES.IS_NULL, true);
|
|
18520
18739
|
}
|
|
18521
18740
|
return node;
|
|
18522
18741
|
};
|
|
@@ -18568,23 +18787,42 @@ var showCheckbox = function showCheckbox(props, node) {
|
|
|
18568
18787
|
|
|
18569
18788
|
|
|
18570
18789
|
|
|
18571
|
-
/* harmony default export */ const use_node_async = (function (props, flatData) {
|
|
18790
|
+
/* harmony default export */ const use_node_async = (function (props, flatData, ctx) {
|
|
18572
18791
|
var _useNodeAttribute = use_node_attribute(flatData, props),
|
|
18573
18792
|
setNodeAttr = _useNodeAttribute.setNodeAttr,
|
|
18574
|
-
|
|
18793
|
+
getNodeId = _useNodeAttribute.getNodeId,
|
|
18575
18794
|
getNodeAttr = _useNodeAttribute.getNodeAttr,
|
|
18576
18795
|
resolveScopedSlotParam = _useNodeAttribute.resolveScopedSlotParam,
|
|
18577
18796
|
setTreeNodeLoading = _useNodeAttribute.setTreeNodeLoading;
|
|
18797
|
+
var requestVersionMap = new Map();
|
|
18798
|
+
var emitTreeDataChange = function emitTreeDataChange(payload) {
|
|
18799
|
+
var _props$onDataChange;
|
|
18800
|
+
(_props$onDataChange = props.onDataChange) === null || _props$onDataChange === void 0 || _props$onDataChange.call(props, payload);
|
|
18801
|
+
ctx === null || ctx === void 0 || ctx.emit(EVENTS.NODE_ASYNC_LOAD, payload);
|
|
18802
|
+
};
|
|
18578
18803
|
/**
|
|
18579
18804
|
* 处理异步加载节点数据返回结果
|
|
18580
18805
|
* @param resp 异步请求返回结果
|
|
18581
18806
|
* @param item 当前节点
|
|
18582
18807
|
*/
|
|
18583
|
-
var setNodeRemoteLoad = function setNodeRemoteLoad(resp, item) {
|
|
18808
|
+
var setNodeRemoteLoad = function setNodeRemoteLoad(resp, item, requestVersion) {
|
|
18584
18809
|
if (_typeof(resp) === 'object' && resp !== null) {
|
|
18810
|
+
var nodeId = getNodeId(item);
|
|
18811
|
+
if (requestVersion !== undefined && requestVersionMap.get(nodeId) !== requestVersion) {
|
|
18812
|
+
return Promise.resolve(resp);
|
|
18813
|
+
}
|
|
18585
18814
|
setNodeAttr(item, NODE_ATTRIBUTES.IS_OPEN, true);
|
|
18586
18815
|
var nodeValue = Array.isArray(resp) ? resp : [resp];
|
|
18587
|
-
|
|
18816
|
+
var nextTreeData = _cloneTreeData(props.data, props.children);
|
|
18817
|
+
mutateTreeById(nextTreeData, nodeId, props.nodeKey || NODE_ATTRIBUTES.UUID, props.children, function (targetNode) {
|
|
18818
|
+
targetNode[props.children] = nodeValue;
|
|
18819
|
+
});
|
|
18820
|
+
emitTreeDataChange({
|
|
18821
|
+
trigger: 'async',
|
|
18822
|
+
data: nextTreeData,
|
|
18823
|
+
node: item,
|
|
18824
|
+
parentNode: item
|
|
18825
|
+
});
|
|
18588
18826
|
return Promise.resolve(resp);
|
|
18589
18827
|
}
|
|
18590
18828
|
return Promise.resolve(resp);
|
|
@@ -18595,29 +18833,39 @@ var showCheckbox = function showCheckbox(props, node) {
|
|
|
18595
18833
|
callback = _ref$callback === void 0 ? null : _ref$callback,
|
|
18596
18834
|
_ref$cache = _ref.cache,
|
|
18597
18835
|
cache = _ref$cache === void 0 ? true : _ref$cache;
|
|
18598
|
-
/** 如果是异步请求加载 */
|
|
18599
18836
|
if (typeof callback === 'function' && getNodeAttr(item, NODE_ATTRIBUTES.IS_ASYNC)) {
|
|
18600
|
-
|
|
18837
|
+
var nodeId = getNodeId(item);
|
|
18838
|
+
var requestVersion = (requestVersionMap.get(nodeId) || 0) + 1;
|
|
18839
|
+
requestVersionMap.set(nodeId, requestVersion);
|
|
18601
18840
|
setNodeAttr(item, NODE_ATTRIBUTES.IS_ASYNC_INIT, true);
|
|
18602
18841
|
if (!getNodeAttr(item, NODE_ATTRIBUTES.IS_CACHED)) {
|
|
18603
18842
|
setNodeAttr(item, NODE_ATTRIBUTES.IS_CACHED, cache);
|
|
18604
18843
|
var dataAttr = resolveScopedSlotParam(item);
|
|
18605
18844
|
var callbackResult = callback(item, function (resp) {
|
|
18606
|
-
return setNodeRemoteLoad(resp, item);
|
|
18845
|
+
return setNodeRemoteLoad(resp, item, requestVersion);
|
|
18607
18846
|
}, dataAttr);
|
|
18608
18847
|
if (_typeof(callbackResult) === 'object' && callbackResult !== null) {
|
|
18609
18848
|
setTreeNodeLoading(item, true);
|
|
18610
18849
|
if (callbackResult instanceof Promise) {
|
|
18611
18850
|
return Promise.resolve(callbackResult.then(function (resp) {
|
|
18612
|
-
return setNodeRemoteLoad(resp, item);
|
|
18851
|
+
return setNodeRemoteLoad(resp, item, requestVersion);
|
|
18613
18852
|
})["catch"](function (err) {
|
|
18614
|
-
|
|
18853
|
+
if (requestVersionMap.get(nodeId) === requestVersion) {
|
|
18854
|
+
ctx === null || ctx === void 0 || ctx.emit(EVENTS.NODE_ASYNC_LOAD_ERROR, {
|
|
18855
|
+
node: item,
|
|
18856
|
+
error: err,
|
|
18857
|
+
requestVersion: requestVersion
|
|
18858
|
+
});
|
|
18859
|
+
}
|
|
18860
|
+
return false;
|
|
18615
18861
|
})["finally"](function () {
|
|
18616
|
-
|
|
18617
|
-
|
|
18862
|
+
if (requestVersionMap.get(nodeId) === requestVersion) {
|
|
18863
|
+
setTreeNodeLoading(item, false);
|
|
18864
|
+
setNodeAttr(item, NODE_ATTRIBUTES.IS_CACHED, true);
|
|
18865
|
+
}
|
|
18618
18866
|
}));
|
|
18619
18867
|
}
|
|
18620
|
-
setNodeRemoteLoad(callbackResult, item);
|
|
18868
|
+
setNodeRemoteLoad(callbackResult, item, requestVersion);
|
|
18621
18869
|
setTreeNodeLoading(item, false);
|
|
18622
18870
|
return Promise.resolve(true);
|
|
18623
18871
|
}
|
|
@@ -18686,6 +18934,10 @@ var use_node_action_this = undefined;
|
|
|
18686
18934
|
|
|
18687
18935
|
/* harmony default export */ const use_node_action = (function (props, ctx, flatData, _renderData, initOption) {
|
|
18688
18936
|
// const checkedNodes = [];
|
|
18937
|
+
var getSelectedNodeId = function getSelectedNodeId() {
|
|
18938
|
+
var _props$selected;
|
|
18939
|
+
return (_props$selected = props.selected) !== null && _props$selected !== void 0 ? _props$selected : selectedNodeId;
|
|
18940
|
+
};
|
|
18689
18941
|
var selectedNodeId = props.selected;
|
|
18690
18942
|
var _useNodeAttribute = use_node_attribute(flatData, props),
|
|
18691
18943
|
setNodeAttr = _useNodeAttribute.setNodeAttr,
|
|
@@ -18708,7 +18960,7 @@ var use_node_action_this = undefined;
|
|
|
18708
18960
|
var _usePrefix = (0,config_provider_namespaceObject.usePrefix)(),
|
|
18709
18961
|
resolveClassName = _usePrefix.resolveClassName;
|
|
18710
18962
|
var registerNextLoop = initOption.registerNextLoop;
|
|
18711
|
-
var _useNodeAsync = use_node_async(props, flatData),
|
|
18963
|
+
var _useNodeAsync = use_node_async(props, flatData, ctx),
|
|
18712
18964
|
asyncNodeClick = _useNodeAsync.asyncNodeClick,
|
|
18713
18965
|
deepAutoOpen = _useNodeAsync.deepAutoOpen;
|
|
18714
18966
|
/**
|
|
@@ -18851,6 +19103,7 @@ var use_node_action_this = undefined;
|
|
|
18851
19103
|
if (value) {
|
|
18852
19104
|
setNodeAttr(item, NODE_ATTRIBUTES.IS_INDETERMINATE, false);
|
|
18853
19105
|
}
|
|
19106
|
+
// 历史语义:checkStrictly=true 表示启用父子联动
|
|
18854
19107
|
if (props.checkStrictly) {
|
|
18855
19108
|
_deepUpdateChildNode(item, [NODE_ATTRIBUTES.IS_CHECKED, NODE_ATTRIBUTES.IS_INDETERMINATE], [!!value, false]);
|
|
18856
19109
|
_updateParentChecked(item, value);
|
|
@@ -19031,7 +19284,7 @@ var use_node_action_this = undefined;
|
|
|
19031
19284
|
var _flatData$data$find;
|
|
19032
19285
|
resolvedItem = (_flatData$data$find = flatData.data.find(function (item) {
|
|
19033
19286
|
return getNodeId(item) === resolvedItem;
|
|
19034
|
-
})) !== null && _flatData$data$find !== void 0 ? _flatData$data$find :
|
|
19287
|
+
})) !== null && _flatData$data$find !== void 0 ? _flatData$data$find : defineProperty_defineProperty({}, NODE_ATTRIBUTES.IS_NULL, true);
|
|
19035
19288
|
}
|
|
19036
19289
|
if (resolvedItem[NODE_ATTRIBUTES.IS_NULL]) {
|
|
19037
19290
|
return;
|
|
@@ -19040,19 +19293,23 @@ var use_node_action_this = undefined;
|
|
|
19040
19293
|
console.warn('props.selectable is false or undefined, please set selectable with true');
|
|
19041
19294
|
return;
|
|
19042
19295
|
}
|
|
19043
|
-
|
|
19044
|
-
|
|
19296
|
+
var currentSelectedNodeId = getSelectedNodeId();
|
|
19297
|
+
if (currentSelectedNodeId !== null && currentSelectedNodeId !== undefined) {
|
|
19298
|
+
setNodeAttrById(currentSelectedNodeId, NODE_ATTRIBUTES.IS_SELECTED, !selected);
|
|
19045
19299
|
}
|
|
19046
|
-
if (props.selected && props.selected !==
|
|
19300
|
+
if (props.selected && props.selected !== currentSelectedNodeId) {
|
|
19047
19301
|
setNodeAttrById(props.selected, NODE_ATTRIBUTES.IS_SELECTED, !selected);
|
|
19048
19302
|
}
|
|
19049
19303
|
setNodeAttr(resolvedItem, NODE_ATTRIBUTES.IS_SELECTED, selected);
|
|
19050
|
-
|
|
19304
|
+
if (props.selected === undefined) {
|
|
19305
|
+
selectedNodeId = getNodeId(resolvedItem);
|
|
19306
|
+
}
|
|
19051
19307
|
if (triggerEvent) {
|
|
19052
|
-
|
|
19308
|
+
var payload = {
|
|
19053
19309
|
selected: selected,
|
|
19054
19310
|
node: resolvedItem
|
|
19055
|
-
}
|
|
19311
|
+
};
|
|
19312
|
+
ctx.emit(EVENTS.NODE_SELECTED, payload);
|
|
19056
19313
|
}
|
|
19057
19314
|
/**
|
|
19058
19315
|
* 如果设置了自动展开
|
|
@@ -22647,14 +22904,17 @@ Sortable.mount(Remove, Revert);
|
|
|
22647
22904
|
|
|
22648
22905
|
|
|
22649
22906
|
|
|
22650
|
-
/* harmony default export */ const use_node_drag = (function (props, ctx, root, flatData) {
|
|
22907
|
+
/* harmony default export */ const use_node_drag = (function (props, ctx, root, flatData, options) {
|
|
22651
22908
|
var _useNodeAttribute = use_node_attribute(flatData, props),
|
|
22652
22909
|
getSourceNodeByUID = _useNodeAttribute.getSourceNodeByUID,
|
|
22653
22910
|
getParentNode = _useNodeAttribute.getParentNode,
|
|
22654
22911
|
extendNodeAttr = _useNodeAttribute.extendNodeAttr,
|
|
22655
|
-
setNodeAttr = _useNodeAttribute.setNodeAttr,
|
|
22656
22912
|
getNodeAttr = _useNodeAttribute.getNodeAttr,
|
|
22657
|
-
|
|
22913
|
+
getNodeId = _useNodeAttribute.getNodeId,
|
|
22914
|
+
setNodeAttr = _useNodeAttribute.setNodeAttr;
|
|
22915
|
+
var _ref = options || {},
|
|
22916
|
+
moveTreeNodeById = _ref.moveTreeNodeById,
|
|
22917
|
+
onTreeDataChange = _ref.onTreeDataChange;
|
|
22658
22918
|
var _usePrefix = (0,config_provider_namespaceObject.usePrefix)(),
|
|
22659
22919
|
resolveClassName = _usePrefix.resolveClassName;
|
|
22660
22920
|
var isNeedCheckDraggable = (0,external_vue_namespaceObject.computed)(function () {
|
|
@@ -22762,24 +23022,12 @@ Sortable.mount(Remove, Revert);
|
|
|
22762
23022
|
}
|
|
22763
23023
|
});
|
|
22764
23024
|
};
|
|
22765
|
-
|
|
22766
|
-
|
|
22767
|
-
|
|
22768
|
-
var removeFromParentChildren = function removeFromParentChildren(node, parent) {
|
|
22769
|
-
if (!parent) {
|
|
22770
|
-
var index = props.data.indexOf(node);
|
|
22771
|
-
if (index > -1) {
|
|
22772
|
-
props.data.splice(index, 1);
|
|
22773
|
-
}
|
|
22774
|
-
} else {
|
|
22775
|
-
var children = parent[props.children];
|
|
22776
|
-
if (children) {
|
|
22777
|
-
var _index = children.indexOf(node);
|
|
22778
|
-
if (_index > -1) {
|
|
22779
|
-
children.splice(_index, 1);
|
|
22780
|
-
}
|
|
22781
|
-
}
|
|
23025
|
+
var emitTreeDataChange = function emitTreeDataChange(payload) {
|
|
23026
|
+
if (!payload) {
|
|
23027
|
+
return null;
|
|
22782
23028
|
}
|
|
23029
|
+
onTreeDataChange === null || onTreeDataChange === void 0 || onTreeDataChange(payload);
|
|
23030
|
+
return payload;
|
|
22783
23031
|
};
|
|
22784
23032
|
/**
|
|
22785
23033
|
* 更新节点的 HAS_CHILD 属性
|
|
@@ -22819,52 +23067,36 @@ Sortable.mount(Remove, Revert);
|
|
|
22819
23067
|
return 'child';
|
|
22820
23068
|
};
|
|
22821
23069
|
/**
|
|
22822
|
-
* 将源数据树结构重新展开为 flatData(
|
|
22823
|
-
*
|
|
23070
|
+
* 将源数据树结构重新展开为 flatData(DFS 顺序)
|
|
23071
|
+
* 同时重新计算所有节点属性(深度、路径、索引等)
|
|
23072
|
+
* 与 v1 版本保持一致:从 props.data 出发进行遍历,不依赖旧 schema 状态
|
|
22824
23073
|
*/
|
|
22825
|
-
var
|
|
23074
|
+
var rebuildFlatDataWithAttributes = function rebuildFlatDataWithAttributes() {
|
|
22826
23075
|
var newFlatData = [];
|
|
22827
|
-
var _traverse = function traverse(nodes) {
|
|
22828
|
-
nodes.forEach(function (node) {
|
|
22829
|
-
newFlatData.push(node);
|
|
22830
|
-
var children = node[props.children];
|
|
22831
|
-
if (children && children.length > 0) {
|
|
22832
|
-
_traverse(children);
|
|
22833
|
-
}
|
|
22834
|
-
});
|
|
22835
|
-
};
|
|
22836
|
-
_traverse(props.data);
|
|
22837
|
-
flatData.data = newFlatData;
|
|
22838
|
-
};
|
|
22839
|
-
/**
|
|
22840
|
-
* 重新计算所有节点属性(深度、路径、索引等)
|
|
22841
|
-
*/
|
|
22842
|
-
var recalculateNodeAttributes = function recalculateNodeAttributes() {
|
|
22843
23076
|
var orderIndex = 0;
|
|
22844
|
-
var
|
|
22845
|
-
for (var i = 0; i <
|
|
22846
|
-
var node =
|
|
23077
|
+
var _traverse = function traverse(nodes, level, parentPath, parent) {
|
|
23078
|
+
for (var i = 0; i < nodes.length; i++) {
|
|
23079
|
+
var node = nodes[i];
|
|
22847
23080
|
var path = parentPath !== '' ? "".concat(parentPath, "-").concat(i) : "".concat(i);
|
|
23081
|
+
// 重新构建 flatData
|
|
23082
|
+
newFlatData.push(node);
|
|
23083
|
+
// 重新计算所有节点属性
|
|
22848
23084
|
setNodeAttr(node, NODE_ATTRIBUTES.INDEX, orderIndex);
|
|
22849
23085
|
setNodeAttr(node, NODE_ATTRIBUTES.ORDER, orderIndex);
|
|
22850
23086
|
setNodeAttr(node, NODE_ATTRIBUTES.DEPTH, level);
|
|
22851
23087
|
setNodeAttr(node, NODE_ATTRIBUTES.PATH, path);
|
|
22852
23088
|
setNodeAttr(node, NODE_ATTRIBUTES.IS_ROOT, level === 0);
|
|
22853
23089
|
setNodeAttr(node, NODE_ATTRIBUTES.PARENT, parent);
|
|
22854
|
-
|
|
22855
|
-
// 根节点:检查是否有子节点
|
|
22856
|
-
var _children = node[props.children];
|
|
22857
|
-
setNodeAttr(node, NODE_ATTRIBUTES.HAS_CHILD, !!(_children && _children.length > 0));
|
|
22858
|
-
}
|
|
23090
|
+
setNodeAttr(node, NODE_ATTRIBUTES.HAS_CHILD, !!(node[props.children] || []).length);
|
|
22859
23091
|
orderIndex += 1;
|
|
22860
|
-
var children = node[props.children];
|
|
22861
|
-
if (children
|
|
22862
|
-
|
|
23092
|
+
var children = node[props.children] || [];
|
|
23093
|
+
if (children.length > 0) {
|
|
23094
|
+
_traverse(children, level + 1, path, node);
|
|
22863
23095
|
}
|
|
22864
23096
|
}
|
|
22865
23097
|
};
|
|
22866
|
-
|
|
22867
|
-
|
|
23098
|
+
_traverse(props.data, 0, '', null);
|
|
23099
|
+
flatData.data = newFlatData;
|
|
22868
23100
|
};
|
|
22869
23101
|
/**
|
|
22870
23102
|
* 拖拽排序:同级节点间排序(dragSort 模式)
|
|
@@ -22873,36 +23105,29 @@ Sortable.mount(Remove, Revert);
|
|
|
22873
23105
|
var dragSortData = function dragSortData(sourceNodeData, targetNodeData, willInsertAfter, savedOpenStates) {
|
|
22874
23106
|
var sourceParent = getParentNode(sourceNodeData);
|
|
22875
23107
|
var targetParent = getParentNode(targetNodeData);
|
|
22876
|
-
|
|
22877
|
-
|
|
22878
|
-
|
|
22879
|
-
|
|
22880
|
-
|
|
22881
|
-
|
|
22882
|
-
|
|
22883
|
-
|
|
22884
|
-
|
|
22885
|
-
targetChildren = targetParent[props.children];
|
|
22886
|
-
if (!targetChildren) {
|
|
22887
|
-
targetParent[props.children] = [];
|
|
22888
|
-
targetChildren = targetParent[props.children];
|
|
22889
|
-
}
|
|
22890
|
-
}
|
|
22891
|
-
// 3. 在目标节点前/后插入源节点
|
|
22892
|
-
var targetIndexInParent = targetChildren.indexOf(targetNodeData);
|
|
22893
|
-
var insertIndex = willInsertAfter ? targetIndexInParent + 1 : targetIndexInParent;
|
|
22894
|
-
targetChildren.splice(insertIndex, 0, sourceNodeData);
|
|
22895
|
-
// 4. 重新构建 flatData 并计算属性
|
|
22896
|
-
rebuildFlatData();
|
|
22897
|
-
recalculateNodeAttributes();
|
|
22898
|
-
// 5. 更新源父节点的 HAS_CHILD
|
|
23108
|
+
if (props.dragSortMode === 'next' && sourceParent !== targetParent) return null;
|
|
23109
|
+
var payload = emitTreeDataChange(moveTreeNodeById === null || moveTreeNodeById === void 0 ? void 0 : moveTreeNodeById(props.data, getNodeId(sourceNodeData), getNodeId(targetNodeData), props.nodeKey || NODE_ATTRIBUTES.UUID, props.children, {
|
|
23110
|
+
dropType: 'sort',
|
|
23111
|
+
willInsertAfter: willInsertAfter
|
|
23112
|
+
}));
|
|
23113
|
+
if (!payload) {
|
|
23114
|
+
return null;
|
|
23115
|
+
}
|
|
23116
|
+
rebuildFlatDataWithAttributes();
|
|
22899
23117
|
updateHasChildAttr(sourceParent);
|
|
22900
|
-
// 6. 恢复展开状态
|
|
22901
23118
|
restoreAllOpenStates(savedOpenStates);
|
|
22902
|
-
|
|
23119
|
+
var dragSortPayload = {
|
|
22903
23120
|
sourceNode: sourceNodeData,
|
|
22904
|
-
targetNode: targetNodeData
|
|
22905
|
-
|
|
23121
|
+
targetNode: targetNodeData,
|
|
23122
|
+
sourceIndex: payload.sourceIndex,
|
|
23123
|
+
targetIndex: payload.targetIndex,
|
|
23124
|
+
data: payload.data,
|
|
23125
|
+
parentNode: payload.parentNode,
|
|
23126
|
+
oldParentNode: payload.oldParentNode,
|
|
23127
|
+
dropType: payload.dropType
|
|
23128
|
+
};
|
|
23129
|
+
ctx.emit(EVENTS.NODE_DRAG_SORT, dragSortPayload);
|
|
23130
|
+
return payload;
|
|
22906
23131
|
};
|
|
22907
23132
|
/**
|
|
22908
23133
|
* 将源节点作为目标节点的子节点
|
|
@@ -22910,22 +23135,17 @@ Sortable.mount(Remove, Revert);
|
|
|
22910
23135
|
*/
|
|
22911
23136
|
var dragAsChildNode = function dragAsChildNode(sourceNodeData, targetNodeData, savedOpenStates) {
|
|
22912
23137
|
var sourceParent = getParentNode(sourceNodeData);
|
|
22913
|
-
|
|
22914
|
-
|
|
22915
|
-
|
|
22916
|
-
if (!
|
|
22917
|
-
|
|
22918
|
-
}
|
|
22919
|
-
|
|
22920
|
-
// 3. 重新构建 flatData 并计算属性
|
|
22921
|
-
rebuildFlatData();
|
|
22922
|
-
recalculateNodeAttributes();
|
|
22923
|
-
// 4. 更新属性
|
|
23138
|
+
var payload = emitTreeDataChange(moveTreeNodeById === null || moveTreeNodeById === void 0 ? void 0 : moveTreeNodeById(props.data, getNodeId(sourceNodeData), getNodeId(targetNodeData), props.nodeKey || NODE_ATTRIBUTES.UUID, props.children, {
|
|
23139
|
+
dropType: 'child'
|
|
23140
|
+
}));
|
|
23141
|
+
if (!payload) {
|
|
23142
|
+
return null;
|
|
23143
|
+
}
|
|
23144
|
+
rebuildFlatDataWithAttributes();
|
|
22924
23145
|
updateHasChildAttr(sourceParent);
|
|
22925
23146
|
setNodeAttr(targetNodeData, NODE_ATTRIBUTES.HAS_CHILD, true);
|
|
22926
|
-
// 5. 恢复展开状态
|
|
22927
23147
|
restoreAllOpenStates(savedOpenStates);
|
|
22928
|
-
|
|
23148
|
+
return payload;
|
|
22929
23149
|
};
|
|
22930
23150
|
/**
|
|
22931
23151
|
* 将源节点作为目标节点的同级节点插入(可跨级)
|
|
@@ -22934,32 +23154,18 @@ Sortable.mount(Remove, Revert);
|
|
|
22934
23154
|
var dragAsSiblingNode = function dragAsSiblingNode(sourceNodeData, targetNodeData, willInsertAfter, savedOpenStates) {
|
|
22935
23155
|
var sourceParent = getParentNode(sourceNodeData);
|
|
22936
23156
|
var targetParent = getParentNode(targetNodeData);
|
|
22937
|
-
|
|
22938
|
-
|
|
22939
|
-
|
|
22940
|
-
|
|
22941
|
-
if (!
|
|
22942
|
-
|
|
22943
|
-
}
|
|
22944
|
-
|
|
22945
|
-
if (!targetChildren) {
|
|
22946
|
-
targetParent[props.children] = [];
|
|
22947
|
-
targetChildren = targetParent[props.children];
|
|
22948
|
-
}
|
|
22949
|
-
}
|
|
22950
|
-
// 3. 在目标节点前/后插入源节点
|
|
22951
|
-
var targetIndexInParent = targetChildren.indexOf(targetNodeData);
|
|
22952
|
-
var insertIndex = willInsertAfter ? targetIndexInParent + 1 : targetIndexInParent;
|
|
22953
|
-
targetChildren.splice(insertIndex, 0, sourceNodeData);
|
|
22954
|
-
// 4. 重新构建 flatData 并计算属性
|
|
22955
|
-
rebuildFlatData();
|
|
22956
|
-
recalculateNodeAttributes();
|
|
22957
|
-
// 5. 更新属性
|
|
23157
|
+
var payload = emitTreeDataChange(moveTreeNodeById === null || moveTreeNodeById === void 0 ? void 0 : moveTreeNodeById(props.data, getNodeId(sourceNodeData), getNodeId(targetNodeData), props.nodeKey || NODE_ATTRIBUTES.UUID, props.children, {
|
|
23158
|
+
dropType: 'move',
|
|
23159
|
+
willInsertAfter: willInsertAfter
|
|
23160
|
+
}));
|
|
23161
|
+
if (!payload) {
|
|
23162
|
+
return null;
|
|
23163
|
+
}
|
|
23164
|
+
rebuildFlatDataWithAttributes();
|
|
22958
23165
|
updateHasChildAttr(sourceParent);
|
|
22959
23166
|
updateHasChildAttr(targetParent);
|
|
22960
|
-
// 6. 恢复展开状态
|
|
22961
23167
|
restoreAllOpenStates(savedOpenStates);
|
|
22962
|
-
|
|
23168
|
+
return payload;
|
|
22963
23169
|
};
|
|
22964
23170
|
/**
|
|
22965
23171
|
* 检查是否禁止拖拽
|
|
@@ -23036,7 +23242,8 @@ Sortable.mount(Remove, Revert);
|
|
|
23036
23242
|
}
|
|
23037
23243
|
var sourceNodeData = getSourceNodeByUID(dragNodeId);
|
|
23038
23244
|
var targetNodeData = getSourceNodeByUID(targetNodeId);
|
|
23039
|
-
|
|
23245
|
+
var targetEl = evt.related;
|
|
23246
|
+
if (!sourceNodeData || !targetNodeData || !targetEl) {
|
|
23040
23247
|
cleanup();
|
|
23041
23248
|
return;
|
|
23042
23249
|
}
|
|
@@ -23046,17 +23253,32 @@ Sortable.mount(Remove, Revert);
|
|
|
23046
23253
|
}
|
|
23047
23254
|
// 保存展开状态
|
|
23048
23255
|
var savedOpenStates = saveAllOpenStates();
|
|
23049
|
-
|
|
23256
|
+
var payload = null;
|
|
23050
23257
|
if (currentDropType === 'child') {
|
|
23051
|
-
dragAsChildNode(sourceNodeData, targetNodeData, savedOpenStates);
|
|
23258
|
+
payload = dragAsChildNode(sourceNodeData, targetNodeData, savedOpenStates);
|
|
23052
23259
|
} else if (currentDropType === 'sort') {
|
|
23053
|
-
dragSortData(sourceNodeData, targetNodeData, currentWillInsertAfter, savedOpenStates);
|
|
23260
|
+
payload = dragSortData(sourceNodeData, targetNodeData, currentWillInsertAfter, savedOpenStates);
|
|
23054
23261
|
} else {
|
|
23055
|
-
|
|
23056
|
-
|
|
23262
|
+
payload = dragAsSiblingNode(sourceNodeData, targetNodeData, currentWillInsertAfter, savedOpenStates);
|
|
23263
|
+
}
|
|
23264
|
+
if (!payload) {
|
|
23265
|
+
cleanup();
|
|
23266
|
+
return;
|
|
23057
23267
|
}
|
|
23058
23268
|
var targetData = extendNodeAttr(targetNodeData);
|
|
23059
|
-
|
|
23269
|
+
var dropPayload = {
|
|
23270
|
+
event: evt,
|
|
23271
|
+
element: targetEl,
|
|
23272
|
+
targetNode: targetData,
|
|
23273
|
+
sourceNode: sourceNodeData,
|
|
23274
|
+
data: payload.data,
|
|
23275
|
+
parentNode: payload.parentNode,
|
|
23276
|
+
oldParentNode: payload.oldParentNode,
|
|
23277
|
+
dropType: payload.dropType,
|
|
23278
|
+
sourceIndex: payload.sourceIndex,
|
|
23279
|
+
targetIndex: payload.targetIndex
|
|
23280
|
+
};
|
|
23281
|
+
ctx.emit(EVENTS.NODE_DROP, dropPayload);
|
|
23060
23282
|
cleanup();
|
|
23061
23283
|
},
|
|
23062
23284
|
onMove: function onMove(evt, originalEvent) {
|
|
@@ -23114,12 +23336,6 @@ Sortable.mount(Remove, Revert);
|
|
|
23114
23336
|
* 拖拽结束后移除节点的选中状态,避免拖拽完毕节点保持选中
|
|
23115
23337
|
*/
|
|
23116
23338
|
var cleanup = function cleanup() {
|
|
23117
|
-
if (dragNodeId) {
|
|
23118
|
-
var dragNode = getSourceNodeByUID(dragNodeId);
|
|
23119
|
-
if (dragNode) {
|
|
23120
|
-
setNodeAttr(dragNode, NODE_ATTRIBUTES.IS_SELECTED, false);
|
|
23121
|
-
}
|
|
23122
|
-
}
|
|
23123
23339
|
dragNodeId = '';
|
|
23124
23340
|
currentDropType = 'move';
|
|
23125
23341
|
currentRelatedId = '';
|
|
@@ -23363,8 +23579,16 @@ var use_tree_init_this = undefined;
|
|
|
23363
23579
|
|
|
23364
23580
|
|
|
23365
23581
|
|
|
23582
|
+
var warnRequiredNodeKey = function warnRequiredNodeKey(props) {
|
|
23583
|
+
var _props$async, _props$checked;
|
|
23584
|
+
var needsStableNodeKey = !!props.draggable || !!props.dragSort || !!((_props$async = props.async) !== null && _props$async !== void 0 && _props$async.callback) || props.selected !== undefined || !!((_props$checked = props.checked) !== null && _props$checked !== void 0 && _props$checked.length);
|
|
23585
|
+
if (needsStableNodeKey && !props.nodeKey) {
|
|
23586
|
+
console.warn('[Tree] `nodeKey` is recommended when using drag, async, selected, or checked state.');
|
|
23587
|
+
}
|
|
23588
|
+
};
|
|
23366
23589
|
/* harmony default export */ const use_tree_init = (function (props) {
|
|
23367
|
-
var _props$
|
|
23590
|
+
var _props$async4;
|
|
23591
|
+
warnRequiredNodeKey(props);
|
|
23368
23592
|
/**
|
|
23369
23593
|
* 扁平化当前数据
|
|
23370
23594
|
* @param treeData 树形结构数据
|
|
@@ -23379,6 +23603,10 @@ var use_tree_init_this = undefined;
|
|
|
23379
23603
|
var checkedList = [];
|
|
23380
23604
|
var outputData = [];
|
|
23381
23605
|
var order = 0;
|
|
23606
|
+
// TODO P2: 考虑将 WeakMap<TreeNode, meta> 切换为 Map<nodeKey, meta>
|
|
23607
|
+
// 优势:序列化友好、跨实例共享、避免对象引用泄漏
|
|
23608
|
+
// 劣势:需要手动管理内存、依赖 nodeKey 唯一性
|
|
23609
|
+
// 当前保留 WeakMap 以保证兼容性和自动 GC
|
|
23382
23610
|
var treeSchema = new WeakMap();
|
|
23383
23611
|
/**
|
|
23384
23612
|
* 递归更新节点属性
|
|
@@ -23399,7 +23627,7 @@ var use_tree_init_this = undefined;
|
|
|
23399
23627
|
if (target[attrName] === attrValue) {
|
|
23400
23628
|
return;
|
|
23401
23629
|
}
|
|
23402
|
-
Object.assign(target,
|
|
23630
|
+
Object.assign(target, defineProperty_defineProperty({}, attrName, attrValue));
|
|
23403
23631
|
loopUpdateNodeAttr(target[NODE_ATTRIBUTES.PARENT], attrName, attrValue, callFn);
|
|
23404
23632
|
}
|
|
23405
23633
|
}
|
|
@@ -23417,7 +23645,7 @@ var use_tree_init_this = undefined;
|
|
|
23417
23645
|
* 如果传入数据没有设置相关属性值
|
|
23418
23646
|
* 这里会自动生成
|
|
23419
23647
|
*/
|
|
23420
|
-
var cachedDefaultVal =
|
|
23648
|
+
var cachedDefaultVal = defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty({}, NODE_ATTRIBUTES.IS_OPEN, function () {
|
|
23421
23649
|
return !!props.expandAll;
|
|
23422
23650
|
}), NODE_ATTRIBUTES.IS_CHECKED, function () {
|
|
23423
23651
|
return false;
|
|
@@ -23540,7 +23768,7 @@ var use_tree_init_this = undefined;
|
|
|
23540
23768
|
*/
|
|
23541
23769
|
isOpened = isNodeOpend(uuid, item, parent);
|
|
23542
23770
|
}
|
|
23543
|
-
var attributes = (_attributes = {},
|
|
23771
|
+
var attributes = (_attributes = {}, defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(_attributes, NODE_ATTRIBUTES.DEPTH, depth), NODE_ATTRIBUTES.INDEX, order), NODE_ATTRIBUTES.UUID, uuid), NODE_ATTRIBUTES.PARENT, parent), NODE_ATTRIBUTES.HAS_CHILD, hasChildren), NODE_ATTRIBUTES.PATH, currentPath), NODE_ATTRIBUTES.IS_ROOT, parent === null), NODE_ATTRIBUTES.ORDER, order), NODE_ATTRIBUTES.IS_SELECTED, isCachedTreeNodeSelected(uuid, item)), NODE_ATTRIBUTES.IS_MATCH, getCachedTreeNodeAttr(uuid, item, NODE_ATTRIBUTES.IS_MATCH)), defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(defineProperty_defineProperty(_attributes, NODE_ATTRIBUTES.IS_OPEN, isOpened), NODE_ATTRIBUTES.IS_CHECKED, undefined), NODE_ATTRIBUTES.IS_CACHED, getCachedTreeNodeAttr(uuid, item, NODE_ATTRIBUTES.IS_CACHED)), NODE_ATTRIBUTES.IS_ASYNC, getCachedTreeNodeAttr(uuid, item, NODE_ATTRIBUTES.IS_ASYNC)), NODE_ATTRIBUTES.IS_LOADING, getCachedTreeNodeAttr(uuid, item, NODE_ATTRIBUTES.IS_LOADING)), NODE_ATTRIBUTES.IS_INDETERMINATE, false));
|
|
23544
23772
|
attributes[NODE_ATTRIBUTES.IS_CHECKED] = isCheckedNode(item, uuid, attributes);
|
|
23545
23773
|
if (attributes[NODE_ATTRIBUTES.IS_CHECKED]) {
|
|
23546
23774
|
checkedList.push(item);
|
|
@@ -23556,6 +23784,7 @@ var use_tree_init_this = undefined;
|
|
|
23556
23784
|
}
|
|
23557
23785
|
}
|
|
23558
23786
|
flatten(treeData !== null && treeData !== void 0 ? treeData : data);
|
|
23787
|
+
// 历史语义:checkStrictly=true 表示启用父子联动
|
|
23559
23788
|
if (props.showCheckbox !== false && props.checkStrictly) {
|
|
23560
23789
|
checkedList === null || checkedList === void 0 || checkedList.forEach(function (value) {
|
|
23561
23790
|
loopUpdateNodeAttr(value, NODE_ATTRIBUTES.IS_CHECKED, true, loopUpdateCheckedEvent);
|
|
@@ -23643,15 +23872,17 @@ var use_tree_init_this = undefined;
|
|
|
23643
23872
|
};
|
|
23644
23873
|
/**
|
|
23645
23874
|
* 监听组件配置Data改变
|
|
23875
|
+
* 注意:外部应通过 onDataChange 回调更新数据,而非直接修改 props.data 内部节点
|
|
23876
|
+
* 默认不使用 deep: true 以避免不必要的深度遍历开销
|
|
23646
23877
|
*/
|
|
23647
23878
|
(0,external_vue_namespaceObject.watch)(function () {
|
|
23648
|
-
return
|
|
23879
|
+
return props.data;
|
|
23649
23880
|
}, function (newData) {
|
|
23650
|
-
var _props$
|
|
23651
|
-
var formatData = getFlatdata(newData
|
|
23881
|
+
var _props$async2, _props$async3;
|
|
23882
|
+
var formatData = getFlatdata(newData, flatData.schema);
|
|
23652
23883
|
flatData.data = formatData[0];
|
|
23653
23884
|
flatData.schema = formatData[1];
|
|
23654
|
-
if ((_props$
|
|
23885
|
+
if ((_props$async2 = props.async) !== null && _props$async2 !== void 0 && _props$async2.callback && ((_props$async3 = props.async) === null || _props$async3 === void 0 ? void 0 : _props$async3.deepAutoOpen) === 'every') {
|
|
23655
23886
|
deepAutoOpen();
|
|
23656
23887
|
}
|
|
23657
23888
|
/**
|
|
@@ -23660,8 +23891,12 @@ var use_tree_init_this = undefined;
|
|
|
23660
23891
|
*/
|
|
23661
23892
|
executeNextEvent();
|
|
23662
23893
|
}, {
|
|
23663
|
-
deep:
|
|
23894
|
+
deep: props.deepWatch
|
|
23664
23895
|
});
|
|
23896
|
+
// deepWatch 已废弃警告
|
|
23897
|
+
if (props.deepWatch) {
|
|
23898
|
+
console.warn('[BkTree] deepWatch is deprecated and will be removed in the next major version. ' + 'Please use onDataChange callback to update data instead of directly modifying props.data internal nodes.');
|
|
23899
|
+
}
|
|
23665
23900
|
if (props.selectable) {
|
|
23666
23901
|
(0,external_vue_namespaceObject.onMounted)(function () {
|
|
23667
23902
|
(0,external_vue_namespaceObject.watch)(function () {
|
|
@@ -23689,7 +23924,7 @@ var use_tree_init_this = undefined;
|
|
|
23689
23924
|
registerNextLoop('afterDataUpdate', callFn);
|
|
23690
23925
|
};
|
|
23691
23926
|
/** 如果设置了异步请求 */
|
|
23692
|
-
if ((_props$
|
|
23927
|
+
if ((_props$async4 = props.async) !== null && _props$async4 !== void 0 && _props$async4.callback) {
|
|
23693
23928
|
deepAutoOpen();
|
|
23694
23929
|
}
|
|
23695
23930
|
return {
|
|
@@ -23755,6 +23990,10 @@ var use_tree_init_this = undefined;
|
|
|
23755
23990
|
flatData = _useTreeInit.flatData,
|
|
23756
23991
|
onSelected = _useTreeInit.onSelected,
|
|
23757
23992
|
registerNextLoop = _useTreeInit.registerNextLoop;
|
|
23993
|
+
var handleTreeDataChange = function handleTreeDataChange(payload) {
|
|
23994
|
+
var _props$onDataChange;
|
|
23995
|
+
(_props$onDataChange = props.onDataChange) === null || _props$onDataChange === void 0 || _props$onDataChange.call(props, payload);
|
|
23996
|
+
};
|
|
23758
23997
|
var _useNodeAttribute = use_node_attribute(flatData, props),
|
|
23759
23998
|
checkNodeIsOpen = _useNodeAttribute.checkNodeIsOpen,
|
|
23760
23999
|
isRootNode = _useNodeAttribute.isRootNode,
|
|
@@ -23879,7 +24118,7 @@ var use_tree_init_this = undefined;
|
|
|
23879
24118
|
if (checked) {
|
|
23880
24119
|
setNodeAction(resolvedNode, NODE_ATTRIBUTES.IS_INDETERMINATE, false);
|
|
23881
24120
|
}
|
|
23882
|
-
//
|
|
24121
|
+
// 历史语义:checkStrictly=true 表示启用父子联动
|
|
23883
24122
|
if (props.checkStrictly) {
|
|
23884
24123
|
deepUpdateChildNode(resolvedNode, [NODE_ATTRIBUTES.IS_CHECKED, NODE_ATTRIBUTES.IS_INDETERMINATE], [checked, false]);
|
|
23885
24124
|
updateParentChecked(resolvedNode, checked);
|
|
@@ -23896,32 +24135,46 @@ var use_tree_init_this = undefined;
|
|
|
23896
24135
|
onSelected(function (newData) {
|
|
23897
24136
|
setSelect(newData, true, props.autoOpenParentNode, true);
|
|
23898
24137
|
});
|
|
24138
|
+
var buildChildrenIndex = function buildChildrenIndex() {
|
|
24139
|
+
var childrenMap = new Map();
|
|
24140
|
+
flatData.data.forEach(function (node) {
|
|
24141
|
+
var _getParentNode;
|
|
24142
|
+
var parentNode = (_getParentNode = getParentNode(node)) !== null && _getParentNode !== void 0 ? _getParentNode : null;
|
|
24143
|
+
if (!childrenMap.has(parentNode)) {
|
|
24144
|
+
childrenMap.set(parentNode, []);
|
|
24145
|
+
}
|
|
24146
|
+
childrenMap.get(parentNode).push(node);
|
|
24147
|
+
});
|
|
24148
|
+
return childrenMap;
|
|
24149
|
+
};
|
|
23899
24150
|
/**
|
|
23900
24151
|
* 根据最新的schema生成最新的Tree结构数据
|
|
23901
24152
|
* @returns
|
|
23902
24153
|
*/
|
|
23903
24154
|
var getLastTreeDataBySchema = function getLastTreeDataBySchema() {
|
|
24155
|
+
var _childrenMap$get2;
|
|
24156
|
+
var childrenMap = buildChildrenIndex();
|
|
23904
24157
|
var _loopData = function loopData(rootNodeList) {
|
|
23905
24158
|
return (rootNodeList !== null && rootNodeList !== void 0 ? rootNodeList : []).map(function (node) {
|
|
24159
|
+
var _childrenMap$get;
|
|
23906
24160
|
var copyData = (0,lodash.cloneDeep)(node);
|
|
23907
24161
|
if (!copyData) {
|
|
23908
24162
|
return copyData;
|
|
23909
24163
|
}
|
|
23910
|
-
var children =
|
|
23911
|
-
return getParentNode(item) === node;
|
|
23912
|
-
});
|
|
24164
|
+
var children = (_childrenMap$get = childrenMap.get(node)) !== null && _childrenMap$get !== void 0 ? _childrenMap$get : [];
|
|
23913
24165
|
copyData[props.children] = _loopData(children);
|
|
23914
24166
|
return copyData;
|
|
23915
24167
|
});
|
|
23916
24168
|
};
|
|
23917
|
-
return _loopData(getRootNodeList());
|
|
24169
|
+
return _loopData((_childrenMap$get2 = childrenMap.get(null)) !== null && _childrenMap$get2 !== void 0 ? _childrenMap$get2 : getRootNodeList());
|
|
23918
24170
|
};
|
|
23919
24171
|
/**
|
|
23920
24172
|
* 获取当前树形结构相关数据
|
|
23921
24173
|
* @param newTree 如果启用了排序,拖拽功能,这里数据结构会改变,需要设置为true,获取最新的数据
|
|
23922
24174
|
* @returns
|
|
23923
24175
|
*/
|
|
23924
|
-
var getData = function getData(
|
|
24176
|
+
var getData = function getData() {
|
|
24177
|
+
var newTree = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
23925
24178
|
if (!newTree) {
|
|
23926
24179
|
return flatData;
|
|
23927
24180
|
}
|
|
@@ -24020,7 +24273,10 @@ var use_tree_init_this = undefined;
|
|
|
24020
24273
|
});
|
|
24021
24274
|
var _useEmpty = use_empty(props),
|
|
24022
24275
|
renderEmpty = _useEmpty.renderEmpty;
|
|
24023
|
-
use_node_drag(props, ctx, root, flatData
|
|
24276
|
+
use_node_drag(props, ctx, root, flatData, {
|
|
24277
|
+
moveTreeNodeById: moveTreeNodeById,
|
|
24278
|
+
onTreeDataChange: handleTreeDataChange
|
|
24279
|
+
});
|
|
24024
24280
|
var renderTreeContent = function renderTreeContent(scopedData) {
|
|
24025
24281
|
var _ctx$slots$empty, _ctx$slots$empty2, _ctx$slots;
|
|
24026
24282
|
if (scopedData.length) {
|