@bit-sun/business-component 2.1.23 → 2.2.0-alpha.1

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 (192) hide show
  1. package/.editorconfig +16 -16
  2. package/.fatherrc.ts +5 -5
  3. package/.gitlab-ci.yml +179 -179
  4. package/.prettierignore +7 -7
  5. package/.prettierrc +11 -11
  6. package/.umirc.ts +74 -74
  7. package/README.md +27 -27
  8. package/dist/components/Business/BsSulaQueryTable/SearchItemSetting.d.ts +59 -0
  9. package/dist/components/Business/JsonQueryTable/components/FieldsModifyModal.d.ts +2 -0
  10. package/dist/components/Business/JsonQueryTable/components/FieldsSettingsTable.d.ts +2 -0
  11. package/dist/components/Business/JsonQueryTable/components/Formula.d.ts +6 -0
  12. package/dist/components/Business/JsonQueryTable/components/MaintainOptions.d.ts +2 -0
  13. package/dist/components/Business/JsonQueryTable/drawer/index.d.ts +2 -0
  14. package/dist/components/Business/JsonQueryTable/function.d.ts +37 -0
  15. package/dist/components/Business/JsonQueryTable/index.d.ts +4 -0
  16. package/dist/components/Business/JsonQueryTable/static.d.ts +39 -0
  17. package/dist/index.d.ts +2 -0
  18. package/dist/index.esm.js +20430 -10601
  19. package/dist/index.js +20292 -10457
  20. package/dist/plugin/TableColumnSetting/index.d.ts +64 -0
  21. package/dist/plugin/TableColumnSetting/utils.d.ts +1 -0
  22. package/dist/utils/LocalstorageUtils.d.ts +2 -0
  23. package/dist/utils/enumConfig.d.ts +1 -0
  24. package/dist/utils/utils.d.ts +2 -0
  25. package/docs/index.md +21 -21
  26. package/lib/assets/drag.svg +17 -17
  27. package/lib/assets/exportFail.svg +37 -37
  28. package/lib/assets/exportProcessing.svg +28 -28
  29. package/lib/assets/exportSuccess.svg +34 -34
  30. package/lib/assets/label_icon_bottom.svg +25 -25
  31. package/lib/assets/upExport.svg +22 -22
  32. package/package.json +77 -71
  33. package/src/assets/32.svg +27 -27
  34. package/src/assets/addIcon.svg +17 -17
  35. package/src/assets/allfunc.svg +27 -27
  36. package/src/assets/arrowRight.svg +24 -24
  37. package/src/assets/btn-delete.svg +29 -29
  38. package/src/assets/btn-edit.svg +19 -19
  39. package/src/assets/btn-more.svg +17 -17
  40. package/src/assets/btn-submit.svg +19 -19
  41. package/src/assets/caidan.svg +11 -11
  42. package/src/assets/close.svg +26 -26
  43. package/src/assets/drag.svg +17 -17
  44. package/src/assets/exportFail.svg +37 -37
  45. package/src/assets/exportProcessing.svg +28 -28
  46. package/src/assets/exportSuccess.svg +34 -34
  47. package/src/assets/fixed-left-active.svg +11 -11
  48. package/src/assets/fixed-left.svg +15 -15
  49. package/src/assets/fixed-right-active.svg +11 -11
  50. package/src/assets/fixed-right.svg +15 -15
  51. package/src/assets/guanbi.svg +15 -15
  52. package/src/assets/icon-quanping.svg +15 -15
  53. package/src/assets/icon-shezhi.svg +17 -17
  54. package/src/assets/label_icon_bottom.svg +25 -25
  55. package/src/assets/list-no-img.svg +21 -21
  56. package/src/assets/morentouxiang-32.svg +23 -23
  57. package/src/assets/scanning.svg +24 -24
  58. package/src/assets/upExport.svg +22 -22
  59. package/src/components/Business/AddSelectBusiness/index.md +63 -42
  60. package/src/components/Business/AddSelectBusiness/index.tsx +344 -341
  61. package/src/components/Business/BsLayouts/Components/AllFunc/drawContent.tsx +111 -111
  62. package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -153
  63. package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -70
  64. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -90
  65. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +37 -37
  66. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +242 -242
  67. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +384 -384
  68. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +285 -285
  69. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +74 -74
  70. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +170 -170
  71. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +64 -64
  72. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +153 -153
  73. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +72 -72
  74. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +157 -157
  75. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -85
  76. package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -218
  77. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +156 -156
  78. package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +160 -160
  79. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +75 -75
  80. package/src/components/Business/BsLayouts/index.less +79 -79
  81. package/src/components/Business/BsLayouts/index.tsx +1479 -1479
  82. package/src/components/Business/BsLayouts/service.ts +10 -10
  83. package/src/components/Business/BsLayouts/utils.tsx +230 -230
  84. package/src/components/Business/BsSulaQueryTable/SearchItemSetting.tsx +538 -0
  85. package/src/components/Business/BsSulaQueryTable/index.less +219 -219
  86. package/src/components/Business/BsSulaQueryTable/index.tsx +529 -476
  87. package/src/components/Business/BsSulaQueryTable/setting.tsx +802 -802
  88. package/src/components/Business/BsSulaQueryTable/utils.less +65 -65
  89. package/src/components/Business/BsSulaQueryTable/utils.tsx +688 -688
  90. package/src/components/Business/CommodityEntry/index.md +70 -70
  91. package/src/components/Business/CommodityEntry/index.tsx +80 -80
  92. package/src/components/Business/CommonAlert/index.tsx +23 -23
  93. package/src/components/Business/CommonGuideWrapper/index.less +111 -111
  94. package/src/components/Business/CommonGuideWrapper/index.md +39 -39
  95. package/src/components/Business/CommonGuideWrapper/index.tsx +83 -83
  96. package/src/components/Business/DetailPageWrapper/index.less +79 -79
  97. package/src/components/Business/DetailPageWrapper/index.tsx +335 -335
  98. package/src/components/Business/DetailPageWrapper/utils.tsx +100 -100
  99. package/src/components/Business/HomePageWrapper/index.less +33 -33
  100. package/src/components/Business/HomePageWrapper/index.md +45 -45
  101. package/src/components/Business/HomePageWrapper/index.tsx +162 -162
  102. package/src/components/Business/JsonQueryTable/components/FieldsModifyModal.tsx +824 -0
  103. package/src/components/Business/JsonQueryTable/components/FieldsSettingsTable.tsx +202 -0
  104. package/src/components/Business/JsonQueryTable/components/Formula.tsx +205 -0
  105. package/src/components/Business/JsonQueryTable/components/MaintainOptions.tsx +127 -0
  106. package/src/components/Business/JsonQueryTable/configButton/index.js +20 -0
  107. package/src/components/Business/JsonQueryTable/configTree/component/compactArrayView.js +25 -0
  108. package/src/components/Business/JsonQueryTable/configTree/component/compactObjectView.js +30 -0
  109. package/src/components/Business/JsonQueryTable/configTree/index.js +82 -0
  110. package/src/components/Business/JsonQueryTable/configTree/index.less +44 -0
  111. package/src/components/Business/JsonQueryTable/configTree/parser/highlight.js +57 -0
  112. package/src/components/Business/JsonQueryTable/configTree/parser/index.js +124 -0
  113. package/src/components/Business/JsonQueryTable/configTree/render/iconRender.js +29 -0
  114. package/src/components/Business/JsonQueryTable/configTree/render/nameRender.js +22 -0
  115. package/src/components/Business/JsonQueryTable/configTree/treeNode.js +116 -0
  116. package/src/components/Business/JsonQueryTable/drawer/index.tsx +12 -0
  117. package/src/components/Business/JsonQueryTable/function.ts +62 -0
  118. package/src/components/Business/JsonQueryTable/index.less +17 -0
  119. package/src/components/Business/JsonQueryTable/index.md +328 -0
  120. package/src/components/Business/JsonQueryTable/index.tsx +320 -0
  121. package/src/components/Business/JsonQueryTable/jsonEditor/index.js +346 -0
  122. package/src/components/Business/JsonQueryTable/jsonEditor/index.less +22 -0
  123. package/src/components/Business/JsonQueryTable/jsonEditor/lint/basicType.js +147 -0
  124. package/src/components/Business/JsonQueryTable/jsonEditor/lint/index.js +389 -0
  125. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/actions.js +118 -0
  126. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/dependency.js +22 -0
  127. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/index.js +21 -0
  128. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/request.js +65 -0
  129. package/src/components/Business/JsonQueryTable/static.ts +356 -0
  130. package/src/components/Business/SearchSelect/BusinessUtils.ts +1586 -1586
  131. package/src/components/Business/SearchSelect/common.ts +53 -53
  132. package/src/components/Business/SearchSelect/index.md +1254 -1254
  133. package/src/components/Business/SearchSelect/index.tsx +51 -51
  134. package/src/components/Business/SearchSelect/utils.ts +100 -100
  135. package/src/components/Business/StateFlow/index.less +130 -130
  136. package/src/components/Business/StateFlow/index.md +60 -60
  137. package/src/components/Business/StateFlow/index.tsx +29 -29
  138. package/src/components/Business/TreeSearchSelect/index.md +126 -126
  139. package/src/components/Business/TreeSearchSelect/index.tsx +34 -34
  140. package/src/components/Business/TreeSearchSelect/utils.ts +60 -60
  141. package/src/components/Business/columnSettingTable/columnSetting.tsx +764 -764
  142. package/src/components/Business/columnSettingTable/index.less +247 -247
  143. package/src/components/Business/columnSettingTable/index.md +357 -357
  144. package/src/components/Business/columnSettingTable/index.tsx +232 -232
  145. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +240 -240
  146. package/src/components/Business/columnSettingTable/utils.tsx +68 -68
  147. package/src/components/Business/moreTreeTable/index.less +99 -99
  148. package/src/components/Business/moreTreeTable/index.md +508 -508
  149. package/src/components/Business/moreTreeTable/index.tsx +315 -315
  150. package/src/components/Business/moreTreeTable/utils.ts +126 -126
  151. package/src/components/Functional/AddSelect/index.less +367 -367
  152. package/src/components/Functional/AddSelect/index.md +155 -154
  153. package/src/components/Functional/AddSelect/index.tsx +1072 -994
  154. package/src/components/Functional/BillEntry/index.less +371 -371
  155. package/src/components/Functional/BillEntry/index.md +39 -39
  156. package/src/components/Functional/BillEntry/index.tsx +766 -671
  157. package/src/components/Functional/DataImport/index.less +63 -63
  158. package/src/components/Functional/DataImport/index.md +44 -44
  159. package/src/components/Functional/DataImport/index.tsx +695 -695
  160. package/src/components/Functional/DataValidation/index.less +63 -63
  161. package/src/components/Functional/DataValidation/index.md +39 -39
  162. package/src/components/Functional/DataValidation/index.tsx +687 -687
  163. package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -37
  164. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +59 -59
  165. package/src/components/Functional/QueryMutipleInput/index.less +37 -37
  166. package/src/components/Functional/QueryMutipleInput/index.md +33 -33
  167. package/src/components/Functional/QueryMutipleInput/index.tsx +128 -128
  168. package/src/components/Functional/SearchSelect/index.less +115 -115
  169. package/src/components/Functional/SearchSelect/index.md +141 -141
  170. package/src/components/Functional/SearchSelect/index.tsx +813 -813
  171. package/src/components/Functional/SearchSelect/utils.ts +3 -6
  172. package/src/components/Functional/TreeSearchSelect/index.md +47 -47
  173. package/src/components/Functional/TreeSearchSelect/index.tsx +160 -149
  174. package/src/index.ts +34 -32
  175. package/src/plugin/TableColumnSetting/index.less +247 -0
  176. package/src/plugin/TableColumnSetting/index.md +50 -0
  177. package/src/plugin/TableColumnSetting/index.tsx +724 -0
  178. package/src/plugin/TableColumnSetting/utils.ts +19 -0
  179. package/src/styles/bsDefault.less +1906 -1906
  180. package/src/utils/CheckOneUser/index.md +39 -39
  181. package/src/utils/CheckOneUser/index.ts +51 -51
  182. package/src/utils/LocalstorageUtils.ts +33 -0
  183. package/src/utils/TableUtils.tsx +18 -18
  184. package/src/utils/checkUtils.ts +39 -39
  185. package/src/utils/enumConfig.ts +11 -10
  186. package/src/utils/getFormMode.js +12 -0
  187. package/src/utils/index.ts +2 -2
  188. package/src/utils/requestUtils.ts +33 -33
  189. package/src/utils/serialize.js +7 -0
  190. package/src/utils/utils.ts +183 -143
  191. package/tsconfig.json +29 -29
  192. package/typings.d.ts +4 -4
@@ -1,476 +1,529 @@
1
- // @ts-nocheck
2
- import React, { useState, useEffect, useRef, useMemo } from 'react';
3
- import { useLocation } from 'umi';
4
- import { QueryTable } from 'bssula';
5
- import {
6
- userColumns,
7
- getItemDefaultWidth,
8
- authFn,
9
- queryParams,
10
- } from './utils';
11
- import { Menu, Tooltip, } from 'antd';
12
- import SortableTable from './setting';
13
- import { Resizable } from 'react-resizable';
14
- import quanping from '../../../assets/icon-quanping.svg';
15
- import scanning from '../../../assets/scanning.svg';
16
- import { debounce } from 'lodash';
17
- import ExportIcon from '@/components/Functional/ExportFunctions/ExportIcon';
18
- import ENUM from '@/utils/enumConfig';
19
- import { handleBssulaColumnsSpecialParams } from '@/utils/utils';
20
-
21
- const MemoQueryTable = React.memo(QueryTable);
22
-
23
- const ResizeableTitle = (props) => {
24
- const { onResize, width, ...restProps } = props;
25
-
26
- if (!width) {
27
- return <th {...restProps} />;
28
- }
29
- return (
30
- <Resizable
31
- width={width}
32
- height={0}
33
- onResize={onResize}
34
- draggableOpts={{ enableUserSelectHack: false }}
35
- >
36
- <th {...restProps} />
37
- </Resizable>
38
- );
39
- };
40
-
41
- export default (props: any) => {
42
- const refs = useRef(null);
43
- const [pagePath, setPagePath] = useState('');
44
- // 获取 table columns中所有的 key 防止有的地方是 dataindex
45
- const [checkedList, setCheckedList] = useState(
46
- props.columns.map((d: any) => Array.isArray(d.key || d.dataIndex) ? JSON.stringify(d.key || d.dataIndex) : (d.key || d.dataIndex)),
47
- );
48
- const { pathname } = useLocation();
49
- const [id]: any = useState(
50
- Number(Math.random().toString().substr(2, 0) + Date.now()).toString(36),
51
- );
52
- const [isFullScreen, setIsFnllScreen]: any = useState(false);
53
- // @ts-nocheck
54
- const [value, setValue]: any = useState(props);
55
- const [showColumn, setShowColumns] = useState([]);
56
-
57
- const { isPage = true, pagination, tableCode } = props;
58
-
59
- const [height, setHeight]: any = useState('100vh');
60
- const sortTableRef = useRef(null);
61
-
62
- const bsTableCode = tableCode || window.location.hash; //设置列字段的唯一标识
63
- // 获取table高度
64
- const getTableHeight = () => {
65
- const cancelHeight = window.top == window ? 303 : 223;
66
- const isFullScreen: any =
67
- document.fullScreen ||
68
- document.webkitIsFullScreen ||
69
- document.mozFullScreen;
70
- const h =
71
- document.body.clientHeight -
72
- (document.querySelector('.table-bssula-summary')?.clientHeight || 0) -
73
- (document.querySelector('.ant-form ant-form-horizontal')?.clientHeight ||
74
- 0) -
75
- (isFullScreen
76
- ? 0
77
- : document.querySelector('.ant-pro-page-container-warp')
78
- ?.clientHeight || 0) -
79
- cancelHeight +
80
- 'px';
81
- setHeight(h);
82
- setValue({ ...value });
83
- };
84
-
85
- //监测是否按下esc键
86
- function checkFull() {
87
- let globalDocument = window?.parent?.document || document;
88
- var isFull =
89
- globalDocument.fullscreenElement ||
90
- globalDocument.mozFullScreenElement ||
91
- globalDocument.webkitFullscreenElement;
92
- if (isFull == undefined) isFull = false;
93
- return isFull;
94
- }
95
-
96
- const getConfigFromlocalstorage = () => {
97
- let config = localStorage.getItem(ENUM.BROWSER_CACHE.COLUMN_CONDITION) || '[]';
98
- let configArray = JSON.parse(config);
99
- let configSetting = configArray.filter(
100
- (item) => item.code === bsTableCode,
101
- );
102
-
103
- if (configSetting.length && configSetting[0].detail) {
104
- return JSON.parse(configSetting[0].detail);
105
- }
106
- return [];
107
- };
108
-
109
- const setInitialTableInfo = () => {
110
- const resourceCodeArray = {};
111
- if (props.actionsRender && props.actionsRender.length) {
112
- props.actionsRender.forEach((item: any) => {
113
- if (item.code) {
114
- if (resourceCodeArray[item.code]) {
115
- resourceCodeArray[item.code + 1] = item;
116
- } else {
117
- resourceCodeArray[item.code] = item;
118
- }
119
- }
120
- });
121
- }
122
- if (props.columns && props.columns.length) {
123
- props.columns.forEach((d: any) => {
124
- if (d.isPermissionColumn && d.render && d.render.length) {
125
- d.render.forEach((inneritem: any) => {
126
- if (inneritem.code) {
127
- if (resourceCodeArray[inneritem.code]) {
128
- resourceCodeArray[inneritem.code + 1] = inneritem;
129
- } else {
130
- resourceCodeArray[inneritem.code] = inneritem;
131
- }
132
- }
133
- });
134
- }
135
- handleBssulaColumnsSpecialParams(d);
136
- });
137
- setCommonRenderFn(props.columns);
138
- const authButton = localStorage.getItem(ENUM.BROWSER_CACHE.MAIN_AUTH_CODES)
139
- ? JSON.parse(localStorage.getItem(ENUM.BROWSER_CACHE.MAIN_AUTH_CODES) as string)
140
- : [];
141
- Object.keys(resourceCodeArray).forEach((item: any) => {
142
- let Item = item;
143
- if (Number(item.slice(-1)) >= 1) {
144
- Item = item.substr(0, item.length - 1);
145
- }
146
- if (!authButton.filter((itemInner: any) => Item === itemInner).length) {
147
- resourceCodeArray[item].visible = false;
148
- }
149
- });
150
-
151
- }
152
- setValue({
153
- ...value,
154
- columns: [...props.columns],
155
- });
156
- const { columns } = props;
157
- let columnConfig = getConfigFromlocalstorage();
158
- let showColumns = columnConfig.length ? columnConfig.map((item) => {
159
- let inner = columns.filter(
160
- (inneritem) => {
161
- let innerKey = Array.isArray(inneritem.key || inneritem.dataIndex) ? JSON.stringify(inneritem.key || inneritem.dataIndex) : (inneritem.key || inneritem.dataIndex);
162
- let itemKey = Array.isArray(item.key || item.dataIndex) ? JSON.stringify(item.key || item.dataIndex) : (item.key || item.dataIndex);
163
- return innerKey && innerKey === itemKey;
164
- }
165
- )[0];
166
-
167
- return {
168
- ...inner,
169
- ...item,
170
- };
171
- }) : columns.filter(
172
- (column) => {
173
- let columnKey = Array.isArray(column.key || column.dataIndex) ? JSON.stringify(column.key || column.dataIndex) : (column.key || column.dataIndex);
174
- return column.notRegularCheckList || checkedList.indexOf(columnKey) > -1;
175
- }
176
- )
177
-
178
- showColumns.forEach((item, index) => {
179
- item.width = item.width || getItemDefaultWidth(item);
180
- item.onHeaderCell = (column) => ({
181
- ...item,
182
- width:
183
- typeof column.width === 'number'
184
- ? column.width
185
- : parseInt(column.width.replace('px', '')),
186
- onResize: handleResize(index),
187
- });
188
- });
189
- setShowColumns([...showColumns]);
190
- }
191
-
192
- //组件初始挂载
193
- useEffect(() => {
194
- getTableHeight();
195
- setInitialTableInfo();
196
- window.addEventListener('resize', (e) => {
197
- watchWinResize();
198
- });
199
-
200
- setPagePath(pathname); // 做处理,记录当前页面渲染的初始pathname,用于进行判断当前列表页面数据是否需要重新渲染
201
- }, []);
202
-
203
- useEffect(() => {
204
- if (props?.columns && value?.columns) {
205
- let newKeys = props.columns.map((d: any) => Array.isArray(d.key || d.dataIndex) ? JSON.stringify(d.key || d.dataIndex) : (d.key || d.dataIndex));
206
- let oldKeys = value.columns.map((d: any) => Array.isArray(d.key || d.dataIndex) ? JSON.stringify(d.key || d.dataIndex) : (d.key || d.dataIndex));
207
- JSON.stringify(newKeys) !== JSON.stringify(oldKeys) && setInitialTableInfo();
208
- }
209
- }, [props?.columns])
210
-
211
- useEffect(() => {
212
- setInitialTableInfo();
213
- }, [props?.refreshColumns]);
214
-
215
-
216
- const watchWinResize = debounce(() => {
217
- getTableHeight();
218
- if (!checkFull()) {
219
- // addTabsNavStyle(true);
220
- // 全屏下按键esc后要执行的动作
221
- // isFullScreen 为true 此时为全屏状态 false 为非全屏状态
222
- if (!isFullScreen) {
223
- // 按下esc键退出全屏
224
- setIsFnllScreen(false);
225
- } else {
226
- setIsFnllScreen(false);
227
- }
228
- }
229
- }, 10);
230
-
231
- const setCommonRenderFn = (columns: any[]) => {
232
- columns.forEach((column) => {
233
- if (column.showDetailUserInfo) {
234
- column.render = ({ text }: any) => userColumns({ name: text });
235
- }
236
- });
237
- };
238
-
239
- // 处理 table 基本参数
240
- const setTableProps = () => {
241
- let tableProps = value.tableProps || {};
242
- tableProps = {
243
- ...tableProps,
244
- size: value.size || 'middle',
245
- defaultPageSize: 20,
246
- pageSize: 20,
247
- initialPaging: {
248
- pagination: pagination
249
- ? false
250
- : {
251
- defaultPageSize: 20,
252
- pageSize: 20,
253
- showTotal: (total: any) => `共 ${total} 条`,
254
- showQuickJumper: true,
255
- hideOnSinglePage: value.hideOnSinglePage || false,
256
- },
257
- },
258
- initialSelectedRowKeys: value.initialSelectedRowKeys || [],
259
- expandable: value.expandable,
260
- scroll: { x: props.overScrollX || 'max-content', y: height },
261
- bordered: value.bordered || false,
262
- sticky: true,
263
- rowClassName: (record: object | null | undefined, index: number) =>
264
- index % 2 === 0 ? 'table_base' : 'table_odd',
265
- ...value.tableProps,
266
- components: {
267
- header: {
268
- cell: ResizeableTitle,
269
- },
270
- },
271
- };
272
-
273
- // @ts-ignore
274
- if (tableProps?.initialPaging?.pagination) {
275
- // @ts-ignore
276
- tableProps.initialPaging.pagination.showSizeChanger = true;
277
- }
278
- return tableProps;
279
- };
280
-
281
-
282
- const ShowFullScreen = () => {
283
- const { itemPath } = props;
284
- if (window.top != window) {
285
- window.parent.postMessage(
286
- {
287
- type: 'screenChange',
288
- id: itemPath,
289
- },
290
- '*',
291
- );
292
- setIsFnllScreen(!isFullScreen);
293
- } else {
294
- const isFullScreen: any =
295
- document.fullScreen ||
296
- document.webkitIsFullScreen ||
297
- document.mozFullScreen;
298
- let contentEle: any = document.querySelector(`body`);
299
- // addTabsNavStyle(isFullScreen);
300
- if (contentEle && !isFullScreen) {
301
- let fullScreenEle =
302
- contentEle.requestFullscreen ||
303
- contentEle.mozRequestFullScreen ||
304
- contentEle.webkitRequestFullScreen ||
305
- contentEle.msRequestFullscreen;
306
- if (fullScreenEle) {
307
- fullScreenEle.call(contentEle);
308
- setIsFnllScreen(true);
309
- // getTableHeight(true);
310
- return;
311
- }
312
- }
313
- if (document && isFullScreen) {
314
- let exitFullScreen =
315
- document.exitFullscreen ||
316
- document.mozCancelFullScreen ||
317
- document.webkitCancelFullScreen ||
318
- document.msExitFullscreen;
319
- if (exitFullScreen) {
320
- exitFullScreen.call(document);
321
- setIsFnllScreen(false);
322
- // getTableHeight();
323
- return;
324
- }
325
- }
326
- }
327
- };
328
-
329
- const handleTimeValue = () => {
330
- let actionsRender = value.actionsRender || [];
331
- actionsRender = [
332
- ...actionsRender,
333
- {
334
- type: 'text',
335
- props: {
336
- children: (
337
- <>
338
- <Tooltip title="列设置">
339
- <span className="ant-dropdown-link">
340
- <SortableTable
341
- ref={sortTableRef}
342
- setShowColumns={setShowColumns}
343
- showColumn={showColumn}
344
- datasource={value?.columns || []}
345
- bsTableCode={bsTableCode}
346
- />
347
- </span>
348
- </Tooltip>
349
- </>
350
- ),
351
- },
352
- },
353
- {
354
- type: 'text',
355
- props: {
356
- children: (
357
- <a>
358
- {isFullScreen ? (
359
- <Tooltip title="取消全屏">
360
- <img
361
- onClick={() => {
362
- ShowFullScreen();
363
- }}
364
- width={32}
365
- src={scanning}
366
- />
367
- </Tooltip>
368
- ) : (
369
- <Tooltip title="全屏">
370
- <img
371
- onClick={() => {
372
- ShowFullScreen();
373
- }}
374
- width={32}
375
- src={quanping}
376
- />
377
- </Tooltip>
378
- )}
379
- </a>
380
- ),
381
- },
382
- },
383
- {
384
- type: 'text',
385
- props: {
386
- children:
387
- value?.exportConfig && authFn(value?.exportConfig?.code) ? (
388
- <ExportIcon
389
- request={{
390
- url: `/oms-ops/excel/exportAsync/${value?.exportConfig?.type}`,
391
- params: value?.exportConfig?.params || queryParams,
392
- }}
393
- tableRef={props.forwardedRef || refs}
394
- />
395
- ) : (
396
- <span />
397
- ),
398
- },
399
- },
400
- ];
401
- if (value.rowSelection) {
402
- value.rowSelection.columnWidth = 50;
403
- }
404
- return {
405
- ...value,
406
- actionsRender,
407
- };
408
- };
409
-
410
- const handleResize =
411
- (index) =>
412
- (e, { size }) => {
413
- setShowColumns((columns: any) => {
414
- let newColumns = [...columns];
415
- newColumns[index] = {
416
- ...newColumns[index],
417
- width: size.width,
418
- };
419
- return [...newColumns];
420
- });
421
- };
422
-
423
- const setVisibleColumn = (columnTitle: string) => {
424
- sortTableRef?.current?.handleTableHeadHidden?.(columnTitle);
425
- };
426
-
427
- const config = {
428
- visibleFieldsCount: 3,
429
- tableWrapperStyle: {
430
- padding: '10px',
431
- background: '#f3f3f3',
432
- },
433
- setVisibleColumn: setVisibleColumn,
434
- itemLayout: {
435
- span: 8, // 栅格占位格数
436
- labelCol: {
437
- // label标签布局;可设置 span、offset
438
- span: 8,
439
- },
440
- wrapperCol: {
441
- // value布局, 方式同labelCol(horizontal状态下配置)
442
- span: 16,
443
- },
444
- },
445
- rowSelection: false, // 默认无多选
446
- ...handleTimeValue(),
447
- tableProps: setTableProps(),
448
- columns: [...showColumn],
449
- ref: props.forwardedRef || refs,
450
- isFullScreen,
451
- };
452
-
453
- useEffect(() => {
454
- if (!localStorage.getItem('isTabChange')) {
455
- if (pagePath === pathname) {
456
- // @ts-ignore
457
- config.ref?.current?.tableRef?.current?.refreshTable();
458
- }
459
- } else {
460
- setTimeout(() => {
461
- // 处理页面刷新两面
462
- localStorage.removeItem('isTabChange');
463
- }, 0);
464
- }
465
- }, [pathname]);
466
-
467
- const memoConfig = useMemo(
468
- () => ({
469
- ...config,
470
- summary: props.summary,
471
- statusMapping: props.statusMapping,
472
- }),
473
- [value, checkedList, showColumn, props.statusMapping],
474
- );
475
- return <MemoQueryTable {...memoConfig} />;
476
- };
1
+ // @ts-nocheck
2
+ import React, { useState, useEffect, useRef, useMemo } from 'react';
3
+ import { useLocation } from 'umi';
4
+ import { QueryTable } from 'bssula';
5
+ import {
6
+ userColumns,
7
+ getItemDefaultWidth,
8
+ authFn,
9
+ queryParams,
10
+ } from './utils';
11
+ import { Menu, Tooltip, Dropdown } from 'antd';
12
+ import SortableTable from './setting';
13
+ import SearchItemTable from "./SearchItemSetting";
14
+ import { Resizable } from 'react-resizable';
15
+ import quanping from '../../../assets/icon-quanping.svg';
16
+ import scanning from '../../../assets/scanning.svg';
17
+ import shezhi from '../../../assets/icon-shezhi.svg';
18
+ import { debounce } from 'lodash';
19
+ import ExportIcon from '@/components/Functional/ExportFunctions/ExportIcon';
20
+ import ENUM from '@/utils/enumConfig';
21
+ import { handleBssulaColumnsSpecialParams } from '@/utils/utils';
22
+
23
+ const MemoQueryTable = React.memo(QueryTable);
24
+
25
+ const ResizeableTitle = (props) => {
26
+ const { onResize, width, ...restProps } = props;
27
+
28
+ if (!width) {
29
+ return <th {...restProps} />;
30
+ }
31
+ return (
32
+ <Resizable
33
+ width={width}
34
+ height={0}
35
+ onResize={onResize}
36
+ draggableOpts={{ enableUserSelectHack: false }}
37
+ >
38
+ <th {...restProps} />
39
+ </Resizable>
40
+ );
41
+ };
42
+
43
+ export default (props: any) => {
44
+ const refs = useRef(null);
45
+ const [pagePath, setPagePath] = useState('');
46
+ // 获取 table columns中所有的 key 防止有的地方是 dataindex
47
+ const [checkedList, setCheckedList] = useState(
48
+ props.columns.filter((col: any) => !col.hidden).map((d: any) => Array.isArray(d.key || d.dataIndex) ? JSON.stringify(d.key || d.dataIndex) : (d.key || d.dataIndex)),
49
+ );
50
+ const { pathname } = useLocation();
51
+ const [id]: any = useState(
52
+ Number(Math.random().toString().substr(2, 0) + Date.now()).toString(36),
53
+ );
54
+ const [isFullScreen, setIsFnllScreen]: any = useState(false);
55
+ // @ts-nocheck
56
+ const [value, setValue]: any = useState(props);
57
+ const [showColumn, setShowColumns] = useState([]); // 列字段
58
+ const [showSearchFields, setShowSearchFields] = useState([]); //搜索项字段
59
+ const { isPage = true, pagination, tableCode } = props;
60
+
61
+ const [height, setHeight]: any = useState('100vh');
62
+ const sortTableRef = useRef(null);
63
+
64
+ const bsTableCode = tableCode || window.location.hash; //设置列字段的唯一标识
65
+ // 获取table高度
66
+ const getTableHeight = () => {
67
+ const cancelHeight = window.top == window ? 303 : 223;
68
+ const isFullScreen: any =
69
+ document.fullScreen ||
70
+ document.webkitIsFullScreen ||
71
+ document.mozFullScreen;
72
+ const h =
73
+ document.body.clientHeight -
74
+ (document.querySelector('.table-bssula-summary')?.clientHeight || 0) -
75
+ (document.querySelector('.ant-form ant-form-horizontal')?.clientHeight ||
76
+ 0) -
77
+ (isFullScreen
78
+ ? 0
79
+ : document.querySelector('.ant-pro-page-container-warp')
80
+ ?.clientHeight || 0) -
81
+ cancelHeight +
82
+ 'px';
83
+ setHeight(h);
84
+ setValue({ ...value });
85
+ };
86
+
87
+ //监测是否按下esc键
88
+ function checkFull() {
89
+ let globalDocument = window?.parent?.document || document;
90
+ var isFull =
91
+ globalDocument.fullscreenElement ||
92
+ globalDocument.mozFullScreenElement ||
93
+ globalDocument.webkitFullscreenElement;
94
+ if (isFull == undefined) isFull = false;
95
+ return isFull;
96
+ }
97
+
98
+ const getConfigFromlocalstorage = (type: string) => {
99
+ let config = localStorage.getItem(type) || '[]';
100
+ let configArray = JSON.parse(config);
101
+ let configSetting = configArray.filter(
102
+ (item) => item.code === bsTableCode,
103
+ );
104
+
105
+ if (configSetting.length && configSetting[0].detail) {
106
+ return JSON.parse(configSetting[0].detail);
107
+ }
108
+ return [];
109
+ };
110
+
111
+ const setInitialTableInfo = () => {
112
+ const resourceCodeArray = {};
113
+ if (props.actionsRender && props.actionsRender.length) {
114
+ props.actionsRender.forEach((item: any) => {
115
+ if (item.code) {
116
+ if (resourceCodeArray[item.code]) {
117
+ resourceCodeArray[item.code + 1] = item;
118
+ } else {
119
+ resourceCodeArray[item.code] = item;
120
+ }
121
+ }
122
+ });
123
+ }
124
+ if (props.columns && props.columns.length) {
125
+ props.columns.forEach((d: any) => {
126
+ if (d.isPermissionColumn && d.render && d.render.length) {
127
+ d.render.forEach((inneritem: any) => {
128
+ if (inneritem.code) {
129
+ if (resourceCodeArray[inneritem.code]) {
130
+ resourceCodeArray[inneritem.code + 1] = inneritem;
131
+ } else {
132
+ resourceCodeArray[inneritem.code] = inneritem;
133
+ }
134
+ }
135
+ });
136
+ }
137
+ handleBssulaColumnsSpecialParams(d);
138
+ });
139
+ setCommonRenderFn(props.columns);
140
+ const authButton = localStorage.getItem(ENUM.BROWSER_CACHE.MAIN_AUTH_CODES)
141
+ ? JSON.parse(localStorage.getItem(ENUM.BROWSER_CACHE.MAIN_AUTH_CODES) as string)
142
+ : [];
143
+ Object.keys(resourceCodeArray).forEach((item: any) => {
144
+ let Item = item;
145
+ if (Number(item.slice(-1)) >= 1) {
146
+ Item = item.substr(0, item.length - 1);
147
+ }
148
+ if (!authButton.filter((itemInner: any) => Item === itemInner).length) {
149
+ resourceCodeArray[item].visible = false;
150
+ }
151
+ });
152
+
153
+ }
154
+ setValue({
155
+ ...value,
156
+ columns: [...props.columns],
157
+ });
158
+ const { columns } = props;
159
+ let columnConfig = getConfigFromlocalstorage(ENUM.BROWSER_CACHE.COLUMN_CONDITION);
160
+ let showColumns = columnConfig.length ? columnConfig.map((item) => {
161
+ let inner = columns.filter(
162
+ (inneritem) => {
163
+ let innerKey = Array.isArray(inneritem.key || inneritem.dataIndex) ? JSON.stringify(inneritem.key || inneritem.dataIndex) : (inneritem.key || inneritem.dataIndex);
164
+ let itemKey = Array.isArray(item.key || item.dataIndex) ? JSON.stringify(item.key || item.dataIndex) : (item.key || item.dataIndex);
165
+ return innerKey && innerKey === itemKey;
166
+ }
167
+ )[0];
168
+
169
+ return {
170
+ ...inner,
171
+ ...item,
172
+ };
173
+ }) : columns.filter(
174
+ (column) => {
175
+ let columnKey = Array.isArray(column.key || column.dataIndex) ? JSON.stringify(column.key || column.dataIndex) : (column.key || column.dataIndex);
176
+ return column.notRegularCheckList || checkedList.indexOf(columnKey) > -1;
177
+ }
178
+ )
179
+
180
+ showColumns.forEach((item, index) => {
181
+ item.width = item.width || getItemDefaultWidth(item);
182
+ handleBssulaColumnsSpecialParams(item);
183
+ item.onHeaderCell = (column) => ({
184
+ ...item,
185
+ width:
186
+ typeof column.width === 'number'
187
+ ? column.width
188
+ : parseInt(column.width.replace('px', '')),
189
+ onResize: handleResize(index),
190
+ });
191
+ });
192
+ setShowColumns([...showColumns]);
193
+
194
+ }
195
+
196
+ const setInitialSearchFieldsInfo = () =>{
197
+ //获取搜索字段的缓存配置
198
+ const { fields } = props;
199
+ let searchFieldsConfig = getConfigFromlocalstorage(ENUM.BROWSER_CACHE.SEARCH_FIELDS_CONDITION);
200
+ let showSearchFields = searchFieldsConfig.length ? searchFieldsConfig.map((item) => {
201
+ let inner = fields.filter(
202
+ (inneritem) => {
203
+ let innerKey = Array.isArray(inneritem.name) ? JSON.stringify(inneritem.name) : inneritem.name;
204
+ let itemKey = Array.isArray(item.name) ? JSON.stringify(item.name) : item.name;
205
+ return innerKey && innerKey === itemKey;
206
+ }
207
+ )[0];
208
+
209
+ return {
210
+ ...inner,
211
+ ...item,
212
+ };
213
+ }) : fields;
214
+ setShowSearchFields([...showSearchFields])
215
+ }
216
+
217
+ //组件初始挂载
218
+ useEffect(() => {
219
+ getTableHeight();
220
+ setInitialTableInfo();
221
+ setInitialSearchFieldsInfo();
222
+ window.addEventListener('resize', (e) => {
223
+ watchWinResize();
224
+ });
225
+
226
+ setPagePath(pathname); // 做处理,记录当前页面渲染的初始pathname,用于进行判断当前列表页面数据是否需要重新渲染
227
+ }, []);
228
+
229
+ useEffect(() => {
230
+ if (props?.columns && value?.columns) {
231
+ let newKeys = props.columns.map((d: any) => Array.isArray(d.key || d.dataIndex) ? JSON.stringify(d.key || d.dataIndex) : (d.key || d.dataIndex));
232
+ let oldKeys = value.columns.map((d: any) => Array.isArray(d.key || d.dataIndex) ? JSON.stringify(d.key || d.dataIndex) : (d.key || d.dataIndex));
233
+ JSON.stringify(newKeys) !== JSON.stringify(oldKeys) && setInitialTableInfo();
234
+ }
235
+ }, [props?.columns])
236
+
237
+ useEffect(() => {
238
+ if (props?.fields && value?.fields) {
239
+ let newKeys = props.fields.map((d: any) => Array.isArray(d.name) ? JSON.stringify(d.name) : (d.name));
240
+ let oldKeys = value.fields.map((d: any) => Array.isArray(d.name) ? JSON.stringify(d.name) : (d.name));
241
+ JSON.stringify(newKeys) !== JSON.stringify(oldKeys) && setInitialSearchFieldsInfo();
242
+ }
243
+ },[props?.fields])
244
+
245
+ useEffect(() => {
246
+ setInitialTableInfo();
247
+ }, [props?.refreshColumns]);
248
+
249
+
250
+ const watchWinResize = debounce(() => {
251
+ getTableHeight();
252
+ if (!checkFull()) {
253
+ // addTabsNavStyle(true);
254
+ // 全屏下按键esc后要执行的动作
255
+ // isFullScreen 为true 此时为全屏状态 false 为非全屏状态
256
+ if (!isFullScreen) {
257
+ // 按下esc键退出全屏
258
+ setIsFnllScreen(false);
259
+ } else {
260
+ setIsFnllScreen(false);
261
+ }
262
+ }
263
+ }, 10);
264
+
265
+ const setCommonRenderFn = (columns: any[]) => {
266
+ columns.forEach((column) => {
267
+ if (column.showDetailUserInfo) {
268
+ column.render = ({ text }: any) => userColumns({ name: text });
269
+ }
270
+ });
271
+ };
272
+
273
+ // 处理 table 基本参数
274
+ const setTableProps = () => {
275
+ let tableProps = value.tableProps || {};
276
+ tableProps = {
277
+ ...tableProps,
278
+ size: value.size || 'middle',
279
+ defaultPageSize: 20,
280
+ pageSize: 20,
281
+ initialPaging: {
282
+ pagination: pagination
283
+ ? false
284
+ : {
285
+ defaultPageSize: 20,
286
+ pageSize: 20,
287
+ showTotal: (total: any) => `共 ${total} 条`,
288
+ showQuickJumper: true,
289
+ hideOnSinglePage: value.hideOnSinglePage || false,
290
+ },
291
+ },
292
+ initialSelectedRowKeys: value.initialSelectedRowKeys || [],
293
+ expandable: value.expandable,
294
+ scroll: { x: props.overScrollX || 'max-content', y: height },
295
+ bordered: value.bordered || false,
296
+ sticky: true,
297
+ rowClassName: (record: object | null | undefined, index: number) =>
298
+ index % 2 === 0 ? 'table_base' : 'table_odd',
299
+ ...value.tableProps,
300
+ components: {
301
+ header: {
302
+ cell: ResizeableTitle,
303
+ },
304
+ },
305
+ };
306
+
307
+ // @ts-ignore
308
+ if (tableProps?.initialPaging?.pagination) {
309
+ // @ts-ignore
310
+ tableProps.initialPaging.pagination.showSizeChanger = true;
311
+ }
312
+ return tableProps;
313
+ };
314
+
315
+
316
+ const ShowFullScreen = () => {
317
+ const { itemPath } = props;
318
+ if (window.top != window) {
319
+ window.parent.postMessage(
320
+ {
321
+ type: 'screenChange',
322
+ id: itemPath,
323
+ },
324
+ '*',
325
+ );
326
+ setIsFnllScreen(!isFullScreen);
327
+ } else {
328
+ const isFullScreen: any =
329
+ document.fullScreen ||
330
+ document.webkitIsFullScreen ||
331
+ document.mozFullScreen;
332
+ let contentEle: any = document.querySelector(`body`);
333
+ // addTabsNavStyle(isFullScreen);
334
+ if (contentEle && !isFullScreen) {
335
+ let fullScreenEle =
336
+ contentEle.requestFullscreen ||
337
+ contentEle.mozRequestFullScreen ||
338
+ contentEle.webkitRequestFullScreen ||
339
+ contentEle.msRequestFullscreen;
340
+ if (fullScreenEle) {
341
+ fullScreenEle.call(contentEle);
342
+ setIsFnllScreen(true);
343
+ // getTableHeight(true);
344
+ return;
345
+ }
346
+ }
347
+ if (document && isFullScreen) {
348
+ let exitFullScreen =
349
+ document.exitFullscreen ||
350
+ document.mozCancelFullScreen ||
351
+ document.webkitCancelFullScreen ||
352
+ document.msExitFullscreen;
353
+ if (exitFullScreen) {
354
+ exitFullScreen.call(document);
355
+ setIsFnllScreen(false);
356
+ // getTableHeight();
357
+ return;
358
+ }
359
+ }
360
+ }
361
+ };
362
+
363
+ const handleTimeValue = () => {
364
+ let actionsRender = value.actionsRender || [];
365
+ actionsRender = [
366
+ ...actionsRender,
367
+ {
368
+ type: 'text',
369
+ props: {
370
+ children: (
371
+ <span className="ant-dropdown-link">
372
+ <Dropdown overlay={
373
+ <Menu >
374
+ <Menu.Item>
375
+ <SortableTable
376
+ ref={sortTableRef}
377
+ setShowColumns={setShowColumns}
378
+ showColumn={showColumn}
379
+ datasource={value?.columns || []}
380
+ bsTableCode={bsTableCode}
381
+ />
382
+ </Menu.Item>
383
+ <Menu.Item>
384
+ <SearchItemTable
385
+ ref={sortTableRef}
386
+ setShowSearchFields={setShowSearchFields}
387
+ showSearchFields={showSearchFields}
388
+ datasource={value?.fields || []}
389
+ bsTableCode={bsTableCode}
390
+ />
391
+ </Menu.Item>
392
+ </Menu>
393
+ } placement="bottom" >
394
+ <span className="ant-dropdown-link">
395
+ <img width={32} src={shezhi} />
396
+ </span>
397
+ </Dropdown>
398
+ </span>
399
+ ),
400
+ },
401
+ },
402
+ {
403
+ type: 'text',
404
+ props: {
405
+ children: (
406
+ <a>
407
+ {isFullScreen ? (
408
+ <Tooltip title="取消全屏">
409
+ <img
410
+ onClick={() => {
411
+ ShowFullScreen();
412
+ }}
413
+ width={32}
414
+ src={scanning}
415
+ />
416
+ </Tooltip>
417
+ ) : (
418
+ <Tooltip title="全屏">
419
+ <img
420
+ onClick={() => {
421
+ ShowFullScreen();
422
+ }}
423
+ width={32}
424
+ src={quanping}
425
+ />
426
+ </Tooltip>
427
+ )}
428
+ </a>
429
+ ),
430
+ },
431
+ },
432
+ {
433
+ type: 'text',
434
+ props: {
435
+ children:
436
+ value?.exportConfig && authFn(value?.exportConfig?.code) ? (
437
+ <ExportIcon
438
+ request={{
439
+ url: `/oms-ops/excel/exportAsync/${value?.exportConfig?.type}`,
440
+ params: value?.exportConfig?.params || queryParams,
441
+ }}
442
+ tableRef={props.forwardedRef || refs}
443
+ />
444
+ ) : (
445
+ <span />
446
+ ),
447
+ },
448
+ },
449
+ ];
450
+ if (value.rowSelection) {
451
+ value.rowSelection.columnWidth = 50;
452
+ }
453
+ return {
454
+ ...value,
455
+ actionsRender,
456
+ };
457
+ };
458
+
459
+ const handleResize =
460
+ (index) =>
461
+ (e, { size }) => {
462
+ setShowColumns((columns: any) => {
463
+ let newColumns = [...columns];
464
+ newColumns[index] = {
465
+ ...newColumns[index],
466
+ width: size.width,
467
+ };
468
+ newColumns.forEach((d: any) => {
469
+ handleBssulaColumnsSpecialParams(d);
470
+ })
471
+ return [...newColumns];
472
+ });
473
+ };
474
+
475
+ const setVisibleColumn = (columnTitle: string) => {
476
+ sortTableRef?.current?.handleTableHeadHidden?.(columnTitle);
477
+ };
478
+
479
+ const config = {
480
+ visibleFieldsCount: 3,
481
+ tableWrapperStyle: {
482
+ padding: '10px',
483
+ background: '#f3f3f3',
484
+ },
485
+ setVisibleColumn: setVisibleColumn,
486
+ itemLayout: {
487
+ span: 8, // 栅格占位格数
488
+ labelCol: {
489
+ // label标签布局;可设置 span、offset
490
+ span: 8,
491
+ },
492
+ wrapperCol: {
493
+ // value布局, 方式同labelCol(horizontal状态下配置)
494
+ span: 16,
495
+ },
496
+ },
497
+ rowSelection: false, // 默认无多选
498
+ ...handleTimeValue(),
499
+ tableProps: setTableProps(),
500
+ columns: [...showColumn],
501
+ fields: [...showSearchFields],
502
+ ref: props.forwardedRef || refs,
503
+ isFullScreen,
504
+ };
505
+
506
+ useEffect(() => {
507
+ if (!localStorage.getItem('isTabChange')) {
508
+ if (pagePath === pathname) {
509
+ // @ts-ignore
510
+ config.ref?.current?.tableRef?.current?.refreshTable();
511
+ }
512
+ } else {
513
+ setTimeout(() => {
514
+ // 处理页面刷新两面
515
+ localStorage.removeItem('isTabChange');
516
+ }, 0);
517
+ }
518
+ }, [pathname]);
519
+
520
+ const memoConfig = useMemo(
521
+ () => ({
522
+ ...config,
523
+ summary: props.summary,
524
+ statusMapping: props.statusMapping,
525
+ }),
526
+ [value, checkedList, showColumn, props.statusMapping, showSearchFields],
527
+ );
528
+ return <MemoQueryTable {...memoConfig} />;
529
+ };