bkui-vue 2.0.2-beta.84 → 2.0.2-beta.85

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/lib/index.js CHANGED
@@ -3,5 +3,5 @@ export * from './hooks';
3
3
  export { default } from './preset';
4
4
  export * from './config-provider';
5
5
  export * from './directives';
6
- export const version = "2.0.2-beta.84";
6
+ export const version = "2.0.2-beta.85";
7
7
  window.__bkui_vue_version__ = version;
package/lib/tree/index.js CHANGED
@@ -19190,7 +19190,9 @@ var use_node_action_this = undefined;
19190
19190
  setSelect: setSelect,
19191
19191
  setOpen: setOpen,
19192
19192
  setNodeAttribute: setNodeAttribute,
19193
- isIndeterminate: isIndeterminate
19193
+ isIndeterminate: isIndeterminate,
19194
+ deepUpdateChildNode: deepUpdateChildNode,
19195
+ updateParentChecked: updateParentChecked
19194
19196
  };
19195
19197
  });
19196
19198
  ;// CONCATENATED MODULE: external "lodash/throttle"
@@ -20226,7 +20228,9 @@ var use_tree_init_this = undefined;
20226
20228
  setSelect = _useNodeAction.setSelect,
20227
20229
  asyncNodeClick = _useNodeAction.asyncNodeClick,
20228
20230
  setNodeAttribute = _useNodeAction.setNodeAttribute,
20229
- isIndeterminate = _useNodeAction.isIndeterminate;
20231
+ isIndeterminate = _useNodeAction.isIndeterminate,
20232
+ deepUpdateChildNode = _useNodeAction.deepUpdateChildNode,
20233
+ updateParentChecked = _useNodeAction.updateParentChecked;
20230
20234
  var handleSearch = (0,shared_namespaceObject.debounce)(120, function () {
20231
20235
  matchedNodePath.length = 0;
20232
20236
  flatData.data.forEach(function (item) {
@@ -20254,14 +20258,42 @@ var use_tree_init_this = undefined;
20254
20258
  });
20255
20259
  /**
20256
20260
  * 设置指定节点是否选中
20257
- * @param item Node item | Node Id
20261
+ * @param item Node item | Node Id | Array of Node items or Node Ids
20258
20262
  * @param checked
20259
20263
  * @param triggerEvent 是否触发抛出事件
20260
20264
  */
20261
20265
  var setChecked = function setChecked(item) {
20262
20266
  var checked = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
20263
20267
  var triggerEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
20264
- setNodeAction(resolveNodeItem(item), NODE_ATTRIBUTES.IS_CHECKED, checked);
20268
+ // 将 item 转换为 TreeNode 数组
20269
+ var resolveToNodes = function resolveToNodes(input) {
20270
+ if (Array.isArray(input)) {
20271
+ return input.map(function (i) {
20272
+ if (typeof i === 'string' || typeof i === 'number') {
20273
+ return getNodeById(i);
20274
+ }
20275
+ return i;
20276
+ }).filter(Boolean);
20277
+ }
20278
+ if (typeof input === 'string' || typeof input === 'number') {
20279
+ var node = getNodeById(input);
20280
+ return node ? [node] : [];
20281
+ }
20282
+ return [input].filter(Boolean);
20283
+ };
20284
+ var nodes = resolveToNodes(item);
20285
+ nodes.forEach(function (node) {
20286
+ var resolvedNode = resolveNodeItem(node);
20287
+ setNodeAction(resolvedNode, NODE_ATTRIBUTES.IS_CHECKED, checked);
20288
+ if (checked) {
20289
+ setNodeAction(resolvedNode, NODE_ATTRIBUTES.IS_INDETERMINATE, false);
20290
+ }
20291
+ // 如果设置了 checkStrictly,需要同步更新子节点和父节点的状态
20292
+ if (props.checkStrictly) {
20293
+ deepUpdateChildNode(resolvedNode, [NODE_ATTRIBUTES.IS_CHECKED, NODE_ATTRIBUTES.IS_INDETERMINATE], [checked, false]);
20294
+ updateParentChecked(resolvedNode, checked);
20295
+ }
20296
+ });
20265
20297
  if (triggerEvent) {
20266
20298
  ctx.emit(EVENTS.NODE_CHECKED, flatData.data.filter(function (t) {
20267
20299
  return isNodeChecked(t);
@@ -20311,7 +20343,17 @@ var use_tree_init_this = undefined;
20311
20343
  (0,external_vue_namespaceObject.watch)(function () {
20312
20344
  return [props.checked];
20313
20345
  }, function () {
20346
+ // 先清除所有节点的选中和半选状态
20347
+ flatData.data.forEach(function (node) {
20348
+ if (isNodeChecked(node) || isIndeterminate(node)) {
20349
+ setNodeAction(node, NODE_ATTRIBUTES.IS_CHECKED, false);
20350
+ setNodeAction(node, NODE_ATTRIBUTES.IS_INDETERMINATE, false);
20351
+ }
20352
+ });
20353
+ // 再设置新的选中节点
20314
20354
  setChecked(props.checked, true);
20355
+ }, {
20356
+ immediate: true
20315
20357
  });
20316
20358
  var reset = function reset() {
20317
20359
  var _root$value;
@@ -11,5 +11,7 @@ declare const _default: (props: TreePropTypes, ctx: any, flatData: IFlatData, _r
11
11
  setOpen: (item: TreeNode, isOpen?: boolean, autoOpenParents?: boolean) => void;
12
12
  setNodeAttribute: (node: TreeNode, attrName: string | string[], value: (boolean | number | string)[] | boolean | number | string, loopParent?: boolean) => void;
13
13
  isIndeterminate: (item: TreeNode) => any;
14
+ deepUpdateChildNode: (node: TreeNode, attr: string | string[], value: unknown | unknown[]) => void;
15
+ updateParentChecked: (item: TreeNode, isChecked: any) => void;
14
16
  };
15
17
  export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bkui-vue",
3
- "version": "2.0.2-beta.84",
3
+ "version": "2.0.2-beta.85",
4
4
  "workspaces": [
5
5
  "packages/**",
6
6
  "scripts/cli",