bkui-vue 3.0.2 → 3.0.4
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 +10 -10
- package/dist/index.esm.js +6485 -6183
- package/dist/index.umd.js +21 -21
- package/dist/style.css +1 -1
- package/dist/style.variable.css +1 -1
- package/lib/index.js +1 -1
- package/lib/packages/select/index.d.ts +24 -0
- package/lib/packages/select/select.d.ts +14 -0
- package/lib/packages/tab/props.d.ts +4 -11
- package/lib/packages/tab/tab-panel.d.ts +8 -23
- package/lib/packages/tree/index.d.ts +12 -0
- package/lib/packages/tree/props.d.ts +8 -0
- package/lib/packages/tree/tree.d.ts +7 -0
- package/lib/packages/tree/use-checked-state.d.ts +29 -0
- package/lib/packages/tree/use-node-action.d.ts +8 -1
- package/lib/packages/tree/use-node-attribute.d.ts +15 -4
- package/lib/packages/tree/use-tree-init.d.ts +4 -21
- package/lib/packages/tree/use-visible-nodes.d.ts +27 -0
- package/lib/packages/tree/util.d.ts +10 -6
- package/lib/select/index.js +14 -5
- package/lib/select/select.css +7 -0
- package/lib/select/select.less +9 -0
- package/lib/select/select.variable.css +7 -0
- package/lib/tab/index.js +146 -51
- package/lib/tree/index.js +903 -302
- package/lib/tree/tree.css +1 -0
- package/lib/tree/tree.less +1 -0
- package/lib/tree/tree.variable.css +1 -0
- package/lib/volar.components.d.ts +1 -0
- package/package.json +1 -1
package/lib/tree/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "../styles/reset.css";
|
|
2
2
|
import "./tree.less";
|
|
3
3
|
import { PropTypes as __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03_PropTypes__, debounce as __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03_debounce__, withInstall as __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03_withInstall__ } from "../shared";
|
|
4
|
-
import { computed as __WEBPACK_EXTERNAL_MODULE_vue_computed__, createVNode as __WEBPACK_EXTERNAL_MODULE_vue_createVNode__, defineComponent as __WEBPACK_EXTERNAL_MODULE_vue_defineComponent__, h as __WEBPACK_EXTERNAL_MODULE_vue_h__, isVNode as __WEBPACK_EXTERNAL_MODULE_vue_isVNode__, nextTick as __WEBPACK_EXTERNAL_MODULE_vue_nextTick__, onMounted as __WEBPACK_EXTERNAL_MODULE_vue_onMounted__, onUnmounted as __WEBPACK_EXTERNAL_MODULE_vue_onUnmounted__, reactive as __WEBPACK_EXTERNAL_MODULE_vue_reactive__, ref as __WEBPACK_EXTERNAL_MODULE_vue_ref__, toRef as __WEBPACK_EXTERNAL_MODULE_vue_toRef__, watch as __WEBPACK_EXTERNAL_MODULE_vue_watch__ } from "vue";
|
|
4
|
+
import { computed as __WEBPACK_EXTERNAL_MODULE_vue_computed__, createVNode as __WEBPACK_EXTERNAL_MODULE_vue_createVNode__, defineComponent as __WEBPACK_EXTERNAL_MODULE_vue_defineComponent__, h as __WEBPACK_EXTERNAL_MODULE_vue_h__, isVNode as __WEBPACK_EXTERNAL_MODULE_vue_isVNode__, markRaw as __WEBPACK_EXTERNAL_MODULE_vue_markRaw__, nextTick as __WEBPACK_EXTERNAL_MODULE_vue_nextTick__, onMounted as __WEBPACK_EXTERNAL_MODULE_vue_onMounted__, onUnmounted as __WEBPACK_EXTERNAL_MODULE_vue_onUnmounted__, reactive as __WEBPACK_EXTERNAL_MODULE_vue_reactive__, ref as __WEBPACK_EXTERNAL_MODULE_vue_ref__, shallowReactive as __WEBPACK_EXTERNAL_MODULE_vue_shallowReactive__, shallowRef as __WEBPACK_EXTERNAL_MODULE_vue_shallowRef__, toRaw as __WEBPACK_EXTERNAL_MODULE_vue_toRaw__, toRef as __WEBPACK_EXTERNAL_MODULE_vue_toRef__, watch as __WEBPACK_EXTERNAL_MODULE_vue_watch__ } from "vue";
|
|
5
5
|
import { usePrefix as __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_config_provider_fe8577a3_usePrefix__ } from "../config-provider";
|
|
6
6
|
import { default as __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_virtual_render_927587a8_default__ } from "../virtual-render";
|
|
7
7
|
import "../virtual-render/virtual-render.less";
|
|
@@ -17601,6 +17601,12 @@ var treeProps = {
|
|
|
17601
17601
|
* 默认虚拟滚动是开启的,数据量大的情况下有利于性能优化,可以通过设置 virtualRender = false 关闭虚拟滚动
|
|
17602
17602
|
*/
|
|
17603
17603
|
virtualRender: __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03_PropTypes__.bool.def(false),
|
|
17604
|
+
/**
|
|
17605
|
+
* 是否深度监听 data 内部变更(原地 push/改 children 等)
|
|
17606
|
+
* 默认 false:仅监听 data 引用变化,大数据量下性能更好
|
|
17607
|
+
* 若业务依赖「不换引用、原地改树」自动刷新,可设为 true(小数据场景)
|
|
17608
|
+
*/
|
|
17609
|
+
watchDataDeep: __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03_PropTypes__.bool.def(false),
|
|
17604
17610
|
/**
|
|
17605
17611
|
* 当前节点标识图标
|
|
17606
17612
|
* 默认 true
|
|
@@ -17971,6 +17977,208 @@ var treeProps = {
|
|
|
17971
17977
|
|
|
17972
17978
|
;// external "../icon"
|
|
17973
17979
|
|
|
17980
|
+
;// ../../packages/tree/src/use-checked-state.ts
|
|
17981
|
+
/*
|
|
17982
|
+
* Tencent is pleased to support the open source community by making
|
|
17983
|
+
* 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
|
|
17984
|
+
*
|
|
17985
|
+
* Copyright (C) 2025 Tencent. All rights reserved.
|
|
17986
|
+
*
|
|
17987
|
+
* 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
|
|
17988
|
+
*
|
|
17989
|
+
* License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
|
|
17990
|
+
*
|
|
17991
|
+
* ---------------------------------------------------
|
|
17992
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
|
|
17993
|
+
* documentation files (the "Software"), to deal in the Software without restriction, including without limitation
|
|
17994
|
+
* the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
|
|
17995
|
+
* to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
17996
|
+
*
|
|
17997
|
+
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of
|
|
17998
|
+
* the Software.
|
|
17999
|
+
*
|
|
18000
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
18001
|
+
* THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18002
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
|
18003
|
+
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
18004
|
+
* IN THE SOFTWARE.
|
|
18005
|
+
*/
|
|
18006
|
+
|
|
18007
|
+
/**
|
|
18008
|
+
* 勾选状态增量维护:
|
|
18009
|
+
* - checked/indeterminate 用 Set 跟踪,避免每次 emit 全表 filter O(N)
|
|
18010
|
+
* - 子树更新按 flatData 的 DFS 连续区间扫描,避免递归调用开销
|
|
18011
|
+
*/
|
|
18012
|
+
/* harmony default export */ const use_checked_state = (function (flatData, helpers) {
|
|
18013
|
+
var getChildNodes = helpers.getChildNodes,
|
|
18014
|
+
getNodeAttr = helpers.getNodeAttr,
|
|
18015
|
+
getParentNode = helpers.getParentNode,
|
|
18016
|
+
getSchemaVal = helpers.getSchemaVal,
|
|
18017
|
+
isRootNode = helpers.isRootNode;
|
|
18018
|
+
var checkedSet = new Set();
|
|
18019
|
+
var indeterminateSet = new Set();
|
|
18020
|
+
var syncNodeToSets = function syncNodeToSets(node) {
|
|
18021
|
+
var schema = getSchemaVal(node);
|
|
18022
|
+
if (!schema) {
|
|
18023
|
+
return;
|
|
18024
|
+
}
|
|
18025
|
+
var checked = !!schema[NODE_ATTRIBUTES.IS_CHECKED];
|
|
18026
|
+
var indeterminate = checked && !!schema[NODE_ATTRIBUTES.IS_INDETERMINATE];
|
|
18027
|
+
if (checked) {
|
|
18028
|
+
checkedSet.add(node);
|
|
18029
|
+
} else {
|
|
18030
|
+
checkedSet["delete"](node);
|
|
18031
|
+
}
|
|
18032
|
+
if (indeterminate) {
|
|
18033
|
+
indeterminateSet.add(node);
|
|
18034
|
+
} else {
|
|
18035
|
+
indeterminateSet["delete"](node);
|
|
18036
|
+
}
|
|
18037
|
+
};
|
|
18038
|
+
var setNodeCheckedState = function setNodeCheckedState(node, checked) {
|
|
18039
|
+
var indeterminate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
18040
|
+
var schema = getSchemaVal(node);
|
|
18041
|
+
if (!schema) {
|
|
18042
|
+
return false;
|
|
18043
|
+
}
|
|
18044
|
+
var nextChecked = !!checked;
|
|
18045
|
+
var nextIndeterminate = nextChecked && !!indeterminate;
|
|
18046
|
+
var prevChecked = !!schema[NODE_ATTRIBUTES.IS_CHECKED];
|
|
18047
|
+
var prevIndeterminate = !!schema[NODE_ATTRIBUTES.IS_INDETERMINATE];
|
|
18048
|
+
if (prevChecked === nextChecked && prevIndeterminate === nextIndeterminate) {
|
|
18049
|
+
return false;
|
|
18050
|
+
}
|
|
18051
|
+
schema[NODE_ATTRIBUTES.IS_CHECKED] = nextChecked;
|
|
18052
|
+
schema[NODE_ATTRIBUTES.IS_INDETERMINATE] = nextIndeterminate;
|
|
18053
|
+
if (nextChecked) {
|
|
18054
|
+
checkedSet.add(node);
|
|
18055
|
+
} else {
|
|
18056
|
+
checkedSet["delete"](node);
|
|
18057
|
+
}
|
|
18058
|
+
if (nextIndeterminate) {
|
|
18059
|
+
indeterminateSet.add(node);
|
|
18060
|
+
} else {
|
|
18061
|
+
indeterminateSet["delete"](node);
|
|
18062
|
+
}
|
|
18063
|
+
return true;
|
|
18064
|
+
};
|
|
18065
|
+
/** 基于 flatten 收集的 checkedList 重建,避免无勾选时全表扫描 */
|
|
18066
|
+
var rebuildCheckedSetsFromList = function rebuildCheckedSetsFromList() {
|
|
18067
|
+
var nodes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
18068
|
+
checkedSet.clear();
|
|
18069
|
+
indeterminateSet.clear();
|
|
18070
|
+
for (var i = 0, len = nodes.length; i < len; i++) {
|
|
18071
|
+
var node = nodes[i];
|
|
18072
|
+
syncNodeToSets(node);
|
|
18073
|
+
var parent = getParentNode(node);
|
|
18074
|
+
while (parent) {
|
|
18075
|
+
syncNodeToSets(parent);
|
|
18076
|
+
parent = getParentNode(parent);
|
|
18077
|
+
}
|
|
18078
|
+
}
|
|
18079
|
+
};
|
|
18080
|
+
/**
|
|
18081
|
+
* flatData 为 DFS 序,INDEX 即数组下标;后代是一段连续区间。
|
|
18082
|
+
*/
|
|
18083
|
+
var forEachDescendant = function forEachDescendant(node, fn) {
|
|
18084
|
+
var _getNodeAttr, _getNodeAttr2;
|
|
18085
|
+
var data = flatData.data;
|
|
18086
|
+
var start = ((_getNodeAttr = getNodeAttr(node, NODE_ATTRIBUTES.INDEX)) !== null && _getNodeAttr !== void 0 ? _getNodeAttr : -1) + 1;
|
|
18087
|
+
if (start <= 0) {
|
|
18088
|
+
return;
|
|
18089
|
+
}
|
|
18090
|
+
var nodeDepth = (_getNodeAttr2 = getNodeAttr(node, NODE_ATTRIBUTES.DEPTH)) !== null && _getNodeAttr2 !== void 0 ? _getNodeAttr2 : 0;
|
|
18091
|
+
for (var i = start; i < data.length; i++) {
|
|
18092
|
+
var _getNodeAttr3;
|
|
18093
|
+
var child = data[i];
|
|
18094
|
+
var depth = (_getNodeAttr3 = getNodeAttr(child, NODE_ATTRIBUTES.DEPTH)) !== null && _getNodeAttr3 !== void 0 ? _getNodeAttr3 : 0;
|
|
18095
|
+
if (depth <= nodeDepth) {
|
|
18096
|
+
break;
|
|
18097
|
+
}
|
|
18098
|
+
fn(child);
|
|
18099
|
+
}
|
|
18100
|
+
};
|
|
18101
|
+
var setDescendantChecked = function setDescendantChecked(node, checked) {
|
|
18102
|
+
forEachDescendant(node, function (child) {
|
|
18103
|
+
setNodeCheckedState(child, checked, false);
|
|
18104
|
+
});
|
|
18105
|
+
};
|
|
18106
|
+
var isNodeChecked = function isNodeChecked(node) {
|
|
18107
|
+
return !!getNodeAttr(node, NODE_ATTRIBUTES.IS_CHECKED);
|
|
18108
|
+
};
|
|
18109
|
+
var isNodeIndeterminate = function isNodeIndeterminate(node) {
|
|
18110
|
+
return isNodeChecked(node) && !!getNodeAttr(node, NODE_ATTRIBUTES.IS_INDETERMINATE);
|
|
18111
|
+
};
|
|
18112
|
+
/**
|
|
18113
|
+
* 自底向上更新祖先勾选 / 半选,复杂度 O(depth × 兄弟数)
|
|
18114
|
+
*/
|
|
18115
|
+
var _updateParentChecked = function updateParentChecked(item) {
|
|
18116
|
+
var parent = getParentNode(item);
|
|
18117
|
+
if (!parent) {
|
|
18118
|
+
return;
|
|
18119
|
+
}
|
|
18120
|
+
var children = getChildNodes(parent) || [];
|
|
18121
|
+
var hasChecked = false;
|
|
18122
|
+
var hasUncheckedOrIndeterminate = false;
|
|
18123
|
+
for (var i = 0, len = children.length; i < len; i++) {
|
|
18124
|
+
var child = children[i];
|
|
18125
|
+
var childChecked = isNodeChecked(child);
|
|
18126
|
+
if (childChecked) {
|
|
18127
|
+
hasChecked = true;
|
|
18128
|
+
}
|
|
18129
|
+
if (!childChecked || isNodeIndeterminate(child)) {
|
|
18130
|
+
hasUncheckedOrIndeterminate = true;
|
|
18131
|
+
}
|
|
18132
|
+
// 半选态已确定,可提前结束
|
|
18133
|
+
if (hasChecked && hasUncheckedOrIndeterminate) {
|
|
18134
|
+
break;
|
|
18135
|
+
}
|
|
18136
|
+
}
|
|
18137
|
+
setNodeCheckedState(parent, hasChecked, hasChecked && hasUncheckedOrIndeterminate);
|
|
18138
|
+
if (!isRootNode(parent)) {
|
|
18139
|
+
_updateParentChecked(parent);
|
|
18140
|
+
}
|
|
18141
|
+
};
|
|
18142
|
+
var getCheckedEmitPayload = function getCheckedEmitPayload() {
|
|
18143
|
+
return [Array.from(checkedSet), Array.from(indeterminateSet)];
|
|
18144
|
+
};
|
|
18145
|
+
var rebuildCheckedSets = function rebuildCheckedSets() {
|
|
18146
|
+
checkedSet.clear();
|
|
18147
|
+
indeterminateSet.clear();
|
|
18148
|
+
var data = flatData.data;
|
|
18149
|
+
for (var i = 0, len = data.length; i < len; i++) {
|
|
18150
|
+
syncNodeToSets(data[i]);
|
|
18151
|
+
}
|
|
18152
|
+
};
|
|
18153
|
+
var clearAllCheckedState = function clearAllCheckedState() {
|
|
18154
|
+
checkedSet.forEach(function (node) {
|
|
18155
|
+
var schema = getSchemaVal(node);
|
|
18156
|
+
if (schema) {
|
|
18157
|
+
schema[NODE_ATTRIBUTES.IS_CHECKED] = false;
|
|
18158
|
+
schema[NODE_ATTRIBUTES.IS_INDETERMINATE] = false;
|
|
18159
|
+
}
|
|
18160
|
+
});
|
|
18161
|
+
indeterminateSet.clear();
|
|
18162
|
+
checkedSet.clear();
|
|
18163
|
+
};
|
|
18164
|
+
// 初始化:优先用 flatten 结果,避免空勾选时扫百万节点
|
|
18165
|
+
rebuildCheckedSetsFromList(flatData.checkedList || []);
|
|
18166
|
+
flatData.syncCheckedState = syncNodeToSets;
|
|
18167
|
+
return {
|
|
18168
|
+
checkedSet: checkedSet,
|
|
18169
|
+
indeterminateSet: indeterminateSet,
|
|
18170
|
+
syncNodeToSets: syncNodeToSets,
|
|
18171
|
+
setNodeCheckedState: setNodeCheckedState,
|
|
18172
|
+
setDescendantChecked: setDescendantChecked,
|
|
18173
|
+
forEachDescendant: forEachDescendant,
|
|
18174
|
+
updateParentChecked: _updateParentChecked,
|
|
18175
|
+
getCheckedEmitPayload: getCheckedEmitPayload,
|
|
18176
|
+
rebuildCheckedSets: rebuildCheckedSets,
|
|
18177
|
+
rebuildCheckedSetsFromList: rebuildCheckedSetsFromList,
|
|
18178
|
+
clearAllCheckedState: clearAllCheckedState,
|
|
18179
|
+
isNodeIndeterminate: isNodeIndeterminate
|
|
18180
|
+
};
|
|
18181
|
+
});
|
|
17974
18182
|
;// ../../packages/tree/src/use-node-attribute.tsx
|
|
17975
18183
|
|
|
17976
18184
|
|
|
@@ -18001,32 +18209,76 @@ var treeProps = {
|
|
|
18001
18209
|
*/
|
|
18002
18210
|
|
|
18003
18211
|
|
|
18212
|
+
|
|
18004
18213
|
/* harmony default export */ const use_node_attribute = (function (flatData, props) {
|
|
18214
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
18215
|
+
/**
|
|
18216
|
+
* WeakMap 以对象引用为 key;Vue Proxy 与 raw 不是同一引用,需同时兼容
|
|
18217
|
+
*/
|
|
18218
|
+
var resolveSchemaNode = function resolveSchemaNode(node) {
|
|
18219
|
+
if (!node) {
|
|
18220
|
+
return null;
|
|
18221
|
+
}
|
|
18222
|
+
if (flatData.schema.has(node)) {
|
|
18223
|
+
return node;
|
|
18224
|
+
}
|
|
18225
|
+
var raw = __WEBPACK_EXTERNAL_MODULE_vue_toRaw__(node);
|
|
18226
|
+
if (raw && raw !== node && flatData.schema.has(raw)) {
|
|
18227
|
+
return raw;
|
|
18228
|
+
}
|
|
18229
|
+
return null;
|
|
18230
|
+
};
|
|
18005
18231
|
/**
|
|
18006
18232
|
* 获取Schema中指定的对象值
|
|
18007
18233
|
* @param key
|
|
18008
18234
|
* @returns
|
|
18009
18235
|
*/
|
|
18010
18236
|
var getSchemaVal = function getSchemaVal(node) {
|
|
18011
|
-
|
|
18237
|
+
var schemaNode = resolveSchemaNode(node);
|
|
18238
|
+
return schemaNode ? flatData.schema.get(schemaNode) : undefined;
|
|
18012
18239
|
};
|
|
18013
18240
|
function getNodeAttr(node, attr) {
|
|
18014
18241
|
var _getSchemaVal;
|
|
18015
18242
|
return node ? (_getSchemaVal = getSchemaVal(node)) === null || _getSchemaVal === void 0 ? void 0 : _getSchemaVal[attr] : undefined;
|
|
18016
18243
|
}
|
|
18017
18244
|
/**
|
|
18018
|
-
*
|
|
18245
|
+
* 设置节点属性(原地更新 schema,避免每次 Object.assign 新对象)
|
|
18019
18246
|
* @param node 指定节点
|
|
18020
18247
|
* @param attr 节点属性
|
|
18021
18248
|
* @param val 属性值
|
|
18022
18249
|
* @returns
|
|
18023
18250
|
*/
|
|
18024
18251
|
var setNodeAttr = function setNodeAttr(node, attr, val, id) {
|
|
18025
|
-
|
|
18252
|
+
var setOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
18253
|
+
var schemaNode = resolveSchemaNode(node);
|
|
18254
|
+
if (!schemaNode) {
|
|
18026
18255
|
console.warn('node is not in schema, please check', id, node);
|
|
18027
18256
|
return;
|
|
18028
18257
|
}
|
|
18029
|
-
flatData.schema.
|
|
18258
|
+
var schemaVal = flatData.schema.get(schemaNode);
|
|
18259
|
+
if (!schemaVal) {
|
|
18260
|
+
return;
|
|
18261
|
+
}
|
|
18262
|
+
if (schemaVal[attr] === val) {
|
|
18263
|
+
return;
|
|
18264
|
+
}
|
|
18265
|
+
if (attr === NODE_ATTRIBUTES.IS_OPEN) {
|
|
18266
|
+
var prevOpen = !!schemaVal[attr];
|
|
18267
|
+
var nextOpen = !!val;
|
|
18268
|
+
if (prevOpen !== nextOpen) {
|
|
18269
|
+
flatData.openCount = (flatData.openCount || 0) + (nextOpen ? 1 : -1);
|
|
18270
|
+
}
|
|
18271
|
+
}
|
|
18272
|
+
schemaVal[attr] = val;
|
|
18273
|
+
if (attr === NODE_ATTRIBUTES.IS_CHECKED || attr === NODE_ATTRIBUTES.IS_INDETERMINATE) {
|
|
18274
|
+
var _flatData$syncChecked;
|
|
18275
|
+
(_flatData$syncChecked = flatData.syncCheckedState) === null || _flatData$syncChecked === void 0 || _flatData$syncChecked.call(flatData, node);
|
|
18276
|
+
}
|
|
18277
|
+
if (!setOptions.silent) {
|
|
18278
|
+
var _options$onSchemaChan, _flatData$notifySchem;
|
|
18279
|
+
(_options$onSchemaChan = options.onSchemaChange) === null || _options$onSchemaChan === void 0 || _options$onSchemaChan.call(options, node, attr, val);
|
|
18280
|
+
(_flatData$notifySchem = flatData.notifySchemaChange) === null || _flatData$notifySchem === void 0 || _flatData$notifySchem.call(flatData, node, attr, val);
|
|
18281
|
+
}
|
|
18030
18282
|
};
|
|
18031
18283
|
var getNodeById = function getNodeById(id) {
|
|
18032
18284
|
var _flatData$nodeMap$get, _flatData$nodeMap;
|
|
@@ -18047,13 +18299,33 @@ var treeProps = {
|
|
|
18047
18299
|
return getNodeAttr(node, NODE_ATTRIBUTES.PATH);
|
|
18048
18300
|
};
|
|
18049
18301
|
var getNodeId = function getNodeId(node) {
|
|
18050
|
-
|
|
18302
|
+
var schemaId = getNodeAttr(node, NODE_ATTRIBUTES.UUID);
|
|
18303
|
+
if (schemaId !== undefined && schemaId !== null && schemaId !== '') {
|
|
18304
|
+
return schemaId;
|
|
18305
|
+
}
|
|
18306
|
+
if (!node) {
|
|
18307
|
+
return undefined;
|
|
18308
|
+
}
|
|
18309
|
+
if (props !== null && props !== void 0 && props.nodeKey && node[props.nodeKey] !== undefined && node[props.nodeKey] !== null) {
|
|
18310
|
+
return node[props.nodeKey];
|
|
18311
|
+
}
|
|
18312
|
+
return node[NODE_ATTRIBUTES.UUID];
|
|
18051
18313
|
};
|
|
18052
18314
|
var isNodeOpened = function isNodeOpened(node) {
|
|
18053
18315
|
return !!getNodeAttr(node, NODE_ATTRIBUTES.IS_OPEN);
|
|
18054
18316
|
};
|
|
18055
18317
|
var hasChildNode = function hasChildNode(node) {
|
|
18056
|
-
|
|
18318
|
+
var _flatData$childMap$ge, _flatData$childMap, _rawNode$childKey, _node$childKey;
|
|
18319
|
+
if (!!getNodeAttr(node, NODE_ATTRIBUTES.HAS_CHILD)) {
|
|
18320
|
+
return true;
|
|
18321
|
+
}
|
|
18322
|
+
var schemaNode = resolveSchemaNode(node);
|
|
18323
|
+
if (schemaNode && ((_flatData$childMap$ge = (_flatData$childMap = flatData.childMap) === null || _flatData$childMap === void 0 || (_flatData$childMap = _flatData$childMap.get(schemaNode)) === null || _flatData$childMap === void 0 ? void 0 : _flatData$childMap.length) !== null && _flatData$childMap$ge !== void 0 ? _flatData$childMap$ge : 0) > 0) {
|
|
18324
|
+
return true;
|
|
18325
|
+
}
|
|
18326
|
+
var childKey = (props === null || props === void 0 ? void 0 : props.children) || 'children';
|
|
18327
|
+
var rawNode = __WEBPACK_EXTERNAL_MODULE_vue_toRaw__(node);
|
|
18328
|
+
return !!(rawNode !== null && rawNode !== void 0 && (_rawNode$childKey = rawNode[childKey]) !== null && _rawNode$childKey !== void 0 && _rawNode$childKey.length || node !== null && node !== void 0 && (_node$childKey = node[childKey]) !== null && _node$childKey !== void 0 && _node$childKey.length);
|
|
18057
18329
|
};
|
|
18058
18330
|
var isNodeMatched = function isNodeMatched(node) {
|
|
18059
18331
|
return !!getNodeAttr(node, NODE_ATTRIBUTES.IS_MATCH);
|
|
@@ -18094,10 +18366,18 @@ var treeProps = {
|
|
|
18094
18366
|
return getNodeAttr(node, NODE_ATTRIBUTES.INDEX);
|
|
18095
18367
|
};
|
|
18096
18368
|
var isRootNode = function isRootNode(node) {
|
|
18369
|
+
var _flatData$rootNodes;
|
|
18097
18370
|
if (typeof node === 'string') {
|
|
18098
18371
|
return !!getNodeAttrById(node, NODE_ATTRIBUTES.IS_ROOT);
|
|
18099
18372
|
}
|
|
18100
|
-
|
|
18373
|
+
if (!!getNodeAttr(node, NODE_ATTRIBUTES.IS_ROOT)) {
|
|
18374
|
+
return true;
|
|
18375
|
+
}
|
|
18376
|
+
if (getNodeAttr(node, NODE_ATTRIBUTES.PARENT)) {
|
|
18377
|
+
return false;
|
|
18378
|
+
}
|
|
18379
|
+
var schemaNode = resolveSchemaNode(node);
|
|
18380
|
+
return !!schemaNode && !!((_flatData$rootNodes = flatData.rootNodes) !== null && _flatData$rootNodes !== void 0 && _flatData$rootNodes.includes(schemaNode));
|
|
18101
18381
|
};
|
|
18102
18382
|
var getNodeParentIdById = function getNodeParentIdById(id) {
|
|
18103
18383
|
var target = getNodeById(id);
|
|
@@ -18117,11 +18397,11 @@ var treeProps = {
|
|
|
18117
18397
|
* @returns
|
|
18118
18398
|
*/
|
|
18119
18399
|
var isItemOpen = function isItemOpen(item) {
|
|
18120
|
-
if (_typeof(item) === 'object') {
|
|
18400
|
+
if (_typeof(item) === 'object' && item !== null) {
|
|
18121
18401
|
return isNodeOpened(item);
|
|
18122
18402
|
}
|
|
18123
18403
|
if (typeof item === 'string') {
|
|
18124
|
-
return getNodeAttrById(item, NODE_ATTRIBUTES.IS_OPEN);
|
|
18404
|
+
return !!getNodeAttrById(item, NODE_ATTRIBUTES.IS_OPEN);
|
|
18125
18405
|
}
|
|
18126
18406
|
return false;
|
|
18127
18407
|
};
|
|
@@ -18157,10 +18437,15 @@ var treeProps = {
|
|
|
18157
18437
|
return target;
|
|
18158
18438
|
};
|
|
18159
18439
|
var getChildNodes = function getChildNodes(node) {
|
|
18160
|
-
var _flatData$childMap$
|
|
18161
|
-
|
|
18162
|
-
|
|
18163
|
-
|
|
18440
|
+
var _resolveSchemaNode, _flatData$childMap$ge2, _flatData$childMap2, _flatData$childMap3;
|
|
18441
|
+
var schemaNode = (_resolveSchemaNode = resolveSchemaNode(node)) !== null && _resolveSchemaNode !== void 0 ? _resolveSchemaNode : __WEBPACK_EXTERNAL_MODULE_vue_toRaw__(node);
|
|
18442
|
+
var mapped = (_flatData$childMap$ge2 = (_flatData$childMap2 = flatData.childMap) === null || _flatData$childMap2 === void 0 ? void 0 : _flatData$childMap2.get(schemaNode)) !== null && _flatData$childMap$ge2 !== void 0 ? _flatData$childMap$ge2 : (_flatData$childMap3 = flatData.childMap) === null || _flatData$childMap3 === void 0 ? void 0 : _flatData$childMap3.get(node);
|
|
18443
|
+
if (mapped) {
|
|
18444
|
+
return mapped;
|
|
18445
|
+
}
|
|
18446
|
+
// 禁止回退 flatData.data.filter(百万节点 O(N));直接读源数据 children
|
|
18447
|
+
var childKey = (props === null || props === void 0 ? void 0 : props.children) || 'children';
|
|
18448
|
+
return (schemaNode === null || schemaNode === void 0 ? void 0 : schemaNode[childKey]) || (node === null || node === void 0 ? void 0 : node[childKey]) || [];
|
|
18164
18449
|
};
|
|
18165
18450
|
var getSourceNodeByUID = function getSourceNodeByUID(uid) {
|
|
18166
18451
|
return getNodeById(uid);
|
|
@@ -18222,8 +18507,8 @@ var treeProps = {
|
|
|
18222
18507
|
};
|
|
18223
18508
|
};
|
|
18224
18509
|
var getRootNodeList = function getRootNodeList() {
|
|
18225
|
-
var _flatData$
|
|
18226
|
-
return (_flatData$
|
|
18510
|
+
var _flatData$rootNodes2;
|
|
18511
|
+
return (_flatData$rootNodes2 = flatData.rootNodes) !== null && _flatData$rootNodes2 !== void 0 ? _flatData$rootNodes2 : flatData.data.filter(function (item) {
|
|
18227
18512
|
return isRootNode(item);
|
|
18228
18513
|
});
|
|
18229
18514
|
};
|
|
@@ -18291,6 +18576,7 @@ function _toConsumableArray(r) {
|
|
|
18291
18576
|
|
|
18292
18577
|
;// ../../packages/tree/src/util.ts
|
|
18293
18578
|
/* unused harmony import specifier */ var util_defineProperty;
|
|
18579
|
+
/* unused harmony import specifier */ var util_typeof;
|
|
18294
18580
|
|
|
18295
18581
|
|
|
18296
18582
|
|
|
@@ -18328,6 +18614,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
18328
18614
|
*/
|
|
18329
18615
|
|
|
18330
18616
|
|
|
18617
|
+
|
|
18331
18618
|
var DEFAULT_LEVLE_LINE = '1px dashed #c3cdd7';
|
|
18332
18619
|
/**
|
|
18333
18620
|
* 获取配置项可为Bool|String|Function类型,如果为Bool则配置默认值
|
|
@@ -18410,10 +18697,10 @@ var getTreeStyle = function getTreeStyle(item, props) {
|
|
|
18410
18697
|
* @returns
|
|
18411
18698
|
*/
|
|
18412
18699
|
var getNodeItemStyle = function getNodeItemStyle(item, props, flatData) {
|
|
18413
|
-
var _schema$get;
|
|
18700
|
+
var _schema$get$NODE_ATTR, _schema$get, _schema$get2;
|
|
18414
18701
|
var showTree = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
18415
18702
|
var schema = flatData.schema;
|
|
18416
|
-
var depth = (_schema$get = schema.get(item)) === null || _schema$get === void 0 ? void 0 : _schema$get[NODE_ATTRIBUTES.DEPTH];
|
|
18703
|
+
var depth = (_schema$get$NODE_ATTR = (_schema$get = schema.get(item)) === null || _schema$get === void 0 ? void 0 : _schema$get[NODE_ATTRIBUTES.DEPTH]) !== null && _schema$get$NODE_ATTR !== void 0 ? _schema$get$NODE_ATTR : (_schema$get2 = schema.get(__WEBPACK_EXTERNAL_MODULE_vue_toRaw__(item))) === null || _schema$get2 === void 0 ? void 0 : _schema$get2[NODE_ATTRIBUTES.DEPTH];
|
|
18417
18704
|
if (showTree) {
|
|
18418
18705
|
var args = ['node'];
|
|
18419
18706
|
var levelLine = function levelLine() {
|
|
@@ -18432,16 +18719,23 @@ var getNodeItemStyle = function getNodeItemStyle(item, props, flatData) {
|
|
|
18432
18719
|
* @param item
|
|
18433
18720
|
* @returns
|
|
18434
18721
|
*/
|
|
18722
|
+
var getSchemaAttr = function getSchemaAttr(schema, item) {
|
|
18723
|
+
return schema.get(item) || schema.get(__WEBPACK_EXTERNAL_MODULE_vue_toRaw__(item)) || {};
|
|
18724
|
+
};
|
|
18435
18725
|
var getNodeItemClass = function getNodeItemClass(item, schema, props) {
|
|
18436
18726
|
var showTree = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
18727
|
+
var schemaAttr = getSchemaAttr(schema, item);
|
|
18437
18728
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
18438
|
-
var
|
|
18439
|
-
|
|
18440
|
-
|
|
18729
|
+
var __is_root = schemaAttr.__is_root,
|
|
18730
|
+
__is_open = schemaAttr.__is_open,
|
|
18731
|
+
__parent = schemaAttr.__parent,
|
|
18732
|
+
__depth = schemaAttr.__depth;
|
|
18733
|
+
// 根节点必须带 is-root,否则会命中子节点连线样式(左侧伪元素横线堆叠成“竖线”)
|
|
18734
|
+
var isRoot = __is_root !== null && __is_root !== void 0 ? __is_root : __parent == null && (__depth === 0 || __depth === undefined);
|
|
18441
18735
|
var _usePrefix = __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_config_provider_fe8577a3_usePrefix__(),
|
|
18442
18736
|
resolveClassName = _usePrefix.resolveClassName;
|
|
18443
18737
|
return _defineProperty(_defineProperty(_defineProperty(_defineProperty({
|
|
18444
|
-
'is-root':
|
|
18738
|
+
'is-root': !!isRoot
|
|
18445
18739
|
}, "".concat(resolveClassName('tree-node')), true), 'is-open', __is_open), 'is-virtual-render', props.virtualRender), 'level-line', props.levelLine && showTree);
|
|
18446
18740
|
};
|
|
18447
18741
|
/**
|
|
@@ -18451,10 +18745,10 @@ var getNodeItemClass = function getNodeItemClass(item, schema, props) {
|
|
|
18451
18745
|
*/
|
|
18452
18746
|
var getNodeRowClass = function getNodeRowClass(item, schema) {
|
|
18453
18747
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
18454
|
-
var
|
|
18455
|
-
__is_checked =
|
|
18456
|
-
__is_indeterminate =
|
|
18457
|
-
__is_selected =
|
|
18748
|
+
var _getSchemaAttr = getSchemaAttr(schema, item),
|
|
18749
|
+
__is_checked = _getSchemaAttr.__is_checked,
|
|
18750
|
+
__is_indeterminate = _getSchemaAttr.__is_indeterminate,
|
|
18751
|
+
__is_selected = _getSchemaAttr.__is_selected;
|
|
18458
18752
|
var _usePrefix2 = __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_config_provider_fe8577a3_usePrefix__(),
|
|
18459
18753
|
resolveClassName = _usePrefix2.resolveClassName;
|
|
18460
18754
|
return _defineProperty({
|
|
@@ -18482,7 +18776,7 @@ var _cloneTreeNode = function cloneTreeNode(node) {
|
|
|
18482
18776
|
return _cloneTreeNode(item);
|
|
18483
18777
|
});
|
|
18484
18778
|
}
|
|
18485
|
-
if (node &&
|
|
18779
|
+
if (node && util_typeof(node) === 'object') {
|
|
18486
18780
|
return Object.keys(node).reduce(function (acc, key) {
|
|
18487
18781
|
var value = node[key];
|
|
18488
18782
|
acc[key] = Array.isArray(value) ? value.slice() : value;
|
|
@@ -18660,18 +18954,18 @@ var moveTreeNodeById = function moveTreeNodeById() {
|
|
|
18660
18954
|
var nodeKey = arguments.length > 3 ? arguments[3] : undefined;
|
|
18661
18955
|
var childKey = arguments.length > 4 ? arguments[4] : undefined;
|
|
18662
18956
|
var options = arguments.length > 5 ? arguments[5] : undefined;
|
|
18663
|
-
|
|
18664
|
-
var removeResult = removeTreeNodeById(
|
|
18957
|
+
// 原地移动,避免百万节点全量 cloneTreeData
|
|
18958
|
+
var removeResult = removeTreeNodeById(treeData, nodeId, nodeKey, childKey);
|
|
18665
18959
|
if (!removeResult.node) {
|
|
18666
18960
|
return null;
|
|
18667
18961
|
}
|
|
18668
|
-
var insertResult = insertTreeNodeById(
|
|
18962
|
+
var insertResult = insertTreeNodeById(treeData, removeResult.node, targetNodeId, nodeKey, childKey, options);
|
|
18669
18963
|
if (!insertResult.targetNode) {
|
|
18670
18964
|
return null;
|
|
18671
18965
|
}
|
|
18672
18966
|
return {
|
|
18673
18967
|
trigger: 'drag',
|
|
18674
|
-
data:
|
|
18968
|
+
data: treeData,
|
|
18675
18969
|
node: removeResult.node,
|
|
18676
18970
|
targetNode: insertResult.targetNode,
|
|
18677
18971
|
parentNode: insertResult.parentNode,
|
|
@@ -18782,7 +19076,8 @@ var isCascadeEnabled = function isCascadeEnabled(props) {
|
|
|
18782
19076
|
}
|
|
18783
19077
|
return Promise.resolve(resp);
|
|
18784
19078
|
}
|
|
18785
|
-
|
|
19079
|
+
// 原地写入子节点,避免百万节点全量 cloneTreeData
|
|
19080
|
+
var nextTreeData = (_options$getTreeData = (_options$getTreeData2 = options.getTreeData) === null || _options$getTreeData2 === void 0 ? void 0 : _options$getTreeData2.call(options)) !== null && _options$getTreeData !== void 0 ? _options$getTreeData : props.data;
|
|
18786
19081
|
mutateTreeById(nextTreeData, nodeId, props.nodeKey || NODE_ATTRIBUTES.UUID, props.children, function (targetNode) {
|
|
18787
19082
|
targetNode[NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_OPEN]] = true;
|
|
18788
19083
|
targetNode[props.children] = nodeValue;
|
|
@@ -18866,6 +19161,7 @@ var isCascadeEnabled = function isCascadeEnabled(props) {
|
|
|
18866
19161
|
;// ../../packages/tree/src/use-node-action.tsx
|
|
18867
19162
|
|
|
18868
19163
|
|
|
19164
|
+
|
|
18869
19165
|
var use_node_action_this = undefined;
|
|
18870
19166
|
/*
|
|
18871
19167
|
* Tencent is pleased to support the open source community by making
|
|
@@ -18901,13 +19197,13 @@ var use_node_action_this = undefined;
|
|
|
18901
19197
|
|
|
18902
19198
|
|
|
18903
19199
|
|
|
19200
|
+
|
|
18904
19201
|
/* harmony default export */ const use_node_action = (function (props, ctx, flatData, _renderData, initOption) {
|
|
18905
19202
|
// const checkedNodes = [];
|
|
18906
19203
|
var selectedNodeId = props.selected;
|
|
18907
19204
|
var _useNodeAttribute = use_node_attribute(flatData, props),
|
|
18908
19205
|
setNodeAttr = _useNodeAttribute.setNodeAttr,
|
|
18909
19206
|
setNodeAttrById = _useNodeAttribute.setNodeAttrById,
|
|
18910
|
-
getNodePath = _useNodeAttribute.getNodePath,
|
|
18911
19207
|
getSchemaVal = _useNodeAttribute.getSchemaVal,
|
|
18912
19208
|
getNodeAttr = _useNodeAttribute.getNodeAttr,
|
|
18913
19209
|
getNodeId = _useNodeAttribute.getNodeId,
|
|
@@ -18921,10 +19217,28 @@ var use_node_action_this = undefined;
|
|
|
18921
19217
|
getParentNode = _useNodeAttribute.getParentNode,
|
|
18922
19218
|
resolveScopedSlotParam = _useNodeAttribute.resolveScopedSlotParam,
|
|
18923
19219
|
extendNodeAttr = _useNodeAttribute.extendNodeAttr,
|
|
18924
|
-
extendNodeScopedData = _useNodeAttribute.extendNodeScopedData
|
|
19220
|
+
extendNodeScopedData = _useNodeAttribute.extendNodeScopedData,
|
|
19221
|
+
getRootNodeList = _useNodeAttribute.getRootNodeList;
|
|
18925
19222
|
var _usePrefix = __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_config_provider_fe8577a3_usePrefix__(),
|
|
18926
19223
|
resolveClassName = _usePrefix.resolveClassName;
|
|
18927
|
-
var registerNextLoop = initOption.registerNextLoop
|
|
19224
|
+
var registerNextLoop = initOption.registerNextLoop,
|
|
19225
|
+
syncNodeOpenState = initOption.syncNodeOpenState,
|
|
19226
|
+
scheduleUiRefresh = initOption.scheduleUiRefresh;
|
|
19227
|
+
var _useCheckedState = use_checked_state(flatData, {
|
|
19228
|
+
getChildNodes: getChildNodes,
|
|
19229
|
+
getNodeAttr: getNodeAttr,
|
|
19230
|
+
getParentNode: getParentNode,
|
|
19231
|
+
getSchemaVal: getSchemaVal,
|
|
19232
|
+
isRootNode: isRootNode
|
|
19233
|
+
}),
|
|
19234
|
+
setNodeCheckedState = _useCheckedState.setNodeCheckedState,
|
|
19235
|
+
setDescendantChecked = _useCheckedState.setDescendantChecked,
|
|
19236
|
+
forEachDescendant = _useCheckedState.forEachDescendant,
|
|
19237
|
+
updateParentChecked = _useCheckedState.updateParentChecked,
|
|
19238
|
+
getCheckedEmitPayload = _useCheckedState.getCheckedEmitPayload,
|
|
19239
|
+
rebuildCheckedSetsFromList = _useCheckedState.rebuildCheckedSetsFromList,
|
|
19240
|
+
clearAllCheckedState = _useCheckedState.clearAllCheckedState,
|
|
19241
|
+
isNodeIndeterminate = _useCheckedState.isNodeIndeterminate;
|
|
18928
19242
|
var _useNodeAsync = use_node_async(props, flatData, ctx, initOption),
|
|
18929
19243
|
asyncNodeClick = _useNodeAsync.asyncNodeClick,
|
|
18930
19244
|
deepAutoOpen = _useNodeAsync.deepAutoOpen;
|
|
@@ -19025,32 +19339,20 @@ var use_node_action_this = undefined;
|
|
|
19025
19339
|
}
|
|
19026
19340
|
return null;
|
|
19027
19341
|
};
|
|
19028
|
-
var
|
|
19029
|
-
|
|
19030
|
-
|
|
19031
|
-
return;
|
|
19032
|
-
}
|
|
19033
|
-
var isNeedChecked = isChecked ? isChecked : (getChildNodes(parent) || []).some(function (node) {
|
|
19034
|
-
return isNodeChecked(node);
|
|
19035
|
-
});
|
|
19036
|
-
setNodeAttr(parent, NODE_ATTRIBUTES.IS_CHECKED, isNeedChecked);
|
|
19037
|
-
setNodeAttr(parent, NODE_ATTRIBUTES.IS_INDETERMINATE, (getChildNodes(parent) || []).some(function (node) {
|
|
19038
|
-
return !isNodeChecked(node) || isIndeterminate(node);
|
|
19039
|
-
}));
|
|
19040
|
-
if (!isRootNode(parent)) {
|
|
19041
|
-
_updateParentChecked(parent, isChecked);
|
|
19042
|
-
}
|
|
19043
|
-
};
|
|
19044
|
-
var _deepUpdateChildNode = function deepUpdateChildNode(node, attr, value) {
|
|
19045
|
-
getChildNodes(node).forEach(function (chid) {
|
|
19342
|
+
var deepUpdateChildNode = function deepUpdateChildNode(node, attr, value) {
|
|
19343
|
+
// 按 DFS 连续区间扫描后代,避免递归 forEach
|
|
19344
|
+
forEachDescendant(node, function (chid) {
|
|
19046
19345
|
if (Array.isArray(attr)) {
|
|
19047
19346
|
attr.forEach(function (val, index) {
|
|
19048
|
-
setNodeAttr(chid, val, value[index]
|
|
19347
|
+
setNodeAttr(chid, val, value[index], undefined, {
|
|
19348
|
+
silent: true
|
|
19349
|
+
});
|
|
19049
19350
|
});
|
|
19050
19351
|
} else {
|
|
19051
|
-
setNodeAttr(chid, attr, value
|
|
19352
|
+
setNodeAttr(chid, attr, value, undefined, {
|
|
19353
|
+
silent: true
|
|
19354
|
+
});
|
|
19052
19355
|
}
|
|
19053
|
-
_deepUpdateChildNode(chid, attr, value);
|
|
19054
19356
|
});
|
|
19055
19357
|
};
|
|
19056
19358
|
var isRemoteFnExec = function isRemoteFnExec(event) {
|
|
@@ -19061,27 +19363,40 @@ var use_node_action_this = undefined;
|
|
|
19061
19363
|
}
|
|
19062
19364
|
return true;
|
|
19063
19365
|
};
|
|
19366
|
+
var emitCheckedChange = function emitCheckedChange() {
|
|
19367
|
+
// 先让勾选 UI 刷新,再异步抛出列表,避免百万级 Array.from 阻塞交互
|
|
19368
|
+
__WEBPACK_EXTERNAL_MODULE_vue_nextTick__(function () {
|
|
19369
|
+
var _getCheckedEmitPayloa = getCheckedEmitPayload(),
|
|
19370
|
+
_getCheckedEmitPayloa2 = _slicedToArray(_getCheckedEmitPayloa, 2),
|
|
19371
|
+
checkedNodes = _getCheckedEmitPayloa2[0],
|
|
19372
|
+
indeterminateNodes = _getCheckedEmitPayloa2[1];
|
|
19373
|
+
ctx.emit(EVENTS.NODE_CHECKED, checkedNodes, indeterminateNodes);
|
|
19374
|
+
});
|
|
19375
|
+
};
|
|
19376
|
+
var applyCheckedChange = function applyCheckedChange(item, value) {
|
|
19377
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
19378
|
+
var checked = !!value;
|
|
19379
|
+
setNodeCheckedState(item, checked, false);
|
|
19380
|
+
if (isCascadeEnabled(props)) {
|
|
19381
|
+
setDescendantChecked(item, checked);
|
|
19382
|
+
updateParentChecked(item);
|
|
19383
|
+
}
|
|
19384
|
+
if (options.refresh !== false) {
|
|
19385
|
+
scheduleUiRefresh === null || scheduleUiRefresh === void 0 || scheduleUiRefresh();
|
|
19386
|
+
}
|
|
19387
|
+
if (options.emitEvent !== false) {
|
|
19388
|
+
emitCheckedChange();
|
|
19389
|
+
}
|
|
19390
|
+
};
|
|
19064
19391
|
var handleNodeItemCheckboxChange = function handleNodeItemCheckboxChange(item, value, event) {
|
|
19065
19392
|
event === null || event === void 0 || event.preventDefault();
|
|
19066
19393
|
event === null || event === void 0 || event.stopImmediatePropagation();
|
|
19067
19394
|
event === null || event === void 0 || event.stopPropagation();
|
|
19068
|
-
|
|
19069
|
-
if (value) {
|
|
19070
|
-
setNodeAttr(item, NODE_ATTRIBUTES.IS_INDETERMINATE, false);
|
|
19071
|
-
}
|
|
19072
|
-
if (props.checkStrictly) {
|
|
19073
|
-
_deepUpdateChildNode(item, [NODE_ATTRIBUTES.IS_CHECKED, NODE_ATTRIBUTES.IS_INDETERMINATE], [!!value, false]);
|
|
19074
|
-
_updateParentChecked(item, value);
|
|
19075
|
-
}
|
|
19076
|
-
ctx.emit(EVENTS.NODE_CHECKED, flatData.data.filter(function (t) {
|
|
19077
|
-
return isNodeChecked(t);
|
|
19078
|
-
}), flatData.data.filter(function (t) {
|
|
19079
|
-
return isIndeterminate(t);
|
|
19080
|
-
}));
|
|
19395
|
+
applyCheckedChange(item, value);
|
|
19081
19396
|
handleNodeContentClick(item, event, 'checked');
|
|
19082
19397
|
};
|
|
19083
19398
|
var isIndeterminate = function isIndeterminate(item) {
|
|
19084
|
-
return
|
|
19399
|
+
return isNodeIndeterminate(item);
|
|
19085
19400
|
};
|
|
19086
19401
|
var getCheckboxRender = function getCheckboxRender(item) {
|
|
19087
19402
|
if (!showCheckbox(props, extendNodeScopedData(item))) {
|
|
@@ -19110,14 +19425,15 @@ var use_node_action_this = undefined;
|
|
|
19110
19425
|
var e = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
19111
19426
|
var fireEmit = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
19112
19427
|
var newVal = isOpen === null ? !isItemOpen(item) : !!isOpen;
|
|
19428
|
+
setNodeAttr(item, NODE_ATTRIBUTES.IS_OPEN, newVal, undefined, {
|
|
19429
|
+
silent: true
|
|
19430
|
+
});
|
|
19113
19431
|
/**
|
|
19114
|
-
*
|
|
19115
|
-
*
|
|
19432
|
+
* 增量维护可见列表:
|
|
19433
|
+
* - 展开:插入子节点
|
|
19434
|
+
* - 收起:移除可见后代,并仅重置可见区间内的 IS_OPEN(不再扫 flat 全量子树)
|
|
19116
19435
|
*/
|
|
19117
|
-
|
|
19118
|
-
_deepUpdateChildNode(item, NODE_ATTRIBUTES.IS_OPEN, newVal);
|
|
19119
|
-
}
|
|
19120
|
-
setNodeAttr(item, NODE_ATTRIBUTES.IS_OPEN, newVal);
|
|
19436
|
+
syncNodeOpenState === null || syncNodeOpenState === void 0 || syncNodeOpenState(item, newVal);
|
|
19121
19437
|
if (fireEmit) {
|
|
19122
19438
|
var emitEvent = isItemOpen(item) ? EVENTS.NODE_EXPAND : EVENTS.NODE_COLLAPSE;
|
|
19123
19439
|
ctx.emit(emitEvent, item, resolveScopedSlotParam(item), getSchemaVal(item), e);
|
|
@@ -19149,7 +19465,24 @@ var use_node_action_this = undefined;
|
|
|
19149
19465
|
var setOpen = function setOpen(item) {
|
|
19150
19466
|
var isOpen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
19151
19467
|
var autoOpenParents = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
19152
|
-
|
|
19468
|
+
var resolvedItem = resolveNodeItem(item);
|
|
19469
|
+
if (resolvedItem[NODE_ATTRIBUTES.IS_NULL]) {
|
|
19470
|
+
return;
|
|
19471
|
+
}
|
|
19472
|
+
if (autoOpenParents && isOpen && !isRootNode(resolvedItem)) {
|
|
19473
|
+
var parents = [];
|
|
19474
|
+
var parent = getParentNode(resolvedItem);
|
|
19475
|
+
while (parent) {
|
|
19476
|
+
parents.unshift(parent);
|
|
19477
|
+
parent = getParentNode(parent);
|
|
19478
|
+
}
|
|
19479
|
+
parents.forEach(function (node) {
|
|
19480
|
+
if (!isItemOpen(node)) {
|
|
19481
|
+
setNodeOpened(node, true, null, false);
|
|
19482
|
+
}
|
|
19483
|
+
});
|
|
19484
|
+
}
|
|
19485
|
+
setNodeOpened(resolvedItem, isOpen, null, false);
|
|
19153
19486
|
};
|
|
19154
19487
|
/**
|
|
19155
19488
|
* 递归处理当前节点以及父级节点属性值
|
|
@@ -19249,11 +19582,11 @@ var use_node_action_this = undefined;
|
|
|
19249
19582
|
}
|
|
19250
19583
|
var resolvedItem = resolveNodeItem(nodeList[0]);
|
|
19251
19584
|
if (typeof resolvedItem === 'number' || typeof resolvedItem === 'string' || _typeof(resolvedItem) === 'symbol') {
|
|
19252
|
-
var _flatData$
|
|
19253
|
-
var nodeId = resolvedItem;
|
|
19254
|
-
resolvedItem = (_flatData$
|
|
19255
|
-
return getNodeId(item) === nodeId;
|
|
19256
|
-
})) !== null &&
|
|
19585
|
+
var _ref, _flatData$nodeMap$get, _flatData$nodeMap;
|
|
19586
|
+
var nodeId = String(resolvedItem);
|
|
19587
|
+
resolvedItem = (_ref = (_flatData$nodeMap$get = (_flatData$nodeMap = flatData.nodeMap) === null || _flatData$nodeMap === void 0 ? void 0 : _flatData$nodeMap.get(nodeId)) !== null && _flatData$nodeMap$get !== void 0 ? _flatData$nodeMap$get : flatData.data.find(function (item) {
|
|
19588
|
+
return "".concat(getNodeId(item)) === nodeId;
|
|
19589
|
+
})) !== null && _ref !== void 0 ? _ref : _defineProperty({}, NODE_ATTRIBUTES.IS_NULL, true);
|
|
19257
19590
|
}
|
|
19258
19591
|
if (resolvedItem[NODE_ATTRIBUTES.IS_NULL]) {
|
|
19259
19592
|
return;
|
|
@@ -19358,23 +19691,30 @@ var use_node_action_this = undefined;
|
|
|
19358
19691
|
* @returns
|
|
19359
19692
|
*/
|
|
19360
19693
|
var filterNextNode = function filterNextNode(depth, node) {
|
|
19694
|
+
var _getNodeAttr;
|
|
19361
19695
|
if (isRootNode(node)) {
|
|
19362
19696
|
return false;
|
|
19363
19697
|
}
|
|
19364
|
-
var
|
|
19365
|
-
|
|
19366
|
-
|
|
19367
|
-
// 如果是判定当前节点,则必须要有一条线
|
|
19368
|
-
if (currentPath === nodepath) {
|
|
19698
|
+
var nodeDepth = (_getNodeAttr = getNodeAttr(node, NODE_ATTRIBUTES.DEPTH)) !== null && _getNodeAttr !== void 0 ? _getNodeAttr : 0;
|
|
19699
|
+
// 当前节点所在 depth:必有连线
|
|
19700
|
+
if (depth === nodeDepth) {
|
|
19369
19701
|
return true;
|
|
19370
19702
|
}
|
|
19371
|
-
|
|
19372
|
-
|
|
19373
|
-
|
|
19374
|
-
|
|
19375
|
-
|
|
19376
|
-
|
|
19377
|
-
|
|
19703
|
+
if (depth > nodeDepth) {
|
|
19704
|
+
return false;
|
|
19705
|
+
}
|
|
19706
|
+
// 取 depth 层祖先,判断其是否存在下一个兄弟节点 —— O(depth) 替代全表 some
|
|
19707
|
+
var ancestor = node;
|
|
19708
|
+
for (var i = nodeDepth; i > depth; i--) {
|
|
19709
|
+
ancestor = getParentNode(ancestor);
|
|
19710
|
+
if (!ancestor) {
|
|
19711
|
+
return false;
|
|
19712
|
+
}
|
|
19713
|
+
}
|
|
19714
|
+
var parent = getParentNode(ancestor);
|
|
19715
|
+
var siblings = parent ? getChildNodes(parent) : getRootNodeList();
|
|
19716
|
+
var idx = siblings.indexOf(ancestor);
|
|
19717
|
+
return idx >= 0 && idx < siblings.length - 1;
|
|
19378
19718
|
};
|
|
19379
19719
|
/**
|
|
19380
19720
|
* 获取层级连线
|
|
@@ -19382,16 +19722,20 @@ var use_node_action_this = undefined;
|
|
|
19382
19722
|
* @returns
|
|
19383
19723
|
*/
|
|
19384
19724
|
var getVirtualLines = function getVirtualLines(node) {
|
|
19385
|
-
var
|
|
19725
|
+
var _getNodeAttr2;
|
|
19386
19726
|
if (!props.levelLine) {
|
|
19387
19727
|
return null;
|
|
19388
19728
|
}
|
|
19729
|
+
// 根节点不渲染层级连线(与基础用法一致)
|
|
19730
|
+
if (isRootNode(node)) {
|
|
19731
|
+
return null;
|
|
19732
|
+
}
|
|
19389
19733
|
var getNodeLineStyle = function getNodeLineStyle(dpth) {
|
|
19390
19734
|
return {
|
|
19391
19735
|
'--depth': dpth
|
|
19392
19736
|
};
|
|
19393
19737
|
};
|
|
19394
|
-
var maxDeep = ((
|
|
19738
|
+
var maxDeep = ((_getNodeAttr2 = getNodeAttr(node, NODE_ATTRIBUTES.DEPTH)) !== null && _getNodeAttr2 !== void 0 ? _getNodeAttr2 : 0) + 1;
|
|
19395
19739
|
return new Array(maxDeep).fill('').map(function (_, index) {
|
|
19396
19740
|
return index;
|
|
19397
19741
|
}).filter(function (depth) {
|
|
@@ -19470,8 +19814,12 @@ var use_node_action_this = undefined;
|
|
|
19470
19814
|
setOpen: setOpen,
|
|
19471
19815
|
setNodeAttribute: _setNodeAttribute,
|
|
19472
19816
|
isIndeterminate: isIndeterminate,
|
|
19473
|
-
deepUpdateChildNode:
|
|
19474
|
-
updateParentChecked:
|
|
19817
|
+
deepUpdateChildNode: deepUpdateChildNode,
|
|
19818
|
+
updateParentChecked: updateParentChecked,
|
|
19819
|
+
applyCheckedChange: applyCheckedChange,
|
|
19820
|
+
emitCheckedChange: emitCheckedChange,
|
|
19821
|
+
rebuildCheckedSetsFromList: rebuildCheckedSetsFromList,
|
|
19822
|
+
clearAllCheckedState: clearAllCheckedState
|
|
19475
19823
|
};
|
|
19476
19824
|
});
|
|
19477
19825
|
;// ../../packages/tree/src/use-node-drag.tsx
|
|
@@ -20043,6 +20391,16 @@ var use_tree_init_this = undefined;
|
|
|
20043
20391
|
|
|
20044
20392
|
|
|
20045
20393
|
|
|
20394
|
+
var toRawStore = function toRawStore(value) {
|
|
20395
|
+
return __WEBPACK_EXTERNAL_MODULE_vue_markRaw__(value);
|
|
20396
|
+
};
|
|
20397
|
+
var SOURCE_IS_OPEN = NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_OPEN];
|
|
20398
|
+
var SOURCE_IS_CHECKED = NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_CHECKED];
|
|
20399
|
+
var SOURCE_IS_SELECTED = NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_SELECTED];
|
|
20400
|
+
var SOURCE_IS_ASYNC = NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_ASYNC];
|
|
20401
|
+
var SOURCE_IS_MATCH = NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_MATCH];
|
|
20402
|
+
var SOURCE_IS_CACHED = NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_CACHED];
|
|
20403
|
+
var SOURCE_IS_LOADING = NODE_SOURCE_ATTRS[NODE_ATTRIBUTES.IS_LOADING];
|
|
20046
20404
|
/* harmony default export */ const use_tree_init = (function (props) {
|
|
20047
20405
|
var _props$async3;
|
|
20048
20406
|
/**
|
|
@@ -20059,6 +20417,7 @@ var use_tree_init_this = undefined;
|
|
|
20059
20417
|
var checkedList = [];
|
|
20060
20418
|
var outputData = [];
|
|
20061
20419
|
var order = 0;
|
|
20420
|
+
var openCount = 0;
|
|
20062
20421
|
var treeSchema = new WeakMap();
|
|
20063
20422
|
var nodeMap = new Map();
|
|
20064
20423
|
var childMap = new WeakMap();
|
|
@@ -20082,111 +20441,59 @@ var use_tree_init_this = undefined;
|
|
|
20082
20441
|
if (target[attrName] === attrValue) {
|
|
20083
20442
|
return;
|
|
20084
20443
|
}
|
|
20085
|
-
|
|
20444
|
+
if (attrName === NODE_ATTRIBUTES.IS_OPEN) {
|
|
20445
|
+
var prevOpen = !!target[attrName];
|
|
20446
|
+
var nextOpen = !!attrValue;
|
|
20447
|
+
if (prevOpen !== nextOpen) {
|
|
20448
|
+
openCount += nextOpen ? 1 : -1;
|
|
20449
|
+
}
|
|
20450
|
+
}
|
|
20451
|
+
target[attrName] = attrValue;
|
|
20086
20452
|
loopUpdateNodeAttr(target[NODE_ATTRIBUTES.PARENT], attrName, attrValue, callFn);
|
|
20087
20453
|
}
|
|
20088
20454
|
}
|
|
20089
20455
|
}
|
|
20090
20456
|
}
|
|
20457
|
+
var nodeKey = props.nodeKey;
|
|
20458
|
+
var expandAll = !!props.expandAll;
|
|
20459
|
+
var autoOpenParentNode = !!props.autoOpenParentNode;
|
|
20460
|
+
var selectable = !!props.selectable;
|
|
20461
|
+
var hasCheckedProp = Array.isArray(props.checked) && props.checked.length > 0;
|
|
20462
|
+
var hasSelectedProp = props.selected !== undefined && props.selected !== null;
|
|
20463
|
+
var checkboxEnabled = props.showCheckbox !== false && !!props.showCheckbox;
|
|
20464
|
+
var useCache = !!cachedSchema;
|
|
20091
20465
|
function getUid(item) {
|
|
20092
|
-
|
|
20093
|
-
|
|
20094
|
-
|
|
20466
|
+
if (typeof nodeKey === 'string') {
|
|
20467
|
+
var keyVal = item[nodeKey];
|
|
20468
|
+
if (keyVal !== undefined && keyVal !== null && keyVal !== '') {
|
|
20469
|
+
return keyVal;
|
|
20470
|
+
}
|
|
20095
20471
|
}
|
|
20096
|
-
return
|
|
20472
|
+
return item[NODE_ATTRIBUTES.UUID] || esm_browser_v4();
|
|
20097
20473
|
}
|
|
20098
|
-
|
|
20099
|
-
|
|
20100
|
-
* 如果传入数据没有设置相关属性值
|
|
20101
|
-
* 这里会自动生成
|
|
20102
|
-
*/
|
|
20103
|
-
var cachedDefaultVal = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, NODE_ATTRIBUTES.IS_OPEN, function () {
|
|
20104
|
-
return !!props.expandAll;
|
|
20105
|
-
}), NODE_ATTRIBUTES.IS_CHECKED, function () {
|
|
20106
|
-
return false;
|
|
20107
|
-
}), NODE_ATTRIBUTES.IS_MATCH, function () {
|
|
20108
|
-
return false;
|
|
20109
|
-
}), NODE_ATTRIBUTES.IS_SELECTED, function (node, uuid) {
|
|
20110
|
-
return _resolvePropIsMatched(node, props.selected, uuid);
|
|
20111
|
-
}), NODE_ATTRIBUTES.IS_CACHED, function () {
|
|
20112
|
-
return false;
|
|
20113
|
-
}), NODE_ATTRIBUTES.IS_ASYNC, function () {
|
|
20114
|
-
return null;
|
|
20115
|
-
}), NODE_ATTRIBUTES.IS_LOADING, function () {
|
|
20116
|
-
return false;
|
|
20117
|
-
});
|
|
20118
|
-
/**
|
|
20119
|
-
* 根据Props设置和已缓存数据解析当前节点对应属性值
|
|
20120
|
-
* @param uuid 当前节点id
|
|
20121
|
-
* @param node 当前节点
|
|
20122
|
-
* @param cachedAttr 当前节点属性名称
|
|
20123
|
-
* @param defVal 默认值
|
|
20124
|
-
*/
|
|
20125
|
-
function getCachedTreeNodeAttr(uuid, node, cachedAttr) {
|
|
20126
|
-
var _cachedSchema$get;
|
|
20127
|
-
var defVal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;
|
|
20128
|
-
var defaultValue = defVal;
|
|
20129
|
-
// 设置默认值
|
|
20130
|
-
if (defVal === undefined && typeof cachedDefaultVal[cachedAttr] === 'function') {
|
|
20131
|
-
defaultValue = cachedDefaultVal[cachedAttr](node, uuid);
|
|
20132
|
-
}
|
|
20133
|
-
// 通过映射配置,检查当前数据是否设置相关属性值
|
|
20134
|
-
// 如果传入数据设置了相关属性值,则返回传入数据设置值
|
|
20135
|
-
var sourceAttr = NODE_SOURCE_ATTRS[cachedAttr];
|
|
20136
|
-
if (Object.prototype.hasOwnProperty.call(node, sourceAttr)) {
|
|
20474
|
+
function resolveAttr(node, sourceAttr, cachedAttr, defaultValue) {
|
|
20475
|
+
if (sourceAttr in node) {
|
|
20137
20476
|
return node[sourceAttr];
|
|
20138
20477
|
}
|
|
20139
|
-
|
|
20140
|
-
|
|
20141
|
-
|
|
20142
|
-
|
|
20143
|
-
|
|
20144
|
-
|
|
20145
|
-
|
|
20146
|
-
|
|
20147
|
-
if (result === undefined || result === null) {
|
|
20148
|
-
result = defaultValue;
|
|
20149
|
-
}
|
|
20150
|
-
return result;
|
|
20151
|
-
}
|
|
20152
|
-
/**
|
|
20153
|
-
* 当前节点是否是选中状态
|
|
20154
|
-
* @param uuid 当前节点id
|
|
20155
|
-
* @param node 当前节点
|
|
20156
|
-
* @returns
|
|
20157
|
-
*/
|
|
20158
|
-
function isCachedTreeNodeSelected(uuid, node) {
|
|
20159
|
-
if (!props.selectable) {
|
|
20160
|
-
return false;
|
|
20161
|
-
}
|
|
20162
|
-
var isMatch = _resolvePropIsMatched(node, props.selected, uuid);
|
|
20163
|
-
return getCachedTreeNodeAttr(uuid, node, NODE_ATTRIBUTES.IS_SELECTED, isMatch);
|
|
20164
|
-
}
|
|
20165
|
-
function isNodeOpend(uuid, item, parent) {
|
|
20166
|
-
var _treeSchema$get;
|
|
20167
|
-
var isItemOpened = getCachedTreeNodeAttr(uuid, item, NODE_ATTRIBUTES.IS_OPEN);
|
|
20168
|
-
var isParentOpened = treeSchema.has(parent) ? (_treeSchema$get = treeSchema.get(parent)) === null || _treeSchema$get === void 0 ? void 0 : _treeSchema$get[NODE_ATTRIBUTES.IS_OPEN] : true;
|
|
20169
|
-
return isItemOpened && isParentOpened;
|
|
20170
|
-
}
|
|
20171
|
-
function isCheckedNode(node, uuid, attributes) {
|
|
20172
|
-
var isChecked = showCheckbox(props, {
|
|
20173
|
-
data: node,
|
|
20174
|
-
attributes: attributes
|
|
20175
|
-
});
|
|
20176
|
-
if (!isChecked) {
|
|
20177
|
-
return false;
|
|
20478
|
+
if (useCache) {
|
|
20479
|
+
var cached = cachedSchema.get(node);
|
|
20480
|
+
if (cached) {
|
|
20481
|
+
var cachedVal = cached[cachedAttr];
|
|
20482
|
+
if (cachedVal !== undefined && cachedVal !== null) {
|
|
20483
|
+
return cachedVal;
|
|
20484
|
+
}
|
|
20485
|
+
}
|
|
20178
20486
|
}
|
|
20179
|
-
|
|
20180
|
-
return getCachedTreeNodeAttr(uuid, node, NODE_ATTRIBUTES.IS_CHECKED, isMatch);
|
|
20487
|
+
return defaultValue;
|
|
20181
20488
|
}
|
|
20182
20489
|
function validateIsOpenLoopFn(targetAttr) {
|
|
20183
20490
|
var _targetAttr$NODE_ATTR;
|
|
20184
20491
|
return !((_targetAttr$NODE_ATTR = targetAttr === null || targetAttr === void 0 ? void 0 : targetAttr[NODE_ATTRIBUTES.IS_OPEN]) !== null && _targetAttr$NODE_ATTR !== void 0 ? _targetAttr$NODE_ATTR : false);
|
|
20185
20492
|
}
|
|
20186
20493
|
function loopUpdateCheckedEvent(target, _attrName, _attrValue, node) {
|
|
20187
|
-
target[NODE_ATTRIBUTES.IS_INDETERMINATE] = (node[
|
|
20188
|
-
var _treeSchema$get$NODE_, _treeSchema$
|
|
20189
|
-
return !((_treeSchema$get$NODE_ = (_treeSchema$
|
|
20494
|
+
target[NODE_ATTRIBUTES.IS_INDETERMINATE] = (node[children] || []).some(function (child) {
|
|
20495
|
+
var _treeSchema$get$NODE_, _treeSchema$get;
|
|
20496
|
+
return !((_treeSchema$get$NODE_ = (_treeSchema$get = treeSchema.get(child)) === null || _treeSchema$get === void 0 ? void 0 : _treeSchema$get[NODE_ATTRIBUTES.IS_CHECKED]) !== null && _treeSchema$get$NODE_ !== void 0 ? _treeSchema$get$NODE_ : false);
|
|
20190
20497
|
});
|
|
20191
20498
|
return true;
|
|
20192
20499
|
}
|
|
@@ -20196,69 +20503,85 @@ var use_tree_init_this = undefined;
|
|
|
20196
20503
|
var path = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
20197
20504
|
var arrLength = array.length;
|
|
20198
20505
|
for (var i = 0; i < arrLength; i++) {
|
|
20506
|
+
var _attributes;
|
|
20199
20507
|
var item = array[i];
|
|
20508
|
+
if (item === null || item === undefined) {
|
|
20509
|
+
continue;
|
|
20510
|
+
}
|
|
20200
20511
|
if (Array.isArray(item)) {
|
|
20201
20512
|
flatten(item, depth, parent, path);
|
|
20513
|
+
continue;
|
|
20514
|
+
}
|
|
20515
|
+
if (_typeof(item) !== 'object') {
|
|
20516
|
+
continue;
|
|
20517
|
+
}
|
|
20518
|
+
// 统一用 raw 作为 WeakMap key,避免 Proxy/raw 不一致导致 schema 全量失效
|
|
20519
|
+
var rawItem = __WEBPACK_EXTERNAL_MODULE_vue_toRaw__(item);
|
|
20520
|
+
var currentPath = path !== null ? "".concat(path, "-").concat(i) : "".concat(i);
|
|
20521
|
+
var uuid = "".concat(getUid(rawItem));
|
|
20522
|
+
var childList = rawItem[children];
|
|
20523
|
+
var hasChildren = !!(childList && childList.length);
|
|
20524
|
+
if (!nodeKey) {
|
|
20525
|
+
rawItem[NODE_ATTRIBUTES.UUID] = uuid;
|
|
20526
|
+
}
|
|
20527
|
+
var isOpened = !!resolveAttr(rawItem, SOURCE_IS_OPEN, NODE_ATTRIBUTES.IS_OPEN, expandAll);
|
|
20528
|
+
if (autoOpenParentNode) {
|
|
20529
|
+
if (isOpened && parent) {
|
|
20530
|
+
loopUpdateNodeAttr(parent, NODE_ATTRIBUTES.IS_OPEN, true, validateIsOpenLoopFn);
|
|
20531
|
+
}
|
|
20532
|
+
} else if (parent) {
|
|
20533
|
+
var _treeSchema$get2;
|
|
20534
|
+
var parentOpened = !!((_treeSchema$get2 = treeSchema.get(parent)) !== null && _treeSchema$get2 !== void 0 && _treeSchema$get2[NODE_ATTRIBUTES.IS_OPEN]);
|
|
20535
|
+
isOpened = isOpened && parentOpened;
|
|
20536
|
+
}
|
|
20537
|
+
var isSelected = false;
|
|
20538
|
+
if (selectable) {
|
|
20539
|
+
var selectedDefault = hasSelectedProp ? _resolvePropIsMatched(rawItem, props.selected, uuid) : false;
|
|
20540
|
+
isSelected = !!resolveAttr(rawItem, SOURCE_IS_SELECTED, NODE_ATTRIBUTES.IS_SELECTED, selectedDefault);
|
|
20541
|
+
}
|
|
20542
|
+
var isChecked = false;
|
|
20543
|
+
if (checkboxEnabled) {
|
|
20544
|
+
var canCheck = showCheckbox(props, {
|
|
20545
|
+
data: rawItem
|
|
20546
|
+
});
|
|
20547
|
+
if (canCheck) {
|
|
20548
|
+
var checkedDefault = hasCheckedProp ? _resolvePropIsMatched(rawItem, props.checked, uuid) : false;
|
|
20549
|
+
isChecked = !!resolveAttr(rawItem, SOURCE_IS_CHECKED, NODE_ATTRIBUTES.IS_CHECKED, checkedDefault);
|
|
20550
|
+
}
|
|
20551
|
+
}
|
|
20552
|
+
var attributes = (_attributes = {}, _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, isSelected), NODE_ATTRIBUTES.IS_MATCH, !!resolveAttr(rawItem, SOURCE_IS_MATCH, NODE_ATTRIBUTES.IS_MATCH, false)), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_attributes, NODE_ATTRIBUTES.IS_OPEN, isOpened), NODE_ATTRIBUTES.IS_CHECKED, isChecked), NODE_ATTRIBUTES.IS_CACHED, !!resolveAttr(rawItem, SOURCE_IS_CACHED, NODE_ATTRIBUTES.IS_CACHED, false)), NODE_ATTRIBUTES.IS_ASYNC, resolveAttr(rawItem, SOURCE_IS_ASYNC, NODE_ATTRIBUTES.IS_ASYNC, null)), NODE_ATTRIBUTES.IS_LOADING, !!resolveAttr(rawItem, SOURCE_IS_LOADING, NODE_ATTRIBUTES.IS_LOADING, false)), NODE_ATTRIBUTES.IS_INDETERMINATE, false));
|
|
20553
|
+
if (isChecked) {
|
|
20554
|
+
checkedList.push(rawItem);
|
|
20555
|
+
}
|
|
20556
|
+
if (isOpened) {
|
|
20557
|
+
openCount += 1;
|
|
20558
|
+
}
|
|
20559
|
+
treeSchema.set(rawItem, attributes);
|
|
20560
|
+
nodeMap.set(uuid, rawItem);
|
|
20561
|
+
if (parent === null) {
|
|
20562
|
+
rootNodes.push(rawItem);
|
|
20202
20563
|
} else {
|
|
20203
|
-
|
|
20204
|
-
|
|
20205
|
-
|
|
20206
|
-
|
|
20207
|
-
var hasChildren = !!(item[children] || []).length;
|
|
20208
|
-
if (!props.nodeKey) {
|
|
20209
|
-
item[NODE_ATTRIBUTES.UUID] = uuid;
|
|
20210
|
-
}
|
|
20211
|
-
if (nodeMap.has(uuid)) {
|
|
20212
|
-
console.warn("[bk-tree] duplicate node key \"".concat(uuid, "\" found, please check nodeKey."));
|
|
20213
|
-
}
|
|
20214
|
-
/**
|
|
20215
|
-
* 当前节点设置是否为展开状态
|
|
20216
|
-
*/
|
|
20217
|
-
var isOpened = getCachedTreeNodeAttr(uuid, item, NODE_ATTRIBUTES.IS_OPEN);
|
|
20218
|
-
/**
|
|
20219
|
-
* 如果初始化发现当前属性为展开或者选中 & 设置了 autoOpenParentNode = true
|
|
20220
|
-
* 此时需要设置当前节点的所有父级节点都为展开状态
|
|
20221
|
-
*/
|
|
20222
|
-
if (props.autoOpenParentNode) {
|
|
20223
|
-
isOpened && loopUpdateNodeAttr(parent, NODE_ATTRIBUTES.IS_OPEN, true, validateIsOpenLoopFn);
|
|
20224
|
-
} else {
|
|
20225
|
-
/**
|
|
20226
|
-
* 如果没有设置自动展开所有父级
|
|
20227
|
-
* 此时需要判定当前节点是否可以展开状态需要同时判定父级是否展开
|
|
20228
|
-
* 如果父级不是展开状态,此节点不能展示,应该也是关闭状态,只有当父级展开时,此节点才为展开状态
|
|
20229
|
-
*/
|
|
20230
|
-
isOpened = isNodeOpend(uuid, item, parent);
|
|
20231
|
-
}
|
|
20232
|
-
var attributes = (_attributes = {}, _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(_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));
|
|
20233
|
-
attributes[NODE_ATTRIBUTES.IS_CHECKED] = isCheckedNode(item, uuid, attributes);
|
|
20234
|
-
if (attributes[NODE_ATTRIBUTES.IS_CHECKED]) {
|
|
20235
|
-
checkedList.push(item);
|
|
20236
|
-
}
|
|
20237
|
-
treeSchema.set(item, attributes);
|
|
20238
|
-
nodeMap.set(uuid, item);
|
|
20239
|
-
if (parent === null) {
|
|
20240
|
-
rootNodes.push(item);
|
|
20241
|
-
} else {
|
|
20242
|
-
var siblings = childMap.get(parent) || [];
|
|
20243
|
-
siblings.push(item);
|
|
20244
|
-
childMap.set(parent, siblings);
|
|
20245
|
-
}
|
|
20246
|
-
outputData.push(item);
|
|
20247
|
-
order += 1;
|
|
20248
|
-
if (Object.prototype.hasOwnProperty.call(item, children)) {
|
|
20249
|
-
flatten(item[children] || [], depth + 1, item, currentPath);
|
|
20250
|
-
}
|
|
20564
|
+
var siblings = childMap.get(parent);
|
|
20565
|
+
if (!siblings) {
|
|
20566
|
+
siblings = [];
|
|
20567
|
+
childMap.set(parent, siblings);
|
|
20251
20568
|
}
|
|
20569
|
+
siblings.push(rawItem);
|
|
20570
|
+
}
|
|
20571
|
+
outputData.push(rawItem);
|
|
20572
|
+
order += 1;
|
|
20573
|
+
if (hasChildren) {
|
|
20574
|
+
flatten(childList, depth + 1, rawItem, currentPath);
|
|
20252
20575
|
}
|
|
20253
20576
|
}
|
|
20254
20577
|
}
|
|
20255
20578
|
flatten(treeData !== null && treeData !== void 0 ? treeData : data);
|
|
20256
|
-
if (
|
|
20257
|
-
checkedList
|
|
20579
|
+
if (checkboxEnabled && props.checkStrictly) {
|
|
20580
|
+
checkedList.forEach(function (value) {
|
|
20258
20581
|
loopUpdateNodeAttr(value, NODE_ATTRIBUTES.IS_CHECKED, true, loopUpdateCheckedEvent);
|
|
20259
20582
|
});
|
|
20260
20583
|
}
|
|
20261
|
-
return [outputData, treeSchema, nodeMap, childMap, rootNodes];
|
|
20584
|
+
return [outputData, treeSchema, nodeMap, childMap, rootNodes, openCount, checkedList];
|
|
20262
20585
|
};
|
|
20263
20586
|
var formatData = getFlatdata();
|
|
20264
20587
|
var nextLoopEvents = new Map();
|
|
@@ -20266,14 +20589,17 @@ var use_tree_init_this = undefined;
|
|
|
20266
20589
|
var afterSelectWatch = [];
|
|
20267
20590
|
/**
|
|
20268
20591
|
* 扁平化数据
|
|
20269
|
-
*
|
|
20592
|
+
* shallowReactive:只跟踪 data/rootNodes 等字段替换,避免百万节点被深代理
|
|
20593
|
+
* schema/nodeMap/childMap 使用 markRaw,避免 WeakMap get/set 进入依赖收集
|
|
20270
20594
|
*/
|
|
20271
|
-
var flatData =
|
|
20595
|
+
var flatData = __WEBPACK_EXTERNAL_MODULE_vue_shallowReactive__({
|
|
20272
20596
|
data: formatData[0],
|
|
20273
|
-
schema: formatData[1],
|
|
20274
|
-
nodeMap: formatData[2],
|
|
20275
|
-
childMap: formatData[3],
|
|
20597
|
+
schema: toRawStore(formatData[1]),
|
|
20598
|
+
nodeMap: toRawStore(formatData[2]),
|
|
20599
|
+
childMap: toRawStore(formatData[3]),
|
|
20276
20600
|
rootNodes: formatData[4],
|
|
20601
|
+
openCount: formatData[5] || 0,
|
|
20602
|
+
checkedList: formatData[6] || [],
|
|
20277
20603
|
levelLineSchema: {}
|
|
20278
20604
|
});
|
|
20279
20605
|
var _useNodeAsync = use_node_async(props, flatData),
|
|
@@ -20344,30 +20670,39 @@ var use_tree_init_this = undefined;
|
|
|
20344
20670
|
/**
|
|
20345
20671
|
* 监听组件配置Data改变
|
|
20346
20672
|
*/
|
|
20673
|
+
var afterRebuildCallbacks = [];
|
|
20674
|
+
var onAfterRebuild = function onAfterRebuild(callback) {
|
|
20675
|
+
afterRebuildCallbacks.push(callback);
|
|
20676
|
+
};
|
|
20347
20677
|
var rebuildData = function rebuildData(treeData) {
|
|
20348
20678
|
var cachedSchema = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : flatData.schema;
|
|
20349
|
-
var
|
|
20350
|
-
|
|
20351
|
-
flatData.schema =
|
|
20352
|
-
flatData.nodeMap =
|
|
20353
|
-
flatData.childMap =
|
|
20354
|
-
flatData.rootNodes =
|
|
20679
|
+
var next = getFlatdata(treeData, cachedSchema);
|
|
20680
|
+
// 先替换 schema/maps,再替换 data,避免 data watcher 读到旧 schema
|
|
20681
|
+
flatData.schema = toRawStore(next[1]);
|
|
20682
|
+
flatData.nodeMap = toRawStore(next[2]);
|
|
20683
|
+
flatData.childMap = toRawStore(next[3]);
|
|
20684
|
+
flatData.rootNodes = next[4];
|
|
20685
|
+
flatData.openCount = next[5] || 0;
|
|
20686
|
+
flatData.checkedList = next[6] || [];
|
|
20687
|
+
flatData.data = next[0];
|
|
20688
|
+
afterRebuildCallbacks.forEach(function (callback) {
|
|
20689
|
+
return callback();
|
|
20690
|
+
});
|
|
20355
20691
|
};
|
|
20692
|
+
// watchDataDeep=false(默认):仅监听 data 引用变化,大数据量友好
|
|
20693
|
+
// watchDataDeep=true:深度监听原地变更;百万节点下会明显变慢,仅建议小数据使用
|
|
20694
|
+
// 组件内部拖拽/异步仍走 onTreeDataChange → rebuildData
|
|
20356
20695
|
__WEBPACK_EXTERNAL_MODULE_vue_watch__(function () {
|
|
20357
|
-
return
|
|
20696
|
+
return props.data;
|
|
20358
20697
|
}, function (newData) {
|
|
20359
20698
|
var _props$async, _props$async2;
|
|
20360
|
-
rebuildData(newData
|
|
20699
|
+
rebuildData(newData, flatData.schema);
|
|
20361
20700
|
if ((_props$async = props.async) !== null && _props$async !== void 0 && _props$async.callback && ((_props$async2 = props.async) === null || _props$async2 === void 0 ? void 0 : _props$async2.deepAutoOpen) === 'every') {
|
|
20362
20701
|
deepAutoOpen();
|
|
20363
20702
|
}
|
|
20364
|
-
/**
|
|
20365
|
-
* 执行缓存下来的周期函数
|
|
20366
|
-
* 保证data改变之后执行相关操作
|
|
20367
|
-
*/
|
|
20368
20703
|
executeNextEvent();
|
|
20369
20704
|
}, {
|
|
20370
|
-
deep:
|
|
20705
|
+
deep: !!props.watchDataDeep
|
|
20371
20706
|
});
|
|
20372
20707
|
if (props.selectable) {
|
|
20373
20708
|
__WEBPACK_EXTERNAL_MODULE_vue_onMounted__(function () {
|
|
@@ -20406,9 +20741,226 @@ var use_tree_init_this = undefined;
|
|
|
20406
20741
|
afterDataUpdate: afterDataUpdate,
|
|
20407
20742
|
registerNextLoop: registerNextLoop,
|
|
20408
20743
|
rebuildData: rebuildData,
|
|
20744
|
+
onAfterRebuild: onAfterRebuild,
|
|
20409
20745
|
onSelected: onSelected
|
|
20410
20746
|
};
|
|
20411
20747
|
});
|
|
20748
|
+
;// ../../packages/tree/src/use-visible-nodes.ts
|
|
20749
|
+
/*
|
|
20750
|
+
* Tencent is pleased to support the open source community by making
|
|
20751
|
+
* 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) available.
|
|
20752
|
+
*
|
|
20753
|
+
* Copyright (C) 2025 Tencent. All rights reserved.
|
|
20754
|
+
*
|
|
20755
|
+
* 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition) is licensed under the MIT License.
|
|
20756
|
+
*
|
|
20757
|
+
* License for 蓝鲸智云PaaS平台社区版 (BlueKing PaaS Community Edition):
|
|
20758
|
+
*
|
|
20759
|
+
* ---------------------------------------------------
|
|
20760
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
|
|
20761
|
+
* documentation files (the "Software"), to deal in the Software without restriction, including without limitation
|
|
20762
|
+
* the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
|
|
20763
|
+
* to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
20764
|
+
*
|
|
20765
|
+
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of
|
|
20766
|
+
* the Software.
|
|
20767
|
+
*
|
|
20768
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
|
|
20769
|
+
* THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20770
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
|
20771
|
+
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
20772
|
+
* IN THE SOFTWARE.
|
|
20773
|
+
*/
|
|
20774
|
+
|
|
20775
|
+
|
|
20776
|
+
/**
|
|
20777
|
+
* 增量维护树的可见节点列表,避免每次展开都对全量 flatData 做 O(N) filter。
|
|
20778
|
+
* 展开/收起复杂度接近 O(受影响的可见子节点数),禁止回退到全表扫描。
|
|
20779
|
+
*/
|
|
20780
|
+
/* harmony default export */ const use_visible_nodes = (function (flatData, helpers) {
|
|
20781
|
+
var checkNodeIsOpen = helpers.checkNodeIsOpen,
|
|
20782
|
+
getChildNodes = helpers.getChildNodes,
|
|
20783
|
+
getNodeAttr = helpers.getNodeAttr,
|
|
20784
|
+
getNodeOrder = helpers.getNodeOrder,
|
|
20785
|
+
getSchemaVal = helpers.getSchemaVal,
|
|
20786
|
+
isNodeOpened = helpers.isNodeOpened;
|
|
20787
|
+
var visibleNodes = __WEBPACK_EXTERNAL_MODULE_vue_shallowRef__([]);
|
|
20788
|
+
var uiVersion = __WEBPACK_EXTERNAL_MODULE_vue_shallowRef__(0);
|
|
20789
|
+
var uiFlushScheduled = false;
|
|
20790
|
+
var emitListChange = function emitListChange(next) {
|
|
20791
|
+
visibleNodes.value = next;
|
|
20792
|
+
};
|
|
20793
|
+
var scheduleUiRefresh = function scheduleUiRefresh() {
|
|
20794
|
+
if (uiFlushScheduled) {
|
|
20795
|
+
return;
|
|
20796
|
+
}
|
|
20797
|
+
uiFlushScheduled = true;
|
|
20798
|
+
__WEBPACK_EXTERNAL_MODULE_vue_nextTick__(function () {
|
|
20799
|
+
uiFlushScheduled = false;
|
|
20800
|
+
uiVersion.value += 1;
|
|
20801
|
+
});
|
|
20802
|
+
};
|
|
20803
|
+
var rebuildVisibleNodes = function rebuildVisibleNodes(filterFn) {
|
|
20804
|
+
var _flatData$rootNodes;
|
|
20805
|
+
if (!filterFn && (flatData.openCount || 0) <= 0 && (_flatData$rootNodes = flatData.rootNodes) !== null && _flatData$rootNodes !== void 0 && _flatData$rootNodes.length) {
|
|
20806
|
+
emitListChange(flatData.rootNodes.slice());
|
|
20807
|
+
return;
|
|
20808
|
+
}
|
|
20809
|
+
var predicate = filterFn !== null && filterFn !== void 0 ? filterFn : checkNodeIsOpen;
|
|
20810
|
+
var next = [];
|
|
20811
|
+
var data = flatData.data;
|
|
20812
|
+
for (var i = 0, len = data.length; i < len; i++) {
|
|
20813
|
+
var item = data[i];
|
|
20814
|
+
if (predicate(item)) {
|
|
20815
|
+
next.push(item);
|
|
20816
|
+
}
|
|
20817
|
+
}
|
|
20818
|
+
emitListChange(next);
|
|
20819
|
+
};
|
|
20820
|
+
var _collectOpenedBranch = function collectOpenedBranch(node, result) {
|
|
20821
|
+
var children = getChildNodes(node);
|
|
20822
|
+
for (var i = 0, len = children.length; i < len; i++) {
|
|
20823
|
+
var child = children[i];
|
|
20824
|
+
result.push(child);
|
|
20825
|
+
if (isNodeOpened(child)) {
|
|
20826
|
+
_collectOpenedBranch(child, result);
|
|
20827
|
+
}
|
|
20828
|
+
}
|
|
20829
|
+
};
|
|
20830
|
+
/** 仅在可见列表内线性查找,O(V),禁止回退扫 flat 全表 */
|
|
20831
|
+
var findVisibleIndexLinear = function findVisibleIndexLinear(node) {
|
|
20832
|
+
var list = visibleNodes.value;
|
|
20833
|
+
var rawNode = __WEBPACK_EXTERNAL_MODULE_vue_toRaw__(node);
|
|
20834
|
+
for (var i = 0, len = list.length; i < len; i++) {
|
|
20835
|
+
var current = list[i];
|
|
20836
|
+
if (current === node || current === rawNode || __WEBPACK_EXTERNAL_MODULE_vue_toRaw__(current) === rawNode) {
|
|
20837
|
+
return i;
|
|
20838
|
+
}
|
|
20839
|
+
}
|
|
20840
|
+
return -1;
|
|
20841
|
+
};
|
|
20842
|
+
/**
|
|
20843
|
+
* 按唯一 ORDER 二分定位,兼容 Proxy/raw 引用不一致。
|
|
20844
|
+
* 找不到时最多回退可见列表线性查找,不得 O(N) rebuild。
|
|
20845
|
+
*/
|
|
20846
|
+
var findVisibleIndex = function findVisibleIndex(node) {
|
|
20847
|
+
var _getNodeOrder;
|
|
20848
|
+
var list = visibleNodes.value;
|
|
20849
|
+
if (!list.length) {
|
|
20850
|
+
return -1;
|
|
20851
|
+
}
|
|
20852
|
+
var rawNode = __WEBPACK_EXTERNAL_MODULE_vue_toRaw__(node);
|
|
20853
|
+
var targetOrder = (_getNodeOrder = getNodeOrder(rawNode)) !== null && _getNodeOrder !== void 0 ? _getNodeOrder : getNodeOrder(node);
|
|
20854
|
+
if (targetOrder === undefined || targetOrder === null || Number.isNaN(Number(targetOrder))) {
|
|
20855
|
+
return findVisibleIndexLinear(node);
|
|
20856
|
+
}
|
|
20857
|
+
var low = 0;
|
|
20858
|
+
var high = list.length - 1;
|
|
20859
|
+
while (low <= high) {
|
|
20860
|
+
var mid = low + high >> 1;
|
|
20861
|
+
var midOrder = Number(getNodeOrder(list[mid]));
|
|
20862
|
+
if (midOrder === Number(targetOrder)) {
|
|
20863
|
+
return mid;
|
|
20864
|
+
}
|
|
20865
|
+
if (midOrder < Number(targetOrder)) {
|
|
20866
|
+
low = mid + 1;
|
|
20867
|
+
} else {
|
|
20868
|
+
high = mid - 1;
|
|
20869
|
+
}
|
|
20870
|
+
}
|
|
20871
|
+
return findVisibleIndexLinear(node);
|
|
20872
|
+
};
|
|
20873
|
+
var closeOpenedInRange = function closeOpenedInRange(list, start, end) {
|
|
20874
|
+
for (var i = start; i < end; i++) {
|
|
20875
|
+
var schema = getSchemaVal(list[i]);
|
|
20876
|
+
if (!(schema !== null && schema !== void 0 && schema[NODE_ATTRIBUTES.IS_OPEN])) {
|
|
20877
|
+
continue;
|
|
20878
|
+
}
|
|
20879
|
+
schema[NODE_ATTRIBUTES.IS_OPEN] = false;
|
|
20880
|
+
if ((flatData.openCount || 0) > 0) {
|
|
20881
|
+
flatData.openCount -= 1;
|
|
20882
|
+
}
|
|
20883
|
+
}
|
|
20884
|
+
};
|
|
20885
|
+
/**
|
|
20886
|
+
* 展开节点:在可见列表中插入直接子节点,以及已展开子树。
|
|
20887
|
+
*/
|
|
20888
|
+
var expandVisibleNode = function expandVisibleNode(node) {
|
|
20889
|
+
var _getNodeAttr;
|
|
20890
|
+
var index = findVisibleIndex(node);
|
|
20891
|
+
if (index < 0) {
|
|
20892
|
+
// 不回退全表 rebuild(百万节点会卡 ~1s),只刷新当前行展开图标
|
|
20893
|
+
scheduleUiRefresh();
|
|
20894
|
+
return;
|
|
20895
|
+
}
|
|
20896
|
+
var list = visibleNodes.value;
|
|
20897
|
+
// 已有后代可见则认为已展开,只刷新图标
|
|
20898
|
+
var nodeDepth = Number((_getNodeAttr = getNodeAttr(node, NODE_ATTRIBUTES.DEPTH)) !== null && _getNodeAttr !== void 0 ? _getNodeAttr : 0);
|
|
20899
|
+
var next = list[index + 1];
|
|
20900
|
+
if (next) {
|
|
20901
|
+
var _getNodeAttr2;
|
|
20902
|
+
var nextDepth = Number((_getNodeAttr2 = getNodeAttr(next, NODE_ATTRIBUTES.DEPTH)) !== null && _getNodeAttr2 !== void 0 ? _getNodeAttr2 : -1);
|
|
20903
|
+
if (nextDepth > nodeDepth) {
|
|
20904
|
+
scheduleUiRefresh();
|
|
20905
|
+
return;
|
|
20906
|
+
}
|
|
20907
|
+
}
|
|
20908
|
+
var insertNodes = [];
|
|
20909
|
+
_collectOpenedBranch(node, insertNodes);
|
|
20910
|
+
if (!insertNodes.length) {
|
|
20911
|
+
scheduleUiRefresh();
|
|
20912
|
+
return;
|
|
20913
|
+
}
|
|
20914
|
+
emitListChange(list.slice(0, index + 1).concat(insertNodes, list.slice(index + 1)));
|
|
20915
|
+
};
|
|
20916
|
+
/**
|
|
20917
|
+
* 收起节点:
|
|
20918
|
+
* 1) 只关闭「可见后代」中的 IS_OPEN(不必扫 flat 全量子树)
|
|
20919
|
+
* 2) 从可见列表移除该区间
|
|
20920
|
+
*/
|
|
20921
|
+
var collapseVisibleNode = function collapseVisibleNode(node) {
|
|
20922
|
+
var _getNodeAttr3;
|
|
20923
|
+
var index = findVisibleIndex(node);
|
|
20924
|
+
if (index < 0) {
|
|
20925
|
+
scheduleUiRefresh();
|
|
20926
|
+
return;
|
|
20927
|
+
}
|
|
20928
|
+
var list = visibleNodes.value;
|
|
20929
|
+
var nodeDepth = Number((_getNodeAttr3 = getNodeAttr(node, NODE_ATTRIBUTES.DEPTH)) !== null && _getNodeAttr3 !== void 0 ? _getNodeAttr3 : 0);
|
|
20930
|
+
var end = index + 1;
|
|
20931
|
+
while (end < list.length) {
|
|
20932
|
+
var _getNodeAttr4;
|
|
20933
|
+
var depth = Number((_getNodeAttr4 = getNodeAttr(list[end], NODE_ATTRIBUTES.DEPTH)) !== null && _getNodeAttr4 !== void 0 ? _getNodeAttr4 : -1);
|
|
20934
|
+
if (depth <= nodeDepth) {
|
|
20935
|
+
break;
|
|
20936
|
+
}
|
|
20937
|
+
end += 1;
|
|
20938
|
+
}
|
|
20939
|
+
if (end === index + 1) {
|
|
20940
|
+
scheduleUiRefresh();
|
|
20941
|
+
return;
|
|
20942
|
+
}
|
|
20943
|
+
closeOpenedInRange(list, index + 1, end);
|
|
20944
|
+
emitListChange(list.slice(0, index + 1).concat(list.slice(end)));
|
|
20945
|
+
};
|
|
20946
|
+
var syncNodeOpenState = function syncNodeOpenState(node, isOpen) {
|
|
20947
|
+
if (isOpen) {
|
|
20948
|
+
expandVisibleNode(node);
|
|
20949
|
+
return;
|
|
20950
|
+
}
|
|
20951
|
+
collapseVisibleNode(node);
|
|
20952
|
+
};
|
|
20953
|
+
rebuildVisibleNodes();
|
|
20954
|
+
return {
|
|
20955
|
+
visibleNodes: visibleNodes,
|
|
20956
|
+
uiVersion: uiVersion,
|
|
20957
|
+
rebuildVisibleNodes: rebuildVisibleNodes,
|
|
20958
|
+
expandVisibleNode: expandVisibleNode,
|
|
20959
|
+
collapseVisibleNode: collapseVisibleNode,
|
|
20960
|
+
syncNodeOpenState: syncNodeOpenState,
|
|
20961
|
+
scheduleUiRefresh: scheduleUiRefresh
|
|
20962
|
+
};
|
|
20963
|
+
});
|
|
20412
20964
|
;// ../../packages/tree/src/tree.tsx
|
|
20413
20965
|
|
|
20414
20966
|
|
|
@@ -20453,6 +21005,7 @@ var use_tree_init_this = undefined;
|
|
|
20453
21005
|
|
|
20454
21006
|
|
|
20455
21007
|
|
|
21008
|
+
|
|
20456
21009
|
/* harmony default export */ const tree = (__WEBPACK_EXTERNAL_MODULE_vue_defineComponent__({
|
|
20457
21010
|
name: 'Tree',
|
|
20458
21011
|
props: treeProps,
|
|
@@ -20464,7 +21017,8 @@ var use_tree_init_this = undefined;
|
|
|
20464
21017
|
flatData = _useTreeInit.flatData,
|
|
20465
21018
|
onSelected = _useTreeInit.onSelected,
|
|
20466
21019
|
rebuildData = _useTreeInit.rebuildData,
|
|
20467
|
-
registerNextLoop = _useTreeInit.registerNextLoop
|
|
21020
|
+
registerNextLoop = _useTreeInit.registerNextLoop,
|
|
21021
|
+
onAfterRebuild = _useTreeInit.onAfterRebuild;
|
|
20468
21022
|
var _useNodeAttribute = use_node_attribute(flatData, props),
|
|
20469
21023
|
checkNodeIsOpen = _useNodeAttribute.checkNodeIsOpen,
|
|
20470
21024
|
isRootNode = _useNodeAttribute.isRootNode,
|
|
@@ -20477,7 +21031,10 @@ var use_tree_init_this = undefined;
|
|
|
20477
21031
|
getNodeById = _useNodeAttribute.getNodeById,
|
|
20478
21032
|
getParentNode = _useNodeAttribute.getParentNode,
|
|
20479
21033
|
getRootNodeList = _useNodeAttribute.getRootNodeList,
|
|
20480
|
-
getIntersectionResponse = _useNodeAttribute.getIntersectionResponse
|
|
21034
|
+
getIntersectionResponse = _useNodeAttribute.getIntersectionResponse,
|
|
21035
|
+
getChildNodes = _useNodeAttribute.getChildNodes,
|
|
21036
|
+
getNodePath = _useNodeAttribute.getNodePath,
|
|
21037
|
+
getSchemaVal = _useNodeAttribute.getSchemaVal;
|
|
20481
21038
|
var _useSearch = use_search(props),
|
|
20482
21039
|
searchFn = _useSearch.searchFn,
|
|
20483
21040
|
isSearchActive = _useSearch.isSearchActive,
|
|
@@ -20489,6 +21046,47 @@ var use_tree_init_this = undefined;
|
|
|
20489
21046
|
var matchedNodeIds = __WEBPACK_EXTERNAL_MODULE_vue_reactive__(new Set());
|
|
20490
21047
|
var visibleNodeIds = __WEBPACK_EXTERNAL_MODULE_vue_reactive__(new Set());
|
|
20491
21048
|
var searchOriginalOpenState = new Map();
|
|
21049
|
+
var _useVisibleNodes = use_visible_nodes(flatData, {
|
|
21050
|
+
checkNodeIsOpen: checkNodeIsOpen,
|
|
21051
|
+
getChildNodes: getChildNodes,
|
|
21052
|
+
getNodeAttr: getNodeAttr,
|
|
21053
|
+
getNodePath: getNodePath,
|
|
21054
|
+
getNodeOrder: function getNodeOrder(node) {
|
|
21055
|
+
var _getNodeAttr;
|
|
21056
|
+
return (_getNodeAttr = getNodeAttr(node, NODE_ATTRIBUTES.ORDER)) !== null && _getNodeAttr !== void 0 ? _getNodeAttr : 0;
|
|
21057
|
+
},
|
|
21058
|
+
getSchemaVal: getSchemaVal,
|
|
21059
|
+
isNodeOpened: isNodeOpened
|
|
21060
|
+
}),
|
|
21061
|
+
renderData = _useVisibleNodes.visibleNodes,
|
|
21062
|
+
uiVersion = _useVisibleNodes.uiVersion,
|
|
21063
|
+
rebuildVisibleNodes = _useVisibleNodes.rebuildVisibleNodes,
|
|
21064
|
+
syncNodeOpenStateRaw = _useVisibleNodes.syncNodeOpenState,
|
|
21065
|
+
scheduleUiRefresh = _useVisibleNodes.scheduleUiRefresh;
|
|
21066
|
+
var filterFn = function filterFn(item) {
|
|
21067
|
+
if (isSearchActive.value) {
|
|
21068
|
+
return visibleNodeIds.has("".concat(getNodeId(item)));
|
|
21069
|
+
}
|
|
21070
|
+
return checkNodeIsOpen(item);
|
|
21071
|
+
};
|
|
21072
|
+
/**
|
|
21073
|
+
* 搜索态下可见集由 matched/visibleNodeIds 决定,不能按父子关系增量插入;
|
|
21074
|
+
* 非搜索态走 O(子树) 增量更新。
|
|
21075
|
+
*/
|
|
21076
|
+
var syncNodeOpenState = function syncNodeOpenState(node, isOpen) {
|
|
21077
|
+
if (isSearchActive.value) {
|
|
21078
|
+
rebuildVisibleNodes(filterFn);
|
|
21079
|
+
return;
|
|
21080
|
+
}
|
|
21081
|
+
syncNodeOpenStateRaw(node, isOpen);
|
|
21082
|
+
};
|
|
21083
|
+
flatData.notifySchemaChange = function (_node, attr) {
|
|
21084
|
+
// IS_OPEN 由 syncNodeOpenState 增量维护可见列表
|
|
21085
|
+
if (attr === NODE_ATTRIBUTES.IS_OPEN) {
|
|
21086
|
+
return;
|
|
21087
|
+
}
|
|
21088
|
+
scheduleUiRefresh();
|
|
21089
|
+
};
|
|
20492
21090
|
var getRenderNodeId = function getRenderNodeId(node) {
|
|
20493
21091
|
return "".concat(getNodeId(node));
|
|
20494
21092
|
};
|
|
@@ -20525,18 +21123,6 @@ var use_tree_init_this = undefined;
|
|
|
20525
21123
|
_addDescendantNodes(child);
|
|
20526
21124
|
});
|
|
20527
21125
|
};
|
|
20528
|
-
var filterFn = function filterFn(item) {
|
|
20529
|
-
if (isSearchActive.value) {
|
|
20530
|
-
return visibleNodeIds.has(getRenderNodeId(item));
|
|
20531
|
-
}
|
|
20532
|
-
return checkNodeIsOpen(item);
|
|
20533
|
-
};
|
|
20534
|
-
// 计算当前需要渲染的节点信息
|
|
20535
|
-
var renderData = __WEBPACK_EXTERNAL_MODULE_vue_computed__(function () {
|
|
20536
|
-
return flatData.data.filter(function (item) {
|
|
20537
|
-
return filterFn(item);
|
|
20538
|
-
});
|
|
20539
|
-
});
|
|
20540
21126
|
var _useIntersectionObser = use_intersection_observer(props),
|
|
20541
21127
|
getLastVisibleElement = _useIntersectionObser.getLastVisibleElement,
|
|
20542
21128
|
intersectionObserver = _useIntersectionObser.intersectionObserver;
|
|
@@ -20608,7 +21194,9 @@ var use_tree_init_this = undefined;
|
|
|
20608
21194
|
return treeDataRef.value;
|
|
20609
21195
|
},
|
|
20610
21196
|
onTreeDataChange: onTreeDataChange,
|
|
20611
|
-
registerNextLoop: registerNextLoop
|
|
21197
|
+
registerNextLoop: registerNextLoop,
|
|
21198
|
+
syncNodeOpenState: syncNodeOpenState,
|
|
21199
|
+
scheduleUiRefresh: scheduleUiRefresh
|
|
20612
21200
|
}),
|
|
20613
21201
|
renderTreeNode = _useNodeAction.renderTreeNode,
|
|
20614
21202
|
handleTreeNodeClick = _useNodeAction.handleTreeNodeClick,
|
|
@@ -20617,10 +21205,38 @@ var use_tree_init_this = undefined;
|
|
|
20617
21205
|
setSelect = _useNodeAction.setSelect,
|
|
20618
21206
|
asyncNodeClick = _useNodeAction.asyncNodeClick,
|
|
20619
21207
|
setNodeAttribute = _useNodeAction.setNodeAttribute,
|
|
20620
|
-
|
|
20621
|
-
|
|
20622
|
-
|
|
21208
|
+
applyCheckedChange = _useNodeAction.applyCheckedChange,
|
|
21209
|
+
emitCheckedChange = _useNodeAction.emitCheckedChange,
|
|
21210
|
+
rebuildCheckedSetsFromList = _useNodeAction.rebuildCheckedSetsFromList,
|
|
21211
|
+
clearAllCheckedState = _useNodeAction.clearAllCheckedState;
|
|
21212
|
+
// 数据重建完成后同步勾选索引与可见列表(保证读到最新 schema)
|
|
21213
|
+
var syncAfterRebuild = function syncAfterRebuild() {
|
|
21214
|
+
rebuildCheckedSetsFromList(flatData.checkedList || []);
|
|
21215
|
+
rebuildVisibleNodes(isSearchActive.value ? filterFn : undefined);
|
|
21216
|
+
};
|
|
21217
|
+
onAfterRebuild(syncAfterRebuild);
|
|
21218
|
+
__WEBPACK_EXTERNAL_MODULE_vue_watch__(function () {
|
|
21219
|
+
return flatData.data;
|
|
21220
|
+
}, syncAfterRebuild);
|
|
20623
21221
|
var handleSearch = __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_shared_edbdfb03_debounce__(120, function () {
|
|
21222
|
+
// 非搜索态:禁止扫全表写 IS_MATCH(百万节点首屏会卡死)
|
|
21223
|
+
if (!isSearchActive.value) {
|
|
21224
|
+
if (searchOriginalOpenState.size) {
|
|
21225
|
+
restoreSearchOpenState();
|
|
21226
|
+
}
|
|
21227
|
+
if (matchedNodeIds.size) {
|
|
21228
|
+
matchedNodeIds.forEach(function (nodeId) {
|
|
21229
|
+
var node = getNodeById(nodeId);
|
|
21230
|
+
if (node) {
|
|
21231
|
+
setNodeAttribute(node, NODE_ATTRIBUTES.IS_MATCH, false, false);
|
|
21232
|
+
}
|
|
21233
|
+
});
|
|
21234
|
+
matchedNodeIds.clear();
|
|
21235
|
+
}
|
|
21236
|
+
visibleNodeIds.clear();
|
|
21237
|
+
rebuildVisibleNodes();
|
|
21238
|
+
return;
|
|
21239
|
+
}
|
|
20624
21240
|
restoreSearchOpenState();
|
|
20625
21241
|
matchedNodeIds.clear();
|
|
20626
21242
|
visibleNodeIds.clear();
|
|
@@ -20633,9 +21249,6 @@ var use_tree_init_this = undefined;
|
|
|
20633
21249
|
}
|
|
20634
21250
|
setNodeAttribute(item, [NODE_ATTRIBUTES.IS_MATCH, NODE_ATTRIBUTES.IS_OPEN], [isMatch, isNodeOpened(item)], false);
|
|
20635
21251
|
});
|
|
20636
|
-
if (!isSearchActive.value) {
|
|
20637
|
-
return;
|
|
20638
|
-
}
|
|
20639
21252
|
flatData.data.forEach(function (item) {
|
|
20640
21253
|
if (!matchedNodeIds.has(getRenderNodeId(item))) {
|
|
20641
21254
|
return;
|
|
@@ -20648,13 +21261,11 @@ var use_tree_init_this = undefined;
|
|
|
20648
21261
|
_addDescendantNodes(item);
|
|
20649
21262
|
}
|
|
20650
21263
|
});
|
|
21264
|
+
rebuildVisibleNodes(filterFn);
|
|
20651
21265
|
});
|
|
20652
|
-
__WEBPACK_EXTERNAL_MODULE_vue_watch__([refSearch, function () {
|
|
20653
|
-
return flatData.data;
|
|
20654
|
-
}, resultType, showChildNodes], function () {
|
|
21266
|
+
__WEBPACK_EXTERNAL_MODULE_vue_watch__([refSearch, resultType, showChildNodes, isSearchActive], function () {
|
|
20655
21267
|
handleSearch();
|
|
20656
21268
|
}, {
|
|
20657
|
-
deep: true,
|
|
20658
21269
|
immediate: true
|
|
20659
21270
|
});
|
|
20660
21271
|
__WEBPACK_EXTERNAL_MODULE_vue_onMounted__(function () {
|
|
@@ -20692,22 +21303,17 @@ var use_tree_init_this = undefined;
|
|
|
20692
21303
|
var nodes = resolveToNodes(item);
|
|
20693
21304
|
nodes.forEach(function (node) {
|
|
20694
21305
|
var resolvedNode = resolveNodeItem(node);
|
|
20695
|
-
|
|
20696
|
-
|
|
20697
|
-
setNodeAction(resolvedNode, NODE_ATTRIBUTES.IS_INDETERMINATE, false);
|
|
20698
|
-
}
|
|
20699
|
-
// 如果设置了 checkStrictly,需要同步更新子节点和父节点的状态
|
|
20700
|
-
if (props.checkStrictly) {
|
|
20701
|
-
deepUpdateChildNode(resolvedNode, [NODE_ATTRIBUTES.IS_CHECKED, NODE_ATTRIBUTES.IS_INDETERMINATE], [checked, false]);
|
|
20702
|
-
updateParentChecked(resolvedNode, checked);
|
|
21306
|
+
if (resolvedNode[NODE_ATTRIBUTES.IS_NULL]) {
|
|
21307
|
+
return;
|
|
20703
21308
|
}
|
|
21309
|
+
applyCheckedChange(resolvedNode, checked, {
|
|
21310
|
+
emitEvent: false,
|
|
21311
|
+
refresh: false
|
|
21312
|
+
});
|
|
20704
21313
|
});
|
|
21314
|
+
scheduleUiRefresh();
|
|
20705
21315
|
if (triggerEvent) {
|
|
20706
|
-
|
|
20707
|
-
return isNodeChecked(t);
|
|
20708
|
-
}), flatData.data.filter(function (t) {
|
|
20709
|
-
return isIndeterminate(t);
|
|
20710
|
-
}));
|
|
21316
|
+
emitCheckedChange();
|
|
20711
21317
|
}
|
|
20712
21318
|
};
|
|
20713
21319
|
onSelected(function (newData) {
|
|
@@ -20756,14 +21362,7 @@ var use_tree_init_this = undefined;
|
|
|
20756
21362
|
__WEBPACK_EXTERNAL_MODULE_vue_watch__(function () {
|
|
20757
21363
|
return [props.checked];
|
|
20758
21364
|
}, function () {
|
|
20759
|
-
|
|
20760
|
-
flatData.data.forEach(function (node) {
|
|
20761
|
-
if (isNodeChecked(node) || isIndeterminate(node)) {
|
|
20762
|
-
setNodeAction(node, NODE_ATTRIBUTES.IS_CHECKED, false);
|
|
20763
|
-
setNodeAction(node, NODE_ATTRIBUTES.IS_INDETERMINATE, false);
|
|
20764
|
-
}
|
|
20765
|
-
});
|
|
20766
|
-
// 再设置新的选中节点
|
|
21365
|
+
clearAllCheckedState();
|
|
20767
21366
|
setChecked(props.checked, true);
|
|
20768
21367
|
}, {
|
|
20769
21368
|
immediate: true
|
|
@@ -20888,6 +21487,8 @@ var use_tree_init_this = undefined;
|
|
|
20888
21487
|
var _usePrefix = __WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_config_provider_fe8577a3_usePrefix__(),
|
|
20889
21488
|
resolveClassName = _usePrefix.resolveClassName;
|
|
20890
21489
|
return function () {
|
|
21490
|
+
// 依赖 uiVersion,确保 checkbox/selected 等 schema 变更能触发重渲染
|
|
21491
|
+
void uiVersion.value;
|
|
20891
21492
|
return __WEBPACK_EXTERNAL_MODULE_vue_createVNode__(__WEBPACK_EXTERNAL_MODULE_bkui_vue_lib_virtual_render_927587a8_default__, {
|
|
20892
21493
|
"ref": root,
|
|
20893
21494
|
"style": getTreeStyle(null, props),
|
|
@@ -20898,7 +21499,7 @@ var use_tree_init_this = undefined;
|
|
|
20898
21499
|
"keepAlive": true,
|
|
20899
21500
|
"lineHeight": props.lineHeight,
|
|
20900
21501
|
"list": renderData.value,
|
|
20901
|
-
"rowKey": NODE_ATTRIBUTES.UUID,
|
|
21502
|
+
"rowKey": props.nodeKey || NODE_ATTRIBUTES.UUID,
|
|
20902
21503
|
"throttleDelay": 0,
|
|
20903
21504
|
"onContentScroll": handleContentScroll
|
|
20904
21505
|
}, {
|