@bit-sun/business-component 2.0.30 → 2.0.32

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