@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
@@ -0,0 +1,328 @@
1
+ ---
2
+ nav:
3
+ title: '组件'
4
+ order: 1
5
+ group:
6
+ title: 业务组件
7
+ order: 1
8
+ title: JSON处理
9
+ order: 9
10
+ ---
11
+
12
+ # HomePageWrapper
13
+
14
+
15
+ ## 首页标题组件
16
+
17
+ ```tsx
18
+ import JsonQueryTable from './index';
19
+ import React, { useState } from 'react';
20
+
21
+ export default () => {
22
+
23
+ const config = {
24
+ rowKey: 'id',
25
+ columns: [
26
+ {
27
+ key: 'id',
28
+ title: 'id',
29
+ sorter: true,
30
+ },
31
+ {
32
+ key: 'senderName',
33
+ title: 'senderName',
34
+ filterRender: 'search',
35
+ }
36
+ ],
37
+ actionsRender: [
38
+ {
39
+ type: 'button',
40
+ props: {
41
+ children: 'create' ,
42
+ type: 'primary',
43
+ },
44
+ action: {
45
+ type: 'route',
46
+ path: '/form/card/create',
47
+ },
48
+ },
49
+ ],
50
+ fields: [
51
+ {
52
+ name: 'objType1',
53
+ label: '抬头',
54
+ field: {
55
+ type: 'input',
56
+ },
57
+ },
58
+ {
59
+ name: 'objCode1',
60
+ label: '税号',
61
+ field: {
62
+ type: 'input',
63
+ },
64
+ }],
65
+ remoteDataSource: {
66
+ url: '/api/manage/list.json',
67
+ method: 'post',
68
+ },
69
+ };
70
+
71
+
72
+ const config1 = {
73
+ mode: 'create',
74
+ actionsPosition: 'bottom',
75
+ itemLayout: {
76
+ cols: {
77
+ xxl: 4,
78
+ xl: 3,
79
+ lg: 2,
80
+ md: 2,
81
+ sm: 1,
82
+ xs: 1
83
+ }
84
+ },
85
+ actionsRender: [{
86
+ type: 'button',
87
+ props: {
88
+ children: 'Cancel'
89
+ }
90
+ }, {
91
+ type: 'button',
92
+ props: {
93
+ children: 'Submit',
94
+ type: 'primary'
95
+ },
96
+ action: [{
97
+ type: 'request',
98
+ url: '/api/manage/add.json',
99
+ method: 'post'
100
+ }, 'back']
101
+ }],
102
+ fields: [
103
+ {
104
+ container: {
105
+ type: 'card1',
106
+ props: {
107
+ name: 'card1'
108
+ }
109
+ },
110
+ itemLayout: {
111
+ span: 12,
112
+ },
113
+ fields: [
114
+ {
115
+ name: 'objType1',
116
+ label: '抬头',
117
+ field: {
118
+ type: 'input1',
119
+ },
120
+ },
121
+ {
122
+ name: 'objCode',
123
+ label: '税号',
124
+ field: {
125
+ type: 'input',
126
+ },
127
+ },
128
+ {
129
+ name: 'use',
130
+ label: '单位地址',
131
+ field: {
132
+ type: 'input',
133
+ },
134
+ },
135
+ {
136
+ name: 'detail',
137
+ label: '电话',
138
+ field: {
139
+ type: 'input',
140
+ },
141
+ },
142
+ {
143
+ name: 'consignee',
144
+ label: '开户银行',
145
+ field: {
146
+ type: 'input',
147
+ },
148
+ },
149
+ {
150
+ name: 'phone',
151
+ label: '银行账户',
152
+ field: {
153
+ type: 'input',
154
+ },
155
+ },
156
+ ],
157
+ },
158
+ {
159
+ container: {
160
+ type: 'card2',
161
+ props: {
162
+ title: '财务信息',
163
+ id: Math.random(),
164
+ level: 1,
165
+ name: 'card2'
166
+ },
167
+ },
168
+ itemLayout: {
169
+ span: 12,
170
+ },
171
+ fields: [
172
+ {
173
+ container: {
174
+ type: 'card3',
175
+ props: {
176
+ name: 'card3'
177
+ }
178
+ },
179
+ itemLayout: {
180
+ span: 12,
181
+ },
182
+ fields: [
183
+ {
184
+ name: 'objType1',
185
+ label: '抬头',
186
+ field: {
187
+ type: 'input3434',
188
+ },
189
+ },
190
+ {
191
+ name: 'objCode1',
192
+ label: '税号',
193
+ field: {
194
+ type: 'input',
195
+ },
196
+ },
197
+ {
198
+ name: 'use1',
199
+ label: '单位地址',
200
+ field: {
201
+ type: 'input',
202
+ },
203
+ },
204
+ {
205
+ name: 'detail1',
206
+ label: '电话',
207
+ field: {
208
+ type: 'input',
209
+ },
210
+ },
211
+ {
212
+ name: 'consignee1',
213
+ label: '开户银行',
214
+ field: {
215
+ type: 'input',
216
+ },
217
+ },
218
+ {
219
+ name: 'phone1',
220
+ label: '银行账户',
221
+ field: {
222
+ type: 'input',
223
+ },
224
+ },
225
+ ],
226
+ },
227
+ {
228
+ name: 'objCode2',
229
+ label: '税号',
230
+ field: {
231
+ type: 'input',
232
+ },
233
+ },
234
+ {
235
+ name: 'use2',
236
+ label: '单位地址',
237
+ field: {
238
+ type: 'input',
239
+ },
240
+ },
241
+ {
242
+ name: 'detail2',
243
+ label: '电话',
244
+ field: {
245
+ type: 'input',
246
+ },
247
+ },
248
+ {
249
+ name: 'consignee2',
250
+ label: '开户银行',
251
+ field: {
252
+ type: 'input',
253
+ },
254
+ },
255
+ {
256
+ name: 'phone2',
257
+ label: '银行账户',
258
+ field: {
259
+ type: 'input',
260
+ },
261
+ },
262
+ ],
263
+ },
264
+ ],
265
+ submit: {},
266
+ remoteValues: {
267
+ url: '/api/manage/detail.json',
268
+ method: 'post',
269
+ params: {
270
+ id: 19
271
+ }
272
+ }
273
+ };;
274
+
275
+
276
+
277
+
278
+ return (
279
+ <JsonQueryTable codeProps={{...config1}} initialSetting={{
280
+ columns: [],
281
+ fields: [{
282
+ label: "免费理由",
283
+ name:"F10090",
284
+ }]
285
+ }} customerFields={[{
286
+ label: "免费理由",
287
+ name:"F10090",
288
+ field: {
289
+ type: 'select'
290
+ },
291
+ initialSource: [
292
+ {text: '销售会谈', value: '001'},
293
+ {text: '销售会2', value: '002'}
294
+ ]
295
+ },{
296
+ label: "免费理由3",
297
+ name:"F100901",
298
+ field: {
299
+ type: 'select'
300
+ },
301
+ initialSource: [
302
+ {text: '销售会谈', value: '001'},
303
+ {text: '销售会2', value: '002'}
304
+ ]
305
+ },{
306
+ label: "免费理由1",
307
+ name:"F100902",
308
+ field: {
309
+ type: 'select'
310
+ },
311
+ initialSource: [
312
+ {text: '销售会谈', value: '001'},
313
+ {text: '销售会2', value: '002'}
314
+ ]
315
+ },{
316
+ label: "免费理由2",
317
+ name:"F100903",
318
+ field: {
319
+ type: 'select'
320
+ },
321
+ initialSource: [
322
+ {text: '销售会谈', value: '001'},
323
+ {text: '销售会2', value: '002'}
324
+ ]
325
+ }]} callBack={(value) => {console.log('call',value)}} />
326
+ );
327
+ };
328
+ ```
@@ -0,0 +1,320 @@
1
+ // @ts-nocheck
2
+ import React, { useState, useRef, useEffect } from 'react';
3
+ import { message, Button, Table } from 'antd';
4
+ import Drawer from './drawer';
5
+ import ConfigButton from './configButton';
6
+ import Editor from './jsonEditor';
7
+ import axios from 'axios';
8
+ import FieldsSettingsTable from './components/FieldsSettingsTable';
9
+ import { isEmpty } from "lodash"
10
+ import './index.less';
11
+
12
+ function iterFileds (fields) {
13
+ let filedsValue = [];
14
+
15
+ function iter(field) {
16
+ if(Array.isArray(field.fields)) {
17
+ field.fields.forEach(item => {
18
+ const targetValue = iterFileds(item);
19
+ if(targetValue){
20
+ filedsValue.push(targetValue);
21
+ }
22
+ })
23
+ } else {
24
+ return {
25
+ name: field.name,
26
+ isStaticCode: true,
27
+ label: field.label,
28
+ }
29
+ }
30
+
31
+ return {
32
+ container: {
33
+ name: field?.container?.props?.name,
34
+ title: field?.container?.props?.title
35
+ },
36
+ isStaticCode: true,
37
+ fields: filedsValue,
38
+ };
39
+ }
40
+
41
+ filedsValue = iter(fields)
42
+
43
+ return filedsValue;
44
+ }
45
+
46
+ function flatFileds (fields) {
47
+ let filedsValue = {
48
+ };
49
+ function iter(field, containerName) {
50
+ if(Array.isArray(field.fields)) {
51
+ if (field?.container?.props?.name) {
52
+ filedsValue[field?.container?.props?.name] = {
53
+ ...field,
54
+ fields: []
55
+ }
56
+ }
57
+ field.fields.forEach(item => {
58
+ iter(item, field?.container?.props?.name)
59
+ })
60
+ } else {
61
+ filedsValue[containerName ? (containerName + field.name) : field.name] = field
62
+ }
63
+ }
64
+
65
+ iter(fields)
66
+
67
+ return filedsValue;
68
+ }
69
+
70
+ function convertFileds (fields, falltValue, faltFieldRange, containerName) {
71
+ let filedsValue = [];
72
+
73
+ function iter(field) {
74
+ if(Array.isArray(field.fields)) {
75
+ field.fields.forEach(item => {
76
+ const targetValue = convertFileds(item, falltValue, faltFieldRange, field?.container?.name);
77
+ if(targetValue){
78
+ filedsValue.push(targetValue)
79
+ }
80
+ })
81
+ } else {
82
+ const returnField = field.isStaticCode ? falltValue[containerName ? (containerName + field.name) : field.name] : faltFieldRange[field.name];
83
+ if (returnField) {
84
+ returnField.label = field?.label;
85
+ if(Array.isArray(returnField.name)&&returnField.name?.includes("extensionFields")){
86
+ returnField.notShowLabel = true;
87
+ }
88
+ } else {
89
+ debugger
90
+ }
91
+ return returnField;
92
+ }
93
+
94
+ return {...falltValue[field?.container?.name], fields: filedsValue};
95
+ }
96
+
97
+ filedsValue = iter(fields)
98
+
99
+ return filedsValue;
100
+ }
101
+
102
+ function faltColumns(columns) {
103
+ let columnsValue = {}
104
+
105
+ columns.forEach(item => {
106
+ columnsValue[item.key] = {...item}
107
+ })
108
+
109
+ return columnsValue;
110
+ }
111
+
112
+ function faltCustomerFieldRange(fileds) {
113
+ let columnsValue = {}
114
+
115
+ fileds.forEach(item => {
116
+ columnsValue[item.name] = {...item}
117
+ })
118
+
119
+ return columnsValue;
120
+ }
121
+
122
+ function hanleCallbackValue(codeProps, value, customerFields) {
123
+ const faltFieldRange = faltCustomerFieldRange(customerFields)
124
+ const falltValue = flatFileds({fields: codeProps.fields})
125
+ let newCodeProps = {...codeProps};
126
+ newCodeProps.fields = convertFileds({fields: value.fields}, falltValue, faltFieldRange).fields;
127
+ if (codeProps.columns) {
128
+ const faltColumnsValue = faltColumns(codeProps.columns)
129
+ newCodeProps.columns = value.columns.map(item => {
130
+ if (item.isStaticCode) {
131
+ return faltColumnsValue[item.key]
132
+ } else {
133
+ //自定义字段-列字段
134
+ if(item?.key&&item?.key.includes('extensionFields')&&item?.key.includes(',')){
135
+ return {
136
+ ...item,
137
+ render: ({ record }: any) => {
138
+ try{
139
+ const lastName1= item?.key.split(',')[1]; //兼容没有fieldName的情况
140
+ const lastName2 = `${lastName1}Name`;
141
+ const target = record?.extensionFields || {};
142
+ return target[lastName2] || target[lastName1] || '';
143
+ }catch(e){
144
+ console.log('e',e);
145
+ }
146
+ }
147
+ }
148
+ }else{
149
+ return {
150
+ ...item
151
+ }
152
+ }
153
+ }
154
+ });
155
+
156
+ //进行列表搜索项自定义字段name替换 (排除是编辑表单的fields)
157
+ newCodeProps.fields = newCodeProps.fields.map(item => {
158
+ if(Array.isArray(item?.name)){
159
+ return {
160
+ ...item,
161
+ name: item?.realSearchName || item?.name
162
+ }
163
+ }
164
+ return item;
165
+ });
166
+
167
+ }
168
+
169
+ return newCodeProps;
170
+ }
171
+
172
+ function isAdmin() {
173
+ const username = JSON.parse(localStorage.getItem('userInfo') || '{}')
174
+ ?.accountPersonDetail?.username;
175
+
176
+ return username === 'admin' || username === 'uiuiui'
177
+ }
178
+
179
+ const tableStyleList = [
180
+ {
181
+ type: '快速搜索',
182
+ img: 'https://img.alicdn.com/tfs/TB1al1JqHr1gK0jSZR0XXbP8XXa-40-40.svg',
183
+ url: '/list/singlesearch',
184
+ },
185
+ {
186
+ type: '高级搜索',
187
+ img: 'https://img.alicdn.com/tfs/TB1QgKIqQL0gK0jSZFtXXXQCXXa-40-40.svg',
188
+ url: '/list/advancedsearch',
189
+ },
190
+ {
191
+ type: '一般搜索',
192
+ img: 'https://img.alicdn.com/tfs/TB1xHCPqRr0gK0jSZFnXXbRRXXa-40-40.svg',
193
+ url: '/list/basic',
194
+ },
195
+ {
196
+ type: '无分页表格',
197
+ img: 'https://img.alicdn.com/tfs/TB1txuMqQL0gK0jSZFxXXXWHVXa-40-40.svg',
198
+ url: '/list/nopagination',
199
+ },
200
+ {
201
+ type: '分步查询表格',
202
+ img: 'https://img.alicdn.com/tfs/TB10IOmGkL0gK0jSZFAXXcA9pXa-53-46.svg',
203
+ url: '/list/stepquerytable',
204
+ },
205
+ ];
206
+ const JsonQueryTable = React.memo(props => {
207
+ const {
208
+ callBack,
209
+ codeProps,
210
+ customerFields,
211
+ initialSetting,
212
+ pageType
213
+ } = props;
214
+
215
+ let codeFilter = {};
216
+ if (codeProps.columns) { // table
217
+ codeFilter.columns = codeProps.columns.map(item => ({
218
+ key: item.key,
219
+ isStaticCode: true,
220
+ title: item.title
221
+ }))
222
+
223
+ codeFilter.fields = codeProps.fields.map(item => ({
224
+ name: item.name,
225
+ isStaticCode: true,
226
+ label: item.label,
227
+ notShowLabel: item.notShowLabel || false
228
+ }))
229
+ } else {
230
+ codeFilter.fields = iterFileds({fields: codeProps.fields}).fields
231
+ }
232
+ console.log('codeFilter',codeFilter)
233
+
234
+ const styleRef = useRef(null);
235
+
236
+ const [visible, setVisible] = useState(false)
237
+ const [code, setCode] = useState(codeProps);
238
+ const [init, setInit] = useState(true);
239
+ const [jsonEditorVal, setJsonEditorVal] = useState(initialSetting || codeFilter);
240
+ const [moduleParams, setModuleParams] = useState({});
241
+
242
+ useEffect(()=>{
243
+ Promise.all([
244
+ axios.get(`/basic/flow/businessFieldGroup/one?moduleType=2&layoutPoint=${pageType}`),
245
+ ]).then(([res] )=> {
246
+ const { code, data } = res?.data || {};
247
+ if (code === '000000') {
248
+ if(data){
249
+ const { businessType, code:fieldGroup, moduleType, moduleRelationId } = data;
250
+ setModuleParams({
251
+ businessType,
252
+ fieldGroup,
253
+ moduleType,
254
+ moduleRelationId
255
+ });
256
+ }
257
+ }
258
+ })
259
+ },[]);
260
+
261
+ const onClickRun = (value, isSave) => {
262
+ setJsonEditorVal(value);
263
+
264
+ try {
265
+ setCode(value);
266
+ callBack(hanleCallbackValue(codeProps, value, customerFields), isSave, value);
267
+ } catch (e) {
268
+ message.error(e);
269
+ }
270
+ };
271
+
272
+ React.useEffect(() => {
273
+ localStorage.setItem('jsonEditorVal',JSON.stringify(jsonEditorVal||{}))
274
+ }, [jsonEditorVal]);
275
+
276
+ React.useEffect(() => {
277
+ if (initialSetting) {
278
+ onClickRun(initialSetting);
279
+ setJsonEditorVal(initialSetting)
280
+ }
281
+ }, [initialSetting]);
282
+
283
+ const height =
284
+ styleRef?.current?.clientHeight || styleRef?.current?.offsetHeight;
285
+
286
+ const tableParams = {
287
+ ...moduleParams,
288
+ jsonEditorVal,
289
+ codeProps,
290
+ };
291
+
292
+ return (
293
+ <div>
294
+ <Drawer visible={visible} width={800} onClose={() => setVisible(false)} className={'customFieldsDrawer'}>
295
+ <div ref={styleRef}>
296
+
297
+ </div>
298
+ {
299
+ isEmpty(moduleParams)?(
300
+ <div style={{padding:"10px 0", fontSize:"16px", fontWeight:"bolder"}}>
301
+ 提示:业务对象未维护,请在通用单据对应业务类型下维护业务对象
302
+ </div>
303
+ ):(
304
+ <FieldsSettingsTable {...tableParams}/>
305
+ )
306
+ }
307
+ <Editor
308
+ type="table"
309
+ onRun={onClickRun}
310
+ value={jsonEditorVal}
311
+ shallowHeight={height}
312
+ />
313
+ </Drawer>
314
+
315
+ {!visible && isAdmin() && <ConfigButton type='primary' onClick={() => setVisible(true)}>setting</ConfigButton>}
316
+ </div>
317
+ );
318
+ });
319
+
320
+ export default JsonQueryTable;