bkui-vue 2.0.2-beta.7 → 2.0.2-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +15 -15
- package/dist/index.esm.js +4305 -4291
- package/dist/index.umd.js +23 -23
- package/dist/style.css +1 -1
- package/dist/style.variable.css +1 -1
- package/lib/index.js +1 -1
- package/lib/tree/index.d.ts +4 -0
- package/lib/tree/index.js +47 -23
- package/lib/tree/props.d.ts +1 -0
- package/lib/tree/tree.css +18 -0
- package/lib/tree/tree.d.ts +2 -0
- package/lib/tree/tree.less +24 -0
- package/lib/tree/tree.variable.css +18 -0
- package/lib/tree/use-node-action.d.ts +1 -1
- package/package.json +1 -1
package/lib/index.js
CHANGED
package/lib/tree/index.d.ts
CHANGED
@@ -44,6 +44,7 @@ declare const BkTree: {
|
|
44
44
|
}>>;
|
45
45
|
cache: boolean;
|
46
46
|
deepAutoOpen?: string;
|
47
|
+
trigger?: string[];
|
47
48
|
}>;
|
48
49
|
offsetLeft: import("vue-types").VueTypeValidableDef<number> & {
|
49
50
|
default: number;
|
@@ -192,6 +193,7 @@ declare const BkTree: {
|
|
192
193
|
}>>;
|
193
194
|
cache: boolean;
|
194
195
|
deepAutoOpen?: string;
|
196
|
+
trigger?: string[];
|
195
197
|
}>;
|
196
198
|
offsetLeft: import("vue-types").VueTypeValidableDef<number> & {
|
197
199
|
default: number;
|
@@ -365,6 +367,7 @@ declare const BkTree: {
|
|
365
367
|
}>>;
|
366
368
|
cache: boolean;
|
367
369
|
deepAutoOpen?: string;
|
370
|
+
trigger?: string[];
|
368
371
|
}>;
|
369
372
|
offsetLeft: import("vue-types").VueTypeValidableDef<number> & {
|
370
373
|
default: number;
|
@@ -535,6 +538,7 @@ declare const BkTree: {
|
|
535
538
|
}>>;
|
536
539
|
cache: boolean;
|
537
540
|
deepAutoOpen?: string;
|
541
|
+
trigger?: string[];
|
538
542
|
}>;
|
539
543
|
offsetLeft: import("vue-types").VueTypeValidableDef<number> & {
|
540
544
|
default: number;
|
package/lib/tree/index.js
CHANGED
@@ -338,7 +338,12 @@ var treeProps = {
|
|
338
338
|
* 可选值:once 只在初始化是执行一次
|
339
339
|
* every 每次数据更新都执行
|
340
340
|
*/
|
341
|
-
deepAutoOpen: (0,external_vue_types_namespaceObject.toType)('columnType', {}).def(ColumnTypeEnum.ONCE)
|
341
|
+
deepAutoOpen: (0,external_vue_types_namespaceObject.toType)('columnType', {}).def(ColumnTypeEnum.ONCE),
|
342
|
+
/**
|
343
|
+
* 触发异步加载的时机
|
344
|
+
* 可选值:'expand', 'click', 'checked'
|
345
|
+
*/
|
346
|
+
trigger: shared_namespaceObject.PropTypes.arrayOf(shared_namespaceObject.PropTypes.oneOf(['expand', 'click', 'checked'])).def(null)
|
342
347
|
}),
|
343
348
|
/**
|
344
349
|
* 每个节点偏移左侧距离
|
@@ -1460,6 +1465,14 @@ var use_node_action_this = undefined;
|
|
1460
1465
|
deepUpdateChildNode(chid, attr, value);
|
1461
1466
|
});
|
1462
1467
|
};
|
1468
|
+
var isRemoteFnExec = function isRemoteFnExec(event) {
|
1469
|
+
var _props$async;
|
1470
|
+
if ((_props$async = props.async) !== null && _props$async !== void 0 && (_props$async = _props$async.trigger) !== null && _props$async !== void 0 && _props$async.length) {
|
1471
|
+
var _props$async2;
|
1472
|
+
return (_props$async2 = props.async) === null || _props$async2 === void 0 ? void 0 : _props$async2.trigger.includes(event);
|
1473
|
+
}
|
1474
|
+
return true;
|
1475
|
+
};
|
1463
1476
|
var handleNodeItemCheckboxChange = function handleNodeItemCheckboxChange(item, value, event) {
|
1464
1477
|
event === null || event === void 0 || event.preventDefault();
|
1465
1478
|
event === null || event === void 0 || event.stopImmediatePropagation();
|
@@ -1477,7 +1490,7 @@ var use_node_action_this = undefined;
|
|
1477
1490
|
}), flatData.data.filter(function (t) {
|
1478
1491
|
return isIndeterminate(t);
|
1479
1492
|
}));
|
1480
|
-
handleNodeContentClick(item, event);
|
1493
|
+
handleNodeContentClick(item, event, 'checked');
|
1481
1494
|
};
|
1482
1495
|
var isIndeterminate = function isIndeterminate(item) {
|
1483
1496
|
return isNodeChecked(item) && getNodeAttr(item, NODE_ATTRIBUTES.IS_INDETERMINATE);
|
@@ -1487,6 +1500,7 @@ var use_node_action_this = undefined;
|
|
1487
1500
|
return null;
|
1488
1501
|
}
|
1489
1502
|
return (0,external_vue_namespaceObject.createVNode)("span", {
|
1503
|
+
"class": "node-check-box",
|
1490
1504
|
"onClick": handleNodeCheckboxClick
|
1491
1505
|
}, [(0,external_vue_namespaceObject.createVNode)(checkbox_namespaceObject["default"], {
|
1492
1506
|
"indeterminate": isIndeterminate(item),
|
@@ -1586,25 +1600,27 @@ var use_node_action_this = undefined;
|
|
1586
1600
|
* 节点点击
|
1587
1601
|
* @param item
|
1588
1602
|
*/
|
1589
|
-
var handleTreeNodeClick = function handleTreeNodeClick(item, e) {
|
1603
|
+
var handleTreeNodeClick = function handleTreeNodeClick(item, e, event) {
|
1590
1604
|
var isOpen = isItemOpen(item);
|
1591
1605
|
if (isOpen) {
|
1592
1606
|
setNodeOpened(item, false, e, true);
|
1593
1607
|
return;
|
1594
1608
|
}
|
1595
|
-
|
1596
|
-
|
1597
|
-
|
1598
|
-
|
1599
|
-
|
1600
|
-
|
1601
|
-
|
1602
|
-
|
1603
|
-
|
1604
|
-
|
1605
|
-
|
1606
|
-
|
1607
|
-
|
1609
|
+
if (isRemoteFnExec(event)) {
|
1610
|
+
/** 如果是异步请求加载 */
|
1611
|
+
asyncNodeClick(item)["finally"](function () {
|
1612
|
+
if (getNodeAttr(item, NODE_ATTRIBUTES.IS_LOADING)) {
|
1613
|
+
registerNextLoop('setNodeOpenedAfterLoading', {
|
1614
|
+
type: 'once',
|
1615
|
+
fn: function fn() {
|
1616
|
+
return setNodeOpened(item, true, e, true);
|
1617
|
+
}
|
1618
|
+
});
|
1619
|
+
} else {
|
1620
|
+
setNodeOpened(item, true, e, true);
|
1621
|
+
}
|
1622
|
+
});
|
1623
|
+
}
|
1608
1624
|
};
|
1609
1625
|
/**
|
1610
1626
|
* 点击树形节点展开、收起图标处理事件
|
@@ -1615,7 +1631,7 @@ var use_node_action_this = undefined;
|
|
1615
1631
|
e.stopImmediatePropagation();
|
1616
1632
|
e.stopPropagation();
|
1617
1633
|
e.preventDefault();
|
1618
|
-
handleTreeNodeClick(node, e);
|
1634
|
+
handleTreeNodeClick(node, e, 'expand');
|
1619
1635
|
};
|
1620
1636
|
/**
|
1621
1637
|
* 设置节点选中状态
|
@@ -1699,19 +1715,19 @@ var use_node_action_this = undefined;
|
|
1699
1715
|
* 点击节点事件
|
1700
1716
|
* @param item
|
1701
1717
|
*/
|
1702
|
-
var handleNodeContentClick = function handleNodeContentClick(item, e) {
|
1718
|
+
var handleNodeContentClick = function handleNodeContentClick(item, e, event) {
|
1703
1719
|
var nodeActions = resolveNodeAction(item);
|
1704
1720
|
if (nodeActions.includes('selected')) {
|
1705
1721
|
setSelect(item, true, true, true);
|
1706
1722
|
}
|
1707
1723
|
if (nodeActions.includes('expand')) {
|
1708
1724
|
if (!isNodeOpened(item)) {
|
1709
|
-
handleTreeNodeClick(item, e);
|
1725
|
+
handleTreeNodeClick(item, e, event);
|
1710
1726
|
}
|
1711
1727
|
}
|
1712
1728
|
if (nodeActions.includes('collapse')) {
|
1713
1729
|
if (isNodeOpened(item)) {
|
1714
|
-
handleTreeNodeClick(item, e);
|
1730
|
+
handleTreeNodeClick(item, e, event);
|
1715
1731
|
}
|
1716
1732
|
}
|
1717
1733
|
if (nodeActions.includes('click')) {
|
@@ -1805,6 +1821,7 @@ var use_node_action_this = undefined;
|
|
1805
1821
|
var renderTreeNode = function renderTreeNode(item) {
|
1806
1822
|
var _ctx$slots$nodeAppend, _ctx$slots4;
|
1807
1823
|
var showTree = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
1824
|
+
var child = getActionIcon(item);
|
1808
1825
|
return (0,external_vue_namespaceObject.createVNode)("div", {
|
1809
1826
|
"key": getNodeId(item),
|
1810
1827
|
"class": getNodeRowClass(item, flatData.schema),
|
@@ -1813,14 +1830,14 @@ var use_node_action_this = undefined;
|
|
1813
1830
|
"style": getNodeItemStyle(item, props, flatData, showTree),
|
1814
1831
|
"class": getNodeItemClass(item, flatData.schema, props, showTree),
|
1815
1832
|
"onClick": function onClick(e) {
|
1816
|
-
return handleNodeContentClick(item, e);
|
1833
|
+
return handleNodeContentClick(item, e, 'click');
|
1817
1834
|
}
|
1818
1835
|
}, [(0,external_vue_namespaceObject.createVNode)("div", {
|
1819
|
-
"class": [resolveClassName('node-action')],
|
1836
|
+
"class": [resolveClassName('node-action'), child ? '' : 'empty-child'],
|
1820
1837
|
"onClick": function onClick(e) {
|
1821
1838
|
return handleNodeActionClick(e, item);
|
1822
1839
|
}
|
1823
|
-
}, [
|
1840
|
+
}, [child]), (0,external_vue_namespaceObject.createVNode)("div", {
|
1824
1841
|
"class": resolveClassName('node-content')
|
1825
1842
|
}, [[getCheckboxRender(item), getNodePrefixIcon(item)], (0,external_vue_namespaceObject.createVNode)("span", {
|
1826
1843
|
"class": resolveClassName('node-text')
|
@@ -2650,6 +2667,7 @@ var use_tree_init_this = undefined;
|
|
2650
2667
|
getNodePath = _useNodeAttribute.getNodePath,
|
2651
2668
|
getNodeId = _useNodeAttribute.getNodeId,
|
2652
2669
|
getNodeAttr = _useNodeAttribute.getNodeAttr,
|
2670
|
+
getNodeById = _useNodeAttribute.getNodeById,
|
2653
2671
|
getParentNode = _useNodeAttribute.getParentNode,
|
2654
2672
|
getIntersectionResponse = _useNodeAttribute.getIntersectionResponse;
|
2655
2673
|
var _useSearch = use_search(props),
|
@@ -2795,6 +2813,11 @@ var use_tree_init_this = undefined;
|
|
2795
2813
|
return;
|
2796
2814
|
}
|
2797
2815
|
};
|
2816
|
+
var setCheckedById = function setCheckedById(id) {
|
2817
|
+
var checked = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
2818
|
+
var triggerEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
2819
|
+
setChecked(getNodeById(id), checked, triggerEvent);
|
2820
|
+
};
|
2798
2821
|
ctx.expose({
|
2799
2822
|
handleTreeNodeClick: handleTreeNodeClick,
|
2800
2823
|
isNodeChecked: isNodeChecked,
|
@@ -2804,6 +2827,7 @@ var use_tree_init_this = undefined;
|
|
2804
2827
|
hasChildNode: hasChildNode,
|
2805
2828
|
setOpen: setOpen,
|
2806
2829
|
setChecked: setChecked,
|
2830
|
+
setCheckedById: setCheckedById,
|
2807
2831
|
setNodeAction: setNodeAction,
|
2808
2832
|
setNodeOpened: setOpen,
|
2809
2833
|
setSelect: setSelect,
|
package/lib/tree/props.d.ts
CHANGED
package/lib/tree/tree.css
CHANGED
@@ -276,6 +276,20 @@
|
|
276
276
|
.bk-tree-node:not(.is-root) {
|
277
277
|
margin-left: calc(var(--depth)*var(--indent));
|
278
278
|
}
|
279
|
+
.bk-tree-node:not(.is-root).level-line .bk-node-action.empty-child {
|
280
|
+
position: relative;
|
281
|
+
}
|
282
|
+
.bk-tree-node:not(.is-root).level-line .bk-node-action.empty-child::before {
|
283
|
+
position: absolute;
|
284
|
+
top: calc(50% + 1px);
|
285
|
+
left: 0;
|
286
|
+
right: 0;
|
287
|
+
z-index: 1;
|
288
|
+
height: 0;
|
289
|
+
pointer-events: none;
|
290
|
+
border-bottom: var(--level-line);
|
291
|
+
content: '';
|
292
|
+
}
|
279
293
|
.bk-tree-node:not(.is-root).level-line::before {
|
280
294
|
position: absolute;
|
281
295
|
top: calc(50% + 1px);
|
@@ -309,6 +323,7 @@
|
|
309
323
|
.bk-tree-node .bk-node-action {
|
310
324
|
margin-right: 6px;
|
311
325
|
color: #979ba5;
|
326
|
+
min-width: 14px;
|
312
327
|
}
|
313
328
|
.bk-tree-node .bk-tree-icon {
|
314
329
|
margin: 0 6px 0 4px;
|
@@ -319,6 +334,9 @@
|
|
319
334
|
align-items: center;
|
320
335
|
min-width: 0;
|
321
336
|
}
|
337
|
+
.bk-tree-node .bk-node-content .node-check-box {
|
338
|
+
display: inline-flex;
|
339
|
+
}
|
322
340
|
.bk-tree-node .bk-node-content .bk-checkbox {
|
323
341
|
margin: 0;
|
324
342
|
}
|
package/lib/tree/tree.d.ts
CHANGED
@@ -49,6 +49,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
49
49
|
}>>;
|
50
50
|
cache: boolean;
|
51
51
|
deepAutoOpen?: string;
|
52
|
+
trigger?: string[];
|
52
53
|
}>;
|
53
54
|
offsetLeft: import("vue-types").VueTypeValidableDef<number> & {
|
54
55
|
default: number;
|
@@ -186,6 +187,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
186
187
|
}>>;
|
187
188
|
cache: boolean;
|
188
189
|
deepAutoOpen?: string;
|
190
|
+
trigger?: string[];
|
189
191
|
}>;
|
190
192
|
offsetLeft: import("vue-types").VueTypeValidableDef<number> & {
|
191
193
|
default: number;
|
package/lib/tree/tree.less
CHANGED
@@ -27,6 +27,25 @@
|
|
27
27
|
margin-left: calc(var(--depth)*var(--indent));
|
28
28
|
|
29
29
|
&.level-line {
|
30
|
+
|
31
|
+
.@{bk-prefix}-node-action {
|
32
|
+
&.empty-child {
|
33
|
+
position: relative;
|
34
|
+
|
35
|
+
&::before {
|
36
|
+
position: absolute;
|
37
|
+
top: calc(50% + 1px);
|
38
|
+
left: 0;
|
39
|
+
right: 0;
|
40
|
+
z-index: 1;
|
41
|
+
height: 0;
|
42
|
+
pointer-events: none;
|
43
|
+
border-bottom: var(--level-line);
|
44
|
+
content: '';
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
30
49
|
&::before {
|
31
50
|
position: absolute;
|
32
51
|
top: calc(50% + 1px);
|
@@ -68,6 +87,7 @@
|
|
68
87
|
.@{bk-prefix}-node-action {
|
69
88
|
margin-right: 6px;
|
70
89
|
color: #979ba5;
|
90
|
+
min-width: 14px;
|
71
91
|
}
|
72
92
|
|
73
93
|
.@{bk-prefix}-tree-icon {
|
@@ -80,6 +100,10 @@
|
|
80
100
|
align-items: center;
|
81
101
|
min-width: 0;
|
82
102
|
|
103
|
+
.node-check-box {
|
104
|
+
display: inline-flex;
|
105
|
+
}
|
106
|
+
|
83
107
|
.@{bk-prefix}-checkbox {
|
84
108
|
margin: 0;
|
85
109
|
|
@@ -406,6 +406,20 @@
|
|
406
406
|
.bk-tree-node:not(.is-root) {
|
407
407
|
margin-left: calc(var(--depth)*var(--indent));
|
408
408
|
}
|
409
|
+
.bk-tree-node:not(.is-root).level-line .bk-node-action.empty-child {
|
410
|
+
position: relative;
|
411
|
+
}
|
412
|
+
.bk-tree-node:not(.is-root).level-line .bk-node-action.empty-child::before {
|
413
|
+
position: absolute;
|
414
|
+
top: calc(50% + 1px);
|
415
|
+
left: 0;
|
416
|
+
right: 0;
|
417
|
+
z-index: 1;
|
418
|
+
height: 0;
|
419
|
+
pointer-events: none;
|
420
|
+
border-bottom: var(--level-line);
|
421
|
+
content: '';
|
422
|
+
}
|
409
423
|
.bk-tree-node:not(.is-root).level-line::before {
|
410
424
|
position: absolute;
|
411
425
|
top: calc(50% + 1px);
|
@@ -439,6 +453,7 @@
|
|
439
453
|
.bk-tree-node .bk-node-action {
|
440
454
|
margin-right: 6px;
|
441
455
|
color: #979ba5;
|
456
|
+
min-width: 14px;
|
442
457
|
}
|
443
458
|
.bk-tree-node .bk-tree-icon {
|
444
459
|
margin: 0 6px 0 4px;
|
@@ -449,6 +464,9 @@
|
|
449
464
|
align-items: center;
|
450
465
|
min-width: 0;
|
451
466
|
}
|
467
|
+
.bk-tree-node .bk-node-content .node-check-box {
|
468
|
+
display: inline-flex;
|
469
|
+
}
|
452
470
|
.bk-tree-node .bk-node-content .bk-checkbox {
|
453
471
|
margin: 0;
|
454
472
|
}
|
@@ -2,7 +2,7 @@ import { TreeNode, TreePropTypes } from './props';
|
|
2
2
|
import { IFlatData } from './util';
|
3
3
|
declare const _default: (props: TreePropTypes, ctx: any, flatData: IFlatData, _renderData: any, initOption: any) => {
|
4
4
|
renderTreeNode: (item: TreeNode, showTree?: boolean) => JSX.Element;
|
5
|
-
handleTreeNodeClick: (item: TreeNode, e: MouseEvent) => void;
|
5
|
+
handleTreeNodeClick: (item: TreeNode, e: MouseEvent, event?: string) => void;
|
6
6
|
deepAutoOpen: () => void;
|
7
7
|
asyncNodeClick: (item: TreeNode) => Promise<boolean> | Promise<void | Record<string, unknown>>;
|
8
8
|
setNodeAction: (args: TreeNode | TreeNode[], action: string, value: unknown) => void;
|