@para-ui/core 4.0.0-rc.4 → 4.0.0-rc.5
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/AutoBox/index.js +72 -85
- package/AutoTips/index.js +72 -95
- package/Badge/index.js +17 -16
- package/Breadcrumbs/index.js +57 -73
- package/Button/index.js +89 -117
- package/ButtonGroup/index.js +30 -33
- package/Carousel/index.js +29 -33
- package/Cascader/index.js +7 -9
- package/Checkbox/index.js +28 -35
- package/CheckboxGroup/index.js +43 -58
- package/Collapse/index.js +52 -49
- package/CollapseBox/index.js +65 -70
- package/CollapseLayout/index.js +106 -101
- package/ColorPicker/index.js +3 -3
- package/ComboSelect/index.js +242 -330
- package/Container/index.js +17 -21
- package/CopyText/index.js +50 -83
- package/DatePicker/index.js +22 -27
- package/Descriptions/index.js +50 -59
- package/Desktop/index.js +161 -180
- package/DragVerify/index.js +77 -113
- package/Drawer/index.js +80 -95
- package/Dropdown/index.js +3 -3
- package/DynamicMultiBox/index.js +219 -224
- package/DynamicMultiBox/interface.d.ts +7 -0
- package/Empty/index.js +26 -28
- package/Form/index.js +66 -74
- package/FormItem/index.js +14 -15
- package/FunctionModal/index.js +7 -14
- package/GlobalContext/index.js +17 -20
- package/Help/index.js +9 -12
- package/HelperText/index.js +11 -11
- package/InputLang/index.js +104 -124
- package/InputNumber/index.js +62 -81
- package/Label/index.js +19 -21
- package/Loading/index.js +11 -10
- package/Menu/index.js +302 -371
- package/Message/index.js +104 -113
- package/Modal/index.js +122 -148
- package/MultiBox/index.d.ts +5 -0
- package/MultiBox/index.js +111 -115
- package/Notification/index.js +105 -103
- package/OperateBtn/index.d.ts +3 -0
- package/OperateBtn/index.js +77 -107
- package/PageHeader/index.js +327 -406
- package/Pagination/index.js +107 -137
- package/ParauiProvider/index.js +20 -22
- package/PasswordRules/index.js +36 -40
- package/PopConfirm/index.js +60 -77
- package/Popover/index.js +12 -12
- package/Progress/index.js +72 -74
- package/Querying/index.js +22 -23
- package/README.md +2 -0
- package/Radio/index.js +27 -34
- package/RadioGroup/index.js +38 -52
- package/Search/index.js +34 -43
- package/Select/index.js +281 -345
- package/SelectInput/index.js +8 -13
- package/Selector/index.js +905 -796
- package/SelectorPicker/index.js +111 -133
- package/SingleBox/index.d.ts +5 -0
- package/SingleBox/index.js +92 -88
- package/Slider/index.js +46 -57
- package/Status/index.js +14 -13
- package/Stepper/index.js +25 -26
- package/Styles/theme.scss +9 -9
- package/Switch/index.js +32 -35
- package/Table/index.js +767 -963
- package/Tabs/index.js +102 -102
- package/Tag/index.js +115 -162
- package/TextEditor/index.js +81 -103
- package/TextField/index.js +142 -183
- package/TimePicker/index.js +27 -28
- package/Timeline/index.js +67 -58
- package/Title/index.js +32 -34
- package/ToggleButton/index.js +53 -52
- package/Tooltip/index.js +79 -82
- package/Transfer/index.js +159 -201
- package/Tree/index.js +7 -12
- package/Upload/index.js +523 -758
- package/Upload/interface.d.ts +2 -0
- package/_verture/{constant-0d9802f7.js → constant-5317fc89.js} +2 -2
- package/_verture/{index-5a7e2438.js → index-0ced30f7.js} +1127 -1079
- package/_verture/{index-024bbc9b.js → index-775ad32d.js} +29 -25
- package/_verture/{index-05f7bf11.js → index-c568f272.js} +2 -2
- package/_verture/index-da9097d3.js +239 -0
- package/_verture/{index-9331b116.js → index-ef1235fb.js} +125 -134
- package/_verture/{index-b1f80962.js → index-f186b5e8.js} +314 -398
- package/_verture/intl-f2f27722.js +69 -0
- package/_verture/{modalContext-736ff215.js → modalContext-5df08980.js} +36 -64
- package/_verture/{slicedToArray-a8206399.js → slicedToArray-8223a2ef.js} +15 -2
- package/_verture/{useFormatMessage-703f8b20.js → useFormatMessage-eb13cf56.js} +5 -4
- package/_verture/{useGlobalProps-1b846a65.js → useGlobalProps-1e416658.js} +4 -3
- package/_verture/{usePopupContainer-87febeb9.js → usePopupContainer-635f66f4.js} +16 -15
- package/_verture/{util-7e1fb1e2.js → util-82646c4f.js} +5 -4
- package/_verture/{utils-418da0a4.js → utils-46e99c9a.js} +34 -25
- package/index.js +21 -22
- package/locale/index.js +6 -6
- package/package.json +1 -1
- package/umd/AutoBox.js +9 -8
- package/umd/AutoTips.js +9 -8
- package/umd/Badge.js +1 -1
- package/umd/Breadcrumbs.js +9 -8
- package/umd/Button.js +9 -8
- package/umd/ButtonGroup.js +9 -8
- package/umd/Carousel.js +5 -5
- package/umd/Cascader.js +9 -8
- package/umd/Checkbox.js +9 -8
- package/umd/CheckboxGroup.js +9 -8
- package/umd/Collapse.js +8 -7
- package/umd/CollapseBox.js +1 -1
- package/umd/CollapseLayout.js +4 -4
- package/umd/ColorPicker.js +1 -1
- package/umd/ComboSelect.js +9 -8
- package/umd/Container.js +1 -1
- package/umd/CopyText.js +9 -8
- package/umd/DatePicker.js +9 -8
- package/umd/Descriptions.js +9 -8
- package/umd/Desktop.js +9 -8
- package/umd/DragVerify.js +4 -4
- package/umd/Drawer.js +9 -8
- package/umd/Dropdown.js +6 -5
- package/umd/DynamicMultiBox.js +11 -10
- package/umd/Empty.js +1 -1
- package/umd/Form.js +9 -8
- package/umd/FormItem.js +9 -8
- package/umd/FunctionModal.js +9 -8
- package/umd/GlobalContext.js +1 -1
- package/umd/Help.js +9 -8
- package/umd/HelperText.js +1 -1
- package/umd/InputLang.js +9 -8
- package/umd/InputNumber.js +9 -8
- package/umd/Label.js +9 -8
- package/umd/Loading.js +4 -4
- package/umd/Menu.js +4 -4
- package/umd/Message.js +4 -4
- package/umd/Modal.js +9 -8
- package/umd/MultiBox.js +9 -8
- package/umd/Notification.js +8 -7
- package/umd/OperateBtn.js +9 -8
- package/umd/PageHeader.js +9 -8
- package/umd/Pagination.js +9 -8
- package/umd/ParauiProvider.js +1 -1
- package/umd/PasswordRules.js +4 -4
- package/umd/PopConfirm.js +9 -8
- package/umd/Popover.js +9 -8
- package/umd/Progress.js +5 -5
- package/umd/Querying.js +1 -1
- package/umd/Radio.js +9 -8
- package/umd/RadioGroup.js +9 -8
- package/umd/Search.js +9 -8
- package/umd/Select.js +9 -8
- package/umd/SelectInput.js +9 -8
- package/umd/Selector.js +9 -8
- package/umd/SelectorPicker.js +9 -8
- package/umd/SingleBox.js +9 -8
- package/umd/Slider.js +6 -5
- package/umd/Status.js +4 -4
- package/umd/Stepper.js +9 -8
- package/umd/Switch.js +9 -8
- package/umd/Table.js +9 -8
- package/umd/Tabs.js +9 -8
- package/umd/Tag.js +9 -8
- package/umd/TextEditor.js +22 -21
- package/umd/TextField.js +9 -8
- package/umd/TimePicker.js +9 -8
- package/umd/Timeline.js +1 -1
- package/umd/Title.js +9 -8
- package/umd/ToggleButton.js +9 -8
- package/umd/Tooltip.js +9 -8
- package/umd/Transfer.js +10 -9
- package/umd/Tree.js +9 -8
- package/umd/Upload.js +10 -9
- package/umd/locale.js +1 -1
- package/_verture/index-232d890b.js +0 -327
- package/_verture/index-e9007d6a.js +0 -236
- package/_verture/intl-5c1ec055.js +0 -81
- package/_verture/toConsumableArray-8f4c9589.js +0 -19
- package/_verture/unsupportedIterableToArray-cb478f24.js +0 -16
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import { _ as _toConsumableArray } from './toConsumableArray-8f4c9589.js';
|
|
2
|
-
import { _ as _defineProperty } from './defineProperty-1d116156.js';
|
|
3
|
-
import { _ as _slicedToArray } from './slicedToArray-a8206399.js';
|
|
4
|
-
import { r as regenerator } from './index-232d890b.js';
|
|
5
1
|
import { _ as __rest, a as __awaiter } from './tslib.es6-55ed4bd2.js';
|
|
6
2
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
7
3
|
import React__default, { isValidElement, cloneElement, useRef, useState, useImperativeHandle, useEffect, useMemo } from 'react';
|
|
@@ -12,7 +8,8 @@ import LoadingOutlined from '@para-ui/icons/LoadingF';
|
|
|
12
8
|
import FileOutlined from '@para-ui/icons/Document';
|
|
13
9
|
import SolidArrowDown from '@para-ui/icons/DownTriangleF';
|
|
14
10
|
import { Radio } from '../Radio/index.js';
|
|
15
|
-
import { $ as $prefixCls } from './constant-
|
|
11
|
+
import { $ as $prefixCls } from './constant-5317fc89.js';
|
|
12
|
+
import { b as _slicedToArray } from './slicedToArray-8223a2ef.js';
|
|
16
13
|
import ReactDOM from 'react-dom';
|
|
17
14
|
import EditOutlinedIcon from '@para-ui/icons/EditFile';
|
|
18
15
|
import AddOutlinedIcon from '@para-ui/icons/PlusCircle';
|
|
@@ -20,7 +17,7 @@ import Delete from '@para-ui/icons/Delete';
|
|
|
20
17
|
import Forbid from '@para-ui/icons/Forbid';
|
|
21
18
|
import { Tooltip } from '../Tooltip/index.js';
|
|
22
19
|
import { UUID, Request } from '@paraview/lib';
|
|
23
|
-
import { u as useFormatMessage } from './useFormatMessage-
|
|
20
|
+
import { u as useFormatMessage } from './useFormatMessage-eb13cf56.js';
|
|
24
21
|
import { s as styleInject } from './style-inject.es-300983ab.js';
|
|
25
22
|
import MoreOutlinedIcon from '@para-ui/icons/MoreCircle';
|
|
26
23
|
import Empty from '../Empty/index.js';
|
|
@@ -46,7 +43,6 @@ var deepCopy = function deepCopy(target) {
|
|
|
46
43
|
if (Array.isArray(target)) {
|
|
47
44
|
obj = []; //处理target是数组的情况
|
|
48
45
|
}
|
|
49
|
-
|
|
50
46
|
copyedObjs.push({
|
|
51
47
|
target: target,
|
|
52
48
|
copyTarget: obj
|
|
@@ -567,130 +563,110 @@ var OperateBar = function OperateBar(props) {
|
|
|
567
563
|
};
|
|
568
564
|
|
|
569
565
|
//默认分页信息
|
|
570
|
-
|
|
566
|
+
const defaultPageSize = {
|
|
571
567
|
page: 1,
|
|
572
568
|
size: 10
|
|
573
569
|
};
|
|
574
570
|
//tree 组件
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
params =
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
_props$replaceFields = props.replaceFields,
|
|
586
|
-
replaceFields = _props$replaceFields === void 0 ? {
|
|
571
|
+
const Tree = /*#__PURE__*/React__default.forwardRef((props, ref) => {
|
|
572
|
+
const {
|
|
573
|
+
url,
|
|
574
|
+
ctx,
|
|
575
|
+
params = null,
|
|
576
|
+
method = 'GET',
|
|
577
|
+
headers,
|
|
578
|
+
requestCallback,
|
|
579
|
+
refresh,
|
|
580
|
+
replaceFields = {
|
|
587
581
|
key: 'key',
|
|
588
582
|
parentId: 'parentId',
|
|
589
583
|
children: 'children',
|
|
590
584
|
title: 'title',
|
|
591
585
|
loadKey: 'key'
|
|
592
|
-
}
|
|
593
|
-
originTreeData
|
|
594
|
-
className
|
|
595
|
-
showIcon
|
|
596
|
-
|
|
597
|
-
showLine
|
|
598
|
-
|
|
599
|
-
blockNode
|
|
600
|
-
checkable
|
|
601
|
-
selectable
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
setInCheckedKeys = _useState4[1]; //选中keys
|
|
651
|
-
var _useState5 = useState([]),
|
|
652
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
653
|
-
inExpandedKeysKeys = _useState6[0],
|
|
654
|
-
setInExpandedKeys = _useState6[1]; //展开keys
|
|
655
|
-
var opRef = useRef({}); //操作栏
|
|
656
|
-
var mouseInSectorRef = useRef(false); //是否鼠标进入扇形
|
|
657
|
-
var timeSectorRef = useRef(-1); //定时显示扇形
|
|
658
|
-
var nodesRef = useRef([]); //保存节点状态
|
|
659
|
-
var prefixCls = "".concat($prefixCls, "-tree"); //tree容器前缀
|
|
660
|
-
var treeMapRef = useRef({}); //tree map
|
|
661
|
-
var treeOriDataRef = useRef([]); //tree origin data
|
|
662
|
-
var nPageSize = Object.assign(Object.assign({}, defaultPageSize), pageSize);
|
|
663
|
-
var halfCheckedKeys = useRef([]); //半选keys
|
|
664
|
-
var intl = useFormatMessage('Tree', localeJson);
|
|
665
|
-
var _useState7 = useState(false),
|
|
666
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
667
|
-
loading = _useState8[0],
|
|
668
|
-
setLoading = _useState8[1];
|
|
669
|
-
var firstRender = useRef(true); //是否第一次渲染
|
|
670
|
-
var _useState9 = useState([]),
|
|
671
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
672
|
-
inLoadedKeys = _useState10[0],
|
|
673
|
-
setInLoadKeys = _useState10[1];
|
|
586
|
+
},
|
|
587
|
+
treeData: originTreeData,
|
|
588
|
+
className,
|
|
589
|
+
showIcon,
|
|
590
|
+
icon,
|
|
591
|
+
showLine,
|
|
592
|
+
switcherIcon,
|
|
593
|
+
blockNode,
|
|
594
|
+
checkable,
|
|
595
|
+
selectable,
|
|
596
|
+
radioable = false,
|
|
597
|
+
showRadio = true,
|
|
598
|
+
checkStrictly = false,
|
|
599
|
+
actionsCallback,
|
|
600
|
+
showActions,
|
|
601
|
+
checkedKeys,
|
|
602
|
+
defaultCheckedKeys,
|
|
603
|
+
expandedKeys,
|
|
604
|
+
defaultExpandedKeys,
|
|
605
|
+
loadedKeys,
|
|
606
|
+
onCheck,
|
|
607
|
+
onExpand,
|
|
608
|
+
asyncLoad = false,
|
|
609
|
+
pagination = false,
|
|
610
|
+
pageSize = defaultPageSize,
|
|
611
|
+
loadData,
|
|
612
|
+
localFilter = false,
|
|
613
|
+
localParams,
|
|
614
|
+
onFilter,
|
|
615
|
+
loadMoreNode = null,
|
|
616
|
+
paramsCallback,
|
|
617
|
+
titleRender,
|
|
618
|
+
emptyProps,
|
|
619
|
+
emptyClassName,
|
|
620
|
+
notFoundContent,
|
|
621
|
+
wrapperClassName,
|
|
622
|
+
wrapperStyle,
|
|
623
|
+
showLoading = true,
|
|
624
|
+
loadingNode,
|
|
625
|
+
onLoadedKey,
|
|
626
|
+
tipMaxWidth = 500
|
|
627
|
+
} = props;
|
|
628
|
+
const [treeData, setTreeData] = useState([]); //树数据
|
|
629
|
+
const [inCheckedKeys, setInCheckedKeys] = useState([]); //选中keys
|
|
630
|
+
const [inExpandedKeysKeys, setInExpandedKeys] = useState([]); //展开keys
|
|
631
|
+
const opRef = useRef({}); //操作栏
|
|
632
|
+
const mouseInSectorRef = useRef(false); //是否鼠标进入扇形
|
|
633
|
+
const timeSectorRef = useRef(-1); //定时显示扇形
|
|
634
|
+
const nodesRef = useRef([]); //保存节点状态
|
|
635
|
+
const prefixCls = "".concat($prefixCls, "-tree"); //tree容器前缀
|
|
636
|
+
const treeMapRef = useRef({}); //tree map
|
|
637
|
+
const treeOriDataRef = useRef([]); //tree origin data
|
|
638
|
+
const nPageSize = Object.assign(Object.assign({}, defaultPageSize), pageSize);
|
|
639
|
+
const halfCheckedKeys = useRef([]); //半选keys
|
|
640
|
+
const intl = useFormatMessage('Tree', localeJson);
|
|
641
|
+
const [loading, setLoading] = useState(false);
|
|
642
|
+
const firstRender = useRef(true); //是否第一次渲染
|
|
643
|
+
const [inLoadedKeys, setInLoadKeys] = useState([]);
|
|
674
644
|
//新属性
|
|
675
|
-
|
|
645
|
+
const newProps = Object.assign(Object.assign({}, props), {
|
|
676
646
|
showLine: Boolean(showLine),
|
|
677
647
|
checkStrictly: radioable || checkStrictly,
|
|
678
648
|
showIcon: radioable || showIcon
|
|
679
649
|
});
|
|
680
650
|
//生成class
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
651
|
+
const makeCls = () => {
|
|
652
|
+
return clsx({
|
|
653
|
+
["".concat(prefixCls, "-icon-hide")]: !showIcon,
|
|
654
|
+
["".concat(prefixCls, "-block-node")]: blockNode,
|
|
655
|
+
["".concat(prefixCls, "-unselectable")]: !selectable,
|
|
656
|
+
["".concat(prefixCls, "-radioable")]: radioable,
|
|
657
|
+
["".concat(prefixCls, "-radioable-showradio")]: radioable && showRadio
|
|
658
|
+
}, className);
|
|
684
659
|
};
|
|
685
660
|
//格式化treeData 替换显示字段
|
|
686
|
-
|
|
661
|
+
const formatTreeData = treeData => {
|
|
687
662
|
function recursive(dataList) {
|
|
688
|
-
|
|
689
|
-
key
|
|
690
|
-
title
|
|
691
|
-
children
|
|
692
|
-
parentId
|
|
693
|
-
|
|
663
|
+
const {
|
|
664
|
+
key,
|
|
665
|
+
title,
|
|
666
|
+
children,
|
|
667
|
+
parentId
|
|
668
|
+
} = replaceFields || {};
|
|
669
|
+
dataList.forEach(item => {
|
|
694
670
|
var _a;
|
|
695
671
|
if (key) item.key = item[key];
|
|
696
672
|
if (title) item.title = item[title];
|
|
@@ -703,7 +679,7 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
703
679
|
return treeData;
|
|
704
680
|
};
|
|
705
681
|
//内部 tree title render
|
|
706
|
-
|
|
682
|
+
const internalTitleRender = nodeData => {
|
|
707
683
|
if (nodeData.moreFlag) {
|
|
708
684
|
//加载更多节点
|
|
709
685
|
return jsx("span", Object.assign({
|
|
@@ -732,9 +708,7 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
732
708
|
children: typeof titleRender === 'function' ? titleRender(nodeData) : nodeData.title
|
|
733
709
|
})), !!showActions && jsx("div", Object.assign({
|
|
734
710
|
className: "sector-anchor",
|
|
735
|
-
onMouseEnter:
|
|
736
|
-
return handleSectorMEnter(nodeData, evt);
|
|
737
|
-
},
|
|
711
|
+
onMouseEnter: evt => handleSectorMEnter(nodeData, evt),
|
|
738
712
|
onMouseLeave: handleSectorMLeave
|
|
739
713
|
}, {
|
|
740
714
|
children: jsx(MoreOutlinedIcon, {
|
|
@@ -744,44 +718,44 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
744
718
|
}));
|
|
745
719
|
};
|
|
746
720
|
//tree node mouse enter
|
|
747
|
-
|
|
721
|
+
const handleTreeNodeMEnter = evt => {
|
|
748
722
|
evt.stopPropagation();
|
|
749
723
|
clearNodesState();
|
|
750
|
-
|
|
724
|
+
const _currTarget = evt.currentTarget;
|
|
751
725
|
if (_currTarget) {
|
|
752
|
-
|
|
753
|
-
|
|
726
|
+
const pClsx = ".".concat($prefixCls, "-tree-node-content-wrapper");
|
|
727
|
+
const cParentEl = _currTarget.closest(pClsx);
|
|
754
728
|
nodesRef.current.push(cParentEl);
|
|
755
729
|
showMoreActionIcon(cParentEl, true);
|
|
756
730
|
}
|
|
757
731
|
};
|
|
758
732
|
//tree node mouse leave
|
|
759
|
-
|
|
733
|
+
const handleTreeNodeMLeave = evt => {
|
|
760
734
|
evt.stopPropagation();
|
|
761
735
|
clearNodesState();
|
|
762
|
-
|
|
736
|
+
const _currTarget = evt.currentTarget;
|
|
763
737
|
if (_currTarget) {
|
|
764
|
-
|
|
765
|
-
|
|
738
|
+
const pClsx = ".".concat($prefixCls, "-tree-node-content-wrapper");
|
|
739
|
+
const cParentEl = _currTarget.closest(pClsx);
|
|
766
740
|
showMoreActionIcon(cParentEl, false);
|
|
767
741
|
}
|
|
768
742
|
};
|
|
769
743
|
// Tree node Click
|
|
770
|
-
|
|
744
|
+
const handleTreeNodeClick = () => {
|
|
771
745
|
var _a;
|
|
772
746
|
if (!showActions) return;
|
|
773
747
|
// 点击tree node 的时候 rc 内部会把node节点的样式重写,导致之前逻辑添加的样式不存在,需要点击的时候加上样式
|
|
774
748
|
if (((_a = nodesRef.current) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
775
749
|
// 需要滞后到下次事件循环
|
|
776
|
-
setTimeout(
|
|
777
|
-
nodesRef.current.forEach(
|
|
750
|
+
setTimeout(() => {
|
|
751
|
+
nodesRef.current.forEach(el => {
|
|
778
752
|
showMoreActionIcon(el, true);
|
|
779
753
|
});
|
|
780
754
|
});
|
|
781
755
|
}
|
|
782
756
|
};
|
|
783
757
|
//节点显示更多图标
|
|
784
|
-
|
|
758
|
+
const showMoreActionIcon = (cParentEl, isShow) => {
|
|
785
759
|
if (!cParentEl) return;
|
|
786
760
|
if (isShow) {
|
|
787
761
|
cParentEl === null || cParentEl === void 0 ? void 0 : cParentEl.classList.add("".concat($prefixCls, "-tree-node-content-wrapper--active"));
|
|
@@ -790,21 +764,21 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
790
764
|
}
|
|
791
765
|
};
|
|
792
766
|
//mouse enter sector
|
|
793
|
-
|
|
767
|
+
const handleSectorMEnter = (nodeData, evt) => {
|
|
794
768
|
evt.stopPropagation();
|
|
795
|
-
|
|
769
|
+
const _currTarget = evt.currentTarget;
|
|
796
770
|
opRef.current.anchorEl = _currTarget;
|
|
797
|
-
timeSectorRef.current = setTimeout(
|
|
771
|
+
timeSectorRef.current = setTimeout(() => {
|
|
798
772
|
clearTimeout(timeSectorRef.current);
|
|
799
773
|
showSector(_currTarget, nodeData);
|
|
800
774
|
}, 300);
|
|
801
775
|
};
|
|
802
776
|
//mouse sector leave
|
|
803
|
-
|
|
777
|
+
const handleSectorMLeave = evt => {
|
|
804
778
|
evt.stopPropagation();
|
|
805
779
|
clearTimeout(timeSectorRef.current);
|
|
806
|
-
|
|
807
|
-
|
|
780
|
+
const _anchor = evt.currentTarget;
|
|
781
|
+
const timer = setTimeout(() => {
|
|
808
782
|
clearTimeout(timer);
|
|
809
783
|
if (!mouseInSectorRef.current) {
|
|
810
784
|
removeSector(_anchor);
|
|
@@ -812,19 +786,19 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
812
786
|
}, 300);
|
|
813
787
|
};
|
|
814
788
|
//显示扇形
|
|
815
|
-
|
|
789
|
+
const showSector = (anchorEl, nodeData) => {
|
|
816
790
|
var _a, _b;
|
|
817
|
-
|
|
791
|
+
const portalRoot = document.getElementById(opRef.current.uid);
|
|
818
792
|
anchorEl.classList.add('sector-anchor--active');
|
|
819
793
|
if (portalRoot) {
|
|
820
|
-
|
|
794
|
+
const container = portalRoot.querySelector('.sector-container');
|
|
821
795
|
if (container) {
|
|
822
796
|
(_b = (_a = opRef.current) === null || _a === void 0 ? void 0 : _a.onShowSector) === null || _b === void 0 ? void 0 : _b.call(_a, nodeData, true);
|
|
823
797
|
}
|
|
824
798
|
}
|
|
825
799
|
};
|
|
826
800
|
//移除扇形
|
|
827
|
-
|
|
801
|
+
const removeSector = anchorEl => {
|
|
828
802
|
var _a, _b;
|
|
829
803
|
if (anchorEl) {
|
|
830
804
|
anchorEl.classList.remove('sector-anchor--active');
|
|
@@ -832,19 +806,19 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
832
806
|
}
|
|
833
807
|
};
|
|
834
808
|
//离开扇形回调
|
|
835
|
-
|
|
809
|
+
const handleOnRemove = anchorEl => {
|
|
836
810
|
if (anchorEl) {
|
|
837
|
-
|
|
838
|
-
|
|
811
|
+
const pCls = ".".concat($prefixCls, "-tree-node-content-wrapper");
|
|
812
|
+
const cParentEl = anchorEl.closest(pCls);
|
|
839
813
|
showMoreActionIcon(cParentEl, false);
|
|
840
814
|
removeSector(anchorEl);
|
|
841
815
|
}
|
|
842
816
|
};
|
|
843
817
|
//清除节点状态
|
|
844
|
-
|
|
818
|
+
const clearNodesState = () => {
|
|
845
819
|
var _a;
|
|
846
820
|
if ((_a = nodesRef.current) === null || _a === void 0 ? void 0 : _a.length) {
|
|
847
|
-
nodesRef.current.forEach(
|
|
821
|
+
nodesRef.current.forEach(el => {
|
|
848
822
|
var _a;
|
|
849
823
|
(_a = el === null || el === void 0 ? void 0 : el.classList) === null || _a === void 0 ? void 0 : _a.remove("".concat($prefixCls, "-tree-node-content-wrapper--active"));
|
|
850
824
|
});
|
|
@@ -852,14 +826,14 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
852
826
|
}
|
|
853
827
|
};
|
|
854
828
|
//内部check
|
|
855
|
-
|
|
829
|
+
const internalCheck = (checkedKeys, e) => {
|
|
856
830
|
var _a;
|
|
857
|
-
|
|
858
|
-
|
|
831
|
+
let temp = [];
|
|
832
|
+
let halfChecked = [];
|
|
859
833
|
if (radioable) {
|
|
860
834
|
//单选
|
|
861
|
-
|
|
862
|
-
|
|
835
|
+
const node = e.node;
|
|
836
|
+
const key = (_a = replaceFields.key) !== null && _a !== void 0 ? _a : 'key';
|
|
863
837
|
if (e.checked) temp = [node[key]];
|
|
864
838
|
} else if (checkStrictly) {
|
|
865
839
|
//严格模式
|
|
@@ -876,59 +850,38 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
876
850
|
onCheck === null || onCheck === void 0 ? void 0 : onCheck(temp, e, halfChecked);
|
|
877
851
|
};
|
|
878
852
|
//展开节点
|
|
879
|
-
|
|
853
|
+
const internalExpand = (expandedKeys, e) => {
|
|
880
854
|
if (!('expandedKeys' in props)) {
|
|
881
|
-
setInExpandedKeys(
|
|
855
|
+
setInExpandedKeys([...expandedKeys]);
|
|
882
856
|
}
|
|
883
857
|
onExpand === null || onExpand === void 0 ? void 0 : onExpand(expandedKeys, e);
|
|
884
858
|
};
|
|
885
859
|
//请求树数据
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
return __awaiter(void 0, void 0, void 0,
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
_context.next = 9;
|
|
909
|
-
return Request(opts);
|
|
910
|
-
case 9:
|
|
911
|
-
_yield$Request = _context.sent;
|
|
912
|
-
data = _yield$Request.data;
|
|
913
|
-
err = _yield$Request.err;
|
|
914
|
-
//分页数据格式 {list,page,size,total},否则 []
|
|
915
|
-
showLoading && setLoading(false);
|
|
916
|
-
if (!err) {
|
|
917
|
-
_context.next = 15;
|
|
918
|
-
break;
|
|
919
|
-
}
|
|
920
|
-
return _context.abrupt("return", pagination ? {} : []);
|
|
921
|
-
case 15:
|
|
922
|
-
return _context.abrupt("return", pagination ? data.data || {} : data.data || []);
|
|
923
|
-
case 16:
|
|
924
|
-
case "end":
|
|
925
|
-
return _context.stop();
|
|
926
|
-
}
|
|
927
|
-
}, _callee);
|
|
928
|
-
}));
|
|
860
|
+
const requestTreeData = function () {
|
|
861
|
+
let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
862
|
+
return __awaiter(void 0, void 0, void 0, function* () {
|
|
863
|
+
if (!url) return [];
|
|
864
|
+
showLoading && setLoading(true);
|
|
865
|
+
const tParams = (paramsCallback === null || paramsCallback === void 0 ? void 0 : paramsCallback(params)) || params;
|
|
866
|
+
const m = method === null || method === void 0 ? void 0 : method.toUpperCase();
|
|
867
|
+
const opts = {
|
|
868
|
+
url,
|
|
869
|
+
ctx,
|
|
870
|
+
method: m,
|
|
871
|
+
[m === 'GET' ? 'params' : 'data']: tParams || {}
|
|
872
|
+
};
|
|
873
|
+
if (headers) opts.headers = headers;
|
|
874
|
+
const {
|
|
875
|
+
data,
|
|
876
|
+
err
|
|
877
|
+
} = yield Request(opts); //分页数据格式 {list,page,size,total},否则 []
|
|
878
|
+
showLoading && setLoading(false);
|
|
879
|
+
if (err) return pagination ? {} : [];
|
|
880
|
+
return pagination ? data.data || {} : data.data || [];
|
|
881
|
+
});
|
|
929
882
|
};
|
|
930
883
|
//加载更多节点数据
|
|
931
|
-
|
|
884
|
+
const getLoadMoreData = () => {
|
|
932
885
|
return {
|
|
933
886
|
key: String((Math.random() * 1000000 | 0) + Date.now()),
|
|
934
887
|
title: intl({
|
|
@@ -943,10 +896,10 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
943
896
|
};
|
|
944
897
|
};
|
|
945
898
|
//渲染加载更多节点
|
|
946
|
-
|
|
899
|
+
const renderLoadMoreNode = dataNode => {
|
|
947
900
|
return jsx("span", Object.assign({
|
|
948
901
|
className: "".concat($prefixCls, "-tree-treenode-more-wrapper"),
|
|
949
|
-
onClick:
|
|
902
|
+
onClick: e => {
|
|
950
903
|
e.stopPropagation();
|
|
951
904
|
onLoadData(dataNode);
|
|
952
905
|
}
|
|
@@ -955,24 +908,24 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
955
908
|
}));
|
|
956
909
|
};
|
|
957
910
|
//更新tree数据
|
|
958
|
-
|
|
911
|
+
const updateTreeData = (list, key, children, moreFlag) => {
|
|
959
912
|
//root节点
|
|
960
913
|
if (key === 'ROOT_KEY') {
|
|
961
914
|
list.pop(); //删除加载更多节点
|
|
962
915
|
return list.concat(children);
|
|
963
916
|
}
|
|
964
|
-
return list.map(
|
|
917
|
+
return list.map(node => {
|
|
965
918
|
if (node.key === key) {
|
|
966
919
|
if (moreFlag) {
|
|
967
920
|
//加载更多
|
|
968
|
-
|
|
921
|
+
const child = node.children || [];
|
|
969
922
|
child.pop();
|
|
970
923
|
return Object.assign(Object.assign({}, node), {
|
|
971
924
|
children: child.concat(children)
|
|
972
925
|
});
|
|
973
926
|
}
|
|
974
927
|
return Object.assign(Object.assign({}, node), {
|
|
975
|
-
children
|
|
928
|
+
children
|
|
976
929
|
});
|
|
977
930
|
}
|
|
978
931
|
if (node.children) {
|
|
@@ -984,112 +937,101 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
984
937
|
});
|
|
985
938
|
};
|
|
986
939
|
//异步数据加载 [moreFlag]:加载更多标识
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
940
|
+
const onLoadData = dataNode => {
|
|
941
|
+
const {
|
|
942
|
+
key,
|
|
943
|
+
children,
|
|
944
|
+
parentId,
|
|
945
|
+
moreFlag
|
|
946
|
+
} = dataNode;
|
|
947
|
+
setInLoadKeys([...inLoadedKeys, key]);
|
|
993
948
|
onLoadedKey === null || onLoadedKey === void 0 ? void 0 : onLoadedKey(key, dataNode);
|
|
994
|
-
return new Promise(function (
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
//根节点加载更多,不需要key
|
|
1019
|
-
delete loadParams[loadKey];
|
|
1020
|
-
}
|
|
1021
|
-
}
|
|
1022
|
-
//分页参数
|
|
1023
|
-
loadParams.page = treeMapRef.current[tKey].page;
|
|
1024
|
-
loadParams.size = treeMapRef.current[tKey].size;
|
|
1025
|
-
}
|
|
1026
|
-
_context2.next = 9;
|
|
1027
|
-
return requestTreeData(loadParams);
|
|
1028
|
-
case 9:
|
|
1029
|
-
treeData = _context2.sent;
|
|
1030
|
-
_context2.next = 12;
|
|
1031
|
-
return requestCallback === null || requestCallback === void 0 ? void 0 : requestCallback(treeData);
|
|
1032
|
-
case 12:
|
|
1033
|
-
handledData = _context2.sent;
|
|
1034
|
-
if (handledData) treeData = handledData;
|
|
1035
|
-
pageInfo = {}; //分页信息
|
|
1036
|
-
if (!pagination) {
|
|
1037
|
-
_context2.next = 22;
|
|
1038
|
-
break;
|
|
1039
|
-
}
|
|
1040
|
-
if (Object.keys(treeData).length) {
|
|
1041
|
-
_context2.next = 19;
|
|
1042
|
-
break;
|
|
1043
|
-
}
|
|
1044
|
-
resolve();
|
|
1045
|
-
return _context2.abrupt("return");
|
|
1046
|
-
case 19:
|
|
1047
|
-
_treeData = treeData, _treeData$list = _treeData.list, list = _treeData$list === void 0 ? [] : _treeData$list, page = _treeData.page, size = _treeData.size, total = _treeData.total;
|
|
1048
|
-
treeData = list;
|
|
1049
|
-
pageInfo = {
|
|
1050
|
-
page: page,
|
|
1051
|
-
size: size,
|
|
1052
|
-
total: total
|
|
1053
|
-
};
|
|
1054
|
-
case 22:
|
|
1055
|
-
if (treeData === null || treeData === void 0 ? void 0 : treeData.length) {
|
|
1056
|
-
treeData = formatTreeData(treeData);
|
|
1057
|
-
if (pagination) {
|
|
1058
|
-
//是否分页
|
|
1059
|
-
treeData = transformTreeData(treeData, pageInfo, tKey);
|
|
1060
|
-
}
|
|
1061
|
-
}
|
|
1062
|
-
if (Array.isArray(treeData)) setTreeData(function (origin) {
|
|
1063
|
-
return updateTreeData(origin, tKey, treeData, moreFlag);
|
|
1064
|
-
});
|
|
1065
|
-
resolve();
|
|
1066
|
-
case 25:
|
|
1067
|
-
case "end":
|
|
1068
|
-
return _context2.stop();
|
|
949
|
+
return new Promise(resolve => __awaiter(void 0, void 0, void 0, function* () {
|
|
950
|
+
var _a;
|
|
951
|
+
if (children) {
|
|
952
|
+
resolve();
|
|
953
|
+
return;
|
|
954
|
+
}
|
|
955
|
+
//当前节点key
|
|
956
|
+
let tKey = key;
|
|
957
|
+
//参数动态字段
|
|
958
|
+
const loadKey = (_a = replaceFields.loadKey) !== null && _a !== void 0 ? _a : 'key';
|
|
959
|
+
//加载节点时参数
|
|
960
|
+
const loadParams = Object.assign({
|
|
961
|
+
[loadKey]: tKey
|
|
962
|
+
}, params);
|
|
963
|
+
//是否分页
|
|
964
|
+
if (pagination) {
|
|
965
|
+
if (moreFlag) {
|
|
966
|
+
//是否加载更多
|
|
967
|
+
tKey = parentId;
|
|
968
|
+
treeMapRef.current[tKey].page += 1;
|
|
969
|
+
loadParams[loadKey] = tKey;
|
|
970
|
+
if (tKey === 'ROOT_KEY') {
|
|
971
|
+
//根节点加载更多,不需要key
|
|
972
|
+
delete loadParams[loadKey];
|
|
1069
973
|
}
|
|
1070
|
-
}
|
|
1071
|
-
|
|
1072
|
-
|
|
974
|
+
}
|
|
975
|
+
//分页参数
|
|
976
|
+
loadParams.page = treeMapRef.current[tKey].page;
|
|
977
|
+
loadParams.size = treeMapRef.current[tKey].size;
|
|
978
|
+
}
|
|
979
|
+
let treeData = yield requestTreeData(loadParams);
|
|
980
|
+
//透传数据
|
|
981
|
+
const handledData = yield requestCallback === null || requestCallback === void 0 ? void 0 : requestCallback(treeData);
|
|
982
|
+
if (handledData) treeData = handledData;
|
|
983
|
+
let pageInfo = {}; //分页信息
|
|
984
|
+
if (pagination) {
|
|
985
|
+
//分页数据格式 {list,page,size,total}
|
|
986
|
+
if (!Object.keys(treeData).length) {
|
|
987
|
+
resolve();
|
|
988
|
+
return;
|
|
989
|
+
}
|
|
990
|
+
const {
|
|
991
|
+
list = [],
|
|
992
|
+
page,
|
|
993
|
+
size,
|
|
994
|
+
total
|
|
995
|
+
} = treeData;
|
|
996
|
+
treeData = list;
|
|
997
|
+
pageInfo = {
|
|
998
|
+
page,
|
|
999
|
+
size,
|
|
1000
|
+
total
|
|
1001
|
+
};
|
|
1002
|
+
}
|
|
1003
|
+
if (treeData === null || treeData === void 0 ? void 0 : treeData.length) {
|
|
1004
|
+
treeData = formatTreeData(treeData);
|
|
1005
|
+
if (pagination) {
|
|
1006
|
+
//是否分页
|
|
1007
|
+
treeData = transformTreeData(treeData, pageInfo, tKey);
|
|
1008
|
+
}
|
|
1009
|
+
}
|
|
1010
|
+
if (Array.isArray(treeData)) setTreeData(origin => updateTreeData(origin, tKey, treeData, moreFlag));
|
|
1011
|
+
resolve();
|
|
1012
|
+
}));
|
|
1073
1013
|
};
|
|
1074
1014
|
//转化tree数据
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1015
|
+
const transformTreeData = (treeData, pageInfo, parentId) => {
|
|
1016
|
+
const newTreeData = convert(treeData); //tree结构
|
|
1017
|
+
const {
|
|
1018
|
+
page,
|
|
1019
|
+
size,
|
|
1020
|
+
total
|
|
1021
|
+
} = pageInfo;
|
|
1080
1022
|
//计算分页,是否显示加载更多
|
|
1081
1023
|
if (page * size < total) {
|
|
1082
|
-
|
|
1024
|
+
const loadMoreData = getLoadMoreData();
|
|
1083
1025
|
loadMoreData.parentId = parentId || 'ROOT_KEY';
|
|
1084
1026
|
loadMoreData.title = renderLoadMoreNode(loadMoreData);
|
|
1085
1027
|
newTreeData.push(loadMoreData);
|
|
1086
1028
|
}
|
|
1087
1029
|
treeMapRef.current = _toObject(newTreeData);
|
|
1088
1030
|
function _toObject(data) {
|
|
1089
|
-
|
|
1031
|
+
const obj = treeMapRef.current;
|
|
1090
1032
|
if (!(data === null || data === void 0 ? void 0 : data.length)) return obj;
|
|
1091
|
-
data.forEach(
|
|
1092
|
-
|
|
1033
|
+
data.forEach(item => {
|
|
1034
|
+
const tKey = item.moreFlag ? item.parentId : item.key;
|
|
1093
1035
|
if (!obj[tKey]) {
|
|
1094
1036
|
obj[tKey] = Object.assign(Object.assign({}, item), nPageSize);
|
|
1095
1037
|
}
|
|
@@ -1099,73 +1041,49 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
1099
1041
|
return newTreeData;
|
|
1100
1042
|
};
|
|
1101
1043
|
//初始化树
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
//clean treeMapRef
|
|
1143
|
-
treeMapRef.current = {};
|
|
1144
|
-
case 17:
|
|
1145
|
-
if (treeData === null || treeData === void 0 ? void 0 : treeData.length) {
|
|
1146
|
-
_context3.next = 19;
|
|
1147
|
-
break;
|
|
1148
|
-
}
|
|
1149
|
-
return _context3.abrupt("return", setTreeData([]));
|
|
1150
|
-
case 19:
|
|
1151
|
-
treeData = formatTreeData(treeData);
|
|
1152
|
-
if (localFilter)
|
|
1153
|
-
//本地过滤
|
|
1154
|
-
treeOriDataRef.current = deepCopy(treeData);
|
|
1155
|
-
if (pagination)
|
|
1156
|
-
//是否分页
|
|
1157
|
-
treeData = transformTreeData(treeData, pageInfo);
|
|
1158
|
-
setTreeData(_toConsumableArray(treeData));
|
|
1159
|
-
case 23:
|
|
1160
|
-
case "end":
|
|
1161
|
-
return _context3.stop();
|
|
1162
|
-
}
|
|
1163
|
-
}, _callee3);
|
|
1164
|
-
}));
|
|
1165
|
-
};
|
|
1044
|
+
const initTree = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
1045
|
+
const tParams = Object.assign({}, params);
|
|
1046
|
+
if (pagination) {
|
|
1047
|
+
//分页参数
|
|
1048
|
+
tParams.page = nPageSize.page;
|
|
1049
|
+
tParams.size = nPageSize.size;
|
|
1050
|
+
}
|
|
1051
|
+
let treeData = yield requestTreeData(tParams);
|
|
1052
|
+
let pageInfo = {}; //分页信息
|
|
1053
|
+
//透传数据
|
|
1054
|
+
const handledData = yield requestCallback === null || requestCallback === void 0 ? void 0 : requestCallback(treeData);
|
|
1055
|
+
if (handledData) treeData = handledData;
|
|
1056
|
+
if (pagination) {
|
|
1057
|
+
//分页数据格式 {list,page,size,total}
|
|
1058
|
+
if (!Object.keys(treeData).length) return setTreeData([]);
|
|
1059
|
+
const {
|
|
1060
|
+
list = [],
|
|
1061
|
+
page,
|
|
1062
|
+
size,
|
|
1063
|
+
total
|
|
1064
|
+
} = treeData;
|
|
1065
|
+
treeData = list;
|
|
1066
|
+
pageInfo = {
|
|
1067
|
+
page,
|
|
1068
|
+
size,
|
|
1069
|
+
total
|
|
1070
|
+
};
|
|
1071
|
+
//clean treeMapRef
|
|
1072
|
+
treeMapRef.current = {};
|
|
1073
|
+
}
|
|
1074
|
+
if (!(treeData === null || treeData === void 0 ? void 0 : treeData.length)) return setTreeData([]);
|
|
1075
|
+
treeData = formatTreeData(treeData);
|
|
1076
|
+
if (localFilter)
|
|
1077
|
+
//本地过滤
|
|
1078
|
+
treeOriDataRef.current = deepCopy(treeData);
|
|
1079
|
+
if (pagination)
|
|
1080
|
+
//是否分页
|
|
1081
|
+
treeData = transformTreeData(treeData, pageInfo);
|
|
1082
|
+
setTreeData([...treeData]);
|
|
1083
|
+
});
|
|
1166
1084
|
//额外的属性
|
|
1167
|
-
|
|
1168
|
-
|
|
1085
|
+
const getAdditionProps = () => {
|
|
1086
|
+
const additionProps = {};
|
|
1169
1087
|
if (asyncLoad)
|
|
1170
1088
|
//异步加载
|
|
1171
1089
|
additionProps.loadData = onLoadData;
|
|
@@ -1173,44 +1091,44 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
1173
1091
|
additionProps.titleRender = internalTitleRender;
|
|
1174
1092
|
return additionProps;
|
|
1175
1093
|
};
|
|
1176
|
-
useEffect(
|
|
1094
|
+
useEffect(() => {
|
|
1177
1095
|
if (defaultCheckedKeys) {
|
|
1178
1096
|
//默认值checked
|
|
1179
|
-
setInCheckedKeys(
|
|
1097
|
+
setInCheckedKeys([...defaultCheckedKeys]);
|
|
1180
1098
|
}
|
|
1181
1099
|
if (defaultExpandedKeys) {
|
|
1182
1100
|
//默认值expanded
|
|
1183
|
-
setInExpandedKeys(
|
|
1101
|
+
setInExpandedKeys([...defaultExpandedKeys]);
|
|
1184
1102
|
}
|
|
1185
1103
|
}, [defaultCheckedKeys, defaultExpandedKeys]);
|
|
1186
|
-
useEffect(
|
|
1104
|
+
useEffect(() => {
|
|
1187
1105
|
if (checkedKeys) {
|
|
1188
1106
|
//选中keys
|
|
1189
|
-
setInCheckedKeys(
|
|
1107
|
+
setInCheckedKeys([...getCheckedKeys(checkedKeys)]);
|
|
1190
1108
|
halfCheckedKeys.current = getHalfCheckedKeys(checkedKeys);
|
|
1191
1109
|
}
|
|
1192
1110
|
if (expandedKeys) {
|
|
1193
1111
|
//展开keys
|
|
1194
|
-
setInExpandedKeys(
|
|
1112
|
+
setInExpandedKeys([...expandedKeys]);
|
|
1195
1113
|
}
|
|
1196
1114
|
}, [checkedKeys, expandedKeys]);
|
|
1197
|
-
useEffect(
|
|
1115
|
+
useEffect(() => {
|
|
1198
1116
|
if (loadedKeys) {
|
|
1199
1117
|
//loadedKeys
|
|
1200
1118
|
if (loadedKeys.length === 0) {
|
|
1201
1119
|
setInLoadKeys([]);
|
|
1202
1120
|
setInExpandedKeys([]);
|
|
1203
1121
|
} else {
|
|
1204
|
-
setInLoadKeys(
|
|
1122
|
+
setInLoadKeys([...loadedKeys]);
|
|
1205
1123
|
}
|
|
1206
1124
|
}
|
|
1207
1125
|
}, [loadedKeys]);
|
|
1208
|
-
useEffect(
|
|
1126
|
+
useEffect(() => {
|
|
1209
1127
|
//默认展开所有
|
|
1210
1128
|
function _expandAllNode(newTreeData) {
|
|
1211
|
-
|
|
1129
|
+
const keys = [];
|
|
1212
1130
|
function recursive(dataList) {
|
|
1213
|
-
dataList.forEach(
|
|
1131
|
+
dataList.forEach(item => {
|
|
1214
1132
|
var _a;
|
|
1215
1133
|
if ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) {
|
|
1216
1134
|
keys.push(item.key);
|
|
@@ -1225,51 +1143,51 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
1225
1143
|
}
|
|
1226
1144
|
//tree 初始化
|
|
1227
1145
|
if (Array.isArray(originTreeData)) {
|
|
1228
|
-
|
|
1146
|
+
const newTreeData = formatTreeData(originTreeData);
|
|
1229
1147
|
//本地过滤
|
|
1230
1148
|
if (localFilter) treeOriDataRef.current = deepCopy(newTreeData);
|
|
1231
1149
|
if (newProps.defaultExpandAll) {
|
|
1232
1150
|
//默认展开所有
|
|
1233
1151
|
_expandAllNode(newTreeData);
|
|
1234
1152
|
}
|
|
1235
|
-
setTreeData(
|
|
1153
|
+
setTreeData([...newTreeData]);
|
|
1236
1154
|
} else {
|
|
1237
1155
|
initTree();
|
|
1238
1156
|
}
|
|
1239
1157
|
}, [url, ctx, params, method, refresh, originTreeData]);
|
|
1240
|
-
useEffect(
|
|
1158
|
+
useEffect(() => {
|
|
1241
1159
|
//过滤数据
|
|
1242
|
-
function _filterData(
|
|
1243
|
-
|
|
1244
|
-
|
|
1160
|
+
function _filterData(_ref) {
|
|
1161
|
+
let {
|
|
1162
|
+
searchKey,
|
|
1163
|
+
searchValue
|
|
1164
|
+
} = _ref;
|
|
1245
1165
|
if (!searchKey) return;
|
|
1246
1166
|
if (searchValue === '') {
|
|
1247
1167
|
setTreeData(treeOriDataRef.current);
|
|
1248
|
-
|
|
1249
|
-
setInExpandedKeys(
|
|
1168
|
+
const tKeys = expandedKeys || defaultExpandedKeys;
|
|
1169
|
+
setInExpandedKeys([...(tKeys || [])]);
|
|
1250
1170
|
return;
|
|
1251
1171
|
}
|
|
1252
|
-
|
|
1172
|
+
const flatData = flatten(treeOriDataRef.current);
|
|
1253
1173
|
//匹配数据
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1174
|
+
const filterTreeData = flatData.reduce((acc, curr) => {
|
|
1175
|
+
const title = String(curr[searchKey]).toLowerCase();
|
|
1176
|
+
const isMatch = title.includes(searchValue === null || searchValue === void 0 ? void 0 : searchValue.toLowerCase());
|
|
1257
1177
|
return isMatch ? acc.concat(curr) : acc;
|
|
1258
1178
|
}, []);
|
|
1259
|
-
|
|
1179
|
+
const newTreeData = convertByFilter(deepCopy(flatData), filterTreeData);
|
|
1260
1180
|
setTreeData(newTreeData);
|
|
1261
1181
|
setInExpandedKeys(_handleExpendKey(newTreeData));
|
|
1262
1182
|
}
|
|
1263
1183
|
//处理展开key
|
|
1264
1184
|
function _handleExpendKey(list) {
|
|
1265
|
-
return list.reduce(
|
|
1266
|
-
return acc.concat(curr.key, _handleExpendKey(curr.children || []));
|
|
1267
|
-
}, []);
|
|
1185
|
+
return list.reduce((acc, curr) => acc.concat(curr.key, _handleExpendKey(curr.children || [])), []);
|
|
1268
1186
|
}
|
|
1269
1187
|
if (localFilter) {
|
|
1270
1188
|
//开启本地过滤
|
|
1271
1189
|
if (onFilter) {
|
|
1272
|
-
|
|
1190
|
+
const fData = onFilter(treeOriDataRef.current);
|
|
1273
1191
|
if (!fData) return;
|
|
1274
1192
|
setTreeData(fData);
|
|
1275
1193
|
return;
|
|
@@ -1278,7 +1196,7 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
1278
1196
|
}
|
|
1279
1197
|
}, [localFilter, localParams]);
|
|
1280
1198
|
//渲染空状态
|
|
1281
|
-
|
|
1199
|
+
const renderEmpty = jsx("div", Object.assign({
|
|
1282
1200
|
className: clsx("".concat($prefixCls, "-tree ").concat($prefixCls, "-tree-empty"), className, emptyClassName),
|
|
1283
1201
|
style: props.style
|
|
1284
1202
|
}, {
|
|
@@ -1287,14 +1205,14 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
1287
1205
|
}, emptyProps))
|
|
1288
1206
|
}));
|
|
1289
1207
|
//tree memo
|
|
1290
|
-
|
|
1208
|
+
const treeMemo = useMemo(() => {
|
|
1291
1209
|
if (!(treeData === null || treeData === void 0 ? void 0 : treeData.length) && firstRender.current) {
|
|
1292
1210
|
firstRender.current = false;
|
|
1293
1211
|
return null;
|
|
1294
1212
|
} else if (!(treeData === null || treeData === void 0 ? void 0 : treeData.length)) {
|
|
1295
1213
|
return !loading ? renderEmpty : null;
|
|
1296
1214
|
}
|
|
1297
|
-
|
|
1215
|
+
let tCheckedKeys = inCheckedKeys;
|
|
1298
1216
|
if (checkStrictly) {
|
|
1299
1217
|
tCheckedKeys = {
|
|
1300
1218
|
checked: inCheckedKeys,
|
|
@@ -1311,9 +1229,7 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
1311
1229
|
className: "".concat(prefixCls, "-checkbox-inner")
|
|
1312
1230
|
}) : checkable,
|
|
1313
1231
|
selectable: radioable ? false : selectable,
|
|
1314
|
-
switcherIcon:
|
|
1315
|
-
return renderSwitcherIcon(prefixCls, _switcherIcon, showLine, nodeProps);
|
|
1316
|
-
}
|
|
1232
|
+
switcherIcon: nodeProps => renderSwitcherIcon(prefixCls, switcherIcon, showLine, nodeProps)
|
|
1317
1233
|
}, getAdditionProps(), {
|
|
1318
1234
|
treeData: treeData,
|
|
1319
1235
|
checkedKeys: tCheckedKeys,
|
|
@@ -1321,9 +1237,9 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
1321
1237
|
loadedKeys: inLoadedKeys,
|
|
1322
1238
|
onCheck: internalCheck,
|
|
1323
1239
|
onExpand: internalExpand,
|
|
1324
|
-
icon:
|
|
1325
|
-
if (
|
|
1326
|
-
return typeof
|
|
1240
|
+
icon: nodeProps => {
|
|
1241
|
+
if (icon) {
|
|
1242
|
+
return typeof icon === 'function' ? icon(nodeProps) : icon;
|
|
1327
1243
|
}
|
|
1328
1244
|
if (nodeProps.checkable === false) return null;
|
|
1329
1245
|
if (!radioable) {
|
|
@@ -1334,7 +1250,7 @@ var Tree = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
1334
1250
|
}));
|
|
1335
1251
|
}, [treeData, inCheckedKeys, inExpandedKeysKeys, newProps.selectedKeys, inLoadedKeys]);
|
|
1336
1252
|
//OperateBar render
|
|
1337
|
-
|
|
1253
|
+
const renderOperateBar = () => {
|
|
1338
1254
|
return !!showActions ? jsx(OperateBar, {
|
|
1339
1255
|
opRef: opRef,
|
|
1340
1256
|
mouseInRef: mouseInSectorRef,
|