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.
Files changed (102) hide show
  1. package/components/SearchBar/ActionButtons.d.ts +2 -1
  2. package/components/SearchBar/ActionButtons.js +2 -2
  3. package/components/SearchBar/ByKeyword.js +1 -1
  4. package/components/SearchBar/SearchTags.js +2 -2
  5. package/components/Tables/ApiTableModal.d.ts +2 -2
  6. package/components/Tables/Components/Actions.js +3 -3
  7. package/components/Tables/TopTable.js +3 -3
  8. package/components/Tables/TopTableModal.d.ts +2 -2
  9. package/components/Tables/VTable.js +4 -1
  10. package/components/Tables/index.d.ts +1 -1
  11. package/components/TreeSelect/BaseTreeSelect.js +3 -3
  12. package/components/TreeSelect/DTreeSelect.js +2 -2
  13. package/components/TreeSelect/FTreeSelect.js +2 -2
  14. package/components/TreeSelect/STreeSelect.js +2 -2
  15. package/components/Trees/ActionTree.d.ts +3 -1
  16. package/components/Trees/ActionTree.js +77 -20
  17. package/components/Trees/BaseTree.d.ts +8 -3
  18. package/components/Trees/BaseTree.js +12 -3
  19. package/components/Trees/FTree.js +0 -1
  20. package/components/Trees/STree.js +6 -7
  21. package/components/Trees/index.d.ts +6 -1
  22. package/components/UForm/UForm.d.ts +2 -2
  23. package/components/UForm/UForm.js +44 -12
  24. package/components/UForm/UFormModal.js +6 -3
  25. package/components/UForm/UInfoModal.js +3 -0
  26. package/components/UForm/UModal.js +10 -5
  27. package/components/UForm/index.d.ts +8 -3
  28. package/components/Upload/UploadModal.d.ts +2 -2
  29. package/components/Upload/UploadModal.js +5 -1
  30. package/components/Upload/useUpload.d.ts +2 -2
  31. package/components/_adapt/Alert.d.ts +3 -3
  32. package/components/_adapt/Breadcrumb.d.ts +15 -0
  33. package/components/_adapt/Breadcrumb.js +18 -0
  34. package/components/_adapt/Button.d.ts +5 -5
  35. package/components/_adapt/Button.js +2 -0
  36. package/components/_adapt/Collapse.d.ts +7 -7
  37. package/components/_adapt/ConfigProvider.d.ts +6 -0
  38. package/components/_adapt/ConfigProvider.js +10 -0
  39. package/components/_adapt/Drawer.d.ts +8 -3
  40. package/components/_adapt/Drawer.js +5 -1
  41. package/components/_adapt/Dropdown.d.ts +6 -6
  42. package/components/_adapt/FloatButton.d.ts +3 -3
  43. package/components/_adapt/FloatButton.js +1 -0
  44. package/components/_adapt/Form.d.ts +14 -0
  45. package/components/_adapt/Form.js +48 -0
  46. package/components/_adapt/Input.d.ts +17 -0
  47. package/components/_adapt/Input.js +43 -0
  48. package/components/_adapt/InputNumber.d.ts +8 -0
  49. package/components/_adapt/InputNumber.js +60 -0
  50. package/components/_adapt/Menu.d.ts +8 -7
  51. package/components/_adapt/Menu.js +12 -20
  52. package/components/_adapt/Modal.d.ts +9 -7
  53. package/components/_adapt/Modal.js +12 -20
  54. package/components/_adapt/Pagination.d.ts +9 -0
  55. package/components/_adapt/Pagination.js +10 -0
  56. package/components/_adapt/Popconfirm.d.ts +3 -3
  57. package/components/_adapt/Popover.d.ts +3 -3
  58. package/components/_adapt/Progress.d.ts +3 -3
  59. package/components/_adapt/Radio.d.ts +16 -0
  60. package/components/_adapt/Radio.js +24 -0
  61. package/components/_adapt/Select.d.ts +15 -8
  62. package/components/_adapt/Select.js +134 -13
  63. package/components/_adapt/Slider.d.ts +31 -0
  64. package/components/_adapt/Slider.js +5 -0
  65. package/components/_adapt/Table.d.ts +26 -0
  66. package/components/_adapt/Table.js +43 -0
  67. package/components/_adapt/Tabs.d.ts +4 -4
  68. package/components/_adapt/Tag.d.ts +9 -7
  69. package/components/_adapt/Tag.js +4 -3
  70. package/components/_adapt/Tooltip.d.ts +3 -3
  71. package/components/_adapt/TreeSelect.d.ts +13 -0
  72. package/components/_adapt/TreeSelect.js +46 -0
  73. package/components/_adapt/_Antd5.d.ts +11 -0
  74. package/components/_adapt/_Antd5.js +5 -0
  75. package/components/_adapt/notification.d.ts +22 -0
  76. package/components/_adapt/notification.js +5 -0
  77. package/components/_adapt/todo/Image.d.ts +1 -1
  78. package/components/_adapt/todo/NotEffectOnV15.d.ts +1 -0
  79. package/components/_adapt/todo/NotEffectOnV15.js +5 -0
  80. package/components/_adapt/todo/Segmented.d.ts +1 -1
  81. package/components/_adapt/utils.d.ts +1 -1
  82. package/components/_adapt/utils.js +1 -0
  83. package/components/_common/AutoComplete.js +1 -1
  84. package/components/_common/Upagination.d.ts +1 -1
  85. package/components/_common/Upagination.js +2 -2
  86. package/components/_setup/UForm/UFormJSON.js +5 -3
  87. package/components/_setup/UForm/UFormSelect.js +10 -7
  88. package/components/_setup/UForm/UFormTree.js +1 -1
  89. package/deps/SpringCloud.d.ts +1 -1
  90. package/deps/_editor/tools/_TxtButton.js +5 -4
  91. package/hooks/useAjaxQuery.d.ts +5 -8
  92. package/hooks/useAjaxQuery.js +21 -25
  93. package/index.d.ts +45 -31
  94. package/index.js +23 -13
  95. package/package.json +1 -1
  96. package/utils/Const.d.ts +1 -1
  97. package/utils/CustomApp.d.ts +3 -3
  98. package/utils/Global.js +39 -0
  99. package/utils/PageUtil.d.ts +5 -1
  100. package/utils/PageUtil.js +15 -1
  101. package/utils/Renders/StatusRender.d.ts +1 -1
  102. package/utils/TreeUtil.d.ts +9 -0
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- import type { ButtonType, OButtonProps as ButtonProps } from '../_adapt/Button';
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 antd_1 = require("antd");
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(antd_1.Popconfirm, { trigger: "click", placement: "bottomLeft", onConfirm: props.onClick, title: lodash_1.default.isString(props.confirm) ? props.confirm : props.confirm() },
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 })))), rootClassName: 'c-searchbar-keyword-more', getPopupContainer: () => document.getElementById('vap-app-content') },
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 antd_1 = require("antd");
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(antd_1.Tag, { closable: true, onClose: () => { } }, "aa")),
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 { VModalProps } from '../_adapt/Modal';
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 & VModalProps;
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 antd_1 = require("antd");
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(antd_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' },
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(antd_1.Popconfirm, { onConfirm: () => props.onClick(), title: props.confrim, placement: "right", overlayClassName: 'c-table-action-confirm' },
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 antd_1 = require("antd");
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
- // showSorterTooltip: false,
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(antd_1.Table, Object.assign({}, tableProps, props, {
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 { VModalProps } from '../_adapt/Modal';
2
+ import type { ModalProps } from '../_adapt/Modal';
3
3
  import type { TopTableProps } from './TopTable';
4
- export type TopTableModalProps = TopTableProps & VModalProps;
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(antd_1.Table, Object.assign({ rowKey: props.rowKey || rowKey, scroll: scroll, tableLayout: "fixed",
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 'antd/es/table';
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 antd_1 = require("antd");
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(antd_1.TreeSelect.TreeNode, Object.assign({}, param, { isLeaf: false }), renderNodes(node.children, state, props));
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(antd_1.TreeSelect.TreeNode, Object.assign({}, param, { isLeaf: isLeaf }));
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 antd_1 = require("antd");
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(antd_1.TreeSelect, Object.assign({}, treeState.baseProps, treeProps, { disabled: props.disabled, loadData: loadData, onChange: onChange, onSelect: onSelect }), (0, BaseTreeSelect_1.renderRoot)(props, treeState));
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 antd_1 = require("antd");
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(antd_1.TreeSelect, Object.assign({}, treeState.baseProps, treeProps, { disabled: props.disabled, onChange: onChange, onSelect: onSelect }), (0, BaseTreeSelect_1.renderRoot)(props, treeState));
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 antd_1 = require("antd");
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(antd_1.TreeSelect, Object.assign({}, treeState.baseProps, { disabled: props.disabled, onChange: onChange, onSelect: onSelect }), (0, BaseTreeSelect_1.renderRoot)(props, treeState));
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 delId = node[idField];
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), delId, keyField));
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, delId, keyField);
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
- return react_1.default.createElement(ActionTreeContext.Provider, { value: {
505
- action,
506
- showAdd, showEdit, del, up, down,
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({ autoTitle: { field: treeState.titleField, label: action.objectName } }, modals.modalState.modalProps, { fields: FIELDS.current, default: getDefault(), onOk: data => {
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 && canDelete) {
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: TreeProps['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
- // crumb.push(_.omit(_.get(tree || state.treeData, key), 'children'));
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 UFomFunctions = {
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<UFomFunctions>>;
33
+ export declare const UForm: React.ForwardRefExoticComponent<UFromProps & React.RefAttributes<UFormFunctions>>;