@bit-sun/business-component 2.2.34 → 2.2.36

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 (184) 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/CustomerMenu/MenuSetting/index.d.ts +1 -1
  9. package/dist/components/Business/BsLayouts/Components/CustomerMenu/index.d.ts +1 -1
  10. package/dist/components/Business/JsonQueryTable/static.d.ts +1 -1
  11. package/dist/components/Business/SearchSelect/index.d.ts +1 -1
  12. package/dist/components/Functional/SearchSelect/index.d.ts +1 -1
  13. package/dist/index.esm.js +655 -668
  14. package/dist/index.js +662 -675
  15. package/dist/utils/utils.d.ts +1 -1
  16. package/docs/index.md +21 -21
  17. package/lib/assets/drag.svg +17 -17
  18. package/lib/assets/exportFail.svg +37 -37
  19. package/lib/assets/exportProcessing.svg +28 -28
  20. package/lib/assets/exportSuccess.svg +34 -34
  21. package/lib/assets/label_icon_bottom.svg +25 -25
  22. package/lib/assets/upExport.svg +22 -22
  23. package/package.json +77 -77
  24. package/src/assets/32.svg +27 -27
  25. package/src/assets/addIcon.svg +17 -17
  26. package/src/assets/allfunc.svg +27 -27
  27. package/src/assets/arrowRight.svg +24 -24
  28. package/src/assets/btn-delete.svg +29 -29
  29. package/src/assets/btn-edit.svg +19 -19
  30. package/src/assets/btn-more.svg +17 -17
  31. package/src/assets/btn-submit.svg +19 -19
  32. package/src/assets/caidan.svg +11 -11
  33. package/src/assets/close.svg +26 -26
  34. package/src/assets/drag.svg +17 -17
  35. package/src/assets/exportFail.svg +37 -37
  36. package/src/assets/exportProcessing.svg +28 -28
  37. package/src/assets/exportSuccess.svg +34 -34
  38. package/src/assets/fixed-left-active.svg +11 -11
  39. package/src/assets/fixed-left.svg +15 -15
  40. package/src/assets/fixed-right-active.svg +11 -11
  41. package/src/assets/fixed-right.svg +15 -15
  42. package/src/assets/guanbi.svg +15 -15
  43. package/src/assets/icon-quanping.svg +15 -15
  44. package/src/assets/icon-shezhi.svg +17 -17
  45. package/src/assets/label_icon_bottom.svg +25 -25
  46. package/src/assets/list-no-img.svg +21 -21
  47. package/src/assets/morentouxiang-32.svg +23 -23
  48. package/src/assets/scanning.svg +24 -24
  49. package/src/assets/upExport.svg +22 -22
  50. package/src/components/Business/AddSelectBusiness/index.md +161 -161
  51. package/src/components/Business/AddSelectBusiness/index.tsx +861 -861
  52. package/src/components/Business/BsLayouts/Components/AllFunc/drawContent.tsx +111 -111
  53. package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -153
  54. package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -70
  55. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -90
  56. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +37 -37
  57. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +242 -242
  58. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +384 -384
  59. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +285 -285
  60. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +74 -74
  61. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +170 -170
  62. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +64 -64
  63. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +153 -153
  64. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +72 -72
  65. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +157 -157
  66. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -85
  67. package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -218
  68. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +155 -155
  69. package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +160 -160
  70. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +75 -75
  71. package/src/components/Business/BsLayouts/index.less +79 -79
  72. package/src/components/Business/BsLayouts/index.tsx +1484 -1484
  73. package/src/components/Business/BsLayouts/service.ts +10 -10
  74. package/src/components/Business/BsLayouts/utils.tsx +203 -203
  75. package/src/components/Business/BsSulaQueryTable/SearchItemSetting.tsx +538 -538
  76. package/src/components/Business/BsSulaQueryTable/index.less +219 -219
  77. package/src/components/Business/BsSulaQueryTable/index.tsx +527 -527
  78. package/src/components/Business/BsSulaQueryTable/setting.tsx +802 -802
  79. package/src/components/Business/BsSulaQueryTable/utils.less +65 -65
  80. package/src/components/Business/BsSulaQueryTable/utils.tsx +688 -688
  81. package/src/components/Business/CommodityEntry/index.md +70 -70
  82. package/src/components/Business/CommodityEntry/index.tsx +80 -80
  83. package/src/components/Business/CommonAlert/index.tsx +23 -23
  84. package/src/components/Business/CommonGuideWrapper/index.less +111 -111
  85. package/src/components/Business/CommonGuideWrapper/index.md +39 -39
  86. package/src/components/Business/CommonGuideWrapper/index.tsx +83 -83
  87. package/src/components/Business/DetailPageWrapper/index.less +79 -79
  88. package/src/components/Business/DetailPageWrapper/index.tsx +313 -313
  89. package/src/components/Business/DetailPageWrapper/utils.tsx +100 -100
  90. package/src/components/Business/HomePageWrapper/index.less +33 -33
  91. package/src/components/Business/HomePageWrapper/index.md +45 -45
  92. package/src/components/Business/HomePageWrapper/index.tsx +162 -162
  93. package/src/components/Business/JsonQueryTable/components/FieldsModifyModal.tsx +824 -824
  94. package/src/components/Business/JsonQueryTable/components/FieldsSettingsTable.tsx +201 -201
  95. package/src/components/Business/JsonQueryTable/components/Formula.tsx +205 -205
  96. package/src/components/Business/JsonQueryTable/components/MaintainOptions.tsx +127 -127
  97. package/src/components/Business/JsonQueryTable/configButton/index.js +20 -20
  98. package/src/components/Business/JsonQueryTable/configTree/component/compactArrayView.js +25 -25
  99. package/src/components/Business/JsonQueryTable/configTree/component/compactObjectView.js +30 -30
  100. package/src/components/Business/JsonQueryTable/configTree/index.js +82 -82
  101. package/src/components/Business/JsonQueryTable/configTree/index.less +44 -44
  102. package/src/components/Business/JsonQueryTable/configTree/parser/highlight.js +57 -57
  103. package/src/components/Business/JsonQueryTable/configTree/parser/index.js +124 -124
  104. package/src/components/Business/JsonQueryTable/configTree/render/iconRender.js +29 -29
  105. package/src/components/Business/JsonQueryTable/configTree/render/nameRender.js +22 -22
  106. package/src/components/Business/JsonQueryTable/configTree/treeNode.js +116 -116
  107. package/src/components/Business/JsonQueryTable/drawer/index.tsx +12 -12
  108. package/src/components/Business/JsonQueryTable/function.ts +62 -62
  109. package/src/components/Business/JsonQueryTable/index.less +16 -16
  110. package/src/components/Business/JsonQueryTable/index.md +328 -328
  111. package/src/components/Business/JsonQueryTable/index.tsx +320 -320
  112. package/src/components/Business/JsonQueryTable/jsonEditor/index.js +346 -346
  113. package/src/components/Business/JsonQueryTable/jsonEditor/index.less +22 -22
  114. package/src/components/Business/JsonQueryTable/jsonEditor/lint/basicType.js +147 -147
  115. package/src/components/Business/JsonQueryTable/jsonEditor/lint/index.js +389 -389
  116. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/actions.js +118 -118
  117. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/dependency.js +22 -22
  118. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/index.js +21 -21
  119. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/request.js +65 -65
  120. package/src/components/Business/JsonQueryTable/static.ts +390 -390
  121. package/src/components/Business/SearchSelect/BusinessUtils.ts +1731 -1730
  122. package/src/components/Business/SearchSelect/common.ts +53 -53
  123. package/src/components/Business/SearchSelect/index.md +1319 -1319
  124. package/src/components/Business/SearchSelect/index.tsx +51 -51
  125. package/src/components/Business/SearchSelect/utils.ts +100 -100
  126. package/src/components/Business/StateFlow/index.less +130 -130
  127. package/src/components/Business/StateFlow/index.md +60 -60
  128. package/src/components/Business/StateFlow/index.tsx +29 -29
  129. package/src/components/Business/TreeSearchSelect/index.md +154 -154
  130. package/src/components/Business/TreeSearchSelect/index.tsx +34 -34
  131. package/src/components/Business/TreeSearchSelect/utils.ts +69 -69
  132. package/src/components/Business/columnSettingTable/columnSetting.tsx +764 -764
  133. package/src/components/Business/columnSettingTable/index.less +247 -247
  134. package/src/components/Business/columnSettingTable/index.md +357 -357
  135. package/src/components/Business/columnSettingTable/index.tsx +232 -232
  136. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +240 -240
  137. package/src/components/Business/columnSettingTable/utils.tsx +68 -68
  138. package/src/components/Business/moreTreeTable/index.less +99 -99
  139. package/src/components/Business/moreTreeTable/index.md +448 -448
  140. package/src/components/Business/moreTreeTable/index.tsx +365 -363
  141. package/src/components/Business/moreTreeTable/utils.ts +126 -126
  142. package/src/components/Functional/AddSelect/helps.ts +14 -14
  143. package/src/components/Functional/AddSelect/index.less +367 -367
  144. package/src/components/Functional/AddSelect/index.md +155 -155
  145. package/src/components/Functional/AddSelect/index.tsx +1279 -1272
  146. package/src/components/Functional/BillEntry/index.less +371 -371
  147. package/src/components/Functional/BillEntry/index.md +39 -39
  148. package/src/components/Functional/BillEntry/index.tsx +772 -766
  149. package/src/components/Functional/DataImport/index.less +63 -63
  150. package/src/components/Functional/DataImport/index.md +44 -44
  151. package/src/components/Functional/DataImport/index.tsx +695 -695
  152. package/src/components/Functional/DataValidation/index.less +63 -63
  153. package/src/components/Functional/DataValidation/index.md +39 -39
  154. package/src/components/Functional/DataValidation/index.tsx +687 -687
  155. package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -37
  156. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +59 -59
  157. package/src/components/Functional/QueryMutipleInput/index.less +37 -37
  158. package/src/components/Functional/QueryMutipleInput/index.md +33 -33
  159. package/src/components/Functional/QueryMutipleInput/index.tsx +128 -128
  160. package/src/components/Functional/SearchSelect/index.less +115 -115
  161. package/src/components/Functional/SearchSelect/index.md +141 -141
  162. package/src/components/Functional/SearchSelect/index.tsx +849 -849
  163. package/src/components/Functional/SearchSelect/utils.ts +3 -3
  164. package/src/components/Functional/TreeSearchSelect/index.md +47 -47
  165. package/src/components/Functional/TreeSearchSelect/index.tsx +162 -162
  166. package/src/index.ts +34 -34
  167. package/src/plugin/TableColumnSetting/index.less +247 -247
  168. package/src/plugin/TableColumnSetting/index.md +50 -50
  169. package/src/plugin/TableColumnSetting/index.tsx +724 -724
  170. package/src/plugin/TableColumnSetting/utils.ts +19 -19
  171. package/src/styles/bsDefault.less +1912 -1912
  172. package/src/utils/CheckOneUser/index.md +39 -39
  173. package/src/utils/CheckOneUser/index.ts +51 -51
  174. package/src/utils/LocalstorageUtils.ts +90 -90
  175. package/src/utils/TableUtils.tsx +18 -18
  176. package/src/utils/checkUtils.ts +39 -39
  177. package/src/utils/enumConfig.ts +11 -11
  178. package/src/utils/getFormMode.js +12 -12
  179. package/src/utils/index.ts +3 -3
  180. package/src/utils/requestUtils.ts +34 -34
  181. package/src/utils/serialize.js +7 -7
  182. package/src/utils/utils.ts +183 -183
  183. package/tsconfig.json +29 -29
  184. package/typings.d.ts +4 -4
@@ -1,320 +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
- import { getUserId } from '@/utils/LocalstorageUtils';
12
-
13
- function iterFileds (fields) {
14
- let filedsValue = [];
15
-
16
- function iter(field) {
17
- if(Array.isArray(field.fields)) {
18
- field.fields.forEach(item => {
19
- const targetValue = iterFileds(item);
20
- if(targetValue){
21
- filedsValue.push(targetValue);
22
- }
23
- })
24
- } else {
25
- return {
26
- name: field.name,
27
- isStaticCode: true,
28
- label: field.label,
29
- }
30
- }
31
-
32
- return {
33
- container: {
34
- name: field?.container?.props?.name,
35
- title: field?.container?.props?.title
36
- },
37
- isStaticCode: true,
38
- fields: filedsValue,
39
- };
40
- }
41
-
42
- filedsValue = iter(fields)
43
-
44
- return filedsValue;
45
- }
46
-
47
- function flatFileds (fields) {
48
- let filedsValue = {
49
- };
50
- function iter(field, containerName) {
51
- if(Array.isArray(field.fields)) {
52
- if (field?.container?.props?.name) {
53
- filedsValue[field?.container?.props?.name] = {
54
- ...field,
55
- fields: []
56
- }
57
- }
58
- field.fields.forEach(item => {
59
- iter(item, field?.container?.props?.name)
60
- })
61
- } else {
62
- filedsValue[containerName ? (containerName + field.name) : field.name] = field
63
- }
64
- }
65
-
66
- iter(fields)
67
-
68
- return filedsValue;
69
- }
70
-
71
- function convertFileds (fields, falltValue, faltFieldRange, containerName) {
72
- let filedsValue = [];
73
-
74
- function iter(field) {
75
- if(Array.isArray(field.fields)) {
76
- field.fields.forEach(item => {
77
- const targetValue = convertFileds(item, falltValue, faltFieldRange, field?.container?.name);
78
- if(targetValue){
79
- filedsValue.push(targetValue)
80
- }
81
- })
82
- } else {
83
- const returnField = field.isStaticCode ? falltValue[containerName ? (containerName + field.name) : field.name] : faltFieldRange[field.name];
84
- if (returnField) {
85
- returnField.label = field?.label;
86
- if(Array.isArray(returnField.name)&&returnField.name?.includes("extensionFields")){
87
- returnField.notShowLabel = true;
88
- }
89
- } else {
90
- debugger
91
- }
92
- return returnField;
93
- }
94
-
95
- return {...falltValue[field?.container?.name], fields: filedsValue};
96
- }
97
-
98
- filedsValue = iter(fields)
99
-
100
- return filedsValue;
101
- }
102
-
103
- function faltColumns(columns) {
104
- let columnsValue = {}
105
-
106
- columns.forEach(item => {
107
- columnsValue[item.key] = {...item}
108
- })
109
-
110
- return columnsValue;
111
- }
112
-
113
- function faltCustomerFieldRange(fileds) {
114
- let columnsValue = {}
115
-
116
- fileds.forEach(item => {
117
- columnsValue[item.name] = {...item}
118
- })
119
-
120
- return columnsValue;
121
- }
122
-
123
- function hanleCallbackValue(codeProps, value, customerFields) {
124
- const faltFieldRange = faltCustomerFieldRange(customerFields)
125
- const falltValue = flatFileds({fields: codeProps.fields})
126
- let newCodeProps = {...codeProps};
127
- newCodeProps.fields = convertFileds({fields: value.fields}, falltValue, faltFieldRange).fields;
128
- if (codeProps.columns) {
129
- const faltColumnsValue = faltColumns(codeProps.columns)
130
- newCodeProps.columns = value.columns.map(item => {
131
- if (item.isStaticCode) {
132
- return faltColumnsValue[item.key]
133
- } else {
134
- //自定义字段-列字段
135
- if(item?.key&&item?.key.includes('extensionFields')&&item?.key.includes(',')){
136
- return {
137
- ...item,
138
- render: ({ record }: any) => {
139
- try{
140
- const lastName1= item?.key.split(',')[1]; //兼容没有fieldName的情况
141
- const lastName2 = `${lastName1}Name`;
142
- const target = record?.extensionFields || {};
143
- return target[lastName2] || target[lastName1] || '';
144
- }catch(e){
145
- console.log('e',e);
146
- }
147
- }
148
- }
149
- }else{
150
- return {
151
- ...item
152
- }
153
- }
154
- }
155
- });
156
-
157
- //进行列表搜索项自定义字段name替换 (排除是编辑表单的fields)
158
- newCodeProps.fields = newCodeProps.fields.map(item => {
159
- if(Array.isArray(item?.name)){
160
- return {
161
- ...item,
162
- name: item?.realSearchName || item?.name
163
- }
164
- }
165
- return item;
166
- });
167
-
168
- }
169
-
170
- return newCodeProps;
171
- }
172
-
173
- function isAdmin() {
174
- const username = getUserId();
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;
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
+ import { getUserId } from '@/utils/LocalstorageUtils';
12
+
13
+ function iterFileds (fields) {
14
+ let filedsValue = [];
15
+
16
+ function iter(field) {
17
+ if(Array.isArray(field.fields)) {
18
+ field.fields.forEach(item => {
19
+ const targetValue = iterFileds(item);
20
+ if(targetValue){
21
+ filedsValue.push(targetValue);
22
+ }
23
+ })
24
+ } else {
25
+ return {
26
+ name: field.name,
27
+ isStaticCode: true,
28
+ label: field.label,
29
+ }
30
+ }
31
+
32
+ return {
33
+ container: {
34
+ name: field?.container?.props?.name,
35
+ title: field?.container?.props?.title
36
+ },
37
+ isStaticCode: true,
38
+ fields: filedsValue,
39
+ };
40
+ }
41
+
42
+ filedsValue = iter(fields)
43
+
44
+ return filedsValue;
45
+ }
46
+
47
+ function flatFileds (fields) {
48
+ let filedsValue = {
49
+ };
50
+ function iter(field, containerName) {
51
+ if(Array.isArray(field.fields)) {
52
+ if (field?.container?.props?.name) {
53
+ filedsValue[field?.container?.props?.name] = {
54
+ ...field,
55
+ fields: []
56
+ }
57
+ }
58
+ field.fields.forEach(item => {
59
+ iter(item, field?.container?.props?.name)
60
+ })
61
+ } else {
62
+ filedsValue[containerName ? (containerName + field.name) : field.name] = field
63
+ }
64
+ }
65
+
66
+ iter(fields)
67
+
68
+ return filedsValue;
69
+ }
70
+
71
+ function convertFileds (fields, falltValue, faltFieldRange, containerName) {
72
+ let filedsValue = [];
73
+
74
+ function iter(field) {
75
+ if(Array.isArray(field.fields)) {
76
+ field.fields.forEach(item => {
77
+ const targetValue = convertFileds(item, falltValue, faltFieldRange, field?.container?.name);
78
+ if(targetValue){
79
+ filedsValue.push(targetValue)
80
+ }
81
+ })
82
+ } else {
83
+ const returnField = field.isStaticCode ? falltValue[containerName ? (containerName + field.name) : field.name] : faltFieldRange[field.name];
84
+ if (returnField) {
85
+ returnField.label = field?.label;
86
+ if(Array.isArray(returnField.name)&&returnField.name?.includes("extensionFields")){
87
+ returnField.notShowLabel = true;
88
+ }
89
+ } else {
90
+ debugger
91
+ }
92
+ return returnField;
93
+ }
94
+
95
+ return {...falltValue[field?.container?.name], fields: filedsValue};
96
+ }
97
+
98
+ filedsValue = iter(fields)
99
+
100
+ return filedsValue;
101
+ }
102
+
103
+ function faltColumns(columns) {
104
+ let columnsValue = {}
105
+
106
+ columns.forEach(item => {
107
+ columnsValue[item.key] = {...item}
108
+ })
109
+
110
+ return columnsValue;
111
+ }
112
+
113
+ function faltCustomerFieldRange(fileds) {
114
+ let columnsValue = {}
115
+
116
+ fileds.forEach(item => {
117
+ columnsValue[item.name] = {...item}
118
+ })
119
+
120
+ return columnsValue;
121
+ }
122
+
123
+ function hanleCallbackValue(codeProps, value, customerFields) {
124
+ const faltFieldRange = faltCustomerFieldRange(customerFields)
125
+ const falltValue = flatFileds({fields: codeProps.fields})
126
+ let newCodeProps = {...codeProps};
127
+ newCodeProps.fields = convertFileds({fields: value.fields}, falltValue, faltFieldRange).fields;
128
+ if (codeProps.columns) {
129
+ const faltColumnsValue = faltColumns(codeProps.columns)
130
+ newCodeProps.columns = value.columns.map(item => {
131
+ if (item.isStaticCode) {
132
+ return faltColumnsValue[item.key]
133
+ } else {
134
+ //自定义字段-列字段
135
+ if(item?.key&&item?.key.includes('extensionFields')&&item?.key.includes(',')){
136
+ return {
137
+ ...item,
138
+ render: ({ record }: any) => {
139
+ try{
140
+ const lastName1= item?.key.split(',')[1]; //兼容没有fieldName的情况
141
+ const lastName2 = `${lastName1}Name`;
142
+ const target = record?.extensionFields || {};
143
+ return target[lastName2] || target[lastName1] || '';
144
+ }catch(e){
145
+ console.log('e',e);
146
+ }
147
+ }
148
+ }
149
+ }else{
150
+ return {
151
+ ...item
152
+ }
153
+ }
154
+ }
155
+ });
156
+
157
+ //进行列表搜索项自定义字段name替换 (排除是编辑表单的fields)
158
+ newCodeProps.fields = newCodeProps.fields.map(item => {
159
+ if(Array.isArray(item?.name)){
160
+ return {
161
+ ...item,
162
+ name: item?.realSearchName || item?.name
163
+ }
164
+ }
165
+ return item;
166
+ });
167
+
168
+ }
169
+
170
+ return newCodeProps;
171
+ }
172
+
173
+ function isAdmin() {
174
+ const username = getUserId();
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;