@bit-sun/business-component 2.1.17 → 2.1.18

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 (150) 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/BsLayouts/Components/AllFunc/drawContent.d.ts +1 -1
  9. package/dist/components/Business/BsLayouts/Components/AllFunc/index.d.ts +1 -1
  10. package/dist/components/Business/BsLayouts/Components/RightContent/index.d.ts +2 -2
  11. package/dist/components/Business/BsLayouts/Components/SearchFunc/index.d.ts +2 -2
  12. package/dist/components/Business/BsLayouts/index.d.ts +2 -2
  13. package/dist/components/Business/BsSulaQueryTable/setting.d.ts +1 -0
  14. package/dist/components/Business/BsSulaQueryTable/utils.d.ts +2 -2
  15. package/dist/index.esm.js +2706 -1213
  16. package/dist/index.js +2706 -1213
  17. package/dist/utils/TableUtils.d.ts +2 -2
  18. package/dist/utils/utils.d.ts +1 -1
  19. package/docs/index.md +21 -21
  20. package/lib/assets/drag.svg +17 -17
  21. package/lib/assets/exportFail.svg +37 -37
  22. package/lib/assets/exportProcessing.svg +28 -28
  23. package/lib/assets/exportSuccess.svg +34 -34
  24. package/lib/assets/label_icon_bottom.svg +25 -25
  25. package/lib/assets/upExport.svg +22 -22
  26. package/package.json +71 -71
  27. package/src/assets/32.svg +27 -27
  28. package/src/assets/addIcon.svg +17 -17
  29. package/src/assets/allfunc.svg +27 -27
  30. package/src/assets/arrowRight.svg +24 -24
  31. package/src/assets/btn-delete.svg +29 -29
  32. package/src/assets/btn-edit.svg +19 -19
  33. package/src/assets/btn-more.svg +17 -17
  34. package/src/assets/btn-submit.svg +19 -19
  35. package/src/assets/caidan.svg +11 -11
  36. package/src/assets/close.svg +26 -26
  37. package/src/assets/drag.svg +17 -17
  38. package/src/assets/exportFail.svg +37 -37
  39. package/src/assets/exportProcessing.svg +28 -28
  40. package/src/assets/exportSuccess.svg +34 -34
  41. package/src/assets/fixed-left-active.svg +11 -11
  42. package/src/assets/fixed-left.svg +15 -15
  43. package/src/assets/fixed-right-active.svg +11 -11
  44. package/src/assets/fixed-right.svg +15 -15
  45. package/src/assets/guanbi.svg +15 -15
  46. package/src/assets/icon-quanping.svg +15 -15
  47. package/src/assets/icon-shezhi.svg +17 -17
  48. package/src/assets/label_icon_bottom.svg +25 -25
  49. package/src/assets/list-no-img.svg +21 -21
  50. package/src/assets/morentouxiang-32.svg +23 -23
  51. package/src/assets/scanning.svg +24 -24
  52. package/src/assets/upExport.svg +22 -22
  53. package/src/components/Business/AddSelectBusiness/index.md +41 -41
  54. package/src/components/Business/AddSelectBusiness/index.tsx +319 -319
  55. package/src/components/Business/BsLayouts/Components/AllFunc/drawContent.tsx +111 -111
  56. package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -153
  57. package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -70
  58. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -90
  59. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +37 -37
  60. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +242 -242
  61. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +384 -384
  62. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +285 -285
  63. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +74 -74
  64. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +170 -170
  65. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +64 -64
  66. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +153 -153
  67. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +72 -72
  68. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +157 -157
  69. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -85
  70. package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -218
  71. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +156 -156
  72. package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +160 -160
  73. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +75 -75
  74. package/src/components/Business/BsLayouts/index.less +79 -79
  75. package/src/components/Business/BsLayouts/index.tsx +1479 -1479
  76. package/src/components/Business/BsLayouts/service.ts +10 -10
  77. package/src/components/Business/BsLayouts/utils.tsx +230 -230
  78. package/src/components/Business/BsSulaQueryTable/index.less +219 -219
  79. package/src/components/Business/BsSulaQueryTable/index.tsx +507 -505
  80. package/src/components/Business/BsSulaQueryTable/setting.tsx +802 -799
  81. package/src/components/Business/BsSulaQueryTable/utils.less +65 -65
  82. package/src/components/Business/BsSulaQueryTable/utils.tsx +688 -688
  83. package/src/components/Business/CommodityEntry/index.md +70 -70
  84. package/src/components/Business/CommodityEntry/index.tsx +80 -80
  85. package/src/components/Business/CommonAlert/index.tsx +23 -23
  86. package/src/components/Business/CommonGuideWrapper/index.less +111 -111
  87. package/src/components/Business/CommonGuideWrapper/index.md +39 -39
  88. package/src/components/Business/CommonGuideWrapper/index.tsx +83 -83
  89. package/src/components/Business/DetailPageWrapper/index.less +79 -79
  90. package/src/components/Business/DetailPageWrapper/index.tsx +335 -335
  91. package/src/components/Business/DetailPageWrapper/utils.tsx +100 -100
  92. package/src/components/Business/HomePageWrapper/index.less +33 -33
  93. package/src/components/Business/HomePageWrapper/index.md +45 -45
  94. package/src/components/Business/HomePageWrapper/index.tsx +162 -162
  95. package/src/components/Business/SearchSelect/BusinessUtils.ts +1478 -1478
  96. package/src/components/Business/SearchSelect/common.ts +53 -53
  97. package/src/components/Business/SearchSelect/index.md +1137 -1137
  98. package/src/components/Business/SearchSelect/index.tsx +51 -51
  99. package/src/components/Business/SearchSelect/utils.ts +100 -100
  100. package/src/components/Business/StateFlow/index.less +130 -130
  101. package/src/components/Business/StateFlow/index.md +60 -60
  102. package/src/components/Business/StateFlow/index.tsx +29 -29
  103. package/src/components/Business/TreeSearchSelect/index.md +126 -126
  104. package/src/components/Business/TreeSearchSelect/index.tsx +34 -34
  105. package/src/components/Business/TreeSearchSelect/utils.ts +60 -60
  106. package/src/components/Business/columnSettingTable/columnSetting.tsx +764 -764
  107. package/src/components/Business/columnSettingTable/index.less +247 -247
  108. package/src/components/Business/columnSettingTable/index.md +357 -357
  109. package/src/components/Business/columnSettingTable/index.tsx +232 -232
  110. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +240 -240
  111. package/src/components/Business/columnSettingTable/utils.tsx +68 -68
  112. package/src/components/Business/moreTreeTable/index.less +99 -99
  113. package/src/components/Business/moreTreeTable/index.md +508 -508
  114. package/src/components/Business/moreTreeTable/index.tsx +315 -315
  115. package/src/components/Business/moreTreeTable/utils.ts +126 -126
  116. package/src/components/Functional/AddSelect/index.less +367 -367
  117. package/src/components/Functional/AddSelect/index.md +122 -122
  118. package/src/components/Functional/AddSelect/index.tsx +992 -992
  119. package/src/components/Functional/BillEntry/index.less +371 -371
  120. package/src/components/Functional/BillEntry/index.md +39 -39
  121. package/src/components/Functional/BillEntry/index.tsx +671 -671
  122. package/src/components/Functional/DataImport/index.less +63 -63
  123. package/src/components/Functional/DataImport/index.md +44 -44
  124. package/src/components/Functional/DataImport/index.tsx +695 -695
  125. package/src/components/Functional/DataValidation/index.less +63 -63
  126. package/src/components/Functional/DataValidation/index.md +39 -39
  127. package/src/components/Functional/DataValidation/index.tsx +687 -687
  128. package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -37
  129. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +59 -59
  130. package/src/components/Functional/QueryMutipleInput/index.less +37 -37
  131. package/src/components/Functional/QueryMutipleInput/index.md +33 -33
  132. package/src/components/Functional/QueryMutipleInput/index.tsx +128 -128
  133. package/src/components/Functional/SearchSelect/index.less +115 -115
  134. package/src/components/Functional/SearchSelect/index.md +141 -141
  135. package/src/components/Functional/SearchSelect/index.tsx +813 -813
  136. package/src/components/Functional/SearchSelect/utils.ts +6 -6
  137. package/src/components/Functional/TreeSearchSelect/index.md +47 -47
  138. package/src/components/Functional/TreeSearchSelect/index.tsx +149 -149
  139. package/src/index.ts +32 -32
  140. package/src/styles/bsDefault.less +1906 -1906
  141. package/src/utils/CheckOneUser/index.md +39 -39
  142. package/src/utils/CheckOneUser/index.ts +51 -51
  143. package/src/utils/TableUtils.tsx +18 -18
  144. package/src/utils/checkUtils.ts +39 -39
  145. package/src/utils/enumConfig.ts +10 -10
  146. package/src/utils/index.ts +2 -2
  147. package/src/utils/requestUtils.ts +33 -33
  148. package/src/utils/utils.ts +57 -57
  149. package/tsconfig.json +29 -29
  150. package/typings.d.ts +4 -4
@@ -1,241 +1,241 @@
1
- import React, { useState } from 'react';
2
- import { Table as SulaTable, request } from 'bssula';
3
- import { Resizable } from 'react-resizable';
4
- import ColumnSetting from './columnSetting';
5
- import { getItemDefaultWidth, handleTextOverflow } from './utils';
6
- import { noEmptyArray } from './utils';
7
- import {
8
- Table,
9
- Typography,
10
- } from 'antd';
11
- import ENUM from '@/utils/enumConfig';
12
- const { Text } = Typography;
13
- export default class ColumnSettingSulaTable extends React.Component {
14
- sulaTableRef: React.RefObject<unknown>;
15
- state: any;
16
- constructor(props: any) {
17
- super(props);
18
- this.state = {
19
- showColumns: [],
20
- }
21
- this.sulaTableRef = React.createRef();
22
- }
23
-
24
- componentDidMount() {
25
- const { columns }: any = this.props;
26
- this.setInitialShowColumn(columns || [])
27
- }
28
-
29
- componentWillReceiveProps(nextProps: any) {
30
- // if (JSON.stringify(this.props.columns) !== JSON.stringify(nextProps.columns)) {
31
- // }
32
- this.setInitialShowColumn(nextProps.columns || [])
33
- }
34
-
35
- setInitialShowColumn = (columns: any[]) => {
36
- // 获取当前列表定义数据
37
- let columnConfig = this.getConfigFromlocalstorage();
38
- let showColumns = columnConfig.length ? columnConfig.map((item:any) => {
39
- let inner = columns.filter(innerItem => (
40
- innerItem.dataIndex && innerItem.dataIndex === item.dataIndex
41
- ) || (innerItem.key && innerItem.key === item.key))[0];
42
- return {
43
- ...inner,
44
- ...item,
45
- }
46
- }).filter((item: any) => !item.hidden)
47
- :
48
- (columns || []).filter((item: any) => !item.hidden);
49
- this.setState({
50
- showColumns,
51
- })
52
-
53
- }
54
-
55
- setShowColumns = (newColumns: Array<any>) => {
56
- this.setState({
57
- showColumns: [...newColumns]
58
- })
59
- }
60
-
61
- getConfigFromlocalstorage = () => {
62
- const { tableCode }:any = this.props;
63
- if (!tableCode) return [];
64
- let config = localStorage.getItem(ENUM.BROWSER_CACHE.COLUMN_CONDITION) || '[]';
65
- let configArray = JSON.parse(config);
66
- let configSetting = configArray.filter(
67
- (item: any) => item.code === tableCode,
68
- );
69
-
70
- if (configSetting.length) {
71
- return JSON.parse(configSetting[0].detail || '[]');
72
- }
73
- return [];
74
- };
75
-
76
- getTableSummaryInfo = () => {
77
- const { summary = undefined, rowSelection }: any = this.props;
78
- const { showColumns }: any = this.state;
79
- let summaryRow = rowSelection ? [{}, ...showColumns] : [...showColumns];
80
- let summaryInitial = summary().cont;
81
- let summaryDom: any = <Table.Summary fixed>
82
- <Table.Summary.Row>
83
- {
84
- [...summaryRow].map((item: any, index: number) => {
85
- return (
86
- <Table.Summary.Cell index={index}>
87
- <Text type="danger">
88
- {
89
- summaryInitial.filter((inner: any) => inner.key === item.dataIndex || inner.key === item.key).length ?
90
- `${item.title}: ${summaryInitial.filter((inner: any) => inner.key === item.dataIndex || inner.key === item.key)[0].value}` : ''
91
-
92
- }
93
- </Text>
94
- </Table.Summary.Cell>
95
- )
96
- })
97
- }
98
- </Table.Summary.Row >
99
- </Table.Summary>
100
- return () => summaryDom
101
- };
102
-
103
- handledynamicColumns = (col: any[]) => {
104
- let { dynamicColumns, modeType }: any = this.props;
105
- col = col.map((item: any) => {
106
- let target = dynamicColumns.find((d: any) => item.dataIndex === d.key || item.key === d.key)
107
- if (modeType === 'view' && target) {
108
- item.render = target?.render;
109
- }
110
- return { ...item };
111
- })
112
- return [...col]
113
- };
114
-
115
- handleResize = (index: any) => (_: any, { size }: any) => {
116
- let newColumns = this.state.showColumns.map((col: any) => ({ ...col }));
117
- const handleIndex = (arr: any, indexArr: any) => {
118
- let i = indexArr.shift();
119
- if (indexArr.length > 0) {
120
- handleIndex(arr[i].children, indexArr);
121
- } else {
122
- arr[i] = {
123
- ...arr[i],
124
- width: size.width,
125
- };
126
- if (arr[i].textOverflow) {
127
- arr[i].render = ({ text }: any) => handleTextOverflow(text, size.width);
128
- };
129
- }
130
- };
131
- handleIndex(newColumns, [...index]);
132
- this.setState({
133
- showColumns: [...newColumns]
134
- })
135
- };
136
-
137
- ResizeableTitle = (props: any) => {
138
- const { onResize, width, ...restProps } = props;
139
-
140
- if (!width) {
141
- return <th {...restProps} />;
142
- }
143
- return (
144
- <Resizable
145
- width={width}
146
- height={0}
147
- onResize={onResize}
148
- draggableOpts={{ enableUserSelectHack: false }}
149
- >
150
- <th {...restProps} />
151
- </Resizable>
152
- );
153
- }
154
-
155
- getTableScrollXWidth = (cols: any[]) => {
156
- if (cols.every((item: any) => item.width)) {
157
- return cols.reduce((cur: any, obj: any) => cur += obj.width, 0)
158
- } else {
159
- return 'max-content'
160
- }
161
- };
162
-
163
- render() {
164
- const { style=null, columns, tableCode, summary = undefined, dynamicColumns = [], scroll={}, ...restProps }: any = this.props;
165
- let otherTableInfo = {
166
- ...restProps,
167
- };
168
- let showSummary = null;
169
- if (this.state.showColumns.length) {
170
- if (summary && summary().diy) {
171
- showSummary = this.getTableSummaryInfo();
172
- } else {
173
- showSummary = summary;
174
- }
175
- };
176
-
177
- const handleColumns = (arr: any, indexArr: any[]) => {
178
- arr.forEach((item: any, index: any) => {
179
- let indexArrInside = [...indexArr, index].filter((i: any) => i || i === 0)
180
- if (noEmptyArray(item.children)) {
181
- handleColumns(item.children, indexArrInside);
182
- } else {
183
- item.width = item.width || getItemDefaultWidth(item);
184
- item.onHeaderCell = (column: any) => ({
185
- ...item,
186
- width:
187
- typeof column.width === 'number'
188
- ? column.width
189
- : parseInt(column.width.replace('px', '')),
190
- onResize: this.handleResize(indexArrInside),
191
- });
192
- }
193
- })
194
- };
195
- let showCol = this.state.showColumns.map((item: any) => {
196
- return ({ ...item })
197
- })
198
- handleColumns(showCol, []);
199
- if (dynamicColumns.length) {
200
- showCol = this.handledynamicColumns(showCol);
201
- }
202
-
203
- otherTableInfo = {
204
- ...otherTableInfo,
205
- scroll: {
206
- y: 400,
207
- ...scroll,
208
- x: restProps.overScrollX || this.getTableScrollXWidth(showCol)
209
- },
210
- summary: showSummary,
211
- }
212
- return (
213
- <div>
214
- <div style={{ overflow: 'hidden', padding: '0 8px 10px 0' }}>
215
- <span style={{ float: 'right' }} className="ant-dropdown-link">
216
- <ColumnSetting
217
- setShowColumns={this.setShowColumns}
218
- showColumns={this.state.showColumns}
219
- datasource={columns || []}
220
- tableCode={tableCode}
221
- />
222
- </span>
223
- </div>
224
- <SulaTable
225
- ref={this.sulaTableRef}
226
- style={style}
227
- columns={showCol}
228
- components={{
229
- header: {
230
- cell: this.ResizeableTitle,
231
- },
232
- }}
233
- {
234
- ...otherTableInfo
235
- }
236
- />
237
- </div >
238
- )
239
- }
240
-
1
+ import React, { useState } from 'react';
2
+ import { Table as SulaTable, request } from 'bssula';
3
+ import { Resizable } from 'react-resizable';
4
+ import ColumnSetting from './columnSetting';
5
+ import { getItemDefaultWidth, handleTextOverflow } from './utils';
6
+ import { noEmptyArray } from './utils';
7
+ import {
8
+ Table,
9
+ Typography,
10
+ } from 'antd';
11
+ import ENUM from '@/utils/enumConfig';
12
+ const { Text } = Typography;
13
+ export default class ColumnSettingSulaTable extends React.Component {
14
+ sulaTableRef: React.RefObject<unknown>;
15
+ state: any;
16
+ constructor(props: any) {
17
+ super(props);
18
+ this.state = {
19
+ showColumns: [],
20
+ }
21
+ this.sulaTableRef = React.createRef();
22
+ }
23
+
24
+ componentDidMount() {
25
+ const { columns }: any = this.props;
26
+ this.setInitialShowColumn(columns || [])
27
+ }
28
+
29
+ componentWillReceiveProps(nextProps: any) {
30
+ // if (JSON.stringify(this.props.columns) !== JSON.stringify(nextProps.columns)) {
31
+ // }
32
+ this.setInitialShowColumn(nextProps.columns || [])
33
+ }
34
+
35
+ setInitialShowColumn = (columns: any[]) => {
36
+ // 获取当前列表定义数据
37
+ let columnConfig = this.getConfigFromlocalstorage();
38
+ let showColumns = columnConfig.length ? columnConfig.map((item:any) => {
39
+ let inner = columns.filter(innerItem => (
40
+ innerItem.dataIndex && innerItem.dataIndex === item.dataIndex
41
+ ) || (innerItem.key && innerItem.key === item.key))[0];
42
+ return {
43
+ ...inner,
44
+ ...item,
45
+ }
46
+ }).filter((item: any) => !item.hidden)
47
+ :
48
+ (columns || []).filter((item: any) => !item.hidden);
49
+ this.setState({
50
+ showColumns,
51
+ })
52
+
53
+ }
54
+
55
+ setShowColumns = (newColumns: Array<any>) => {
56
+ this.setState({
57
+ showColumns: [...newColumns]
58
+ })
59
+ }
60
+
61
+ getConfigFromlocalstorage = () => {
62
+ const { tableCode }:any = this.props;
63
+ if (!tableCode) return [];
64
+ let config = localStorage.getItem(ENUM.BROWSER_CACHE.COLUMN_CONDITION) || '[]';
65
+ let configArray = JSON.parse(config);
66
+ let configSetting = configArray.filter(
67
+ (item: any) => item.code === tableCode,
68
+ );
69
+
70
+ if (configSetting.length) {
71
+ return JSON.parse(configSetting[0].detail || '[]');
72
+ }
73
+ return [];
74
+ };
75
+
76
+ getTableSummaryInfo = () => {
77
+ const { summary = undefined, rowSelection }: any = this.props;
78
+ const { showColumns }: any = this.state;
79
+ let summaryRow = rowSelection ? [{}, ...showColumns] : [...showColumns];
80
+ let summaryInitial = summary().cont;
81
+ let summaryDom: any = <Table.Summary fixed>
82
+ <Table.Summary.Row>
83
+ {
84
+ [...summaryRow].map((item: any, index: number) => {
85
+ return (
86
+ <Table.Summary.Cell index={index}>
87
+ <Text type="danger">
88
+ {
89
+ summaryInitial.filter((inner: any) => inner.key === item.dataIndex || inner.key === item.key).length ?
90
+ `${item.title}: ${summaryInitial.filter((inner: any) => inner.key === item.dataIndex || inner.key === item.key)[0].value}` : ''
91
+
92
+ }
93
+ </Text>
94
+ </Table.Summary.Cell>
95
+ )
96
+ })
97
+ }
98
+ </Table.Summary.Row >
99
+ </Table.Summary>
100
+ return () => summaryDom
101
+ };
102
+
103
+ handledynamicColumns = (col: any[]) => {
104
+ let { dynamicColumns, modeType }: any = this.props;
105
+ col = col.map((item: any) => {
106
+ let target = dynamicColumns.find((d: any) => item.dataIndex === d.key || item.key === d.key)
107
+ if (modeType === 'view' && target) {
108
+ item.render = target?.render;
109
+ }
110
+ return { ...item };
111
+ })
112
+ return [...col]
113
+ };
114
+
115
+ handleResize = (index: any) => (_: any, { size }: any) => {
116
+ let newColumns = this.state.showColumns.map((col: any) => ({ ...col }));
117
+ const handleIndex = (arr: any, indexArr: any) => {
118
+ let i = indexArr.shift();
119
+ if (indexArr.length > 0) {
120
+ handleIndex(arr[i].children, indexArr);
121
+ } else {
122
+ arr[i] = {
123
+ ...arr[i],
124
+ width: size.width,
125
+ };
126
+ if (arr[i].textOverflow) {
127
+ arr[i].render = ({ text }: any) => handleTextOverflow(text, size.width);
128
+ };
129
+ }
130
+ };
131
+ handleIndex(newColumns, [...index]);
132
+ this.setState({
133
+ showColumns: [...newColumns]
134
+ })
135
+ };
136
+
137
+ ResizeableTitle = (props: any) => {
138
+ const { onResize, width, ...restProps } = props;
139
+
140
+ if (!width) {
141
+ return <th {...restProps} />;
142
+ }
143
+ return (
144
+ <Resizable
145
+ width={width}
146
+ height={0}
147
+ onResize={onResize}
148
+ draggableOpts={{ enableUserSelectHack: false }}
149
+ >
150
+ <th {...restProps} />
151
+ </Resizable>
152
+ );
153
+ }
154
+
155
+ getTableScrollXWidth = (cols: any[]) => {
156
+ if (cols.every((item: any) => item.width)) {
157
+ return cols.reduce((cur: any, obj: any) => cur += obj.width, 0)
158
+ } else {
159
+ return 'max-content'
160
+ }
161
+ };
162
+
163
+ render() {
164
+ const { style=null, columns, tableCode, summary = undefined, dynamicColumns = [], scroll={}, ...restProps }: any = this.props;
165
+ let otherTableInfo = {
166
+ ...restProps,
167
+ };
168
+ let showSummary = null;
169
+ if (this.state.showColumns.length) {
170
+ if (summary && summary().diy) {
171
+ showSummary = this.getTableSummaryInfo();
172
+ } else {
173
+ showSummary = summary;
174
+ }
175
+ };
176
+
177
+ const handleColumns = (arr: any, indexArr: any[]) => {
178
+ arr.forEach((item: any, index: any) => {
179
+ let indexArrInside = [...indexArr, index].filter((i: any) => i || i === 0)
180
+ if (noEmptyArray(item.children)) {
181
+ handleColumns(item.children, indexArrInside);
182
+ } else {
183
+ item.width = item.width || getItemDefaultWidth(item);
184
+ item.onHeaderCell = (column: any) => ({
185
+ ...item,
186
+ width:
187
+ typeof column.width === 'number'
188
+ ? column.width
189
+ : parseInt(column.width.replace('px', '')),
190
+ onResize: this.handleResize(indexArrInside),
191
+ });
192
+ }
193
+ })
194
+ };
195
+ let showCol = this.state.showColumns.map((item: any) => {
196
+ return ({ ...item })
197
+ })
198
+ handleColumns(showCol, []);
199
+ if (dynamicColumns.length) {
200
+ showCol = this.handledynamicColumns(showCol);
201
+ }
202
+
203
+ otherTableInfo = {
204
+ ...otherTableInfo,
205
+ scroll: {
206
+ y: 400,
207
+ ...scroll,
208
+ x: restProps.overScrollX || this.getTableScrollXWidth(showCol)
209
+ },
210
+ summary: showSummary,
211
+ }
212
+ return (
213
+ <div>
214
+ <div style={{ overflow: 'hidden', padding: '0 8px 10px 0' }}>
215
+ <span style={{ float: 'right' }} className="ant-dropdown-link">
216
+ <ColumnSetting
217
+ setShowColumns={this.setShowColumns}
218
+ showColumns={this.state.showColumns}
219
+ datasource={columns || []}
220
+ tableCode={tableCode}
221
+ />
222
+ </span>
223
+ </div>
224
+ <SulaTable
225
+ ref={this.sulaTableRef}
226
+ style={style}
227
+ columns={showCol}
228
+ components={{
229
+ header: {
230
+ cell: this.ResizeableTitle,
231
+ },
232
+ }}
233
+ {
234
+ ...otherTableInfo
235
+ }
236
+ />
237
+ </div >
238
+ )
239
+ }
240
+
241
241
  }
@@ -1,69 +1,69 @@
1
- import React from 'react';
2
- import {
3
- Tooltip,
4
- } from 'antd';
5
- /**
6
- * 非空数组
7
- * @param arr 要判断的数据
8
- * @returns boolean
9
- */
10
- export const noEmptyArray = (arr: any[]) =>
11
- Array.isArray(arr) && arr.length > 0;
12
-
13
- //设置queryTable默认列宽
14
- export const getItemDefaultWidth = (item: any) => {
15
- let defaultWidth = 200;
16
- let lowerCaseKey = (item.key || item.dataIndex).toLowerCase();
17
- switch (true) {
18
- case item?.title === '操作' || lowerCaseKey === 'operate':
19
- defaultWidth = 60;
20
- break;
21
- case lowerCaseKey.indexOf('number') > -1:
22
- case lowerCaseKey.indexOf('quantity') > -1:
23
- case lowerCaseKey.indexOf('amount') > -1:
24
- defaultWidth = 90;
25
- break;
26
- case (lowerCaseKey.indexOf('no') > -1):
27
- defaultWidth = 200;
28
- break;
29
- case lowerCaseKey.indexOf('code') > -1:
30
- defaultWidth = 170;
31
- break;
32
- case lowerCaseKey.indexOf('time') > -1:
33
- defaultWidth = 130;
34
- break;
35
- case lowerCaseKey.indexOf('status') > -1:
36
- defaultWidth = 100;
37
- break;
38
- case lowerCaseKey.indexOf('user') > -1:
39
- defaultWidth = 130;
40
- break;
41
- default:
42
- break;
43
- }
44
- return defaultWidth;
45
- };
46
-
47
- // 带有toptile 清提示 ...
48
- export const handleTextOverflow = (
49
- text: string | undefined,
50
- width: number = 130,
51
- ) => {
52
- return (
53
- <Tooltip title={text || '- -'}>
54
- <span
55
- style={{
56
- width: width ? width + 'px' : '130px',
57
- display: 'inline-block',
58
- textOverflow: 'ellipsis',
59
- overflow: 'hidden',
60
- whiteSpace: 'nowrap',
61
- position: 'relative',
62
- top: '5px',
63
- }}
64
- >
65
- {text || '- -'}
66
- </span>
67
- </Tooltip>
68
- );
1
+ import React from 'react';
2
+ import {
3
+ Tooltip,
4
+ } from 'antd';
5
+ /**
6
+ * 非空数组
7
+ * @param arr 要判断的数据
8
+ * @returns boolean
9
+ */
10
+ export const noEmptyArray = (arr: any[]) =>
11
+ Array.isArray(arr) && arr.length > 0;
12
+
13
+ //设置queryTable默认列宽
14
+ export const getItemDefaultWidth = (item: any) => {
15
+ let defaultWidth = 200;
16
+ let lowerCaseKey = (item.key || item.dataIndex).toLowerCase();
17
+ switch (true) {
18
+ case item?.title === '操作' || lowerCaseKey === 'operate':
19
+ defaultWidth = 60;
20
+ break;
21
+ case lowerCaseKey.indexOf('number') > -1:
22
+ case lowerCaseKey.indexOf('quantity') > -1:
23
+ case lowerCaseKey.indexOf('amount') > -1:
24
+ defaultWidth = 90;
25
+ break;
26
+ case (lowerCaseKey.indexOf('no') > -1):
27
+ defaultWidth = 200;
28
+ break;
29
+ case lowerCaseKey.indexOf('code') > -1:
30
+ defaultWidth = 170;
31
+ break;
32
+ case lowerCaseKey.indexOf('time') > -1:
33
+ defaultWidth = 130;
34
+ break;
35
+ case lowerCaseKey.indexOf('status') > -1:
36
+ defaultWidth = 100;
37
+ break;
38
+ case lowerCaseKey.indexOf('user') > -1:
39
+ defaultWidth = 130;
40
+ break;
41
+ default:
42
+ break;
43
+ }
44
+ return defaultWidth;
45
+ };
46
+
47
+ // 带有toptile 清提示 ...
48
+ export const handleTextOverflow = (
49
+ text: string | undefined,
50
+ width: number = 130,
51
+ ) => {
52
+ return (
53
+ <Tooltip title={text || '- -'}>
54
+ <span
55
+ style={{
56
+ width: width ? width + 'px' : '130px',
57
+ display: 'inline-block',
58
+ textOverflow: 'ellipsis',
59
+ overflow: 'hidden',
60
+ whiteSpace: 'nowrap',
61
+ position: 'relative',
62
+ top: '5px',
63
+ }}
64
+ >
65
+ {text || '- -'}
66
+ </span>
67
+ </Tooltip>
68
+ );
69
69
  };