@bit-sun/business-component 2.4.31 → 2.4.32

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