@cloudbase/weda-ui 3.30.0 → 3.31.0

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 (226) hide show
  1. package/README.md +77 -0
  2. package/dist/configs/components/button.d.ts +5 -4
  3. package/dist/configs/components/calendar.d.ts +1 -1
  4. package/dist/configs/components/chart/bar.d.ts +1 -1
  5. package/dist/configs/components/chart/line.d.ts +1 -1
  6. package/dist/configs/components/chart/pie.d.ts +1 -1
  7. package/dist/configs/components/chart/statisticsCard.d.ts +2 -2
  8. package/dist/configs/components/form-date.d.ts +2 -2
  9. package/dist/configs/components/form-depart-tree-select.d.ts +2 -2
  10. package/dist/configs/components/form-email.d.ts +2 -2
  11. package/dist/configs/components/form-image-uploader.d.ts +2 -2
  12. package/dist/configs/components/form-input.d.ts +4 -4
  13. package/dist/configs/components/form-location.d.ts +6 -6
  14. package/dist/configs/components/form-multi-region.d.ts +2 -2
  15. package/dist/configs/components/form-phone.d.ts +2 -2
  16. package/dist/configs/components/form-region.d.ts +2 -2
  17. package/dist/configs/components/form-select-multiple.d.ts +2 -2
  18. package/dist/configs/components/form-select.d.ts +2 -2
  19. package/dist/configs/components/form-text-area.d.ts +2 -2
  20. package/dist/configs/components/form-time.d.ts +2 -2
  21. package/dist/configs/components/form-url.d.ts +2 -2
  22. package/dist/configs/components/form-user-tree-select.d.ts +2 -2
  23. package/dist/configs/components/grid/col.d.ts +6 -6
  24. package/dist/configs/components/grid/row.d.ts +4 -4
  25. package/dist/configs/components/image.d.ts +4 -4
  26. package/dist/configs/components/link.d.ts +1 -0
  27. package/dist/configs/components/modal.d.ts +1 -0
  28. package/dist/configs/components/qr_code.d.ts +1 -1
  29. package/dist/configs/components/swiper.d.ts +2 -0
  30. package/dist/configs/components/swiper.js +25 -6
  31. package/dist/configs/components/tabs.d.ts +1 -0
  32. package/dist/configs/components/wd-bubble.d.ts +7 -6
  33. package/dist/configs/components/wd-button.d.ts +1 -1
  34. package/dist/configs/components/wd-calendar.d.ts +1 -1
  35. package/dist/configs/components/wd-canvas.d.ts +1 -1
  36. package/dist/configs/components/wd-card.d.ts +1 -0
  37. package/dist/configs/components/wd-cascader.d.ts +9 -9
  38. package/dist/configs/components/wd-checkbox.d.ts +3 -3
  39. package/dist/configs/components/wd-code-editor.d.ts +3 -3
  40. package/dist/configs/components/wd-date-range.d.ts +8 -8
  41. package/dist/configs/components/wd-date.d.ts +8 -8
  42. package/dist/configs/components/wd-department.d.ts +11 -11
  43. package/dist/configs/components/wd-drawer.d.ts +1 -0
  44. package/dist/configs/components/wd-form-arr.d.ts +3 -3
  45. package/dist/configs/components/wd-form-detail.d.ts +2 -2
  46. package/dist/configs/components/wd-form-obj.d.ts +3 -3
  47. package/dist/configs/components/wd-form.d.ts +7 -6
  48. package/dist/configs/components/wd-icon.d.ts +2 -2
  49. package/dist/configs/components/wd-image.d.ts +4 -4
  50. package/dist/configs/components/wd-input-email.d.ts +35 -35
  51. package/dist/configs/components/wd-input-number.d.ts +10 -10
  52. package/dist/configs/components/wd-input-phone.d.ts +37 -35
  53. package/dist/configs/components/wd-input-phone.js +22 -3
  54. package/dist/configs/components/wd-input-url.d.ts +35 -35
  55. package/dist/configs/components/wd-input.d.ts +5 -5
  56. package/dist/configs/components/wd-layout.d.ts +1 -0
  57. package/dist/configs/components/wd-link.d.ts +1 -0
  58. package/dist/configs/components/wd-location.d.ts +5 -5
  59. package/dist/configs/components/wd-member.d.ts +13 -13
  60. package/dist/configs/components/wd-menu-layout.d.ts +7 -6
  61. package/dist/configs/components/wd-modal.d.ts +1 -0
  62. package/dist/configs/components/wd-progress.d.ts +7 -6
  63. package/dist/configs/components/wd-radio.d.ts +3 -3
  64. package/dist/configs/components/wd-rating.d.ts +6 -6
  65. package/dist/configs/components/wd-region.d.ts +9 -9
  66. package/dist/configs/components/wd-rich-text.d.ts +3 -3
  67. package/dist/configs/components/wd-select-multiple.d.ts +10 -10
  68. package/dist/configs/components/wd-select.d.ts +9 -9
  69. package/dist/configs/components/wd-side-tab.d.ts +2 -1
  70. package/dist/configs/components/wd-switch.d.ts +6 -6
  71. package/dist/configs/components/wd-table.d.ts +10 -9
  72. package/dist/configs/components/wd-tag-select.d.ts +7 -7
  73. package/dist/configs/components/wd-text.d.ts +3 -3
  74. package/dist/configs/components/wd-textarea.d.ts +3 -3
  75. package/dist/configs/components/wd-time.d.ts +8 -8
  76. package/dist/configs/components/wd-top-tab.d.ts +2 -1
  77. package/dist/configs/components/wd-tree.d.ts +1 -0
  78. package/dist/configs/components/wd-upload-file.d.ts +5 -5
  79. package/dist/configs/components/wd-upload-image.d.ts +13 -13
  80. package/dist/configs/components/wedaVideo.d.ts +2 -2
  81. package/dist/configs/components/wxOpenApi/phone.d.ts +2 -2
  82. package/dist/configs/components/wxOpenApi/phoneCode.d.ts +1 -1
  83. package/dist/configs/components/wxOpenApi/share.d.ts +2 -2
  84. package/dist/configs/components/wxOpenApi/userInfo.d.ts +4 -4
  85. package/dist/configs/index.d.ts +533 -528
  86. package/dist/configs/type-utils/index.d.ts +1 -1
  87. package/dist/configs/type-utils/type-form.js +2 -2
  88. package/dist/style/index.css +4 -0
  89. package/dist/style/index.scss +1 -1
  90. package/dist/style/weda-ui.min.css +2 -2
  91. package/dist/web/components/chart/common/chart-custom-connector.d.ts +1 -0
  92. package/dist/web/components/flow/common/hooks/useFlowConfig.d.ts +1 -0
  93. package/dist/web/components/flow/modules/basic/Basic.d.ts +1 -0
  94. package/dist/web/components/flow/modules/basic/BasicMobile.d.ts +1 -0
  95. package/dist/web/components/flow/modules/combination/index.d.ts +1 -0
  96. package/dist/web/components/flow/modules/operations/control.d.ts +1 -0
  97. package/dist/web/components/flow/modules/operations/controls-items/approval-drawer/drawer-form/index.d.ts +1 -0
  98. package/dist/web/components/flow/modules/operations/controls-items/flow-task-info-modal/view-model.d.ts +1 -0
  99. package/dist/web/components/flow/modules/operations/controls-items/flow-task-info-modal.d.ts +1 -0
  100. package/dist/web/components/flow/modules/operations/controls-items/index.d.ts +1 -0
  101. package/dist/web/components/flow/modules/operations/view-model.d.ts +1 -0
  102. package/dist/web/components/flow/process/constants.d.ts +3 -3
  103. package/dist/web/components/form/enumSelect/NormalSelect.d.ts +1 -0
  104. package/dist/web/components/form/location/common/useLocationInfo.d.ts +1 -0
  105. package/dist/web/components/form/select/h5.d.ts +1 -1
  106. package/dist/web/components/form/uploaderFile/uploadFile.h5.js +2 -2
  107. package/dist/web/components/form/userOrgSelect/component/depart-breadcrumb.d.ts +1 -0
  108. package/dist/web/components/form/userOrgSelect/component/depart-select/org-modal-pc.d.ts +1 -0
  109. package/dist/web/components/form/userOrgSelect/component/error-tips.d.ts +1 -0
  110. package/dist/web/components/form/userOrgSelect/component/input-tags.d.ts +1 -0
  111. package/dist/web/components/form/userOrgSelect/component/modal-search-h5.d.ts +1 -0
  112. package/dist/web/components/form/userOrgSelect/component/modal-search.d.ts +1 -0
  113. package/dist/web/components/form/userOrgSelect/component/modal-select-h5.d.ts +1 -0
  114. package/dist/web/components/form/userOrgSelect/component/org-tree-h5.d.ts +1 -0
  115. package/dist/web/components/form/userOrgSelect/component/org-tree.d.ts +1 -0
  116. package/dist/web/components/form/userOrgSelect/component/selected-list-h5.d.ts +1 -0
  117. package/dist/web/components/form/userOrgSelect/component/selected-list.d.ts +1 -0
  118. package/dist/web/components/form/userOrgSelect/component/user-org-list.d.ts +1 -0
  119. package/dist/web/components/form/userOrgSelect/component/user-select-h5/user-list-h5.d.ts +1 -0
  120. package/dist/web/components/form/userOrgSelect/component/user-select-pc/error-tips.d.ts +1 -0
  121. package/dist/web/components/form/userOrgSelect/component/user-select-pc/model-user-list.d.ts +1 -0
  122. package/dist/web/components/form/userOrgSelect/component/user-select-pc/org-tree.d.ts +1 -0
  123. package/dist/web/components/form/userOrgSelect/component/user-select-pc/user-model.d.ts +1 -0
  124. package/dist/web/components/form-date/index.d.ts +9 -9
  125. package/dist/web/components/form-depart-tree-select/index.d.ts +9 -9
  126. package/dist/web/components/form-email/index.d.ts +7 -7
  127. package/dist/web/components/form-image-uploader/index.d.ts +9 -9
  128. package/dist/web/components/form-input/index.d.ts +14 -14
  129. package/dist/web/components/form-input-hooks/index.d.ts +1 -1
  130. package/dist/web/components/form-location/index.d.ts +13 -13
  131. package/dist/web/components/form-multi-region/index.d.ts +7 -7
  132. package/dist/web/components/form-phone/index.d.ts +7 -7
  133. package/dist/web/components/form-radio/index.d.ts +7 -7
  134. package/dist/web/components/form-region/index.d.ts +7 -7
  135. package/dist/web/components/form-rich-text/index.d.ts +5 -5
  136. package/dist/web/components/form-select/index.d.ts +12 -12
  137. package/dist/web/components/form-select-multiple/index.d.ts +11 -11
  138. package/dist/web/components/form-switch/index.d.ts +4 -4
  139. package/dist/web/components/form-text-area/index.d.ts +8 -8
  140. package/dist/web/components/form-time/index.d.ts +8 -8
  141. package/dist/web/components/form-upload-file/index.d.ts +10 -10
  142. package/dist/web/components/form-url/index.d.ts +7 -7
  143. package/dist/web/components/form-user-tree-select/index.d.ts +10 -10
  144. package/dist/web/components/grid/col.d.ts +2 -2
  145. package/dist/web/components/grid/row.d.ts +1 -1
  146. package/dist/web/components/lottery/index.d.ts +2 -2
  147. package/dist/web/components/pageLayout/PageContent/index.d.ts +1 -0
  148. package/dist/web/components/phone/index.d.ts +1 -0
  149. package/dist/web/components/phoneCode/index.d.ts +1 -0
  150. package/dist/web/components/share/index.d.ts +1 -0
  151. package/dist/web/components/swiper/index.d.ts +1 -1
  152. package/dist/web/components/swiper/index.js +35 -16
  153. package/dist/web/components/table/BaseTable.d.ts +1 -0
  154. package/dist/web/components/table/FieldRender.d.ts +2 -1
  155. package/dist/web/components/table/FilterFields.d.ts +1 -0
  156. package/dist/web/components/table/Form/Enum.d.ts +1 -0
  157. package/dist/web/components/table/Form/Location.d.ts +1 -0
  158. package/dist/web/components/table/QuoteModal.d.ts +1 -0
  159. package/dist/web/components/table/UserDepartment/ViewCell.d.ts +1 -0
  160. package/dist/web/components/table/UserDepartment/utils.d.ts +1 -0
  161. package/dist/web/components/userInfo/index.d.ts +1 -0
  162. package/dist/web/components/wd-calendar/MonthSelect.d.ts +1 -0
  163. package/dist/web/components/wd-code-editor/lang/index.d.ts +1 -1
  164. package/dist/web/components/wd-config-provider/wd-config-context.d.ts +1 -1
  165. package/dist/web/components/wd-date/elements/interface.d.ts +1 -1
  166. package/dist/web/components/wd-department/_design/wd-department-select.d.ts +1 -0
  167. package/dist/web/components/wd-form/hooks/use-auth-value.d.ts +1 -0
  168. package/dist/web/components/wd-form/hooks/use-auth-value.js +3 -1
  169. package/dist/web/components/wd-form/hooks/use-remote-value.js +39 -8
  170. package/dist/web/components/wd-form/index.js +35 -1
  171. package/dist/web/components/wd-form/wd-form.d.ts +1 -0
  172. package/dist/web/components/wd-form-cell/wd-form-cell.d.ts +1 -0
  173. package/dist/web/components/wd-form-item/wd-input-group.d.ts +1 -0
  174. package/dist/web/components/wd-form-item/wd-input-wrap.d.ts +1 -0
  175. package/dist/web/components/wd-image/ImagePreview.d.ts +1 -0
  176. package/dist/web/components/wd-input/wd-input.d.ts +23 -23
  177. package/dist/web/components/wd-input-email/wd-input-email.d.ts +15 -15
  178. package/dist/web/components/wd-input-group/wd-input-group.d.ts +1 -0
  179. package/dist/web/components/wd-input-phone/wd-input-phone.d.ts +23 -23
  180. package/dist/web/components/wd-input-url/wd-input-url.d.ts +15 -15
  181. package/dist/web/components/wd-layout/wd-layout.d.ts +1 -0
  182. package/dist/web/components/wd-location/_design/wd-location.d.ts +1 -0
  183. package/dist/web/components/wd-member/_design/wd-member-select.d.ts +1 -0
  184. package/dist/web/components/wd-radio/wd-radio.d.ts +1 -0
  185. package/dist/web/components/wd-region/_design/wd-region.d.ts +1 -0
  186. package/dist/web/components/wd-retry/wd-retry.d.ts +1 -0
  187. package/dist/web/components/wd-select/_design/wd-select.d.ts +1 -0
  188. package/dist/web/components/wd-select/hooks/useChooseList.d.ts +1 -1
  189. package/dist/web/components/wd-select/relationSelect/relationalSetting.d.ts +1 -0
  190. package/dist/web/components/wd-table/components/ExportFileModalByApi/index.d.ts +1 -0
  191. package/dist/web/components/wd-table/components/FieldRender/Form/Enum.d.ts +1 -0
  192. package/dist/web/components/wd-table/components/FieldRender/Form/Location.d.ts +1 -0
  193. package/dist/web/components/wd-table/components/FieldRender/ImagePreview.d.ts +1 -0
  194. package/dist/web/components/wd-table/components/FieldRender/QuoteModal.d.ts +1 -0
  195. package/dist/web/components/wd-table/components/FieldRender/UserDepartment/ViewCell.d.ts +1 -0
  196. package/dist/web/components/wd-table/components/FieldRender/UserDepartment/utils.d.ts +1 -0
  197. package/dist/web/components/wd-table/components/FieldRender/index.d.ts +3 -2
  198. package/dist/web/components/wd-table/components/FieldRender/index.js +6 -3
  199. package/dist/web/components/wd-table/components/FilterFieldsPanel/Fields.d.ts +1 -0
  200. package/dist/web/components/wd-table/components/FilterFieldsPanel/FilterFieldItem.d.ts +1 -0
  201. package/dist/web/components/wd-table/components/FilterFieldsPanel/InputAdornment.d.ts +1 -0
  202. package/dist/web/components/wd-table/components/FilterFieldsPanel/SelectSearch.d.ts +1 -0
  203. package/dist/web/components/wd-table/components/FilterFieldsPanel/filterFieldsGenerate.js +24 -1
  204. package/dist/web/components/wd-table/components/FilterFieldsPanel/index.js +187 -168
  205. package/dist/web/components/wd-table/components/ImportFileModalByApi/index.d.ts +1 -0
  206. package/dist/web/components/wd-table/components/InOrOutRecordModal.d.ts +1 -0
  207. package/dist/web/components/wd-table/components/Pagination/index.d.ts +1 -0
  208. package/dist/web/components/wd-table/components/SearchBox/index.d.ts +1 -0
  209. package/dist/web/components/wd-table/hooks/useAuthFields.d.ts +1 -0
  210. package/dist/web/components/wd-table/hooks/useAuthFields.js +12 -4
  211. package/dist/web/components/wd-table/hooks/useTableData.js +4 -4
  212. package/dist/web/components/wd-table/wd-table.js +3 -1
  213. package/dist/web/components/wd-tabs/tabs-h5.d.ts +1 -0
  214. package/dist/web/components/wd-tabs/tabs-pc.d.ts +1 -0
  215. package/dist/web/components/wd-tabs/tabs.d.ts +1 -0
  216. package/dist/web/components/wd-tag/_design.d.ts +1 -0
  217. package/dist/web/components/wd-tree/utils.d.ts +19 -19
  218. package/dist/web/components/wd-upload-file/_design/wd-upload-file.d.ts +1 -0
  219. package/dist/web/components/wd-upload-image/_design/wd-upload-image.d.ts +1 -0
  220. package/dist/web/utils/config-context/use-config.d.ts +1 -1
  221. package/dist/web/utils/datasource.d.ts +1 -0
  222. package/dist/web/utils/datasource.js +13 -25
  223. package/dist/web/utils/getPageQuery.d.ts +1 -0
  224. package/dist/web/utils/i18n/locale/en_US.d.ts +1 -0
  225. package/dist/web/utils/i18n/locale/zh_CN.d.ts +1 -0
  226. package/package.json +7 -3
@@ -1,8 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useState, useEffect, forwardRef } from 'react';
2
+ import { useState, useEffect, forwardRef, useRef, useCallback, useMemo } from 'react';
3
3
  import { Row, Col, ConfigProvider, Drawer } from 'tea-component';
4
4
  import { dateCalculation } from '../../../../utils/date';
5
- import isObjectEqual from '../../../../utils/isObjectEqual';
6
5
  import { useConfig } from '../../../../utils/config-context';
7
6
  import { FilterFieldItem } from './FilterFieldItem';
8
7
  import { arrayInputType } from './Fields';
@@ -14,6 +13,8 @@ import { useSetWidgetApi } from '../../../../utils/widget-api/use-set-widget-api
14
13
  const escapeRegExp = (string) => {
15
14
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
16
15
  };
16
+ // 提升静态 JSX 到组件外部,避免每次渲染重新创建
17
+ const HiddenSubmitInput = _jsx("input", { type: "submit", style: { display: 'none' } });
17
18
  const getFilterConfig = (data) => data.map(({ name, label, value, fieldCalculationOption = [], fieldCalculation }) => ({
18
19
  name,
19
20
  label,
@@ -21,6 +22,96 @@ const getFilterConfig = (data) => data.map(({ name, label, value, fieldCalculati
21
22
  filterType: fieldCalculation === null || fieldCalculation === void 0 ? void 0 : fieldCalculation.value,
22
23
  filterTypeOption: fieldCalculationOption === null || fieldCalculationOption === void 0 ? void 0 : fieldCalculationOption.map((i) => i === null || i === void 0 ? void 0 : i.value),
23
24
  }));
25
+ // 处理 scope 类型的筛选条件
26
+ const handleScopeFilter = (item, searchValues) => {
27
+ if (item.filterType === 'number') {
28
+ if (item.value[0]) {
29
+ searchValues.push({ key: item.name, val: Number(item.value[0]), rel: 'gte' });
30
+ }
31
+ if (item.value[1]) {
32
+ searchValues.push({ key: item.name, val: Number(item.value[1]), rel: 'lte' });
33
+ }
34
+ }
35
+ else {
36
+ searchValues.push({ key: item.name, val: item.value[0], rel: 'gte' });
37
+ // @ts-ignore 兼容字符串和数字
38
+ // eslint-disable-next-line @typescript-eslint/no-magic-numbers
39
+ searchValues.push({ key: item.name, val: item.value[1] + 999, rel: 'lte' });
40
+ }
41
+ };
42
+ // 处理字符串类型的默认筛选条件
43
+ const handleStringFilter = (item, searchValues) => {
44
+ var _a, _b;
45
+ const searchItem = { key: item.name, val: item.value, rel: item.fieldCalculation.value };
46
+ if (arrayInputType.includes(item.fieldCalculation.value) && ((_a = searchItem === null || searchItem === void 0 ? void 0 : searchItem.val) === null || _a === void 0 ? void 0 : _a.length)) {
47
+ searchValues.push(searchItem);
48
+ }
49
+ else {
50
+ searchItem.val = (_b = textToString(item.value)) === null || _b === void 0 ? void 0 : _b.trim();
51
+ searchValues.push(searchItem);
52
+ }
53
+ };
54
+ // 处理默认筛选条件
55
+ const handleDefaultFilter = (item, searchValues) => {
56
+ const searchItem = { key: item.name, val: item.value, rel: item.fieldCalculation.value };
57
+ if (item.filterType === 'string') {
58
+ handleStringFilter(item, searchValues);
59
+ }
60
+ else if (item.filterType === 'number') {
61
+ searchItem.val = Number(item.value);
62
+ searchValues.push(searchItem);
63
+ }
64
+ else if (['date', 'datetime', 'time'].includes(item.filterType)) {
65
+ searchItem.val = item.value;
66
+ dateCalculation(searchItem, item.filterType).forEach((calcItem) => {
67
+ searchValues.push(calcItem);
68
+ });
69
+ }
70
+ else {
71
+ searchValues.push(searchItem);
72
+ }
73
+ };
74
+ // 处理单个筛选项
75
+ const processFilterItem = (item, searchValues) => {
76
+ var _a, _b;
77
+ switch (item.fieldCalculation.value) {
78
+ case 'scope':
79
+ handleScopeFilter(item, searchValues);
80
+ break;
81
+ case 'exclude':
82
+ searchValues.push({
83
+ key: item.name,
84
+ val: `^((?!${item.filterType === 'string' ? escapeRegExp(item.value) : item.value}).)*$`,
85
+ rel: 'regex',
86
+ });
87
+ break;
88
+ case 'startWith':
89
+ searchValues.push({ key: item.name, val: `^${(_a = item.value) === null || _a === void 0 ? void 0 : _a.trim()}`, rel: 'regex' });
90
+ break;
91
+ case 'regex':
92
+ searchValues.push({ key: item.name, val: `^${escapeRegExp(item.value)}`, rel: item.fieldCalculation.value });
93
+ break;
94
+ case 'nsearch_ci':
95
+ if (item.filterType === 'string') {
96
+ if (Array.isArray(item.value) && item.value.length) {
97
+ searchValues.push({ key: item.name, val: item.value, rel: item.fieldCalculation.value });
98
+ }
99
+ else if (item.value) {
100
+ searchValues.push({
101
+ key: item.name,
102
+ val: (_b = textToString(item.value)) === null || _b === void 0 ? void 0 : _b.trim(),
103
+ rel: item.fieldCalculation.value,
104
+ });
105
+ }
106
+ }
107
+ else {
108
+ searchValues.push({ key: item.name, val: `${escapeRegExp(item.value)}`, rel: item.fieldCalculation.value });
109
+ }
110
+ break;
111
+ default:
112
+ handleDefaultFilter(item, searchValues);
113
+ }
114
+ };
24
115
  // 筛选表单
25
116
  export const FilterFieldsPanel = forwardRef(function Comp(props, ref) {
26
117
  const { filterFields, fetchData, openMobileFilter, setOpenMobileFilter, setFilterConfig, supportManyRelated } = props;
@@ -31,158 +122,86 @@ export const FilterFieldsPanel = forwardRef(function Comp(props, ref) {
31
122
  const [collapse, setCollapse] = useState(true);
32
123
  const [initFilterData, setInitFilterData] = useState([]);
33
124
  const [filterData, setFilterData] = useState([]);
34
- const updateFilterData = (filterFieldItemConfig) => {
35
- const newData = filterData.map((i) => (i.id === filterFieldItemConfig.id ? filterFieldItemConfig : i));
36
- setFilterData(newData);
37
- setFilterConfig(getFilterConfig(newData));
38
- };
39
- useEffect(() => {
40
- var _a;
41
- const result = filterFieldsGenerate(filterFields);
42
- // 筛选字段改变,重新初始化筛选面板
43
- if (!isObjectEqual(result, initFilterData)) {
44
- const initFilterData = JSON.parse(JSON.stringify(result));
45
- setInitFilterData(initFilterData);
46
- setFilterData(initFilterData);
47
- setFilterConfig(getFilterConfig(initFilterData));
48
- // 如果配置有值则执行查询
49
- if (initFilterData.some((i) => i.value)) {
50
- searchHandle(initFilterData);
51
- }
52
- // 如果折叠的查询条件中有值,则展开面板
53
- if ((_a = initFilterData === null || initFilterData === void 0 ? void 0 : initFilterData.filter((i, index) => index >= maxlength)) === null || _a === void 0 ? void 0 : _a.some((j) => j.value)) {
54
- setCollapse(false);
55
- }
56
- }
57
- // eslint-disable-next-line react-hooks/exhaustive-deps
58
- }, [filterFields]);
59
- const searchHandle = (searchData = filterData) => {
60
- let searchValues = [];
61
- const filterValues = searchData.filter((i) => {
62
- if (Array.isArray(i.value) && i.filterType === 'number' && i.fieldCalculation.value === 'scope') {
63
- // 若筛选字段为number类型,且为范围选择时,只要有一个值则返回
64
- return i.value[0] || i.value[1];
65
- }
66
- return i.value !== null && i.value !== undefined && i.value !== '';
125
+ // 使用 useRef 追踪上一次的 filterFields,避免死循环
126
+ const prevFilterFieldsRef = useRef('');
127
+ // 使用 useCallback + 函数式 setState,保持回调稳定,避免子组件不必要的重渲染
128
+ const updateFilterData = useCallback((filterFieldItemConfig) => {
129
+ setFilterData((prevData) => {
130
+ const newData = prevData.map((i) => (i.id === filterFieldItemConfig.id ? filterFieldItemConfig : i));
131
+ setFilterConfig(getFilterConfig(newData));
132
+ return newData;
67
133
  });
68
- // 为空不为空筛选条件
69
- searchData.forEach((i) => {
70
- var _a, _b;
71
- if (['$empty', '$nempty'].includes((_a = i === null || i === void 0 ? void 0 : i.fieldCalculation) === null || _a === void 0 ? void 0 : _a.value)) {
72
- const $and = searchValues.find((i) => i.$and);
73
- if ($and) {
74
- searchValues = searchValues.map((n) => {
75
- var _a;
76
- if (n.$and) {
77
- return {
78
- $and: [...n.$and, { [i.name]: { [(_a = i === null || i === void 0 ? void 0 : i.fieldCalculation) === null || _a === void 0 ? void 0 : _a.value]: '1' } }],
79
- };
80
- }
81
- return n;
82
- });
83
- }
84
- else {
85
- searchValues.push({
86
- $and: [{ [i.name]: { [(_b = i === null || i === void 0 ? void 0 : i.fieldCalculation) === null || _b === void 0 ? void 0 : _b.value]: '1' } }],
87
- });
88
- }
134
+ }, [setFilterConfig]);
135
+ // searchHandle 使用 useCallback 优化,合并多次遍历为单次遍历
136
+ const searchHandle = useCallback((searchData) => {
137
+ var _a, _b, _c;
138
+ // 确保 searchData 是数组,防止事件对象被误传入
139
+ const data = Array.isArray(searchData) ? searchData : filterData;
140
+ let searchValues = [];
141
+ const andConditions = [];
142
+ const filterValues = [];
143
+ // 单次遍历处理所有逻辑,避免多次 filter/forEach
144
+ for (const item of data) {
145
+ // 处理空/非空筛选条件
146
+ if (['$empty', '$nempty'].includes((_a = item === null || item === void 0 ? void 0 : item.fieldCalculation) === null || _a === void 0 ? void 0 : _a.value)) {
147
+ andConditions.push({ [item.name]: { [(_b = item === null || item === void 0 ? void 0 : item.fieldCalculation) === null || _b === void 0 ? void 0 : _b.value]: '1' } });
148
+ continue;
89
149
  }
90
- });
91
- // 值筛选条件
92
- filterValues.forEach((i) => {
93
- var _a, _b, _c;
94
- switch (i.fieldCalculation.value) {
95
- case 'scope':
96
- if (i.filterType === 'number') {
97
- if (i.value[0]) {
98
- searchValues.push({
99
- key: i.name,
100
- val: Number(i.value[0]),
101
- rel: 'gte',
102
- });
103
- }
104
- if (i.value[1]) {
105
- searchValues.push({
106
- key: i.name,
107
- val: Number(i.value[1]),
108
- rel: 'lte',
109
- });
110
- }
111
- }
112
- else {
113
- searchValues.push({
114
- key: i.name,
115
- val: i.value[0],
116
- rel: 'gte',
117
- });
118
- searchValues.push({
119
- key: i.name,
120
- // @ts-ignore 兼容字符串和数字
121
- // eslint-disable-next-line @typescript-eslint/no-magic-numbers
122
- val: i.value[1] + 999,
123
- rel: 'lte',
124
- });
125
- }
126
- break;
127
- case 'exclude':
128
- searchValues.push({
129
- key: i.name,
130
- val: `^((?!${i.filterType === 'string' ? escapeRegExp(i.value) : i.value}).)*$`,
131
- rel: 'regex',
132
- });
133
- break;
134
- case 'startWith':
135
- searchValues.push({ key: i.name, val: `^${(_a = i.value) === null || _a === void 0 ? void 0 : _a.trim()}`, rel: 'regex' });
136
- break;
137
- case 'regex':
138
- searchValues.push({ key: i.name, val: `^${escapeRegExp(i.value)}`, rel: i.fieldCalculation.value });
139
- break;
140
- case 'nsearch_ci':
141
- searchValues.push({ key: i.name, val: `${escapeRegExp(i.value)}`, rel: i.fieldCalculation.value });
142
- break;
143
- default: {
144
- const searchItem = {
145
- key: i.name,
146
- val: i.value,
147
- rel: i.fieldCalculation.value,
148
- };
149
- if (i.filterType === 'string') {
150
- if (arrayInputType.includes(i.fieldCalculation.value) && ((_b = searchItem === null || searchItem === void 0 ? void 0 : searchItem.val) === null || _b === void 0 ? void 0 : _b.length)) {
151
- searchValues.push(searchItem);
152
- }
153
- else {
154
- searchItem.val = (_c = textToString(i.value)) === null || _c === void 0 ? void 0 : _c.trim();
155
- searchValues.push(searchItem);
156
- }
157
- }
158
- else if (i.filterType === 'number') {
159
- searchItem.val = Number(i.value);
160
- searchValues.push(searchItem);
161
- }
162
- else if (['date', 'datetime', 'time'].includes(i.filterType)) {
163
- searchItem.val = i.value;
164
- dateCalculation(searchItem, i.filterType).forEach((i) => {
165
- searchValues.push(i);
166
- });
167
- }
168
- else {
169
- searchValues.push(searchItem);
170
- }
171
- }
150
+ // 判断是否有值
151
+ const hasValue = Array.isArray(item.value) && item.filterType === 'number' && ((_c = item.fieldCalculation) === null || _c === void 0 ? void 0 : _c.value) === 'scope'
152
+ ? item.value[0] || item.value[1]
153
+ : item.value !== null && item.value !== undefined && item.value !== '';
154
+ if (hasValue) {
155
+ filterValues.push(item);
172
156
  }
173
- });
174
- searchValues = searchValues.map((i) => {
157
+ }
158
+ // 添加 $and 条件
159
+ if (andConditions.length) {
160
+ searchValues.push({ $and: andConditions });
161
+ }
162
+ // 值筛选条件 - 使用提取的处理函数
163
+ for (const item of filterValues) {
164
+ processFilterItem(item, searchValues);
165
+ }
166
+ // 添加 format 字段
167
+ searchValues = searchValues.map((item) => {
175
168
  var _a;
176
- const format = (_a = filterValues.find((j) => j.name === i.key)) === null || _a === void 0 ? void 0 : _a.filterType;
177
- return { ...i, format };
169
+ const format = (_a = filterValues.find((j) => j.name === item.key)) === null || _a === void 0 ? void 0 : _a.filterType;
170
+ return { ...item, format };
178
171
  });
179
172
  fetchData(searchValues);
180
- };
181
- const onFormSubmit = (e) => {
173
+ }, [filterData, fetchData]);
174
+ // 初始化 useEffect
175
+ useEffect(() => {
176
+ var _a;
177
+ // 序列化当前 filterFields 用于比较
178
+ const currentFilterFieldsStr = JSON.stringify(filterFields);
179
+ // 如果和上一次相同,跳过处理
180
+ if (currentFilterFieldsStr === prevFilterFieldsRef.current) {
181
+ return;
182
+ }
183
+ const result = filterFieldsGenerate(filterFields);
184
+ const newFilterData = JSON.parse(JSON.stringify(result));
185
+ // 更新 ref 记录当前值
186
+ prevFilterFieldsRef.current = currentFilterFieldsStr;
187
+ setInitFilterData(newFilterData);
188
+ setFilterData(newFilterData);
189
+ setFilterConfig(getFilterConfig(newFilterData));
190
+ // 如果配置有值则执行查询
191
+ if (newFilterData.some((i) => i.value)) {
192
+ searchHandle(newFilterData);
193
+ }
194
+ // 如果折叠的查询条件中有值,则展开面板
195
+ if ((_a = newFilterData === null || newFilterData === void 0 ? void 0 : newFilterData.filter((i, index) => index >= maxlength)) === null || _a === void 0 ? void 0 : _a.some((j) => j.value)) {
196
+ setCollapse(false);
197
+ }
198
+ // eslint-disable-next-line react-hooks/exhaustive-deps
199
+ }, [filterFields]);
200
+ const onFormSubmit = useCallback((e) => {
182
201
  e.preventDefault();
183
202
  searchHandle();
184
- };
185
- const resetFilter = () => {
203
+ }, [searchHandle]);
204
+ const resetFilter = useCallback(() => {
186
205
  const result = initFilterData.map((i) => ({ ...i, value: '' }));
187
206
  setFilterData(result);
188
207
  setFilterConfig(getFilterConfig(result));
@@ -190,29 +209,29 @@ export const FilterFieldsPanel = forwardRef(function Comp(props, ref) {
190
209
  if (isH5) {
191
210
  setOpenMobileFilter(false);
192
211
  }
193
- };
212
+ }, [initFilterData, setFilterConfig, fetchData, isH5, setOpenMobileFilter]);
213
+ // Memo 化事件对象,避免每次渲染创建新对象导致子组件重渲染
214
+ const resetEvents = useMemo(() => ({ tap: resetFilter }), [resetFilter]);
215
+ const searchEvents = useMemo(() => ({ tap: searchHandle }), [searchHandle]);
216
+ const toggleCollapseHandler = useCallback(() => {
217
+ setCollapse((prev) => !prev);
218
+ }, []);
219
+ const toggleCollapseEvents = useMemo(() => ({
220
+ tap: toggleCollapseHandler,
221
+ }), [toggleCollapseHandler]);
222
+ const mobileSearchHandler = useCallback(() => {
223
+ searchHandle();
224
+ setOpenMobileFilter(false);
225
+ }, [searchHandle, setOpenMobileFilter]);
226
+ const mobileSearchEvents = useMemo(() => ({
227
+ tap: mobileSearchHandler,
228
+ }), [mobileSearchHandler]);
229
+ const drawerCloseHandler = useCallback(() => {
230
+ setOpenMobileFilter(false);
231
+ }, [setOpenMobileFilter]);
194
232
  // eslint-disable-next-line react-hooks/exhaustive-deps
195
233
  useSetWidgetApi(() => ({ resetFilter }), [initFilterData], ref);
196
- return (_jsxs(ConfigProvider, { classPrefix: "wedatea2td", children: [isH5 && (_jsx(Drawer, { className: `${classPrefix}-table-mobile-filter-drawer ${classPrefix}-table-wrap-filter ${classPrefix}-h5-table-wrap-filter`, title: "\u7B5B\u9009\u5668", visible: isH5 && openMobileFilter, onClose: () => {
197
- setOpenMobileFilter(false);
198
- }, children: _jsxs("div", { children: [_jsx("div", { className: `${classPrefix}-table-wrap-filter__body`, children: filterData === null || filterData === void 0 ? void 0 : filterData.map((i) => (_jsx(FilterFieldItem, { ...i, updateFilterData: updateFilterData, fields: filterFields, supportManyRelated: supportManyRelated }, i.id))) }), _jsx("div", { className: `${classPrefix}-table-wrap-filter__footer`, children: _jsxs("div", { className: `${classPrefix}-table-wrap-filter__btn`, children: [_jsx("div", { className: `${classPrefix}-table-wrap-filter__btn-item`, children: _jsx(WdButton, { theme: "primary", variant: "outline", size: "lg", text: "\u91CD\u7F6E", events: {
199
- tap: resetFilter,
200
- } }) }), _jsx("div", { className: `${classPrefix}-table-wrap-filter__btn-item`, children: _jsx(WdButton, { theme: "primary", size: "lg", text: "\u786E\u5B9A", events: {
201
- tap: () => {
202
- searchHandle();
203
- setOpenMobileFilter(false);
204
- },
205
- } }) })] }) })] }) })), !isH5 && !!filterData.length && (_jsx("form", { className: `${classPrefix}-table-wrap-filter`, onSubmit: onFormSubmit, "data-testid": "filter-form", children: _jsxs(Row, { gap: 20, verticalAlign: 'top', style: { justifyContent: 'space-between' }, children: [_jsx(_Fragment, { children: filterData === null || filterData === void 0 ? void 0 : filterData.map((i, index) => (_jsx(Col, { span: 6, style: {
234
+ return (_jsxs(ConfigProvider, { classPrefix: "wedatea2td", children: [isH5 && (_jsx(Drawer, { className: `${classPrefix}-table-mobile-filter-drawer ${classPrefix}-table-wrap-filter ${classPrefix}-h5-table-wrap-filter`, title: "\u7B5B\u9009\u5668", visible: isH5 && openMobileFilter, onClose: drawerCloseHandler, children: _jsxs("div", { children: [_jsx("div", { className: `${classPrefix}-table-wrap-filter__body`, children: filterData === null || filterData === void 0 ? void 0 : filterData.map((i) => (_jsx(FilterFieldItem, { ...i, updateFilterData: updateFilterData, fields: filterFields, supportManyRelated: supportManyRelated }, i.id))) }), _jsx("div", { className: `${classPrefix}-table-wrap-filter__footer`, children: _jsxs("div", { className: `${classPrefix}-table-wrap-filter__btn`, children: [_jsx("div", { className: `${classPrefix}-table-wrap-filter__btn-item`, children: _jsx(WdButton, { theme: "primary", variant: "outline", size: "lg", text: "\u91CD\u7F6E", events: resetEvents }) }), _jsx("div", { className: `${classPrefix}-table-wrap-filter__btn-item`, children: _jsx(WdButton, { theme: "primary", size: "lg", text: "\u786E\u5B9A", events: mobileSearchEvents }) })] }) })] }) })), !isH5 && !!filterData.length && (_jsx("form", { className: `${classPrefix}-table-wrap-filter`, onSubmit: onFormSubmit, "data-testid": "filter-form", children: _jsxs(Row, { gap: 20, verticalAlign: 'top', style: { justifyContent: 'space-between' }, children: [_jsx(_Fragment, { children: filterData === null || filterData === void 0 ? void 0 : filterData.map((i, index) => (_jsx(Col, { span: 6, style: {
206
235
  display: `${index > num && collapse ? 'none' : 'block'}`,
207
- }, children: _jsx(FilterFieldItem, { ...i, updateFilterData: updateFilterData, fields: filterFields, supportManyRelated: supportManyRelated }) }, i.id))) }), _jsx(Col, { span: 24, style: { flex: '1', textAlign: 'right' }, children: _jsxs("div", { className: `${classPrefix}-space`, children: [_jsx("div", { className: `${classPrefix}-space-item`, children: _jsx(WdButton, { size: "md", theme: "secondary", text: "\u91CD\u7F6E", events: {
208
- tap: resetFilter,
209
- } }) }), _jsxs("div", { className: `${classPrefix}-space-item`, children: [_jsx("input", { type: "submit", style: { display: 'none' } }), _jsx(WdButton, { size: "md", theme: "primary", text: "\u67E5\u8BE2", events: {
210
- tap: () => {
211
- searchHandle();
212
- },
213
- } })] }), filterData.length > maxlength && (_jsx("div", { className: `${classPrefix}-space-item`, children: _jsx(WdButton, { icon: collapse ? 'td:chevron-down' : 'td:chevron-up', iconType: "icon-only", theme: "secondary", variant: "text", size: "md", events: {
214
- tap: () => {
215
- setCollapse(!collapse);
216
- },
217
- } }) }))] }) }, "search-button")] }) }))] }));
236
+ }, children: _jsx(FilterFieldItem, { ...i, updateFilterData: updateFilterData, fields: filterFields, supportManyRelated: supportManyRelated }) }, i.id))) }), _jsx(Col, { span: 24, style: { flex: '1', textAlign: 'right' }, children: _jsxs("div", { className: `${classPrefix}-space`, children: [_jsx("div", { className: `${classPrefix}-space-item`, children: _jsx(WdButton, { size: "md", theme: "secondary", text: "\u91CD\u7F6E", events: resetEvents }) }), _jsxs("div", { className: `${classPrefix}-space-item`, children: [HiddenSubmitInput, _jsx(WdButton, { size: "md", theme: "primary", text: "\u67E5\u8BE2", events: searchEvents })] }), filterData.length > maxlength && (_jsx("div", { className: `${classPrefix}-space-item`, children: _jsx(WdButton, { icon: collapse ? 'td:chevron-down' : 'td:chevron-up', iconType: "icon-only", theme: "secondary", variant: "text", size: "md", events: toggleCollapseEvents }) }))] }) }, "search-button")] }) }))] }));
218
237
  });
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /**
2
3
  * 后端导入弹窗
3
4
  */
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export declare const InOrOutRecordModal: ({ isInOrOutRecordModalVisible, dbName, setIsImportFileModalByApiVisible, setIsExportFileModalByApiVisible, setIsInOrOutRecordModalVisible, }: {
2
3
  isInOrOutRecordModalVisible: any;
3
4
  dbName: any;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export declare const Pagination: ({ total, pageIndex, pageSize, onPagingChange, }: {
2
3
  total?: number;
3
4
  pageIndex: any;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export declare const SearchBox: ({ searchValues, fields, columnSets, fetchData, refresh, }: {
2
3
  searchValues: any;
3
4
  fields: any;
@@ -10,6 +10,7 @@ export declare const useAuthFields: ({ dbName, dbFieldNames, isNewData, isModel,
10
10
  columnSetsKey: any;
11
11
  }) => {
12
12
  authFields: any[];
13
+ noAuthFields: any[];
13
14
  isError: any;
14
15
  fieldsLoading: boolean;
15
16
  };
@@ -1,3 +1,4 @@
1
+ import { useMemo } from 'react';
1
2
  import useSWR from 'swr';
2
3
  import { getAuthFields } from '../../../utils/datasource';
3
4
  export const useAuthFields = ({ dbName, dbFieldNames, isNewData, isModel, connectorMethod, isNoDataSourceBind, isExpression = false, isApis = false, columnSetsKey, }) => {
@@ -13,16 +14,23 @@ export const useAuthFields = ({ dbName, dbFieldNames, isNewData, isModel, connec
13
14
  }
14
15
  return [isModel, dbName, connectorMethod === null || connectorMethod === void 0 ? void 0 : connectorMethod.name, columnSetsKey];
15
16
  }, async () => {
16
- const { showFields } = await getAuthFields(dbName, dbFieldNames, true, !!isNewData, isModel, connectorMethod, false);
17
- if (!(showFields === null || showFields === void 0 ? void 0 : showFields.length)) {
17
+ var _a;
18
+ const data = await getAuthFields(dbName, dbFieldNames, true, !!isNewData, isModel, connectorMethod, false);
19
+ if (!((_a = data === null || data === void 0 ? void 0 : data.showFields) === null || _a === void 0 ? void 0 : _a.length)) {
18
20
  throw {
19
21
  message: '数据源字段返回异常',
20
22
  };
21
23
  }
22
- return showFields;
24
+ return data;
23
25
  });
26
+ // 用 useMemo 稳定数组引用:data?.xxx || [] 会在 data 为 undefined 时每次返回新 [],
27
+ // 该引用会传给上层 wd-table 的 useMemo(columns) 作为依赖,造成无意义的 columns 重算。
28
+ // 仅当 data 引用变化时才重建空数组兜底。
29
+ const authFields = useMemo(() => (data === null || data === void 0 ? void 0 : data.showFields) || [], [data]);
30
+ const noAuthFields = useMemo(() => (data === null || data === void 0 ? void 0 : data.noAuthFields) || [], [data]);
24
31
  return {
25
- authFields: data || [],
32
+ authFields,
33
+ noAuthFields,
26
34
  isError: error,
27
35
  fieldsLoading: !error && !data,
28
36
  };
@@ -31,8 +31,8 @@ export const useTableData = ({ dataSourceAPI, connectorMethod, query, events, is
31
31
  const result = await dataSourceAPI.getRecordListV2(query, { swr });
32
32
  data = {
33
33
  ...data,
34
- total: result.total,
35
- records: result.records || [],
34
+ total: result === null || result === void 0 ? void 0 : result.total,
35
+ records: (result === null || result === void 0 ? void 0 : result.records) || [],
36
36
  };
37
37
  }
38
38
  }
@@ -41,8 +41,8 @@ export const useTableData = ({ dataSourceAPI, connectorMethod, query, events, is
41
41
  const result = await dataSourceAPI.getRecordList(query, { swr });
42
42
  data = {
43
43
  ...data,
44
- total: result.total,
45
- records: result.records || [],
44
+ total: result === null || result === void 0 ? void 0 : result.total,
45
+ records: (result === null || result === void 0 ? void 0 : result.records) || [],
46
46
  };
47
47
  }
48
48
  setIsError(false);
@@ -152,7 +152,7 @@ export const WdTable = forwardRef(function TableComp(tableProps, ref) {
152
152
  });
153
153
  const columnSetsKey = columnSets === null || columnSets === void 0 ? void 0 : columnSets.map((i) => i.key);
154
154
  // 过滤权限字段
155
- const { authFields, fieldsLoading, isError: fieldsError, } = useAuthFields({
155
+ const { authFields, noAuthFields, fieldsLoading, isError: fieldsError, } = useAuthFields({
156
156
  dbName,
157
157
  dbFieldNames,
158
158
  isNewData,
@@ -204,6 +204,7 @@ export const WdTable = forwardRef(function TableComp(tableProps, ref) {
204
204
  return [];
205
205
  }
206
206
  let baseColumns = getTableColumns({
207
+ noAuthFields,
207
208
  fields,
208
209
  columnSets,
209
210
  slots,
@@ -267,6 +268,7 @@ export const WdTable = forwardRef(function TableComp(tableProps, ref) {
267
268
  customOptionTitle,
268
269
  classPrefix,
269
270
  resizeColumns,
271
+ noAuthFields,
270
272
  ]);
271
273
  // 主键
272
274
  const recordKey = getRecordKey({
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { WdTabsProps } from './tabs';
2
3
  export declare const WdTabsH5: ({ isMultipleSlot, tabsDatas, selectedIndex, ...restProps }: WdTabsProps) => JSX.Element;
@@ -1,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  import { WdTabsProps } from './tabs';
2
3
  export declare const WdTabsPc: ({ isMultipleSlot, tabsDatas, selectedIndex, ...restProps }: WdTabsProps) => JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { CommonPropsType } from '../../types';
2
3
  export declare const WdTabs: (props: WdTabsProps) => JSX.Element;
3
4
  export interface WdTabsProps extends CommonPropsType {
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { CommonPropsType } from '../../types';
2
3
  import type { DataType } from '../../../configs/components/wd-layout';
3
4
  export interface WdTagProps extends CommonPropsType, DataType {
@@ -102,18 +102,18 @@ declare const initData: ({ data, parent, showIcon, expendIcon, foldIcon, leafIco
102
102
  parent?: TreeNode;
103
103
  iconShow?: string;
104
104
  pos?: string;
105
+ value: string;
105
106
  label: string;
107
+ disabled: boolean;
106
108
  children: {
107
- label: string;
108
- children: any[];
109
109
  value: string;
110
+ label: string;
110
111
  disabled: boolean;
112
+ children: any[];
111
113
  foldIcon: string;
112
114
  expendIcon: string;
113
115
  leafIcon: string;
114
116
  }[];
115
- value: string;
116
- disabled: boolean;
117
117
  foldIcon: string;
118
118
  expendIcon: string;
119
119
  leafIcon: string;
@@ -146,37 +146,36 @@ declare const getTreeInfo: (params: IFindNodeParams, checkable: boolean) => {
146
146
  checkedState?: boolean;
147
147
  selectedState?: boolean;
148
148
  expandedtate?: boolean;
149
- expanded: string[];
150
149
  event: string;
151
- selected: string[];
152
- checked: string[];
153
150
  currentNode: {
154
151
  data?: {
155
- label: string;
156
- children: any[];
157
152
  value: string;
153
+ label: string;
158
154
  disabled: boolean;
155
+ children: any[];
159
156
  foldIcon: string;
160
157
  expendIcon: string;
161
158
  leafIcon: string;
162
159
  }[];
163
160
  };
161
+ selected: string[];
164
162
  selectedPositions: string[];
165
163
  selectedNodes: {
166
- label: string;
167
- children: any[];
168
164
  value: string;
165
+ label: string;
169
166
  disabled: boolean;
167
+ children: any[];
170
168
  foldIcon: string;
171
169
  expendIcon: string;
172
170
  leafIcon: string;
173
171
  }[];
172
+ expanded: string[];
174
173
  expandedPositions: string[];
175
174
  expandedNodes: {
176
- label: string;
177
- children: any[];
178
175
  value: string;
176
+ label: string;
179
177
  disabled: boolean;
178
+ children: any[];
180
179
  foldIcon: string;
181
180
  expendIcon: string;
182
181
  leafIcon: string;
@@ -184,20 +183,21 @@ declare const getTreeInfo: (params: IFindNodeParams, checkable: boolean) => {
184
183
  searched: string[];
185
184
  searchedPositions: string[];
186
185
  searchedNodes: {
187
- label: string;
188
- children: any[];
189
186
  value: string;
187
+ label: string;
190
188
  disabled: boolean;
189
+ children: any[];
191
190
  foldIcon: string;
192
191
  expendIcon: string;
193
192
  leafIcon: string;
194
193
  }[];
194
+ checked: string[];
195
195
  checkedPositions: string[];
196
196
  checkedNodes: {
197
- label: string;
198
- children: any[];
199
197
  value: string;
198
+ label: string;
200
199
  disabled: boolean;
200
+ children: any[];
201
201
  foldIcon: string;
202
202
  expendIcon: string;
203
203
  leafIcon: string;
@@ -205,10 +205,10 @@ declare const getTreeInfo: (params: IFindNodeParams, checkable: boolean) => {
205
205
  childChecked: string[];
206
206
  childCheckedPositions: string[];
207
207
  childCheckedNodes: {
208
- label: string;
209
- children: any[];
210
208
  value: string;
209
+ label: string;
211
210
  disabled: boolean;
211
+ children: any[];
212
212
  foldIcon: string;
213
213
  expendIcon: string;
214
214
  leafIcon: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import type { CommonPropsType } from '../../../types';
2
3
  export declare const WdUploadFile: ({ isReadOnly }: {
3
4
  isReadOnly?: boolean;