vap1 0.0.7 → 0.0.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/components/SearchBar/ActionButtons.d.ts +2 -1
- package/components/SearchBar/ActionButtons.js +2 -2
- package/components/SearchBar/ByKeyword.js +1 -1
- package/components/SearchBar/SearchTags.js +2 -2
- package/components/Tables/ApiTableModal.d.ts +2 -2
- package/components/Tables/Components/Actions.js +3 -3
- package/components/Tables/TopTable.js +3 -3
- package/components/Tables/TopTableModal.d.ts +2 -2
- package/components/Tables/VTable.js +4 -1
- package/components/Tables/index.d.ts +1 -1
- package/components/TreeSelect/BaseTreeSelect.js +3 -3
- package/components/TreeSelect/DTreeSelect.js +2 -2
- package/components/TreeSelect/FTreeSelect.js +2 -2
- package/components/TreeSelect/STreeSelect.js +2 -2
- package/components/Trees/ActionTree.d.ts +3 -1
- package/components/Trees/ActionTree.js +77 -20
- package/components/Trees/BaseTree.d.ts +8 -3
- package/components/Trees/BaseTree.js +12 -3
- package/components/Trees/FTree.js +0 -1
- package/components/Trees/STree.js +6 -7
- package/components/Trees/index.d.ts +6 -1
- package/components/UForm/UForm.d.ts +2 -2
- package/components/UForm/UForm.js +44 -12
- package/components/UForm/UFormModal.js +6 -3
- package/components/UForm/UInfoModal.js +3 -0
- package/components/UForm/UModal.js +10 -5
- package/components/UForm/index.d.ts +8 -3
- package/components/Upload/UploadModal.d.ts +2 -2
- package/components/Upload/UploadModal.js +5 -1
- package/components/Upload/useUpload.d.ts +2 -2
- package/components/_adapt/Alert.d.ts +3 -3
- package/components/_adapt/Breadcrumb.d.ts +15 -0
- package/components/_adapt/Breadcrumb.js +18 -0
- package/components/_adapt/Button.d.ts +5 -5
- package/components/_adapt/Button.js +2 -0
- package/components/_adapt/Collapse.d.ts +7 -7
- package/components/_adapt/ConfigProvider.d.ts +6 -0
- package/components/_adapt/ConfigProvider.js +10 -0
- package/components/_adapt/Drawer.d.ts +8 -3
- package/components/_adapt/Drawer.js +5 -1
- package/components/_adapt/Dropdown.d.ts +6 -6
- package/components/_adapt/FloatButton.d.ts +3 -3
- package/components/_adapt/FloatButton.js +1 -0
- package/components/_adapt/Form.d.ts +14 -0
- package/components/_adapt/Form.js +48 -0
- package/components/_adapt/Input.d.ts +17 -0
- package/components/_adapt/Input.js +43 -0
- package/components/_adapt/InputNumber.d.ts +8 -0
- package/components/_adapt/InputNumber.js +60 -0
- package/components/_adapt/Menu.d.ts +8 -7
- package/components/_adapt/Menu.js +12 -20
- package/components/_adapt/Modal.d.ts +9 -7
- package/components/_adapt/Modal.js +12 -20
- package/components/_adapt/Pagination.d.ts +9 -0
- package/components/_adapt/Pagination.js +10 -0
- package/components/_adapt/Popconfirm.d.ts +3 -3
- package/components/_adapt/Popover.d.ts +3 -3
- package/components/_adapt/Progress.d.ts +3 -3
- package/components/_adapt/Radio.d.ts +16 -0
- package/components/_adapt/Radio.js +24 -0
- package/components/_adapt/Select.d.ts +15 -8
- package/components/_adapt/Select.js +134 -13
- package/components/_adapt/Slider.d.ts +31 -0
- package/components/_adapt/Slider.js +5 -0
- package/components/_adapt/Table.d.ts +26 -0
- package/components/_adapt/Table.js +43 -0
- package/components/_adapt/Tabs.d.ts +4 -4
- package/components/_adapt/Tag.d.ts +9 -7
- package/components/_adapt/Tag.js +4 -3
- package/components/_adapt/Tooltip.d.ts +3 -3
- package/components/_adapt/TreeSelect.d.ts +13 -0
- package/components/_adapt/TreeSelect.js +46 -0
- package/components/_adapt/_Antd5.d.ts +11 -0
- package/components/_adapt/_Antd5.js +5 -0
- package/components/_adapt/notification.d.ts +22 -0
- package/components/_adapt/notification.js +5 -0
- package/components/_adapt/todo/Image.d.ts +1 -1
- package/components/_adapt/todo/NotEffectOnV15.d.ts +1 -0
- package/components/_adapt/todo/NotEffectOnV15.js +5 -0
- package/components/_adapt/todo/Segmented.d.ts +1 -1
- package/components/_adapt/utils.d.ts +1 -1
- package/components/_adapt/utils.js +1 -0
- package/components/_common/AutoComplete.js +1 -1
- package/components/_common/Upagination.d.ts +1 -1
- package/components/_common/Upagination.js +2 -2
- package/components/_setup/UForm/UFormJSON.js +5 -3
- package/components/_setup/UForm/UFormSelect.js +10 -7
- package/components/_setup/UForm/UFormTree.js +1 -1
- package/deps/SpringCloud.d.ts +1 -1
- package/deps/_editor/tools/_TxtButton.js +5 -4
- package/hooks/useAjaxQuery.d.ts +5 -8
- package/hooks/useAjaxQuery.js +21 -25
- package/index.d.ts +45 -31
- package/index.js +23 -13
- package/package.json +1 -1
- package/utils/Const.d.ts +1 -1
- package/utils/CustomApp.d.ts +3 -3
- package/utils/Global.js +39 -0
- package/utils/PageUtil.d.ts +5 -1
- package/utils/PageUtil.js +15 -1
- package/utils/Renders/StatusRender.d.ts +1 -1
- package/utils/TreeUtil.d.ts +9 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { ButtonType
|
|
2
|
+
import type { ButtonType } from '../_adapt/_Antd5';
|
|
3
|
+
import type { ButtonProps } from '../_adapt/Button';
|
|
3
4
|
import type { ButtonSize } from 'antd/es/button';
|
|
4
5
|
export type ActButton = {
|
|
5
6
|
/**
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.ActionButtons = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
-
const
|
|
9
|
+
const Popconfirm_1 = require("../_adapt/Popconfirm");
|
|
10
10
|
const Icon_1 = require("../_adapt/Icon");
|
|
11
11
|
const Button_1 = require("../_adapt/Button");
|
|
12
12
|
const Dropdown_1 = require("../_adapt/Dropdown");
|
|
@@ -64,7 +64,7 @@ const ActionButton = (props) => {
|
|
|
64
64
|
if (props.danger)
|
|
65
65
|
btnParam.danger = true;
|
|
66
66
|
if (props.confirm && props.disabled !== true) {
|
|
67
|
-
return react_1.default.createElement(
|
|
67
|
+
return react_1.default.createElement(Popconfirm_1.Popconfirm, { trigger: "click", placement: "bottomLeft", onConfirm: props.onClick, title: lodash_1.default.isString(props.confirm) ? props.confirm : props.confirm() },
|
|
68
68
|
react_1.default.createElement(Button_1.Button, Object.assign({}, props.config, btnParam), props.label));
|
|
69
69
|
}
|
|
70
70
|
btnParam.onClick = (evt) => utils_1.PageUtil.stopEvent(evt, props.onClick);
|
|
@@ -27,7 +27,7 @@ const SearchBarByKeyword = (props) => {
|
|
|
27
27
|
react_1.default.createElement("div", { className: 'c-searchbar' },
|
|
28
28
|
react_1.default.createElement(ByField_1.SearchBarByField, Object.assign({}, props, {
|
|
29
29
|
// @ts-ignore
|
|
30
|
-
__innerExpand: true, __innerOutside: true })))),
|
|
30
|
+
__innerExpand: true, __innerOutside: true })))), overlayClassName: 'c-searchbar-keyword-more', getPopupContainer: () => document.getElementById('vap-app-content') },
|
|
31
31
|
react_1.default.createElement("span", { className: 'vicon vicon-menu', title: utils_1.i18n.txt(Const_1.V.INPUT_SEARCH_ADVANCE) }));
|
|
32
32
|
}
|
|
33
33
|
return react_1.default.createElement(antd_1.Input.Search, Object.assign({}, inputProps, { onSearch: keyword => props.onSearch({ keyword_: keyword }), enterButton: utils_1.i18n.txt(Const_1.V.BTN_SEARCH) }));
|
|
@@ -5,12 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.SearchTags = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const
|
|
8
|
+
const Tag_1 = require("../_adapt/Tag");
|
|
9
9
|
const SearchTags = () => {
|
|
10
10
|
return react_1.default.createElement("div", null,
|
|
11
11
|
react_1.default.createElement("h1", null,
|
|
12
12
|
"\u5168\u90E8\u7ED3\u679C > ",
|
|
13
|
-
react_1.default.createElement(
|
|
13
|
+
react_1.default.createElement(Tag_1.Tag, { closable: true, onClose: () => { } }, "aa")),
|
|
14
14
|
react_1.default.createElement("div", null,
|
|
15
15
|
react_1.default.createElement("label", { htmlFor: 'p' }),
|
|
16
16
|
react_1.default.createElement("p", null)));
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type {
|
|
2
|
+
import type { ModalProps } from '../_adapt/Modal';
|
|
3
3
|
import type { ApiTableProps } from './ApiTable';
|
|
4
4
|
import type { ApiModel } from '../../hooks/_list';
|
|
5
|
-
export type ApiTableModalProps = ApiTableProps &
|
|
5
|
+
export type ApiTableModalProps = ApiTableProps & ModalProps;
|
|
6
6
|
export declare const ApiTableModal: React.ForwardRefExoticComponent<import(".").TableDefine & {
|
|
7
7
|
mode?: import("../Box/Box").BoxMode;
|
|
8
8
|
columns: import(".").TableColumn[];
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.COL_OPERACTION = exports.ACTION = exports.DELETE = exports.EDIT = exports.INFO = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
-
const
|
|
9
|
+
const Popconfirm_1 = require("../../_adapt/Popconfirm");
|
|
10
10
|
const Icon_1 = require("../../_adapt/Icon");
|
|
11
11
|
const utils_1 = require("../../../utils");
|
|
12
12
|
const Const_1 = require("../../_setup/Const");
|
|
@@ -38,7 +38,7 @@ const DELETE = props => {
|
|
|
38
38
|
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
39
39
|
const title = utils_1.i18n.getText(props.ik, props.title, Const_1.V.ACT_DELETE);
|
|
40
40
|
let popTitle = utils_1.i18n.txt(Const_1.V.ACT_DELETE_CONFIRM, props.name || '');
|
|
41
|
-
return react_1.default.createElement(
|
|
41
|
+
return react_1.default.createElement(Popconfirm_1.Popconfirm, { onConfirm: e => utils_1.PageUtil.stopEvent(e, () => props.onClick()), placement: "right", title: react_1.default.createElement("span", null, popTitle), overlayClassName: 'c-table-action-confirm' },
|
|
42
42
|
react_1.default.createElement("span", { className: DEFAULT_CLASS.DELETE, title: `${title} ${props.name || ''}` },
|
|
43
43
|
react_1.default.createElement(Icon_1.Icon, { type: 'delete' }),
|
|
44
44
|
react_1.default.createElement("span", null, title)));
|
|
@@ -54,7 +54,7 @@ const ACTION = props => {
|
|
|
54
54
|
props.icon && react_1.default.createElement(Icon_1.Icon, { type: props.icon }),
|
|
55
55
|
react_1.default.createElement("span", null, title));
|
|
56
56
|
}
|
|
57
|
-
return react_1.default.createElement(
|
|
57
|
+
return react_1.default.createElement(Popconfirm_1.Popconfirm, { onConfirm: () => props.onClick(), title: props.confrim, placement: "right", overlayClassName: 'c-table-action-confirm' },
|
|
58
58
|
react_1.default.createElement("span", { className: className, title: props.name || undefined, onClick: utils_1.PageUtil.stopEvent },
|
|
59
59
|
props.icon && react_1.default.createElement(Icon_1.Icon, { type: props.icon }),
|
|
60
60
|
react_1.default.createElement("span", null, title)));
|
|
@@ -29,7 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.TopTable = void 0;
|
|
30
30
|
const lodash_1 = __importDefault(require("lodash"));
|
|
31
31
|
const react_1 = __importStar(require("react"));
|
|
32
|
-
const
|
|
32
|
+
const Table_1 = require("../_adapt/Table");
|
|
33
33
|
const utils_1 = require("../../utils");
|
|
34
34
|
const Util_1 = require("./Util");
|
|
35
35
|
const VTable_1 = require("./VTable");
|
|
@@ -127,7 +127,7 @@ const TopTable = props => {
|
|
|
127
127
|
tableLayout: 'fixed',
|
|
128
128
|
rowKey,
|
|
129
129
|
size: utils_1.GLOBAL.CONFIG.TABLE.SIZE,
|
|
130
|
-
|
|
130
|
+
showSorterTooltip: false,
|
|
131
131
|
pagination: false,
|
|
132
132
|
};
|
|
133
133
|
if (lodash_1.default.isFunction(props.onRowSelect)) {
|
|
@@ -137,7 +137,7 @@ const TopTable = props => {
|
|
|
137
137
|
}
|
|
138
138
|
});
|
|
139
139
|
}
|
|
140
|
-
return react_1.default.createElement(
|
|
140
|
+
return react_1.default.createElement(Table_1.Table, Object.assign({}, tableProps, props, {
|
|
141
141
|
// ref={tableRef}
|
|
142
142
|
rowClassName: (record, i) => {
|
|
143
143
|
let clazz = [];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type {
|
|
2
|
+
import type { ModalProps } from '../_adapt/Modal';
|
|
3
3
|
import type { TopTableProps } from './TopTable';
|
|
4
|
-
export type TopTableModalProps = TopTableProps &
|
|
4
|
+
export type TopTableModalProps = TopTableProps & ModalProps;
|
|
5
5
|
export declare const TopTableModal: React.FC<TopTableModalProps>;
|
|
@@ -29,6 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.VTable = exports.getHeightByTagName = void 0;
|
|
30
30
|
const lodash_1 = __importDefault(require("lodash"));
|
|
31
31
|
const react_1 = __importStar(require("react"));
|
|
32
|
+
const Table_1 = require("../_adapt/Table");
|
|
32
33
|
const antd_1 = require("antd");
|
|
33
34
|
const ActionBar_1 = require("./Components/ActionBar");
|
|
34
35
|
const utils_1 = require("../../utils");
|
|
@@ -178,7 +179,9 @@ const _VTable = react_1.default.forwardRef((props, ref) => {
|
|
|
178
179
|
},
|
|
179
180
|
};
|
|
180
181
|
}
|
|
181
|
-
return react_1.default.createElement(
|
|
182
|
+
return react_1.default.createElement(Table_1.Table, Object.assign({ rowKey: record => record[props.rowKey || rowKey],
|
|
183
|
+
// scroll={scroll}
|
|
184
|
+
// tableLayout="fixed"
|
|
182
185
|
// showSorterTooltip={false}
|
|
183
186
|
size: utils_1.GLOBAL.CONFIG.TABLE.SIZE }, props, tableProps, { className: utils_1.StringUtil.className(['c-table'], props.className), pagination: false, columns: columns, locale: { emptyText: react_1.default.createElement(antd_1.Empty, { style: { marginTop: 24 } }) }, dataSource: list, loading: isQuerying, onChange: (x, y, field) => {
|
|
184
187
|
if (field.column) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { TableDefined } from './Components';
|
|
3
3
|
import type { ForwardRefExoticComponent, ExoticComponent } from 'react';
|
|
4
|
-
import type { TableProps } from '
|
|
4
|
+
import type { TableProps } from '../_adapt/Table';
|
|
5
5
|
import type { ColumnProps } from 'antd/es/table/interface';
|
|
6
6
|
import type { SearchBarProps } from '../SearchBar/index';
|
|
7
7
|
import type { TableActionButton } from './Components/ActionBar';
|
|
@@ -38,7 +38,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
38
38
|
exports.getData = exports.renderRoot = exports.getNodeParam = exports.BaseTreeSelect = exports.useBaseTree = void 0;
|
|
39
39
|
const lodash_1 = __importDefault(require("lodash"));
|
|
40
40
|
const react_1 = __importStar(require("react"));
|
|
41
|
-
const
|
|
41
|
+
const TreeSelect_1 = require("../_adapt/TreeSelect");
|
|
42
42
|
const utils_1 = require("../../utils");
|
|
43
43
|
const hooks_1 = require("../../hooks");
|
|
44
44
|
const _Support_1 = require("../../utils/_Support");
|
|
@@ -154,13 +154,13 @@ exports.getNodeParam = getNodeParam;
|
|
|
154
154
|
const renderNode = (node, state, props) => {
|
|
155
155
|
const param = (0, exports.getNodeParam)(node, state, props.disabledNode);
|
|
156
156
|
if (lodash_1.default.isArray(node.children) && node.children.length) {
|
|
157
|
-
return react_1.default.createElement(
|
|
157
|
+
return react_1.default.createElement(TreeSelect_1.TreeSelect.TreeNode, Object.assign({}, param, { isLeaf: false }), renderNodes(node.children, state, props));
|
|
158
158
|
}
|
|
159
159
|
let isLeaf = true;
|
|
160
160
|
if (props.checkField) {
|
|
161
161
|
isLeaf = !node[props.checkField];
|
|
162
162
|
}
|
|
163
|
-
return react_1.default.createElement(
|
|
163
|
+
return react_1.default.createElement(TreeSelect_1.TreeSelect.TreeNode, Object.assign({}, param, { isLeaf: isLeaf }));
|
|
164
164
|
};
|
|
165
165
|
const renderNodes = (data, state, props) => data.map((item) => renderNode(item, state, props));
|
|
166
166
|
const renderRoot = (props, state) => renderNodes(state.treeData, state, props);
|
|
@@ -14,7 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.DTreeSelect = void 0;
|
|
16
16
|
const react_1 = __importDefault(require("react"));
|
|
17
|
-
const
|
|
17
|
+
const TreeSelect_1 = require("../_adapt/TreeSelect");
|
|
18
18
|
const lodash_1 = __importDefault(require("lodash"));
|
|
19
19
|
const BaseTreeSelect_1 = require("./BaseTreeSelect");
|
|
20
20
|
const hooks_1 = require("../../hooks");
|
|
@@ -59,7 +59,7 @@ const _DTreeSelect = (props) => {
|
|
|
59
59
|
r(undefined);
|
|
60
60
|
}));
|
|
61
61
|
});
|
|
62
|
-
return react_1.default.createElement(
|
|
62
|
+
return react_1.default.createElement(TreeSelect_1.TreeSelect, Object.assign({}, treeState.baseProps, treeProps, { disabled: props.disabled, loadData: loadData, onChange: onChange, onSelect: onSelect }), (0, BaseTreeSelect_1.renderRoot)(props, treeState));
|
|
63
63
|
};
|
|
64
64
|
const DTreeSelect = (props) => react_1.default.createElement(BaseTreeSelect_1.BaseTreeSelect, Object.assign({}, props),
|
|
65
65
|
react_1.default.createElement(_DTreeSelect, Object.assign({}, props)));
|
|
@@ -14,7 +14,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.FTreeSelect = void 0;
|
|
16
16
|
const react_1 = __importDefault(require("react"));
|
|
17
|
-
const
|
|
17
|
+
const TreeSelect_1 = require("../_adapt/TreeSelect");
|
|
18
18
|
const BaseTreeSelect_1 = require("./BaseTreeSelect");
|
|
19
19
|
const hooks_1 = require("../../hooks");
|
|
20
20
|
const _FTreeSelect = (props) => {
|
|
@@ -32,7 +32,7 @@ const _FTreeSelect = (props) => {
|
|
|
32
32
|
// 如果根节点只有一个,则自动展开这个根结点
|
|
33
33
|
treeProps.treeDefaultExpandedKeys = [treeState.treeData[0][treeState.keyField]];
|
|
34
34
|
}
|
|
35
|
-
return react_1.default.createElement(
|
|
35
|
+
return react_1.default.createElement(TreeSelect_1.TreeSelect, Object.assign({}, treeState.baseProps, treeProps, { disabled: props.disabled, onChange: onChange, onSelect: onSelect }), (0, BaseTreeSelect_1.renderRoot)(props, treeState));
|
|
36
36
|
};
|
|
37
37
|
const FTreeSelect = (props) => react_1.default.createElement(BaseTreeSelect_1.BaseTreeSelect, Object.assign({}, props),
|
|
38
38
|
react_1.default.createElement(_FTreeSelect, Object.assign({}, props)));
|
|
@@ -25,7 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.STreeSelect = void 0;
|
|
27
27
|
const react_1 = __importStar(require("react"));
|
|
28
|
-
const
|
|
28
|
+
const TreeSelect_1 = require("../_adapt/TreeSelect");
|
|
29
29
|
const BaseTreeSelect_1 = require("./BaseTreeSelect");
|
|
30
30
|
const TreeUtil_1 = require("../../utils/TreeUtil");
|
|
31
31
|
const utils_1 = require("../../utils");
|
|
@@ -45,7 +45,7 @@ const _STreeSelect = (props) => {
|
|
|
45
45
|
}, []);
|
|
46
46
|
if (!init)
|
|
47
47
|
return utils_1.Const.NONE;
|
|
48
|
-
return react_1.default.createElement(
|
|
48
|
+
return react_1.default.createElement(TreeSelect_1.TreeSelect, Object.assign({}, treeState.baseProps, { disabled: props.disabled, onChange: onChange, onSelect: onSelect }), (0, BaseTreeSelect_1.renderRoot)(props, treeState));
|
|
49
49
|
};
|
|
50
50
|
const STreeSelect = (props) => react_1.default.createElement(BaseTreeSelect_1.BaseTreeSelect, Object.assign({}, props),
|
|
51
51
|
react_1.default.createElement(_STreeSelect, Object.assign({}, props)));
|
|
@@ -45,7 +45,9 @@ export declare const ActionTree: React.ForwardRefExoticComponent<import("../../u
|
|
|
45
45
|
defaultExpandAll?: boolean;
|
|
46
46
|
mustSelect?: boolean;
|
|
47
47
|
disabled?: boolean;
|
|
48
|
-
disabledNode?: (node: PlainObject) => boolean;
|
|
48
|
+
disabledNode?: (node: PlainObject) => boolean; /**
|
|
49
|
+
* 清理缓存方法
|
|
50
|
+
*/
|
|
49
51
|
onSelect?: (key: Key, node: PlainObject, parentNode: PlainObject, crumb: PlainObject[], pos: number[]) => void;
|
|
50
52
|
searchValue?: string;
|
|
51
53
|
} & ActionProps & CacheTree & React.RefAttributes<ActionRef>>;
|
|
@@ -81,6 +81,7 @@ const _Actiontree = (0, react_1.forwardRef)((props, ref) => {
|
|
|
81
81
|
canUpdate: false,
|
|
82
82
|
canUpdateRoot: false,
|
|
83
83
|
canDelete: false,
|
|
84
|
+
canDeleteRoot: false,
|
|
84
85
|
canSort: false,
|
|
85
86
|
notCache: false,
|
|
86
87
|
};
|
|
@@ -99,8 +100,11 @@ const _Actiontree = (0, react_1.forwardRef)((props, ref) => {
|
|
|
99
100
|
if (props.canUpdateRoot)
|
|
100
101
|
action.canUpdateRoot = true;
|
|
101
102
|
}
|
|
102
|
-
if (props.canDelete)
|
|
103
|
+
if (props.canDelete) {
|
|
103
104
|
action.canDelete = true;
|
|
105
|
+
if (props.canDeleteRoot)
|
|
106
|
+
action.canDeleteRoot = true;
|
|
107
|
+
}
|
|
104
108
|
if (props.canSort && treeState.sortField)
|
|
105
109
|
action.canSort = true;
|
|
106
110
|
}
|
|
@@ -393,9 +397,8 @@ const _Actiontree = (0, react_1.forwardRef)((props, ref) => {
|
|
|
393
397
|
let rootPath = '';
|
|
394
398
|
let arr;
|
|
395
399
|
const { idForApiField } = props;
|
|
396
|
-
const { keyField, parentField, titleField, treeData } = treeState;
|
|
400
|
+
const { keyField, parentField, titleField, treeData, } = treeState;
|
|
397
401
|
const { api, objectName } = action;
|
|
398
|
-
const idField = idForApiField || keyField;
|
|
399
402
|
if (root.length == 0) {
|
|
400
403
|
arr = lodash_1.default.concat([], treeData);
|
|
401
404
|
}
|
|
@@ -404,8 +407,7 @@ const _Actiontree = (0, react_1.forwardRef)((props, ref) => {
|
|
|
404
407
|
rootPath = nodePath + '.children';
|
|
405
408
|
arr = lodash_1.default.concat([], lodash_1.default.get(treeData, rootPath));
|
|
406
409
|
}
|
|
407
|
-
const
|
|
408
|
-
const resp = yield utils_1.Ajax.DELETE(api, { ids: delId });
|
|
410
|
+
const resp = yield utils_1.Ajax.DELETE(api, { ids: node[idForApiField || keyField] });
|
|
409
411
|
if (resp.code != '0') {
|
|
410
412
|
antd_1.message.error(txt(Const_1.V.ACT_DELETE_FAIL_NAMED, `${objectName} : ${node[titleField]}`));
|
|
411
413
|
return;
|
|
@@ -413,10 +415,10 @@ const _Actiontree = (0, react_1.forwardRef)((props, ref) => {
|
|
|
413
415
|
props.clearCache(node[parentField]);
|
|
414
416
|
let tree = lodash_1.default.concat([], treeData);
|
|
415
417
|
if (rootPath) {
|
|
416
|
-
lodash_1.default.set(tree, rootPath, utils_1.ArrayUtil.del(lodash_1.default.get(tree, rootPath),
|
|
418
|
+
lodash_1.default.set(tree, rootPath, utils_1.ArrayUtil.del(lodash_1.default.get(tree, rootPath), node[keyField], keyField));
|
|
417
419
|
}
|
|
418
420
|
else {
|
|
419
|
-
tree = utils_1.ArrayUtil.del(tree,
|
|
421
|
+
tree = utils_1.ArrayUtil.del(tree, node[keyField], keyField);
|
|
420
422
|
}
|
|
421
423
|
setTreeData(tree);
|
|
422
424
|
antd_1.message.success(txt(Const_1.V.ACT_DELETE_SUCCESS_NAMED, `${objectName} : ${node[titleField]}`));
|
|
@@ -501,12 +503,64 @@ const _Actiontree = (0, react_1.forwardRef)((props, ref) => {
|
|
|
501
503
|
setTreeData(tree);
|
|
502
504
|
antd_1.message.success(txt(Const_1.V.TREE_SORT_SUCCESS));
|
|
503
505
|
});
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
506
|
+
const ADD_TITLE = () => {
|
|
507
|
+
// console.log(modals.modalState)
|
|
508
|
+
const { pos, node } = modals.modalState.extra || {};
|
|
509
|
+
if (!action.canSort) {
|
|
510
|
+
if (pos == INSER_POS.INNER) {
|
|
511
|
+
return react_1.default.createElement("span", null,
|
|
512
|
+
"\u6DFB\u52A0 ",
|
|
513
|
+
react_1.default.createElement("b", null, action.objectName),
|
|
514
|
+
" (\u4ECE\u5C5E\u4E8E ",
|
|
515
|
+
react_1.default.createElement("b", null, node[treeState.titleField]),
|
|
516
|
+
") ");
|
|
517
|
+
}
|
|
518
|
+
return react_1.default.createElement("span", null,
|
|
519
|
+
"\u5728\u6839\u8282\u70B9\u6DFB\u52A0 ",
|
|
520
|
+
react_1.default.createElement("b", null, action.objectName));
|
|
521
|
+
}
|
|
522
|
+
switch (pos) {
|
|
523
|
+
case INSER_POS.TOP:
|
|
524
|
+
return react_1.default.createElement("span", null,
|
|
525
|
+
"\u5728\u9876\u90E8\u6DFB\u52A0 ",
|
|
526
|
+
react_1.default.createElement("b", null, action.objectName));
|
|
527
|
+
case INSER_POS.BOTTOM:
|
|
528
|
+
return react_1.default.createElement("span", null,
|
|
529
|
+
"\u5728\u5E95\u90E8\u6DFB\u52A0 ",
|
|
530
|
+
react_1.default.createElement("b", null, action.objectName));
|
|
531
|
+
case INSER_POS.INNER:
|
|
532
|
+
return react_1.default.createElement("span", null,
|
|
533
|
+
"\u6DFB\u52A0 ",
|
|
534
|
+
react_1.default.createElement("b", null, action.objectName),
|
|
535
|
+
" (\u4ECE\u5C5E\u4E8E ",
|
|
536
|
+
react_1.default.createElement("b", null, node[treeState.titleField]),
|
|
537
|
+
") ");
|
|
538
|
+
case INSER_POS.BEFORE:
|
|
539
|
+
return react_1.default.createElement("span", null,
|
|
540
|
+
"\u5728 ",
|
|
541
|
+
react_1.default.createElement("b", null, node[treeState.titleField]),
|
|
542
|
+
" \u524D\u9762\u6DFB\u52A0 ",
|
|
543
|
+
react_1.default.createElement("b", null, action.objectName));
|
|
544
|
+
case INSER_POS.AFTER:
|
|
545
|
+
return react_1.default.createElement("span", null,
|
|
546
|
+
"\u5728 ",
|
|
547
|
+
react_1.default.createElement("b", null, node[treeState.titleField]),
|
|
548
|
+
" \u540E\u9762\u6DFB\u52A0 ",
|
|
549
|
+
react_1.default.createElement("b", null, action.objectName));
|
|
550
|
+
default:
|
|
551
|
+
return react_1.default.createElement("span", null,
|
|
552
|
+
"\u6DFB\u52A0 ",
|
|
553
|
+
react_1.default.createElement("b", null, action.objectName));
|
|
554
|
+
}
|
|
555
|
+
};
|
|
556
|
+
return react_1.default.createElement(ActionTreeContext.Provider, { value: { action, showAdd, showEdit, del, up, down, } },
|
|
508
557
|
props.children,
|
|
509
|
-
react_1.default.createElement(UFormModal_1.UFormModal, Object.assign({
|
|
558
|
+
react_1.default.createElement(UFormModal_1.UFormModal, Object.assign({ title: modals.modalState.isEdit ? react_1.default.createElement("span", null,
|
|
559
|
+
" ",
|
|
560
|
+
txt(Const_1.V.ACT_UPDATE),
|
|
561
|
+
action.objectName,
|
|
562
|
+
" : ",
|
|
563
|
+
react_1.default.createElement("b", null, treeState.titleField)) : ADD_TITLE() }, modals.modalState.modalProps, { fields: FIELDS.current, default: getDefault(), onOk: data => {
|
|
510
564
|
modals.hide();
|
|
511
565
|
if (modals.modalState.isEdit) {
|
|
512
566
|
update(data, modals.modalState.extra.position);
|
|
@@ -521,14 +575,17 @@ const _Actiontree = (0, react_1.forwardRef)((props, ref) => {
|
|
|
521
575
|
*/
|
|
522
576
|
exports.ActionTree = (0, react_1.forwardRef)((props, ref) => react_1.default.createElement(BaseTree_1.BaseTree, Object.assign({}, props),
|
|
523
577
|
react_1.default.createElement(_Actiontree, Object.assign({}, props, { ref: ref }))));
|
|
524
|
-
const getActionParam = (node, position, state, search, disabledNode, context, parentLen) => {
|
|
525
|
-
const param = (0, BaseTree_1.getNodeParam)(node, position, state, search, disabledNode);
|
|
578
|
+
const getActionParam = (node, position, state, search, disabledNode, folderChecker, context, parentLen) => {
|
|
579
|
+
const param = (0, BaseTree_1.getNodeParam)(node, position, state, search, disabledNode, folderChecker);
|
|
526
580
|
const isRoot = position.length == 1;
|
|
527
581
|
if (param.disabled)
|
|
528
582
|
return param;
|
|
529
|
-
const { action: { canAdd, canAddRoot, canUpdate, canUpdateRoot, canDelete, canSort } } = context;
|
|
583
|
+
const { action: { canAdd, canAddRoot, canUpdate, canUpdateRoot, canDelete, canDeleteRoot, canSort } } = context;
|
|
584
|
+
if (param.selectable === false && (canAdd || canDelete || canSort || canUpdate)) {
|
|
585
|
+
param.selectable = true;
|
|
586
|
+
}
|
|
530
587
|
const actions = [];
|
|
531
|
-
if (canAdd) {
|
|
588
|
+
if (canAdd && (!lodash_1.default.isFunction(folderChecker) || folderChecker(node))) {
|
|
532
589
|
if (!canSort || !canAddRoot && isRoot) {
|
|
533
590
|
actions.push(react_1.default.createElement(Dropdown_1.Dropdown, { trigger: ["click"], menu: {
|
|
534
591
|
items: [
|
|
@@ -560,7 +617,7 @@ const getActionParam = (node, position, state, search, disabledNode, context, pa
|
|
|
560
617
|
actions.push(react_1.default.createElement(Icon_1.Icon, { type: "arrow-down", title: txt(Const_1.V.ACT_UPDATE_TITLE_NAMED, node[state.titleField]), onClick: () => context.down(node, position) }));
|
|
561
618
|
}
|
|
562
619
|
}
|
|
563
|
-
if (!isRoot
|
|
620
|
+
if (canDelete && (!isRoot || canDeleteRoot)) {
|
|
564
621
|
actions.push(react_1.default.createElement(Popconfirm_1.Popconfirm, { onConfirm: () => context.del(node, position), title: txt(Const_1.V.ACT_DELETE_CONFIRM, node[state.titleField]) },
|
|
565
622
|
react_1.default.createElement("span", { onClick: (e) => utils_1.PageUtil.stopEvent(e), className: "vicon vicon-delete vicon-clickable", title: txt(Const_1.V.ACT_DELETE) + ' ' + node[state.titleField] })));
|
|
566
623
|
}
|
|
@@ -575,7 +632,7 @@ const getActionParam = (node, position, state, search, disabledNode, context, pa
|
|
|
575
632
|
const renderNode = (props, node, position, state, search, context, parentLen) => {
|
|
576
633
|
if (search.keyword && !search.match.has(position.join('-')))
|
|
577
634
|
return utils_1.Const.NONE;
|
|
578
|
-
const param = getActionParam(node, position, state, search, props.disabledNode, context, parentLen);
|
|
635
|
+
const param = getActionParam(node, position, state, search, props.disabledNode, props.folderChecker, context, parentLen);
|
|
579
636
|
if (lodash_1.default.isArray(node.children) && node.children.length) {
|
|
580
637
|
return react_1.default.createElement(antd_1.Tree.TreeNode, Object.assign({ isLeaf: false }, param), renderNodes(props, state, node.children, position, search, context));
|
|
581
638
|
}
|
|
@@ -590,7 +647,7 @@ const renderNode = (props, node, position, state, search, context, parentLen) =>
|
|
|
590
647
|
};
|
|
591
648
|
const renderNodes = (props, state, data, position, search, context) => data.map((item, idx) => renderNode(props, item, [...position, idx], state, search, context, data.length));
|
|
592
649
|
const renderRoot = (props, state, context) => {
|
|
593
|
-
const { search, treeData } = state;
|
|
650
|
+
const { search, treeData, folderChecker } = state;
|
|
594
651
|
if (search.keyword) {
|
|
595
652
|
if (search.match.size == 0)
|
|
596
653
|
return react_1.default.createElement(antd_1.Tree.TreeNode, { isLeaf: true, title: react_1.default.createElement(antd_1.Empty, { description: txt(Const_1.V.TXT_FIND_NULL, search.word) }), selectable: false, className: "c-tree-empty" });
|
|
@@ -616,7 +673,7 @@ const renderRoot = (props, state, context) => {
|
|
|
616
673
|
else if (canAdd && treeData.length == 1) {
|
|
617
674
|
// 说明 兼容树业务:有些项目技术上使用一个根节点,
|
|
618
675
|
// 当根节点只有一个时,则在业务上认为此节点为固定根节点
|
|
619
|
-
const param = getActionParam(treeData[0], [0], state, search, props.disabledNode, context, 1);
|
|
676
|
+
const param = getActionParam(treeData[0], [0], state, search, props.disabledNode, props.folderChecker, context, 1);
|
|
620
677
|
const childs = (treeData[0].children || []);
|
|
621
678
|
return react_1.default.createElement(antd_1.Tree.TreeNode, Object.assign({}, param),
|
|
622
679
|
react_1.default.createElement(antd_1.Tree.TreeNode, { isLeaf: true, className: 'c-tree-add-root', selectable: false, checkable: false, selected: false, title: react_1.default.createElement("a", { onClick: evt => {
|
|
@@ -4,7 +4,7 @@ import type { BaseTreeOpts, SearchResult, TreeNodeData } from '../../utils/TreeU
|
|
|
4
4
|
import type { AntTreeNodeProps, TreeProps } from 'antd/es/tree';
|
|
5
5
|
import type { PropsWithChildren, ReactNode } from 'react';
|
|
6
6
|
import type { BaseTreeProps } from './index';
|
|
7
|
-
import type { PlainObject } from '../../basetype';
|
|
7
|
+
import type { Key, PlainObject } from '../../basetype';
|
|
8
8
|
export type BaseTreeState = Required<BaseTreeOpts> & {
|
|
9
9
|
className: string;
|
|
10
10
|
baseProps: TreeProps;
|
|
@@ -19,13 +19,18 @@ export type BaseTreeState = Required<BaseTreeOpts> & {
|
|
|
19
19
|
field: string;
|
|
20
20
|
}[];
|
|
21
21
|
};
|
|
22
|
+
type OnSelectFunction = (selectedKeys: Key[], info: {
|
|
23
|
+
selected?: boolean;
|
|
24
|
+
selectedNodes: any[];
|
|
25
|
+
nativeEvent?: MouseEvent;
|
|
26
|
+
}, tree?: PlainObject[]) => void;
|
|
22
27
|
type BaseTreeContext = {
|
|
23
28
|
treeState: BaseTreeState;
|
|
24
|
-
onSelect:
|
|
29
|
+
onSelect: OnSelectFunction;
|
|
25
30
|
setTreeData: (treeData: TreeNodeData[]) => void;
|
|
26
31
|
};
|
|
27
32
|
declare const BaseTreeContext: React.Context<BaseTreeContext>;
|
|
28
33
|
export declare const useBaseTree: () => BaseTreeContext;
|
|
29
34
|
export declare const BaseTree: React.FC<PropsWithChildren<BaseTreeProps>>;
|
|
30
|
-
export declare const getNodeParam: (node: any, position: number[], state: BaseTreeState, search: SearchResult, disabledNode: (node: PlainObject) => boolean) => AntTreeNodeProps;
|
|
35
|
+
export declare const getNodeParam: (node: any, position: number[], state: BaseTreeState, search: SearchResult, disabledNode: (node: PlainObject) => boolean, folderChecker: (node: PlainObject) => boolean) => AntTreeNodeProps;
|
|
31
36
|
export {};
|
|
@@ -60,6 +60,7 @@ const BaseTree = (props) => {
|
|
|
60
60
|
sortField: null,
|
|
61
61
|
parentField: null,
|
|
62
62
|
langs: null,
|
|
63
|
+
folderChecker: null,
|
|
63
64
|
};
|
|
64
65
|
if (props.rootCode)
|
|
65
66
|
DEFAULT.rootCode = props.rootCode;
|
|
@@ -71,6 +72,9 @@ const BaseTree = (props) => {
|
|
|
71
72
|
DEFAULT.sortField = props.sortField;
|
|
72
73
|
if (props.parentField)
|
|
73
74
|
DEFAULT.parentField = props.parentField;
|
|
75
|
+
if (props.folderChecker)
|
|
76
|
+
DEFAULT.folderChecker = props.folderChecker;
|
|
77
|
+
// DEFAULT.
|
|
74
78
|
// if(props.searchValue) DEFAULT.searchValue = props.searchValue;
|
|
75
79
|
// Support I18N Title Field
|
|
76
80
|
if (lodash_1.default.isString(props.titleField)) {
|
|
@@ -115,7 +119,7 @@ const BaseTree = (props) => {
|
|
|
115
119
|
}, [state.treeData]);
|
|
116
120
|
const setTreeData = (treeData) => setState({ treeData: [...treeData] });
|
|
117
121
|
(0, react_1.useEffect)(() => searchByKeyWord(props.searchValue), [props.searchValue]);
|
|
118
|
-
const onSelect = (0, react_1.useCallback)((selectedKeys, evt) => {
|
|
122
|
+
const onSelect = (0, react_1.useCallback)((selectedKeys, evt, tree) => {
|
|
119
123
|
utils_1.PageUtil.stopEvent(evt === null || evt === void 0 ? void 0 : evt.nativeEvent);
|
|
120
124
|
if (props.mustSelect && selectedKeys.length == 0)
|
|
121
125
|
return;
|
|
@@ -137,7 +141,7 @@ const BaseTree = (props) => {
|
|
|
137
141
|
let key = '';
|
|
138
142
|
for (let idx of position) {
|
|
139
143
|
key += `[${idx}]`;
|
|
140
|
-
|
|
144
|
+
crumb.push(lodash_1.default.omit(lodash_1.default.get(tree || state.treeData, key), 'children'));
|
|
141
145
|
key += `.children`;
|
|
142
146
|
}
|
|
143
147
|
props.onSelect(selectedKeys[0], crumb[crumb.length - 1], crumb.length > 1 ? crumb[crumb.length - 2] : null, crumb, position);
|
|
@@ -146,7 +150,7 @@ const BaseTree = (props) => {
|
|
|
146
150
|
return react_1.default.createElement(BaseTreeContext.Provider, { value: { treeState: state, onSelect, setTreeData } }, props.children);
|
|
147
151
|
};
|
|
148
152
|
exports.BaseTree = BaseTree;
|
|
149
|
-
const getNodeParam = (node, position, state, search, disabledNode) => {
|
|
153
|
+
const getNodeParam = (node, position, state, search, disabledNode, folderChecker) => {
|
|
150
154
|
const { titleField, keyField, iconField, } = state;
|
|
151
155
|
let param = { key: node[keyField], data: { node, position } };
|
|
152
156
|
if (search.keyword) {
|
|
@@ -160,6 +164,11 @@ const getNodeParam = (node, position, state, search, disabledNode) => {
|
|
|
160
164
|
param.disabled = true;
|
|
161
165
|
}
|
|
162
166
|
}
|
|
167
|
+
else if (lodash_1.default.isFunction(folderChecker)) {
|
|
168
|
+
if (folderChecker(node)) {
|
|
169
|
+
param.selectable = false;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
163
172
|
if (iconField != null) {
|
|
164
173
|
if (lodash_1.default.isString(iconField)) {
|
|
165
174
|
let icon = node[iconField];
|
|
@@ -59,7 +59,6 @@ const _Ftree = (props) => {
|
|
|
59
59
|
const tree = utils_1.TreeUtil.buildFlatTree(treeState, (0, ActionTree_1.getResponseList)(rootResp));
|
|
60
60
|
setTreeData(tree);
|
|
61
61
|
if (props.mustSelect && tree.length > 0) {
|
|
62
|
-
//@ts-ignore
|
|
63
62
|
onSelect([tree[0][treeState.keyField]], { selectedNodes: [{ data: { node: tree[0], position: [0] } }] }, tree);
|
|
64
63
|
}
|
|
65
64
|
setInit(true);
|
|
@@ -56,11 +56,10 @@ const _Stree = (props) => {
|
|
|
56
56
|
}
|
|
57
57
|
setTreeData(tree);
|
|
58
58
|
if (props.mustSelect && tree.length > 0) {
|
|
59
|
-
// @ts-ignore
|
|
60
59
|
onSelect([tree[0][treeState.keyField]], { selectedNodes: [{ data: { node: tree[0], position: [0] } }] }, tree);
|
|
61
60
|
}
|
|
62
61
|
setInit(true);
|
|
63
|
-
}, []);
|
|
62
|
+
}, [props.treeData]);
|
|
64
63
|
if (!init)
|
|
65
64
|
return utils_1.Const.NONE;
|
|
66
65
|
const treeProps = {};
|
|
@@ -73,20 +72,20 @@ const _Stree = (props) => {
|
|
|
73
72
|
}
|
|
74
73
|
return react_1.default.createElement(antd_1.Tree, Object.assign({}, treeState.baseProps, treeProps, { className: treeState.className, disabled: props.disabled, selectedKeys: treeState.selectedKeys, onSelect: onSelect }), renderRoot(props, treeState));
|
|
75
74
|
};
|
|
76
|
-
const renderNode = (node, position, state, search, disabledNode) => {
|
|
75
|
+
const renderNode = (node, position, state, search, disabledNode, folderChecker) => {
|
|
77
76
|
if (search.keyword && !search.match.has(position.join('-')))
|
|
78
77
|
return utils_1.Const.NONE;
|
|
79
|
-
const param = (0, BaseTree_1.getNodeParam)(node, position, state, search, disabledNode);
|
|
78
|
+
const param = (0, BaseTree_1.getNodeParam)(node, position, state, search, disabledNode, folderChecker);
|
|
80
79
|
if (lodash_1.default.isArray(node.children) && node.children.length) {
|
|
81
|
-
return react_1.default.createElement(antd_1.Tree.TreeNode, Object.assign({}, param, { isLeaf: false }), renderNodes(node.children, position, state, search, disabledNode));
|
|
80
|
+
return react_1.default.createElement(antd_1.Tree.TreeNode, Object.assign({}, param, { isLeaf: false }), renderNodes(node.children, position, state, search, disabledNode, folderChecker));
|
|
82
81
|
}
|
|
83
82
|
return react_1.default.createElement(antd_1.Tree.TreeNode, Object.assign({}, param, { isLeaf: true }));
|
|
84
83
|
};
|
|
85
|
-
const renderNodes = (data, position, state, search, disabledNode) => data.map((item, idx) => renderNode(item, [...position, idx], state, search, disabledNode));
|
|
84
|
+
const renderNodes = (data, position, state, search, disabledNode, folderChecker) => data.map((item, idx) => renderNode(item, [...position, idx], state, search, disabledNode, folderChecker));
|
|
86
85
|
const renderRoot = (props, state) => {
|
|
87
86
|
const { search } = state;
|
|
88
87
|
if (search.keyword && search.match.size == 0) {
|
|
89
88
|
return react_1.default.createElement(antd_1.Tree.TreeNode, { isLeaf: true, title: react_1.default.createElement(antd_1.Empty, { description: utils_1.i18n.txt(Const_1.V.TXT_FIND_NULL, search.word) }), selectable: false, className: "c-tree-empty" });
|
|
90
89
|
}
|
|
91
|
-
return state.treeData.map((node, idx) => renderNode(node, [idx], state, search, props.disabledNode));
|
|
90
|
+
return state.treeData.map((node, idx) => renderNode(node, [idx], state, search, props.disabledNode, props.folderChecker));
|
|
92
91
|
};
|
|
@@ -49,7 +49,8 @@ export type BaseTreeProps = BaseTreeOpts & {
|
|
|
49
49
|
* */
|
|
50
50
|
disabled?: boolean;
|
|
51
51
|
/**
|
|
52
|
-
* 是否禁用结点,返回true
|
|
52
|
+
* 是否禁用结点,返回true为禁用,
|
|
53
|
+
* 说明:如果是要禁用文件夹,建议使用 folderChecker
|
|
53
54
|
*/
|
|
54
55
|
disabledNode?: (node: PlainObject) => boolean;
|
|
55
56
|
/**
|
|
@@ -100,6 +101,10 @@ export type ActionProps = {
|
|
|
100
101
|
* 是否可以删除节点
|
|
101
102
|
*/
|
|
102
103
|
canDelete?: boolean;
|
|
104
|
+
/**
|
|
105
|
+
* 是否可以删除根节点(第一层的节点)
|
|
106
|
+
*/
|
|
107
|
+
canDeleteRoot?: boolean;
|
|
103
108
|
/**
|
|
104
109
|
* 是否支持排序
|
|
105
110
|
*/
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import type { UFromProps } from './index';
|
|
3
3
|
import type { FormState } from './FormWrapper';
|
|
4
4
|
import type { PlainObject } from '../../basetype';
|
|
5
|
-
export type
|
|
5
|
+
export type UFormFunctions = {
|
|
6
6
|
/**
|
|
7
7
|
* 获取当前表单数据
|
|
8
8
|
*/
|
|
@@ -30,4 +30,4 @@ export declare const initValue: (props: UFromProps & {
|
|
|
30
30
|
* 3. 支持 ref 控制方法
|
|
31
31
|
* 4. filed 支持更多提示,验证方法
|
|
32
32
|
*/
|
|
33
|
-
export declare const UForm: React.ForwardRefExoticComponent<UFromProps & React.RefAttributes<
|
|
33
|
+
export declare const UForm: React.ForwardRefExoticComponent<UFromProps & React.RefAttributes<UFormFunctions>>;
|