@bit-sun/business-component 2.3.22-beta7 → 2.3.22-beta9

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 (235) 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/AddSelectBusiness/index.d.ts +4 -3
  9. package/dist/components/Business/BsLayouts/Components/AllFunc/drawContent.d.ts +2 -1
  10. package/dist/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.d.ts +1 -1
  11. package/dist/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.d.ts +2 -2
  12. package/dist/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.d.ts +2 -1
  13. package/dist/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.d.ts +2 -1
  14. package/dist/components/Business/BsLayouts/Components/GlobalHeader/index.d.ts +2 -1
  15. package/dist/components/Business/BsLayouts/Components/RightContent/LoginModal.d.ts +2 -1
  16. package/dist/components/Business/BsLayouts/index.d.ts +1 -1
  17. package/dist/components/Business/BsLayouts/service.d.ts +1 -1
  18. package/dist/components/Business/BsSulaQueryTable/SearchItemSetting.d.ts +5 -5
  19. package/dist/components/Business/BsSulaQueryTable/index.d.ts +2 -1
  20. package/dist/components/Business/BsSulaQueryTable/setting.d.ts +5 -5
  21. package/dist/components/Business/BsSulaQueryTable/utils.d.ts +14 -13
  22. package/dist/components/Business/CommodityEntry/index.d.ts +2 -1
  23. package/dist/components/Business/CommonAlert/index.d.ts +2 -1
  24. package/dist/components/Business/CommonGuideWrapper/index.d.ts +3 -3
  25. package/dist/components/Business/DetailPageWrapper/index.d.ts +6 -5
  26. package/dist/components/Business/HomePageWrapper/index.d.ts +2 -1
  27. package/dist/components/Business/JsonQueryTable/components/FieldsModifyModal.d.ts +2 -1
  28. package/dist/components/Business/JsonQueryTable/components/FieldsSettingsTable.d.ts +2 -1
  29. package/dist/components/Business/JsonQueryTable/components/Formula.d.ts +2 -1
  30. package/dist/components/Business/JsonQueryTable/components/MaintainOptions.d.ts +2 -1
  31. package/dist/components/Business/JsonQueryTable/drawer/index.d.ts +2 -1
  32. package/dist/components/Business/StateFlow/index.d.ts +2 -1
  33. package/dist/components/Business/TreeSearchSelect/index.d.ts +1 -1
  34. package/dist/components/Business/columnSettingTable/columnSetting.d.ts +5 -5
  35. package/dist/components/Business/columnSettingTable/index.d.ts +2 -2
  36. package/dist/components/Business/columnSettingTable/sulaSettingTable.d.ts +2 -2
  37. package/dist/components/Business/columnSettingTable/utils.d.ts +2 -1
  38. package/dist/components/Functional/AddSelect/index.d.ts +2 -1
  39. package/dist/components/Functional/DataImport/index.d.ts +3 -3
  40. package/dist/components/Functional/DataValidation/index.d.ts +3 -3
  41. package/dist/components/Functional/ExportFunctions/ExportIcon/index.d.ts +2 -1
  42. package/dist/components/Functional/QueryMutipleInput/index.d.ts +2 -1
  43. package/dist/components/Functional/TreeSearchSelect/index.d.ts +2 -1
  44. package/dist/components/Solution/RuleComponent/Formula.d.ts +2 -1
  45. package/dist/components/Solution/RuleComponent/services.d.ts +1 -1
  46. package/dist/index.esm.js +36 -14
  47. package/dist/index.js +36 -14
  48. package/dist/plugin/TableColumnSetting/index.d.ts +5 -5
  49. package/dist/utils/LocalstorageUtils.d.ts +5 -0
  50. package/docs/index.md +21 -21
  51. package/lib/assets/drag.svg +17 -17
  52. package/lib/assets/exportFail.svg +37 -37
  53. package/lib/assets/exportProcessing.svg +28 -28
  54. package/lib/assets/exportSuccess.svg +34 -34
  55. package/lib/assets/label_icon_bottom.svg +25 -25
  56. package/lib/assets/upExport.svg +22 -22
  57. package/package.json +78 -78
  58. package/src/assets/32.svg +27 -27
  59. package/src/assets/addIcon.svg +17 -17
  60. package/src/assets/allfunc.svg +27 -27
  61. package/src/assets/arrowRight.svg +24 -24
  62. package/src/assets/btn-delete.svg +29 -29
  63. package/src/assets/btn-edit.svg +19 -19
  64. package/src/assets/btn-more.svg +17 -17
  65. package/src/assets/btn-submit.svg +19 -19
  66. package/src/assets/caidan.svg +11 -11
  67. package/src/assets/close.svg +26 -26
  68. package/src/assets/drag.svg +17 -17
  69. package/src/assets/exportFail.svg +37 -37
  70. package/src/assets/exportProcessing.svg +28 -28
  71. package/src/assets/exportSuccess.svg +34 -34
  72. package/src/assets/fixed-left-active.svg +11 -11
  73. package/src/assets/fixed-left.svg +15 -15
  74. package/src/assets/fixed-right-active.svg +11 -11
  75. package/src/assets/fixed-right.svg +15 -15
  76. package/src/assets/guanbi.svg +15 -15
  77. package/src/assets/icon-quanping.svg +15 -15
  78. package/src/assets/icon-shezhi.svg +17 -17
  79. package/src/assets/label_icon_bottom.svg +25 -25
  80. package/src/assets/list-no-img.svg +21 -21
  81. package/src/assets/morentouxiang-32.svg +23 -23
  82. package/src/assets/scanning.svg +24 -24
  83. package/src/assets/upExport.svg +22 -22
  84. package/src/common/ENUM.ts +41 -41
  85. package/src/components/Business/AddSelectBusiness/index.md +162 -162
  86. package/src/components/Business/AddSelectBusiness/index.tsx +1060 -1060
  87. package/src/components/Business/BsLayouts/Components/AllFunc/drawContent.tsx +111 -111
  88. package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -153
  89. package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -70
  90. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -90
  91. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +37 -37
  92. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +242 -242
  93. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +384 -384
  94. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +285 -285
  95. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +74 -74
  96. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +170 -170
  97. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +64 -64
  98. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +153 -153
  99. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +72 -72
  100. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +157 -157
  101. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -85
  102. package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -218
  103. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +155 -155
  104. package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +160 -160
  105. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +75 -75
  106. package/src/components/Business/BsLayouts/index.less +79 -79
  107. package/src/components/Business/BsLayouts/index.tsx +1484 -1484
  108. package/src/components/Business/BsLayouts/service.ts +10 -10
  109. package/src/components/Business/BsLayouts/utils.tsx +203 -203
  110. package/src/components/Business/BsSulaQueryTable/SearchItemSetting.tsx +565 -564
  111. package/src/components/Business/BsSulaQueryTable/index.less +221 -221
  112. package/src/components/Business/BsSulaQueryTable/index.tsx +531 -531
  113. package/src/components/Business/BsSulaQueryTable/setting.tsx +853 -852
  114. package/src/components/Business/BsSulaQueryTable/utils.less +65 -65
  115. package/src/components/Business/BsSulaQueryTable/utils.tsx +690 -690
  116. package/src/components/Business/CommodityEntry/index.md +70 -70
  117. package/src/components/Business/CommodityEntry/index.tsx +80 -80
  118. package/src/components/Business/CommonAlert/index.tsx +23 -23
  119. package/src/components/Business/CommonGuideWrapper/index.less +111 -111
  120. package/src/components/Business/CommonGuideWrapper/index.md +39 -39
  121. package/src/components/Business/CommonGuideWrapper/index.tsx +83 -83
  122. package/src/components/Business/DetailPageWrapper/index.less +79 -79
  123. package/src/components/Business/DetailPageWrapper/index.tsx +313 -313
  124. package/src/components/Business/DetailPageWrapper/utils.tsx +100 -100
  125. package/src/components/Business/HomePageWrapper/index.less +33 -33
  126. package/src/components/Business/HomePageWrapper/index.md +45 -45
  127. package/src/components/Business/HomePageWrapper/index.tsx +162 -162
  128. package/src/components/Business/JsonQueryTable/components/FieldsModifyModal.tsx +824 -824
  129. package/src/components/Business/JsonQueryTable/components/FieldsSettingsTable.tsx +205 -205
  130. package/src/components/Business/JsonQueryTable/components/Formula.tsx +205 -205
  131. package/src/components/Business/JsonQueryTable/components/MaintainOptions.tsx +127 -127
  132. package/src/components/Business/JsonQueryTable/configButton/index.js +20 -20
  133. package/src/components/Business/JsonQueryTable/configTree/component/compactArrayView.js +25 -25
  134. package/src/components/Business/JsonQueryTable/configTree/component/compactObjectView.js +30 -30
  135. package/src/components/Business/JsonQueryTable/configTree/index.js +82 -82
  136. package/src/components/Business/JsonQueryTable/configTree/index.less +44 -44
  137. package/src/components/Business/JsonQueryTable/configTree/parser/highlight.js +57 -57
  138. package/src/components/Business/JsonQueryTable/configTree/parser/index.js +124 -124
  139. package/src/components/Business/JsonQueryTable/configTree/render/iconRender.js +29 -29
  140. package/src/components/Business/JsonQueryTable/configTree/render/nameRender.js +22 -22
  141. package/src/components/Business/JsonQueryTable/configTree/treeNode.js +116 -116
  142. package/src/components/Business/JsonQueryTable/drawer/index.tsx +12 -12
  143. package/src/components/Business/JsonQueryTable/function.ts +62 -62
  144. package/src/components/Business/JsonQueryTable/index.less +16 -16
  145. package/src/components/Business/JsonQueryTable/index.md +328 -328
  146. package/src/components/Business/JsonQueryTable/index.tsx +535 -535
  147. package/src/components/Business/JsonQueryTable/jsonEditor/index.js +346 -346
  148. package/src/components/Business/JsonQueryTable/jsonEditor/index.less +22 -22
  149. package/src/components/Business/JsonQueryTable/jsonEditor/lint/basicType.js +147 -147
  150. package/src/components/Business/JsonQueryTable/jsonEditor/lint/index.js +389 -389
  151. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/actions.js +118 -118
  152. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/dependency.js +22 -22
  153. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/index.js +21 -21
  154. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/request.js +65 -65
  155. package/src/components/Business/JsonQueryTable/static.ts +390 -390
  156. package/src/components/Business/SearchSelect/BusinessUtils.ts +1762 -1762
  157. package/src/components/Business/SearchSelect/common.ts +75 -75
  158. package/src/components/Business/SearchSelect/index.md +1329 -1329
  159. package/src/components/Business/SearchSelect/index.tsx +55 -55
  160. package/src/components/Business/SearchSelect/utils.ts +100 -100
  161. package/src/components/Business/StateFlow/index.less +130 -130
  162. package/src/components/Business/StateFlow/index.md +60 -60
  163. package/src/components/Business/StateFlow/index.tsx +29 -29
  164. package/src/components/Business/TreeSearchSelect/index.md +156 -156
  165. package/src/components/Business/TreeSearchSelect/index.tsx +33 -33
  166. package/src/components/Business/TreeSearchSelect/utils.ts +75 -75
  167. package/src/components/Business/columnSettingTable/columnSetting.tsx +765 -764
  168. package/src/components/Business/columnSettingTable/index.less +247 -247
  169. package/src/components/Business/columnSettingTable/index.md +357 -357
  170. package/src/components/Business/columnSettingTable/index.tsx +232 -232
  171. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +240 -240
  172. package/src/components/Business/columnSettingTable/utils.tsx +71 -71
  173. package/src/components/Business/moreTreeTable/FixedScrollBar.tsx +87 -87
  174. package/src/components/Business/moreTreeTable/hooks/useSticky.ts +21 -21
  175. package/src/components/Business/moreTreeTable/index.less +99 -99
  176. package/src/components/Business/moreTreeTable/index.md +448 -448
  177. package/src/components/Business/moreTreeTable/index.tsx +387 -387
  178. package/src/components/Business/moreTreeTable/utils.ts +126 -126
  179. package/src/components/Functional/AddSelect/helps.ts +79 -79
  180. package/src/components/Functional/AddSelect/index.less +367 -367
  181. package/src/components/Functional/AddSelect/index.md +155 -155
  182. package/src/components/Functional/AddSelect/index.tsx +1170 -1170
  183. package/src/components/Functional/BillEntry/index.less +371 -371
  184. package/src/components/Functional/BillEntry/index.md +39 -39
  185. package/src/components/Functional/BillEntry/index.tsx +772 -772
  186. package/src/components/Functional/BsAntdSula/BsCascader/index.md +62 -62
  187. package/src/components/Functional/BsAntdSula/BsCascader/index.tsx +178 -178
  188. package/src/components/Functional/BsAntdSula/index.ts +2 -2
  189. package/src/components/Functional/DataImport/index.less +63 -63
  190. package/src/components/Functional/DataImport/index.md +44 -44
  191. package/src/components/Functional/DataImport/index.tsx +695 -695
  192. package/src/components/Functional/DataValidation/index.less +63 -63
  193. package/src/components/Functional/DataValidation/index.md +39 -39
  194. package/src/components/Functional/DataValidation/index.tsx +687 -687
  195. package/src/components/Functional/EllipsisTooltip/index.d.ts +5 -5
  196. package/src/components/Functional/EllipsisTooltip/index.js +36 -36
  197. package/src/components/Functional/EllipsisTooltip/index.md +30 -30
  198. package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -37
  199. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +59 -59
  200. package/src/components/Functional/QueryMutipleInput/index.less +37 -37
  201. package/src/components/Functional/QueryMutipleInput/index.md +33 -33
  202. package/src/components/Functional/QueryMutipleInput/index.tsx +128 -128
  203. package/src/components/Functional/SearchSelect/index.less +115 -115
  204. package/src/components/Functional/SearchSelect/index.md +141 -141
  205. package/src/components/Functional/SearchSelect/index.tsx +879 -879
  206. package/src/components/Functional/SearchSelect/utils.ts +3 -3
  207. package/src/components/Functional/TreeSearchSelect/index.md +47 -47
  208. package/src/components/Functional/TreeSearchSelect/index.tsx +199 -199
  209. package/src/components/Solution/RuleComponent/Formula.tsx +335 -335
  210. package/src/components/Solution/RuleComponent/index.d.ts +29 -29
  211. package/src/components/Solution/RuleComponent/index.js +2032 -2032
  212. package/src/components/Solution/RuleComponent/index.less +230 -230
  213. package/src/components/Solution/RuleComponent/renderSpecificAction.js +99 -99
  214. package/src/components/Solution/RuleComponent/ruleFiled.js +2107 -2107
  215. package/src/components/Solution/RuleComponent/services.ts +13 -13
  216. package/src/components/Solution/RuleComponent/util.js +139 -139
  217. package/src/index.ts +38 -38
  218. package/src/plugin/TableColumnSetting/index.less +247 -247
  219. package/src/plugin/TableColumnSetting/index.md +50 -50
  220. package/src/plugin/TableColumnSetting/index.tsx +725 -724
  221. package/src/plugin/TableColumnSetting/utils.ts +19 -19
  222. package/src/styles/bsDefault.less +1890 -1890
  223. package/src/utils/CheckOneUser/index.md +39 -39
  224. package/src/utils/CheckOneUser/index.ts +51 -51
  225. package/src/utils/LocalstorageUtils.ts +114 -95
  226. package/src/utils/TableUtils.tsx +18 -18
  227. package/src/utils/checkUtils.ts +39 -39
  228. package/src/utils/enumConfig.ts +11 -11
  229. package/src/utils/getFormMode.js +12 -12
  230. package/src/utils/index.ts +4 -4
  231. package/src/utils/requestUtils.ts +42 -34
  232. package/src/utils/serialize.js +7 -7
  233. package/src/utils/utils.ts +212 -212
  234. package/tsconfig.json +29 -29
  235. package/typings.d.ts +4 -4
@@ -1,535 +1,535 @@
1
- // @ts-nocheck
2
- import React, { useState, useRef, useEffect, Fragment } from 'react';
3
- import { message, Button, Table, Tabs } 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
- if(item.dependency) {
80
- targetValue.dependency = {
81
- visible: {
82
- ...item.dependency.visible,
83
- type: (new Function('axios','ctx', item.dependency.visible.type)).bind(null, axios)
84
- }
85
- }
86
- }
87
- filedsValue.push(targetValue)
88
- }
89
- })
90
- } else {
91
- const returnField = field.isStaticCode ? falltValue[containerName ? (containerName + field.name) : field.name] : faltFieldRange[field.name];
92
- if (returnField) {
93
- returnField.label = field?.label;
94
- if(field?.disabled){ // 字段设置只读属性
95
- returnField.field.props.disabled = true;
96
- }
97
- if(field?.invisible){ // 字段设置不可见属性
98
- returnField.initialVisible = false;
99
- }
100
-
101
- if(Array.isArray(returnField.name)&&returnField.name?.includes("extensionFields")){
102
- returnField.notShowLabel = true;
103
- }
104
- } else {
105
- debugger
106
- }
107
- return returnField;
108
- }
109
-
110
- return {...falltValue[field?.container?.name], fields: filedsValue};
111
- }
112
-
113
- filedsValue = iter(fields)
114
-
115
- return filedsValue;
116
- }
117
-
118
- function faltColumns(columns) {
119
- let columnsValue = {}
120
-
121
- columns.forEach(item => {
122
- columnsValue[item.key] = {...item}
123
- })
124
-
125
- return columnsValue;
126
- }
127
-
128
- function faltCustomerFieldRange(fileds) {
129
- let columnsValue = {}
130
-
131
- fileds.forEach(item => {
132
- columnsValue[item.name] = {...item}
133
- })
134
-
135
- return columnsValue;
136
- }
137
-
138
- //form存在新加container属性分组得情况 组合操作
139
- function combineContainer(originFields, currentFields){
140
- let newCurrentFields = [...originFields];
141
- currentFields.map((item: any) => {
142
- if(!originFields.find((i: any) => i?.container?.props?.name == item?.container?.name)){
143
- newCurrentFields = [...newCurrentFields, {
144
- container: {
145
- type: 'card',
146
- props: {
147
- title: item?.container?.title,
148
- level: 1,
149
- id: Math.random(),
150
- isWhiteCard: true,
151
- bordered: false,
152
- name: item?.container?.name,
153
- },
154
- },
155
- fields: item?.fields || []
156
- }];
157
- }
158
- })
159
- return newCurrentFields;
160
- }
161
-
162
- function hanleCallbackValue(codeProps, value, customerFields, cacheColumns = []) {
163
- const faltFieldRange = faltCustomerFieldRange(customerFields);
164
- // const falltValue = flatFileds({fields: codeProps.fields})
165
- const falltValue = flatFileds({fields: combineContainer(codeProps.fields, value?.fields)})
166
- let newCodeProps = {...codeProps};
167
- newCodeProps.fields = convertFileds({fields: value.fields}, falltValue, faltFieldRange).fields;
168
- if (codeProps.columns) {
169
- const faltColumnsValue = faltColumns(codeProps.columns)
170
- newCodeProps.columns = value.columns.map(item => {
171
- if (item.isStaticCode) {
172
- const cacheFieldProperty = cacheColumns.find(k => (k.key||k.dataIndex) == (item.key||item.dataIndex));
173
- return {
174
- ...faltColumnsValue[item.key],
175
- ...cacheFieldProperty
176
- }
177
- } else {
178
- //自定义字段-列字段
179
- if(item?.key&&item?.key.includes('extensionFields')&&item?.key.includes(',')){
180
- return {
181
- ...item,
182
- render: ({ record }: any) => {
183
- try{
184
- const { extensionFields = {} } = record;
185
- const fieldName1= item?.key.split(',')[1]; //兼容没有fieldName的情况
186
- const fieldName2 = `${fieldName1}Name`;
187
- if(customerFields.length){
188
- const targetField = customerFields.find(k => k.name.includes(fieldName1));
189
- if(targetField){
190
- const { initialSource = [] } = targetField
191
- if(initialSource.length){
192
- return initialSource.find((d => d.value == extensionFields[fieldName1]))?.text || extensionFields[fieldName1];
193
- }
194
- }
195
- }
196
- return extensionFields[fieldName2] || extensionFields[fieldName1] || '';
197
- }catch(e){
198
- console.log('e',e);
199
- }
200
- }
201
- }
202
- }else{
203
- return {
204
- ...item
205
- }
206
- }
207
- }
208
- });
209
-
210
- //进行列表搜索项自定义字段name替换 (排除是编辑表单的fields)
211
- newCodeProps.fields = newCodeProps.fields.map(item => {
212
- if(Array.isArray(item?.name)){
213
- return {
214
- ...item,
215
- name: item?.realSearchName || item?.name
216
- }
217
- }
218
- return item;
219
- });
220
-
221
- }
222
-
223
- return newCodeProps;
224
- }
225
-
226
- function isAdmin() {
227
- const username = getUserId();
228
-
229
- return username === 'admin' || username === 'uiuiui'
230
- }
231
-
232
- const tableStyleList = [
233
- {
234
- type: '快速搜索',
235
- img: 'https://img.alicdn.com/tfs/TB1al1JqHr1gK0jSZR0XXbP8XXa-40-40.svg',
236
- url: '/list/singlesearch',
237
- },
238
- {
239
- type: '高级搜索',
240
- img: 'https://img.alicdn.com/tfs/TB1QgKIqQL0gK0jSZFtXXXQCXXa-40-40.svg',
241
- url: '/list/advancedsearch',
242
- },
243
- {
244
- type: '一般搜索',
245
- img: 'https://img.alicdn.com/tfs/TB1xHCPqRr0gK0jSZFnXXbRRXXa-40-40.svg',
246
- url: '/list/basic',
247
- },
248
- {
249
- type: '无分页表格',
250
- img: 'https://img.alicdn.com/tfs/TB1txuMqQL0gK0jSZFxXXXWHVXa-40-40.svg',
251
- url: '/list/nopagination',
252
- },
253
- {
254
- type: '分步查询表格',
255
- img: 'https://img.alicdn.com/tfs/TB10IOmGkL0gK0jSZFAXXcA9pXa-53-46.svg',
256
- url: '/list/stepquerytable',
257
- },
258
- ];
259
- const JsonQueryTable = React.memo(props => {
260
- const {
261
- callBack, // 主保存函数回调
262
- codeProps, // 整体的配置数据
263
- customerFields, //可选的配置字段
264
- initialSetting, //上一次添加自定义字段后保存的数据
265
- pageType, //页面权限code
266
- detailTablesSetting = [], //详情明细表格列配置数据
267
- saveTableCallBack, //详情明细保存函数回调
268
- } = props;
269
-
270
- let codeFilter = {};
271
- if (codeProps.columns) { // table
272
- codeFilter.columns = codeProps.columns.map(item => ({
273
- key: item.key,
274
- isStaticCode: true,
275
- title: item.title
276
- }))
277
-
278
- codeFilter.fields = codeProps.fields.map(item => ({
279
- name: item.name,
280
- isStaticCode: true,
281
- label: item.label,
282
- notShowLabel: item.notShowLabel || false
283
- }))
284
- } else {
285
- codeFilter.fields = iterFileds({fields: codeProps.fields}).fields
286
- }
287
-
288
- const styleRef = useRef(null);
289
-
290
- const [visible, setVisible] = useState(false)
291
- const [code, setCode] = useState(codeProps);
292
- const [init, setInit] = useState(true);
293
- const [jsonEditorVal, setJsonEditorVal] = useState(initialSetting || codeFilter);
294
- const [moduleParams, setModuleParams] = useState({});
295
- const [activeKey, setActiveKey] = useState('main'); //默认详情页配置
296
- const [tablesConfigParams, setTablesConfigParams] = useState({});
297
- const [tableJsonEditorValsArr, setTableJsonEditorValsArr] = useState([]);
298
-
299
- useEffect(()=>{
300
- Promise.all([
301
- axios.get(`/basic/flow/businessFieldGroup/one?moduleType=2&layoutPoint=${pageType}`),
302
- ]).then(([res] )=> {
303
- const { code, data } = res?.data || {};
304
- if (code === '000000') {
305
- if(data){
306
- const { businessType, code:fieldGroup, moduleType, moduleRelationId } = data;
307
- setModuleParams({
308
- businessType,
309
- fieldGroup,
310
- moduleType,
311
- moduleRelationId
312
- });
313
- }
314
- }
315
- })
316
- },[]);
317
-
318
- useEffect(()=>{
319
- //明细表的配置数据
320
- const axiosArr = detailTablesSetting.map((item:any) => axios.get(`/basic/flow/businessFieldGroup/one?moduleType=2&layoutPoint=${item.tableCode}`));
321
- Promise.all(axiosArr).then(([...resArr])=> {
322
- let configParams = {};
323
- detailTablesSetting.map((item:any, index:number)=>{
324
- const { code, data } = resArr[index]?.data || {};
325
- if(data){
326
- const { businessType, code:fieldGroup, moduleType } = data;
327
- configParams [item.tableCode] = {
328
- businessType,
329
- fieldGroup,
330
- moduleType,
331
- tableFlag: true
332
- }
333
- }
334
- })
335
- setTablesConfigParams({
336
- ...configParams,
337
- });
338
- })
339
-
340
- const detailTableCodeFilter = detailTablesSetting.map(item => {
341
- if(item?.initialSetting && item?.initialSetting.length){
342
- return {
343
- ...item,
344
- columns: item?.initialSetting
345
- }
346
- }
347
- return {
348
- ...item,
349
- columns: item?.columns.map(childItem => ({
350
- key: childItem.key || childItem.dataIndex,
351
- dataIndex: childItem.dataIndex || childItem.key,
352
- isStaticCode: true,
353
- title: childItem.title
354
- }))
355
- }
356
- });
357
- setTableJsonEditorValsArr([...detailTableCodeFilter]);
358
- const lastRes = detailTableCodeFilter.map(item => {
359
- if(item?.initialSetting && item?.initialSetting.length){
360
- const codeProps = {
361
- fields: [],
362
- columns: item?.columns,
363
- };
364
- const newValue = {
365
- fields: [],
366
- columns: item.initialSetting
367
- };
368
- const result = hanleCallbackValue(codeProps, newValue, item?.customerFields, item?.cacheColumns);
369
- return {
370
- ...item,
371
- columns: result?.columns
372
- }
373
- }
374
- return item;
375
- });
376
- if(lastRes.length){
377
- saveTableCallBack(lastRes, false);
378
- }
379
- },[detailTablesSetting.length]);
380
-
381
- const onClickRun = (value, isSave) => {
382
- setJsonEditorVal(value);
383
-
384
- try {
385
- setCode(value);
386
- callBack(hanleCallbackValue(codeProps, value, customerFields), isSave, value);
387
- } catch (e) {
388
- message.error(e);
389
- }
390
- };
391
-
392
- //明细表保存
393
- const onClickRunDetailTables = (value, isSave, tableCode, tableSouce) =>{
394
- const targetCode = tableCode || activeKey;
395
- const targetTableSource = tableSouce || tableJsonEditorValsArr;
396
- const newArr = targetTableSource.map(item => {
397
- if(item.tableCode == targetCode){
398
- return {
399
- ...item,
400
- columns: value
401
- }
402
- }
403
- return item
404
- });
405
- setTableJsonEditorValsArr([...newArr]);
406
-
407
- try {
408
- const target = targetTableSource.find(item=>item.tableCode == targetCode);
409
- const codeProps = {
410
- fields: [],
411
- columns: target?.columns,
412
- };
413
- const newValue = {
414
- fields: [],
415
- columns: value
416
- };
417
- const result = hanleCallbackValue(codeProps, newValue, target?.customerFields, target?.cacheColumns);
418
- saveTableCallBack({ columns: result.columns, tableCode: targetCode }, isSave, value);
419
- } catch (e) {
420
- message.error(e);
421
- }
422
- }
423
-
424
- React.useEffect(() => {
425
- localStorage.setItem('jsonEditorVal',JSON.stringify(jsonEditorVal||{}))
426
- }, [jsonEditorVal]);
427
-
428
- React.useEffect(() => {
429
- if (initialSetting) {
430
- onClickRun(initialSetting);
431
- setJsonEditorVal(initialSetting)
432
- }
433
- }, [initialSetting]);
434
-
435
- const height =
436
- styleRef?.current?.clientHeight || styleRef?.current?.offsetHeight;
437
-
438
- const tableParams = {
439
- ...moduleParams,
440
- jsonEditorVal,
441
- codeProps,
442
- };
443
-
444
- return (
445
- <div>
446
- <Drawer visible={visible} width={1400} onClose={() => setVisible(false)} className={'customFieldsDrawer'}>
447
- {
448
- detailTablesSetting.length == 0 &&(
449
- <div style={{display: 'flex'}}>
450
- <div style={{flex: 1, width: 500}}>
451
- {
452
- isEmpty(moduleParams)?(
453
- <div style={{padding:"10px 0", fontSize:"16px", fontWeight:"bolder"}}>
454
- 提示:业务对象未维护,请在通用单据对应业务类型下维护业务对象
455
- </div>
456
- ):(
457
- <FieldsSettingsTable {...tableParams}/>
458
- )
459
- }
460
- </div>
461
- <div style={{flex: 1}}>
462
- <Editor
463
- type="table"
464
- onRun={onClickRun}
465
- value={jsonEditorVal}
466
- shallowHeight={height}
467
- />
468
- </div>
469
- </div>
470
- )
471
- }
472
- {
473
- detailTablesSetting.length > 0 && (
474
- <Tabs defaultActiveKey={activeKey} onChange={(v: any) => setActiveKey(v)}>
475
- <Tabs.TabPane tab="详情页配置" key="main">
476
- <div style={{display: 'flex'}}>
477
- <div style={{flex: 1, width: 500}}>
478
- {
479
- isEmpty(moduleParams)?(
480
- <div style={{padding:"10px 0", fontSize:"16px", fontWeight:"bolder"}}>
481
- 提示:业务对象未维护,请在通用单据对应业务类型下维护业务对象
482
- </div>
483
- ):(
484
- <FieldsSettingsTable {...tableParams}/>
485
- )
486
- }
487
- </div>
488
- <div style={{flex: 1}}>
489
- <Editor
490
- type="table"
491
- onRun={onClickRun}
492
- value={jsonEditorVal}
493
- shallowHeight={height}
494
- />
495
- </div>
496
- </div>
497
- </Tabs.TabPane>
498
- {
499
- tableJsonEditorValsArr.map((k:any)=>(
500
- <Tabs.TabPane tab={k.title} key={k.tableCode}>
501
- <div style={{display: 'flex'}}>
502
- <div style={{flex: 1, width: 500}}>
503
- {
504
- !tablesConfigParams[k.tableCode]?(
505
- <div style={{padding:"10px 0", fontSize:"16px", fontWeight:"bolder"}}>
506
- 提示:业务对象未维护,请在通用单据对应业务类型下维护业务对象
507
- </div>
508
- ):(
509
- <FieldsSettingsTable {...tablesConfigParams[k.tableCode]}/>
510
- )
511
- }
512
- </div>
513
- <div style={{flex: 1}}>
514
- <Editor
515
- type="table"
516
- onRun={onClickRunDetailTables}
517
- value={k.columns}
518
- shallowHeight={height}
519
- />
520
- </div>
521
- </div>
522
- </Tabs.TabPane>
523
- ))
524
- }
525
- </Tabs>
526
- )
527
- }
528
- </Drawer>
529
-
530
- {!visible && isAdmin() && <ConfigButton type='primary' onClick={() => setVisible(true)}>setting</ConfigButton>}
531
- </div>
532
- );
533
- });
534
-
535
- export default JsonQueryTable;
1
+ // @ts-nocheck
2
+ import React, { useState, useRef, useEffect, Fragment } from 'react';
3
+ import { message, Button, Table, Tabs } 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
+ if(item.dependency) {
80
+ targetValue.dependency = {
81
+ visible: {
82
+ ...item.dependency.visible,
83
+ type: (new Function('axios','ctx', item.dependency.visible.type)).bind(null, axios)
84
+ }
85
+ }
86
+ }
87
+ filedsValue.push(targetValue)
88
+ }
89
+ })
90
+ } else {
91
+ const returnField = field.isStaticCode ? falltValue[containerName ? (containerName + field.name) : field.name] : faltFieldRange[field.name];
92
+ if (returnField) {
93
+ returnField.label = field?.label;
94
+ if(field?.disabled){ // 字段设置只读属性
95
+ returnField.field.props.disabled = true;
96
+ }
97
+ if(field?.invisible){ // 字段设置不可见属性
98
+ returnField.initialVisible = false;
99
+ }
100
+
101
+ if(Array.isArray(returnField.name)&&returnField.name?.includes("extensionFields")){
102
+ returnField.notShowLabel = true;
103
+ }
104
+ } else {
105
+ debugger
106
+ }
107
+ return returnField;
108
+ }
109
+
110
+ return {...falltValue[field?.container?.name], fields: filedsValue};
111
+ }
112
+
113
+ filedsValue = iter(fields)
114
+
115
+ return filedsValue;
116
+ }
117
+
118
+ function faltColumns(columns) {
119
+ let columnsValue = {}
120
+
121
+ columns.forEach(item => {
122
+ columnsValue[item.key] = {...item}
123
+ })
124
+
125
+ return columnsValue;
126
+ }
127
+
128
+ function faltCustomerFieldRange(fileds) {
129
+ let columnsValue = {}
130
+
131
+ fileds.forEach(item => {
132
+ columnsValue[item.name] = {...item}
133
+ })
134
+
135
+ return columnsValue;
136
+ }
137
+
138
+ //form存在新加container属性分组得情况 组合操作
139
+ function combineContainer(originFields, currentFields){
140
+ let newCurrentFields = [...originFields];
141
+ currentFields.map((item: any) => {
142
+ if(!originFields.find((i: any) => i?.container?.props?.name == item?.container?.name)){
143
+ newCurrentFields = [...newCurrentFields, {
144
+ container: {
145
+ type: 'card',
146
+ props: {
147
+ title: item?.container?.title,
148
+ level: 1,
149
+ id: Math.random(),
150
+ isWhiteCard: true,
151
+ bordered: false,
152
+ name: item?.container?.name,
153
+ },
154
+ },
155
+ fields: item?.fields || []
156
+ }];
157
+ }
158
+ })
159
+ return newCurrentFields;
160
+ }
161
+
162
+ function hanleCallbackValue(codeProps, value, customerFields, cacheColumns = []) {
163
+ const faltFieldRange = faltCustomerFieldRange(customerFields);
164
+ // const falltValue = flatFileds({fields: codeProps.fields})
165
+ const falltValue = flatFileds({fields: combineContainer(codeProps.fields, value?.fields)})
166
+ let newCodeProps = {...codeProps};
167
+ newCodeProps.fields = convertFileds({fields: value.fields}, falltValue, faltFieldRange).fields;
168
+ if (codeProps.columns) {
169
+ const faltColumnsValue = faltColumns(codeProps.columns)
170
+ newCodeProps.columns = value.columns.map(item => {
171
+ if (item.isStaticCode) {
172
+ const cacheFieldProperty = cacheColumns.find(k => (k.key||k.dataIndex) == (item.key||item.dataIndex));
173
+ return {
174
+ ...faltColumnsValue[item.key],
175
+ ...cacheFieldProperty
176
+ }
177
+ } else {
178
+ //自定义字段-列字段
179
+ if(item?.key&&item?.key.includes('extensionFields')&&item?.key.includes(',')){
180
+ return {
181
+ ...item,
182
+ render: ({ record }: any) => {
183
+ try{
184
+ const { extensionFields = {} } = record;
185
+ const fieldName1= item?.key.split(',')[1]; //兼容没有fieldName的情况
186
+ const fieldName2 = `${fieldName1}Name`;
187
+ if(customerFields.length){
188
+ const targetField = customerFields.find(k => k.name.includes(fieldName1));
189
+ if(targetField){
190
+ const { initialSource = [] } = targetField
191
+ if(initialSource.length){
192
+ return initialSource.find((d => d.value == extensionFields[fieldName1]))?.text || extensionFields[fieldName1];
193
+ }
194
+ }
195
+ }
196
+ return extensionFields[fieldName2] || extensionFields[fieldName1] || '';
197
+ }catch(e){
198
+ console.log('e',e);
199
+ }
200
+ }
201
+ }
202
+ }else{
203
+ return {
204
+ ...item
205
+ }
206
+ }
207
+ }
208
+ });
209
+
210
+ //进行列表搜索项自定义字段name替换 (排除是编辑表单的fields)
211
+ newCodeProps.fields = newCodeProps.fields.map(item => {
212
+ if(Array.isArray(item?.name)){
213
+ return {
214
+ ...item,
215
+ name: item?.realSearchName || item?.name
216
+ }
217
+ }
218
+ return item;
219
+ });
220
+
221
+ }
222
+
223
+ return newCodeProps;
224
+ }
225
+
226
+ function isAdmin() {
227
+ const username = getUserId();
228
+
229
+ return username === 'admin' || username === 'uiuiui'
230
+ }
231
+
232
+ const tableStyleList = [
233
+ {
234
+ type: '快速搜索',
235
+ img: 'https://img.alicdn.com/tfs/TB1al1JqHr1gK0jSZR0XXbP8XXa-40-40.svg',
236
+ url: '/list/singlesearch',
237
+ },
238
+ {
239
+ type: '高级搜索',
240
+ img: 'https://img.alicdn.com/tfs/TB1QgKIqQL0gK0jSZFtXXXQCXXa-40-40.svg',
241
+ url: '/list/advancedsearch',
242
+ },
243
+ {
244
+ type: '一般搜索',
245
+ img: 'https://img.alicdn.com/tfs/TB1xHCPqRr0gK0jSZFnXXbRRXXa-40-40.svg',
246
+ url: '/list/basic',
247
+ },
248
+ {
249
+ type: '无分页表格',
250
+ img: 'https://img.alicdn.com/tfs/TB1txuMqQL0gK0jSZFxXXXWHVXa-40-40.svg',
251
+ url: '/list/nopagination',
252
+ },
253
+ {
254
+ type: '分步查询表格',
255
+ img: 'https://img.alicdn.com/tfs/TB10IOmGkL0gK0jSZFAXXcA9pXa-53-46.svg',
256
+ url: '/list/stepquerytable',
257
+ },
258
+ ];
259
+ const JsonQueryTable = React.memo(props => {
260
+ const {
261
+ callBack, // 主保存函数回调
262
+ codeProps, // 整体的配置数据
263
+ customerFields, //可选的配置字段
264
+ initialSetting, //上一次添加自定义字段后保存的数据
265
+ pageType, //页面权限code
266
+ detailTablesSetting = [], //详情明细表格列配置数据
267
+ saveTableCallBack, //详情明细保存函数回调
268
+ } = props;
269
+
270
+ let codeFilter = {};
271
+ if (codeProps.columns) { // table
272
+ codeFilter.columns = codeProps.columns.map(item => ({
273
+ key: item.key,
274
+ isStaticCode: true,
275
+ title: item.title
276
+ }))
277
+
278
+ codeFilter.fields = codeProps.fields.map(item => ({
279
+ name: item.name,
280
+ isStaticCode: true,
281
+ label: item.label,
282
+ notShowLabel: item.notShowLabel || false
283
+ }))
284
+ } else {
285
+ codeFilter.fields = iterFileds({fields: codeProps.fields}).fields
286
+ }
287
+
288
+ const styleRef = useRef(null);
289
+
290
+ const [visible, setVisible] = useState(false)
291
+ const [code, setCode] = useState(codeProps);
292
+ const [init, setInit] = useState(true);
293
+ const [jsonEditorVal, setJsonEditorVal] = useState(initialSetting || codeFilter);
294
+ const [moduleParams, setModuleParams] = useState({});
295
+ const [activeKey, setActiveKey] = useState('main'); //默认详情页配置
296
+ const [tablesConfigParams, setTablesConfigParams] = useState({});
297
+ const [tableJsonEditorValsArr, setTableJsonEditorValsArr] = useState([]);
298
+
299
+ useEffect(()=>{
300
+ Promise.all([
301
+ axios.get(`/basic/flow/businessFieldGroup/one?moduleType=2&layoutPoint=${pageType}`),
302
+ ]).then(([res] )=> {
303
+ const { code, data } = res?.data || {};
304
+ if (code === '000000') {
305
+ if(data){
306
+ const { businessType, code:fieldGroup, moduleType, moduleRelationId } = data;
307
+ setModuleParams({
308
+ businessType,
309
+ fieldGroup,
310
+ moduleType,
311
+ moduleRelationId
312
+ });
313
+ }
314
+ }
315
+ })
316
+ },[]);
317
+
318
+ useEffect(()=>{
319
+ //明细表的配置数据
320
+ const axiosArr = detailTablesSetting.map((item:any) => axios.get(`/basic/flow/businessFieldGroup/one?moduleType=2&layoutPoint=${item.tableCode}`));
321
+ Promise.all(axiosArr).then(([...resArr])=> {
322
+ let configParams = {};
323
+ detailTablesSetting.map((item:any, index:number)=>{
324
+ const { code, data } = resArr[index]?.data || {};
325
+ if(data){
326
+ const { businessType, code:fieldGroup, moduleType } = data;
327
+ configParams [item.tableCode] = {
328
+ businessType,
329
+ fieldGroup,
330
+ moduleType,
331
+ tableFlag: true
332
+ }
333
+ }
334
+ })
335
+ setTablesConfigParams({
336
+ ...configParams,
337
+ });
338
+ })
339
+
340
+ const detailTableCodeFilter = detailTablesSetting.map(item => {
341
+ if(item?.initialSetting && item?.initialSetting.length){
342
+ return {
343
+ ...item,
344
+ columns: item?.initialSetting
345
+ }
346
+ }
347
+ return {
348
+ ...item,
349
+ columns: item?.columns.map(childItem => ({
350
+ key: childItem.key || childItem.dataIndex,
351
+ dataIndex: childItem.dataIndex || childItem.key,
352
+ isStaticCode: true,
353
+ title: childItem.title
354
+ }))
355
+ }
356
+ });
357
+ setTableJsonEditorValsArr([...detailTableCodeFilter]);
358
+ const lastRes = detailTableCodeFilter.map(item => {
359
+ if(item?.initialSetting && item?.initialSetting.length){
360
+ const codeProps = {
361
+ fields: [],
362
+ columns: item?.columns,
363
+ };
364
+ const newValue = {
365
+ fields: [],
366
+ columns: item.initialSetting
367
+ };
368
+ const result = hanleCallbackValue(codeProps, newValue, item?.customerFields, item?.cacheColumns);
369
+ return {
370
+ ...item,
371
+ columns: result?.columns
372
+ }
373
+ }
374
+ return item;
375
+ });
376
+ if(lastRes.length){
377
+ saveTableCallBack(lastRes, false);
378
+ }
379
+ },[detailTablesSetting.length]);
380
+
381
+ const onClickRun = (value, isSave) => {
382
+ setJsonEditorVal(value);
383
+
384
+ try {
385
+ setCode(value);
386
+ callBack(hanleCallbackValue(codeProps, value, customerFields), isSave, value);
387
+ } catch (e) {
388
+ message.error(e);
389
+ }
390
+ };
391
+
392
+ //明细表保存
393
+ const onClickRunDetailTables = (value, isSave, tableCode, tableSouce) =>{
394
+ const targetCode = tableCode || activeKey;
395
+ const targetTableSource = tableSouce || tableJsonEditorValsArr;
396
+ const newArr = targetTableSource.map(item => {
397
+ if(item.tableCode == targetCode){
398
+ return {
399
+ ...item,
400
+ columns: value
401
+ }
402
+ }
403
+ return item
404
+ });
405
+ setTableJsonEditorValsArr([...newArr]);
406
+
407
+ try {
408
+ const target = targetTableSource.find(item=>item.tableCode == targetCode);
409
+ const codeProps = {
410
+ fields: [],
411
+ columns: target?.columns,
412
+ };
413
+ const newValue = {
414
+ fields: [],
415
+ columns: value
416
+ };
417
+ const result = hanleCallbackValue(codeProps, newValue, target?.customerFields, target?.cacheColumns);
418
+ saveTableCallBack({ columns: result.columns, tableCode: targetCode }, isSave, value);
419
+ } catch (e) {
420
+ message.error(e);
421
+ }
422
+ }
423
+
424
+ React.useEffect(() => {
425
+ localStorage.setItem('jsonEditorVal',JSON.stringify(jsonEditorVal||{}))
426
+ }, [jsonEditorVal]);
427
+
428
+ React.useEffect(() => {
429
+ if (initialSetting) {
430
+ onClickRun(initialSetting);
431
+ setJsonEditorVal(initialSetting)
432
+ }
433
+ }, [initialSetting]);
434
+
435
+ const height =
436
+ styleRef?.current?.clientHeight || styleRef?.current?.offsetHeight;
437
+
438
+ const tableParams = {
439
+ ...moduleParams,
440
+ jsonEditorVal,
441
+ codeProps,
442
+ };
443
+
444
+ return (
445
+ <div>
446
+ <Drawer visible={visible} width={1400} onClose={() => setVisible(false)} className={'customFieldsDrawer'}>
447
+ {
448
+ detailTablesSetting.length == 0 &&(
449
+ <div style={{display: 'flex'}}>
450
+ <div style={{flex: 1, width: 500}}>
451
+ {
452
+ isEmpty(moduleParams)?(
453
+ <div style={{padding:"10px 0", fontSize:"16px", fontWeight:"bolder"}}>
454
+ 提示:业务对象未维护,请在通用单据对应业务类型下维护业务对象
455
+ </div>
456
+ ):(
457
+ <FieldsSettingsTable {...tableParams}/>
458
+ )
459
+ }
460
+ </div>
461
+ <div style={{flex: 1}}>
462
+ <Editor
463
+ type="table"
464
+ onRun={onClickRun}
465
+ value={jsonEditorVal}
466
+ shallowHeight={height}
467
+ />
468
+ </div>
469
+ </div>
470
+ )
471
+ }
472
+ {
473
+ detailTablesSetting.length > 0 && (
474
+ <Tabs defaultActiveKey={activeKey} onChange={(v: any) => setActiveKey(v)}>
475
+ <Tabs.TabPane tab="详情页配置" key="main">
476
+ <div style={{display: 'flex'}}>
477
+ <div style={{flex: 1, width: 500}}>
478
+ {
479
+ isEmpty(moduleParams)?(
480
+ <div style={{padding:"10px 0", fontSize:"16px", fontWeight:"bolder"}}>
481
+ 提示:业务对象未维护,请在通用单据对应业务类型下维护业务对象
482
+ </div>
483
+ ):(
484
+ <FieldsSettingsTable {...tableParams}/>
485
+ )
486
+ }
487
+ </div>
488
+ <div style={{flex: 1}}>
489
+ <Editor
490
+ type="table"
491
+ onRun={onClickRun}
492
+ value={jsonEditorVal}
493
+ shallowHeight={height}
494
+ />
495
+ </div>
496
+ </div>
497
+ </Tabs.TabPane>
498
+ {
499
+ tableJsonEditorValsArr.map((k:any)=>(
500
+ <Tabs.TabPane tab={k.title} key={k.tableCode}>
501
+ <div style={{display: 'flex'}}>
502
+ <div style={{flex: 1, width: 500}}>
503
+ {
504
+ !tablesConfigParams[k.tableCode]?(
505
+ <div style={{padding:"10px 0", fontSize:"16px", fontWeight:"bolder"}}>
506
+ 提示:业务对象未维护,请在通用单据对应业务类型下维护业务对象
507
+ </div>
508
+ ):(
509
+ <FieldsSettingsTable {...tablesConfigParams[k.tableCode]}/>
510
+ )
511
+ }
512
+ </div>
513
+ <div style={{flex: 1}}>
514
+ <Editor
515
+ type="table"
516
+ onRun={onClickRunDetailTables}
517
+ value={k.columns}
518
+ shallowHeight={height}
519
+ />
520
+ </div>
521
+ </div>
522
+ </Tabs.TabPane>
523
+ ))
524
+ }
525
+ </Tabs>
526
+ )
527
+ }
528
+ </Drawer>
529
+
530
+ {!visible && isAdmin() && <ConfigButton type='primary' onClick={() => setVisible(true)}>setting</ConfigButton>}
531
+ </div>
532
+ );
533
+ });
534
+
535
+ export default JsonQueryTable;