@bit-sun/business-component 2.0.37 → 2.0.39-alpha.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 (153) hide show
  1. package/.editorconfig +16 -16
  2. package/.fatherrc.ts +5 -4
  3. package/.gitlab-ci.yml +174 -174
  4. package/.prettierignore +7 -7
  5. package/.prettierrc +11 -11
  6. package/.umirc.ts +77 -74
  7. package/README.md +27 -27
  8. package/dist/components/Business/BsLayouts/Components/AllFunc/drawContent.d.ts +4 -0
  9. package/dist/components/Business/BsLayouts/Components/AllFunc/index.d.ts +4 -0
  10. package/dist/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.d.ts +4 -0
  11. package/dist/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.d.ts +17 -0
  12. package/dist/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.d.ts +30 -0
  13. package/dist/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.d.ts +3 -0
  14. package/dist/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.d.ts +2 -0
  15. package/dist/components/Business/BsLayouts/Components/CustomerMenu/index.d.ts +4 -0
  16. package/dist/components/Business/BsLayouts/Components/GlobalHeader/index.d.ts +4 -0
  17. package/dist/components/Business/BsLayouts/Components/RightContent/LoginModal.d.ts +2 -0
  18. package/dist/components/Business/BsLayouts/Components/RightContent/index.d.ts +8 -0
  19. package/dist/components/Business/BsLayouts/Components/SearchFunc/index.d.ts +8 -0
  20. package/dist/components/Business/BsLayouts/index.d.ts +18 -0
  21. package/dist/components/Business/BsLayouts/service.d.ts +1 -0
  22. package/dist/components/Business/BsLayouts/utils.d.ts +22 -0
  23. package/dist/components/Business/DetailPageWrapper/utils.d.ts +1 -2
  24. package/dist/index.d.ts +4 -0
  25. package/dist/index.esm.js +11703 -44
  26. package/dist/index.js +11678 -11
  27. package/dist/utils/enumConfig.d.ts +10 -0
  28. package/dist/utils/utils.d.ts +2 -1
  29. package/docs/index.md +21 -21
  30. package/lib/assets/drag.svg +17 -17
  31. package/lib/assets/exportFail.svg +37 -37
  32. package/lib/assets/exportProcessing.svg +28 -28
  33. package/lib/assets/exportSuccess.svg +34 -34
  34. package/lib/assets/label_icon_bottom.svg +25 -25
  35. package/lib/assets/upExport.svg +22 -22
  36. package/package.json +70 -66
  37. package/src/assets/32.svg +28 -0
  38. package/src/assets/addIcon.svg +18 -0
  39. package/src/assets/allfunc.svg +28 -0
  40. package/src/assets/arrowRight.svg +25 -0
  41. package/src/assets/btn-delete.svg +29 -29
  42. package/src/assets/btn-edit.svg +19 -19
  43. package/src/assets/btn-more.svg +17 -17
  44. package/src/assets/btn-submit.svg +19 -19
  45. package/src/assets/caidan.svg +12 -0
  46. package/src/assets/close.svg +26 -26
  47. package/src/assets/closeicon.png +0 -0
  48. package/src/assets/drag.svg +17 -17
  49. package/src/assets/exportFail.svg +37 -37
  50. package/src/assets/exportProcessing.svg +28 -28
  51. package/src/assets/exportSuccess.svg +34 -34
  52. package/src/assets/fixed-left-active.svg +11 -11
  53. package/src/assets/fixed-left.svg +15 -15
  54. package/src/assets/fixed-right-active.svg +11 -11
  55. package/src/assets/fixed-right.svg +15 -15
  56. package/src/assets/guanbi.svg +16 -0
  57. package/src/assets/icon-quanping.svg +15 -15
  58. package/src/assets/icon-shezhi.svg +17 -17
  59. package/src/assets/label_icon_bottom.svg +25 -25
  60. package/src/assets/morentouxiang-32.svg +24 -0
  61. package/src/assets/right.png +0 -0
  62. package/src/assets/scanning.svg +24 -24
  63. package/src/assets/upExport.svg +22 -22
  64. package/src/assets/xinglan-icon-out.png +0 -0
  65. package/src/components/Business/AddSelectBusiness/index.md +41 -41
  66. package/src/components/Business/AddSelectBusiness/index.tsx +290 -290
  67. package/src/components/Business/BsLayouts/Components/AllFunc/drawContent.tsx +112 -0
  68. package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -0
  69. package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -0
  70. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -0
  71. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +38 -0
  72. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +243 -0
  73. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +385 -0
  74. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +286 -0
  75. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +75 -0
  76. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +171 -0
  77. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +65 -0
  78. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +154 -0
  79. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +73 -0
  80. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +158 -0
  81. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -0
  82. package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -0
  83. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +156 -0
  84. package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +162 -0
  85. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +76 -0
  86. package/src/components/Business/BsLayouts/index.less +80 -0
  87. package/src/components/Business/BsLayouts/index.tsx +1495 -0
  88. package/src/components/Business/BsLayouts/service.ts +11 -0
  89. package/src/components/Business/BsLayouts/utils.tsx +350 -0
  90. package/src/components/Business/BsSulaQueryTable/index.less +219 -219
  91. package/src/components/Business/BsSulaQueryTable/index.tsx +535 -534
  92. package/src/components/Business/BsSulaQueryTable/setting.tsx +818 -817
  93. package/src/components/Business/BsSulaQueryTable/utils.less +65 -65
  94. package/src/components/Business/BsSulaQueryTable/utils.tsx +691 -690
  95. package/src/components/Business/CommodityEntry/index.md +70 -70
  96. package/src/components/Business/CommodityEntry/index.tsx +80 -80
  97. package/src/components/Business/CommonAlert/index.tsx +23 -23
  98. package/src/components/Business/CommonGuideWrapper/index.less +111 -111
  99. package/src/components/Business/CommonGuideWrapper/index.md +39 -39
  100. package/src/components/Business/CommonGuideWrapper/index.tsx +83 -83
  101. package/src/components/Business/DetailPageWrapper/index.less +79 -79
  102. package/src/components/Business/DetailPageWrapper/index.tsx +335 -324
  103. package/src/components/Business/DetailPageWrapper/utils.tsx +101 -111
  104. package/src/components/Business/HomePageWrapper/index.less +33 -33
  105. package/src/components/Business/HomePageWrapper/index.md +45 -45
  106. package/src/components/Business/HomePageWrapper/index.tsx +162 -150
  107. package/src/components/Business/SearchSelect/BusinessUtils.ts +1458 -1457
  108. package/src/components/Business/SearchSelect/common.ts +53 -53
  109. package/src/components/Business/SearchSelect/index.md +1137 -1137
  110. package/src/components/Business/SearchSelect/index.tsx +51 -51
  111. package/src/components/Business/SearchSelect/utils.ts +100 -99
  112. package/src/components/Business/StateFlow/index.less +130 -130
  113. package/src/components/Business/StateFlow/index.md +60 -60
  114. package/src/components/Business/StateFlow/index.tsx +29 -29
  115. package/src/components/Business/TreeSearchSelect/index.md +126 -126
  116. package/src/components/Business/TreeSearchSelect/index.tsx +34 -34
  117. package/src/components/Business/TreeSearchSelect/utils.ts +60 -60
  118. package/src/components/Business/columnSettingTable/columnSetting.tsx +763 -762
  119. package/src/components/Business/columnSettingTable/index.less +247 -247
  120. package/src/components/Business/columnSettingTable/index.md +357 -357
  121. package/src/components/Business/columnSettingTable/index.tsx +226 -225
  122. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +234 -233
  123. package/src/components/Business/columnSettingTable/utils.tsx +68 -68
  124. package/src/components/Functional/AddSelect/index.less +367 -367
  125. package/src/components/Functional/AddSelect/index.md +122 -122
  126. package/src/components/Functional/AddSelect/index.tsx +962 -962
  127. package/src/components/Functional/BillEntry/index.less +371 -371
  128. package/src/components/Functional/BillEntry/index.md +39 -39
  129. package/src/components/Functional/BillEntry/index.tsx +613 -607
  130. package/src/components/Functional/DataImport/index.less +63 -63
  131. package/src/components/Functional/DataImport/index.md +44 -44
  132. package/src/components/Functional/DataImport/index.tsx +689 -689
  133. package/src/components/Functional/DataValidation/index.less +63 -63
  134. package/src/components/Functional/DataValidation/index.md +38 -38
  135. package/src/components/Functional/DataValidation/index.tsx +681 -681
  136. package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -37
  137. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +59 -59
  138. package/src/components/Functional/QueryMutipleInput/index.less +37 -37
  139. package/src/components/Functional/QueryMutipleInput/index.md +33 -33
  140. package/src/components/Functional/QueryMutipleInput/index.tsx +128 -128
  141. package/src/components/Functional/SearchSelect/index.less +115 -115
  142. package/src/components/Functional/SearchSelect/index.md +141 -141
  143. package/src/components/Functional/SearchSelect/index.tsx +812 -812
  144. package/src/components/Functional/TreeSearchSelect/index.md +47 -47
  145. package/src/components/Functional/TreeSearchSelect/index.tsx +149 -149
  146. package/src/index.ts +31 -30
  147. package/src/utils/CheckOneUser/index.md +39 -39
  148. package/src/utils/CheckOneUser/index.ts +51 -51
  149. package/src/utils/enumConfig.ts +10 -0
  150. package/src/utils/requestUtils.ts +33 -32
  151. package/src/utils/utils.ts +52 -22
  152. package/tsconfig.json +29 -29
  153. package/typings.d.ts +4 -4
@@ -1,234 +1,235 @@
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
- const { Text } = Typography;
12
- export default class ColumnSettingSulaTable extends React.Component {
13
- sulaTableRef: React.RefObject<unknown>;
14
- state: any;
15
- constructor(props: any) {
16
- super(props);
17
- this.state = {
18
- showColumns: [],
19
- }
20
- this.sulaTableRef = React.createRef();
21
- }
22
-
23
- componentDidMount() {
24
- const { columns }: any = this.props;
25
- this.setInitialShowColumn(columns || [])
26
- }
27
-
28
- componentWillReceiveProps(nextProps: any) {
29
- // if (JSON.stringify(this.props.columns) !== JSON.stringify(nextProps.columns)) {
30
- // }
31
- this.setInitialShowColumn(nextProps.columns || [])
32
- }
33
-
34
- setInitialShowColumn = (columns: any[]) => {
35
- // 获取当前列表定义数据
36
- let columnConfig = this.getConfigFromlocalstorage();
37
- let showColumns = columnConfig.length ? columnConfig.map((item:any) => {
38
- let inner = columns.filter(innerItem => (
39
- innerItem.dataIndex && innerItem.dataIndex === item.dataIndex
40
- ) || (innerItem.key && innerItem.key === item.key))[0];
41
- return {
42
- ...inner,
43
- ...item,
44
- }
45
- }).filter((item: any) => !item.hidden)
46
- :
47
- (columns || []).filter((item: any) => !item.hidden);
48
- this.setState({
49
- showColumns,
50
- })
51
-
52
- }
53
-
54
- setShowColumns = (newColumns: Array<any>) => {
55
- this.setState({
56
- showColumns: [...newColumns]
57
- })
58
- }
59
-
60
- getConfigFromlocalstorage = () => {
61
- const { tableCode }:any = this.props;
62
- if (!tableCode) return [];
63
- let config = localStorage.getItem('columnCondition') || '[]';
64
- let configArray = JSON.parse(config);
65
- let configSetting = configArray.filter(
66
- (item: any) => item.code === tableCode,
67
- );
68
-
69
- if (configSetting.length) {
70
- return JSON.parse(configSetting[0].detail || '[]');
71
- }
72
- return [];
73
- };
74
-
75
- getTableSummaryInfo = () => {
76
- const { summary = undefined, rowSelection }: any = this.props;
77
- const { showColumns }: any = this.state;
78
- let summaryRow = rowSelection ? [{}, ...showColumns] : [...showColumns];
79
- let summaryInitial = summary().cont;
80
- let summaryDom: any = <Table.Summary.Row>
81
- {
82
- [...summaryRow].map((item: any, index: number) => {
83
- return (
84
- <Table.Summary.Cell index={rowSelection ? index : index-1}>
85
- <Text type="danger">
86
- {
87
- summaryInitial.filter((inner:any) => inner.key === item.dataIndex || inner.key === item.key).length ?
88
- `${item.title}: ${summaryInitial.filter((inner:any) => inner.key === item.dataIndex || inner.key === item.key)[0].value}` : ''
89
-
90
- }
91
- </Text>
92
- </Table.Summary.Cell>
93
- )
94
- })
95
- }
96
- </Table.Summary.Row >;
97
- return () => summaryDom
98
- };
99
-
100
- handledynamicColumns = (col: any[]) => {
101
- let { dynamicColumns, modeType }: any = this.props;
102
- col = col.map((item: any) => {
103
- let target = dynamicColumns.find((d: any) => item.dataIndex === d.key || item.key === d.key)
104
- if (modeType === 'view' && target) {
105
- item.render = target?.render;
106
- }
107
- return { ...item };
108
- })
109
- return [...col]
110
- };
111
-
112
- handleResize = (index: any) => (_: any, { size }: any) => {
113
- let newColumns = this.state.showColumns.map((col: any) => ({ ...col }));
114
- const handleIndex = (arr: any, indexArr: any) => {
115
- let i = indexArr.shift();
116
- if (indexArr.length > 0) {
117
- handleIndex(arr[i].children, indexArr);
118
- } else {
119
- arr[i] = {
120
- ...arr[i],
121
- width: size.width,
122
- };
123
- if (arr[i].textOverflow) {
124
- arr[i].render = ({ text }: any) => handleTextOverflow(text, size.width);
125
- };
126
- }
127
- };
128
- handleIndex(newColumns, [...index]);
129
- this.setState({
130
- showColumns: [...newColumns]
131
- })
132
- };
133
-
134
- ResizeableTitle = (props: any) => {
135
- const { onResize, width, ...restProps } = props;
136
-
137
- if (!width) {
138
- return <th {...restProps} />;
139
- }
140
- return (
141
- <Resizable
142
- width={width}
143
- height={0}
144
- onResize={onResize}
145
- draggableOpts={{ enableUserSelectHack: false }}
146
- >
147
- <th {...restProps} />
148
- </Resizable>
149
- );
150
- }
151
-
152
- getTableScrollXWidth = (cols: any[]) => {
153
- if (cols.every((item: any) => item.width)) {
154
- return cols.reduce((cur: any, obj: any) => cur += obj.width, 0)
155
- } else {
156
- return 'max-content'
157
- }
158
- };
159
-
160
- render() {
161
- const { style=null, columns, tableCode, summary = undefined, dynamicColumns = [], ...restProps }: any = this.props;
162
- let otherTableInfo = {
163
- ...restProps,
164
- };
165
- let showSummary = null;
166
- if (this.state.showColumns.length) {
167
- if (summary && summary().diy) {
168
- showSummary = this.getTableSummaryInfo();
169
- } else {
170
- showSummary = summary;
171
- }
172
- };
173
-
174
- const handleColumns = (arr: any, indexArr: any[]) => {
175
- arr.forEach((item: any, index: any) => {
176
- let indexArrInside = [...indexArr, index].filter((i: any) => i || i === 0)
177
- if (noEmptyArray(item.children)) {
178
- handleColumns(item.children, indexArrInside);
179
- } else {
180
- item.width = item.width || getItemDefaultWidth(item);
181
- item.onHeaderCell = (column: any) => ({
182
- ...item,
183
- width:
184
- typeof column.width === 'number'
185
- ? column.width
186
- : parseInt(column.width.replace('px', '')),
187
- onResize: this.handleResize(indexArrInside),
188
- });
189
- }
190
- })
191
- };
192
- let showCol = this.state.showColumns.map((item: any) => {
193
- return ({ ...item })
194
- })
195
- handleColumns(showCol, []);
196
- if (dynamicColumns.length) {
197
- showCol = this.handledynamicColumns(showCol);
198
- }
199
-
200
- otherTableInfo = {
201
- ...otherTableInfo,
202
- scroll: { x: restProps.overScrollX || this.getTableScrollXWidth(showCol) },
203
- summary: showSummary,
204
- }
205
- return (
206
- <div>
207
- <div style={{ overflow: 'hidden', padding: '0 8px 10px 0' }}>
208
- <span style={{ float: 'right' }} className="ant-dropdown-link">
209
- <ColumnSetting
210
- setShowColumns={this.setShowColumns}
211
- showColumns={this.state.showColumns}
212
- datasource={columns || []}
213
- tableCode={tableCode}
214
- />
215
- </span>
216
- </div>
217
- <SulaTable
218
- ref={this.sulaTableRef}
219
- style={style}
220
- columns={showCol}
221
- components={{
222
- header: {
223
- cell: this.ResizeableTitle,
224
- },
225
- }}
226
- {
227
- ...otherTableInfo
228
- }
229
- />
230
- </div >
231
- )
232
- }
233
-
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.Row>
82
+ {
83
+ [...summaryRow].map((item: any, index: number) => {
84
+ return (
85
+ <Table.Summary.Cell index={rowSelection ? index : index-1}>
86
+ <Text type="danger">
87
+ {
88
+ summaryInitial.filter((inner:any) => inner.key === item.dataIndex || inner.key === item.key).length ?
89
+ `${item.title}: ${summaryInitial.filter((inner:any) => inner.key === item.dataIndex || inner.key === item.key)[0].value}` : ''
90
+
91
+ }
92
+ </Text>
93
+ </Table.Summary.Cell>
94
+ )
95
+ })
96
+ }
97
+ </Table.Summary.Row >;
98
+ return () => summaryDom
99
+ };
100
+
101
+ handledynamicColumns = (col: any[]) => {
102
+ let { dynamicColumns, modeType }: any = this.props;
103
+ col = col.map((item: any) => {
104
+ let target = dynamicColumns.find((d: any) => item.dataIndex === d.key || item.key === d.key)
105
+ if (modeType === 'view' && target) {
106
+ item.render = target?.render;
107
+ }
108
+ return { ...item };
109
+ })
110
+ return [...col]
111
+ };
112
+
113
+ handleResize = (index: any) => (_: any, { size }: any) => {
114
+ let newColumns = this.state.showColumns.map((col: any) => ({ ...col }));
115
+ const handleIndex = (arr: any, indexArr: any) => {
116
+ let i = indexArr.shift();
117
+ if (indexArr.length > 0) {
118
+ handleIndex(arr[i].children, indexArr);
119
+ } else {
120
+ arr[i] = {
121
+ ...arr[i],
122
+ width: size.width,
123
+ };
124
+ if (arr[i].textOverflow) {
125
+ arr[i].render = ({ text }: any) => handleTextOverflow(text, size.width);
126
+ };
127
+ }
128
+ };
129
+ handleIndex(newColumns, [...index]);
130
+ this.setState({
131
+ showColumns: [...newColumns]
132
+ })
133
+ };
134
+
135
+ ResizeableTitle = (props: any) => {
136
+ const { onResize, width, ...restProps } = props;
137
+
138
+ if (!width) {
139
+ return <th {...restProps} />;
140
+ }
141
+ return (
142
+ <Resizable
143
+ width={width}
144
+ height={0}
145
+ onResize={onResize}
146
+ draggableOpts={{ enableUserSelectHack: false }}
147
+ >
148
+ <th {...restProps} />
149
+ </Resizable>
150
+ );
151
+ }
152
+
153
+ getTableScrollXWidth = (cols: any[]) => {
154
+ if (cols.every((item: any) => item.width)) {
155
+ return cols.reduce((cur: any, obj: any) => cur += obj.width, 0)
156
+ } else {
157
+ return 'max-content'
158
+ }
159
+ };
160
+
161
+ render() {
162
+ const { style=null, columns, tableCode, summary = undefined, dynamicColumns = [], ...restProps }: any = this.props;
163
+ let otherTableInfo = {
164
+ ...restProps,
165
+ };
166
+ let showSummary = null;
167
+ if (this.state.showColumns.length) {
168
+ if (summary && summary().diy) {
169
+ showSummary = this.getTableSummaryInfo();
170
+ } else {
171
+ showSummary = summary;
172
+ }
173
+ };
174
+
175
+ const handleColumns = (arr: any, indexArr: any[]) => {
176
+ arr.forEach((item: any, index: any) => {
177
+ let indexArrInside = [...indexArr, index].filter((i: any) => i || i === 0)
178
+ if (noEmptyArray(item.children)) {
179
+ handleColumns(item.children, indexArrInside);
180
+ } else {
181
+ item.width = item.width || getItemDefaultWidth(item);
182
+ item.onHeaderCell = (column: any) => ({
183
+ ...item,
184
+ width:
185
+ typeof column.width === 'number'
186
+ ? column.width
187
+ : parseInt(column.width.replace('px', '')),
188
+ onResize: this.handleResize(indexArrInside),
189
+ });
190
+ }
191
+ })
192
+ };
193
+ let showCol = this.state.showColumns.map((item: any) => {
194
+ return ({ ...item })
195
+ })
196
+ handleColumns(showCol, []);
197
+ if (dynamicColumns.length) {
198
+ showCol = this.handledynamicColumns(showCol);
199
+ }
200
+
201
+ otherTableInfo = {
202
+ ...otherTableInfo,
203
+ scroll: { x: restProps.overScrollX || this.getTableScrollXWidth(showCol) },
204
+ summary: showSummary,
205
+ }
206
+ return (
207
+ <div>
208
+ <div style={{ overflow: 'hidden', padding: '0 8px 10px 0' }}>
209
+ <span style={{ float: 'right' }} className="ant-dropdown-link">
210
+ <ColumnSetting
211
+ setShowColumns={this.setShowColumns}
212
+ showColumns={this.state.showColumns}
213
+ datasource={columns || []}
214
+ tableCode={tableCode}
215
+ />
216
+ </span>
217
+ </div>
218
+ <SulaTable
219
+ ref={this.sulaTableRef}
220
+ style={style}
221
+ columns={showCol}
222
+ components={{
223
+ header: {
224
+ cell: this.ResizeableTitle,
225
+ },
226
+ }}
227
+ {
228
+ ...otherTableInfo
229
+ }
230
+ />
231
+ </div >
232
+ )
233
+ }
234
+
234
235
  }
@@ -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
  };