@bit-sun/business-component 2.4.13 → 2.4.15-beta

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 (274) 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.js +336 -265
  9. package/docs/index.md +21 -21
  10. package/lib/assets/drag.svg +17 -17
  11. package/lib/assets/exportFail.svg +37 -37
  12. package/lib/assets/exportProcessing.svg +28 -28
  13. package/lib/assets/exportSuccess.svg +34 -34
  14. package/lib/assets/label_icon_bottom.svg +25 -25
  15. package/lib/assets/upExport.svg +22 -22
  16. package/package.json +79 -79
  17. package/src/assets/32.svg +27 -27
  18. package/src/assets/addIcon.svg +17 -17
  19. package/src/assets/allfunc.svg +27 -27
  20. package/src/assets/arrowRight.svg +24 -24
  21. package/src/assets/btn-delete.svg +29 -29
  22. package/src/assets/btn-edit.svg +19 -19
  23. package/src/assets/btn-more.svg +17 -17
  24. package/src/assets/btn-submit.svg +19 -19
  25. package/src/assets/caidan.svg +11 -11
  26. package/src/assets/close.svg +26 -26
  27. package/src/assets/drag.svg +17 -17
  28. package/src/assets/exportFail.svg +37 -37
  29. package/src/assets/exportProcessing.svg +28 -28
  30. package/src/assets/exportSuccess.svg +34 -34
  31. package/src/assets/fixed-left-active.svg +11 -11
  32. package/src/assets/fixed-left.svg +15 -15
  33. package/src/assets/fixed-right-active.svg +11 -11
  34. package/src/assets/fixed-right.svg +15 -15
  35. package/src/assets/guanbi.svg +15 -15
  36. package/src/assets/icon-quanping.svg +15 -15
  37. package/src/assets/icon-shezhi.svg +17 -17
  38. package/src/assets/label_icon_bottom.svg +25 -25
  39. package/src/assets/list-no-img.svg +21 -21
  40. package/src/assets/morentouxiang-32.svg +23 -23
  41. package/src/assets/scanning.svg +24 -24
  42. package/src/assets/upExport.svg +22 -22
  43. package/src/common/ENUM.ts +41 -41
  44. package/src/components/Business/AddSelectBusiness/index.md +162 -162
  45. package/src/components/Business/AddSelectBusiness/index.tsx +1061 -1061
  46. package/src/components/Business/BsLayouts/Components/AllFunc/drawContent.tsx +111 -111
  47. package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -153
  48. package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -70
  49. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -90
  50. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +37 -37
  51. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +242 -242
  52. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +384 -384
  53. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +285 -285
  54. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +74 -74
  55. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +170 -170
  56. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +64 -64
  57. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +153 -153
  58. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +72 -72
  59. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +157 -157
  60. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -85
  61. package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -218
  62. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +155 -155
  63. package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +160 -160
  64. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +75 -75
  65. package/src/components/Business/BsLayouts/index.less +79 -79
  66. package/src/components/Business/BsLayouts/index.tsx +1484 -1484
  67. package/src/components/Business/BsLayouts/service.ts +10 -10
  68. package/src/components/Business/BsLayouts/utils.tsx +203 -203
  69. package/src/components/Business/BsSulaQueryTable/SearchItemSetting.tsx +566 -566
  70. package/src/components/Business/BsSulaQueryTable/index.less +221 -221
  71. package/src/components/Business/BsSulaQueryTable/index.tsx +538 -538
  72. package/src/components/Business/BsSulaQueryTable/setting.tsx +854 -854
  73. package/src/components/Business/BsSulaQueryTable/utils.less +65 -65
  74. package/src/components/Business/BsSulaQueryTable/utils.tsx +690 -690
  75. package/src/components/Business/CommodityEntry/index.md +70 -70
  76. package/src/components/Business/CommodityEntry/index.tsx +80 -80
  77. package/src/components/Business/CommonAlert/index.tsx +23 -23
  78. package/src/components/Business/CommonGuideWrapper/index.less +111 -111
  79. package/src/components/Business/CommonGuideWrapper/index.md +39 -39
  80. package/src/components/Business/CommonGuideWrapper/index.tsx +83 -83
  81. package/src/components/Business/DetailPageWrapper/index.less +79 -79
  82. package/src/components/Business/DetailPageWrapper/index.tsx +315 -315
  83. package/src/components/Business/DetailPageWrapper/utils.tsx +100 -100
  84. package/src/components/Business/HomePageWrapper/index.less +33 -33
  85. package/src/components/Business/HomePageWrapper/index.md +45 -45
  86. package/src/components/Business/HomePageWrapper/index.tsx +162 -162
  87. package/src/components/Business/JsonQueryTable/components/FieldsModifyModal.tsx +824 -824
  88. package/src/components/Business/JsonQueryTable/components/FieldsSettingsTable.tsx +205 -205
  89. package/src/components/Business/JsonQueryTable/components/Formula.tsx +206 -206
  90. package/src/components/Business/JsonQueryTable/components/MaintainOptions.tsx +127 -127
  91. package/src/components/Business/JsonQueryTable/configButton/index.js +20 -20
  92. package/src/components/Business/JsonQueryTable/configTree/component/compactArrayView.js +25 -25
  93. package/src/components/Business/JsonQueryTable/configTree/component/compactObjectView.js +30 -30
  94. package/src/components/Business/JsonQueryTable/configTree/index.js +82 -82
  95. package/src/components/Business/JsonQueryTable/configTree/index.less +44 -44
  96. package/src/components/Business/JsonQueryTable/configTree/parser/highlight.js +57 -57
  97. package/src/components/Business/JsonQueryTable/configTree/parser/index.js +124 -124
  98. package/src/components/Business/JsonQueryTable/configTree/render/iconRender.js +29 -29
  99. package/src/components/Business/JsonQueryTable/configTree/render/nameRender.js +22 -22
  100. package/src/components/Business/JsonQueryTable/configTree/treeNode.js +116 -116
  101. package/src/components/Business/JsonQueryTable/drawer/index.tsx +12 -12
  102. package/src/components/Business/JsonQueryTable/function.ts +62 -62
  103. package/src/components/Business/JsonQueryTable/index.less +16 -16
  104. package/src/components/Business/JsonQueryTable/index.md +328 -328
  105. package/src/components/Business/JsonQueryTable/index.tsx +537 -537
  106. package/src/components/Business/JsonQueryTable/jsonEditor/index.js +346 -346
  107. package/src/components/Business/JsonQueryTable/jsonEditor/index.less +22 -22
  108. package/src/components/Business/JsonQueryTable/jsonEditor/lint/basicType.js +147 -147
  109. package/src/components/Business/JsonQueryTable/jsonEditor/lint/index.js +389 -389
  110. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/actions.js +118 -118
  111. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/dependency.js +22 -22
  112. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/index.js +21 -21
  113. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/request.js +65 -65
  114. package/src/components/Business/JsonQueryTable/static.ts +450 -450
  115. package/src/components/Business/SearchSelect/BusinessUtils.ts +1903 -1836
  116. package/src/components/Business/SearchSelect/common.ts +75 -75
  117. package/src/components/Business/SearchSelect/index.md +1387 -1387
  118. package/src/components/Business/SearchSelect/index.tsx +55 -55
  119. package/src/components/Business/SearchSelect/utils.ts +101 -101
  120. package/src/components/Business/StateFlow/index.less +130 -130
  121. package/src/components/Business/StateFlow/index.md +60 -60
  122. package/src/components/Business/StateFlow/index.tsx +29 -29
  123. package/src/components/Business/TreeSearchSelect/index.md +185 -185
  124. package/src/components/Business/TreeSearchSelect/index.tsx +33 -33
  125. package/src/components/Business/TreeSearchSelect/utils.ts +104 -104
  126. package/src/components/Business/columnSettingTable/columnSetting.tsx +766 -766
  127. package/src/components/Business/columnSettingTable/index.less +247 -247
  128. package/src/components/Business/columnSettingTable/index.md +357 -357
  129. package/src/components/Business/columnSettingTable/index.tsx +234 -234
  130. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +242 -242
  131. package/src/components/Business/columnSettingTable/utils.tsx +71 -71
  132. package/src/components/Business/moreTreeTable/FixedScrollBar.tsx +87 -87
  133. package/src/components/Business/moreTreeTable/hooks/useSticky.ts +21 -21
  134. package/src/components/Business/moreTreeTable/index.less +99 -99
  135. package/src/components/Business/moreTreeTable/index.md +448 -448
  136. package/src/components/Business/moreTreeTable/index.tsx +387 -387
  137. package/src/components/Business/moreTreeTable/utils.ts +126 -126
  138. package/src/components/Functional/AddSelect/helps.ts +80 -80
  139. package/src/components/Functional/AddSelect/index.less +367 -367
  140. package/src/components/Functional/AddSelect/index.md +155 -155
  141. package/src/components/Functional/AddSelect/index.tsx +1171 -1171
  142. package/src/components/Functional/BillEntry/index.less +371 -371
  143. package/src/components/Functional/BillEntry/index.md +39 -39
  144. package/src/components/Functional/BillEntry/index.tsx +773 -773
  145. package/src/components/Functional/BsAntdSula/BsCascader/index.md +62 -62
  146. package/src/components/Functional/BsAntdSula/BsCascader/index.tsx +178 -178
  147. package/src/components/Functional/BsAntdSula/index.ts +2 -2
  148. package/src/components/Functional/DataImport/index.less +63 -63
  149. package/src/components/Functional/DataImport/index.md +44 -44
  150. package/src/components/Functional/DataImport/index.tsx +696 -696
  151. package/src/components/Functional/DataValidation/index.less +63 -63
  152. package/src/components/Functional/DataValidation/index.md +39 -39
  153. package/src/components/Functional/DataValidation/index.tsx +688 -688
  154. package/src/components/Functional/EllipsisTooltip/index.d.ts +5 -5
  155. package/src/components/Functional/EllipsisTooltip/index.js +36 -36
  156. package/src/components/Functional/EllipsisTooltip/index.md +30 -30
  157. package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -37
  158. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +60 -60
  159. package/src/components/Functional/QueryMutipleInput/index.less +37 -37
  160. package/src/components/Functional/QueryMutipleInput/index.md +33 -33
  161. package/src/components/Functional/QueryMutipleInput/index.tsx +128 -128
  162. package/src/components/Functional/SearchSelect/index.less +115 -115
  163. package/src/components/Functional/SearchSelect/index.md +141 -141
  164. package/src/components/Functional/SearchSelect/index.tsx +896 -896
  165. package/src/components/Functional/SearchSelect/utils.ts +3 -3
  166. package/src/components/Functional/TreeSearchSelect/index.md +47 -47
  167. package/src/components/Functional/TreeSearchSelect/index.tsx +204 -201
  168. package/src/components/Solution/RuleComponent/Formula.tsx +335 -335
  169. package/src/components/Solution/RuleComponent/InnerSelect.tsx +62 -62
  170. package/src/components/Solution/RuleComponent/index.d.ts +29 -29
  171. package/src/components/Solution/RuleComponent/index.js +2073 -2073
  172. package/src/components/Solution/RuleComponent/index.less +230 -230
  173. package/src/components/Solution/RuleComponent/renderSpecificAction.js +99 -99
  174. package/src/components/Solution/RuleComponent/ruleFiled.js +2281 -2281
  175. package/src/components/Solution/RuleComponent/services.ts +13 -13
  176. package/src/components/Solution/RuleComponent/util.js +143 -143
  177. package/src/index.ts +38 -38
  178. package/src/plugin/TableColumnSetting/index.less +247 -247
  179. package/src/plugin/TableColumnSetting/index.md +50 -50
  180. package/src/plugin/TableColumnSetting/index.tsx +725 -725
  181. package/src/plugin/TableColumnSetting/utils.ts +19 -19
  182. package/src/styles/bsDefault.less +1912 -1912
  183. package/src/utils/CheckOneUser/index.md +39 -39
  184. package/src/utils/CheckOneUser/index.ts +51 -51
  185. package/src/utils/CustomLoginInfo.ts +55 -55
  186. package/src/utils/LocalstorageUtils.ts +95 -95
  187. package/src/utils/TableUtils.tsx +18 -18
  188. package/src/utils/checkUtils.ts +39 -39
  189. package/src/utils/enumConfig.ts +11 -11
  190. package/src/utils/getFormMode.js +12 -12
  191. package/src/utils/index.ts +4 -4
  192. package/src/utils/requestUtils.ts +166 -166
  193. package/src/utils/serialize.js +7 -7
  194. package/src/utils/utils.ts +195 -195
  195. package/tsconfig.json +29 -29
  196. package/typings.d.ts +4 -4
  197. package/dist/common/ENUM.d.ts +0 -40
  198. package/dist/components/Business/AddSelectBusiness/index.d.ts +0 -4
  199. package/dist/components/Business/BsLayouts/Components/AllFunc/drawContent.d.ts +0 -5
  200. package/dist/components/Business/BsLayouts/Components/AllFunc/index.d.ts +0 -4
  201. package/dist/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.d.ts +0 -4
  202. package/dist/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.d.ts +0 -17
  203. package/dist/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.d.ts +0 -30
  204. package/dist/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.d.ts +0 -4
  205. package/dist/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.d.ts +0 -3
  206. package/dist/components/Business/BsLayouts/Components/CustomerMenu/index.d.ts +0 -4
  207. package/dist/components/Business/BsLayouts/Components/GlobalHeader/index.d.ts +0 -5
  208. package/dist/components/Business/BsLayouts/Components/RightContent/LoginModal.d.ts +0 -3
  209. package/dist/components/Business/BsLayouts/Components/RightContent/index.d.ts +0 -8
  210. package/dist/components/Business/BsLayouts/Components/SearchFunc/index.d.ts +0 -8
  211. package/dist/components/Business/BsLayouts/index.d.ts +0 -18
  212. package/dist/components/Business/BsLayouts/service.d.ts +0 -1
  213. package/dist/components/Business/BsLayouts/utils.d.ts +0 -10
  214. package/dist/components/Business/BsSulaQueryTable/SearchItemSetting.d.ts +0 -60
  215. package/dist/components/Business/BsSulaQueryTable/index.d.ts +0 -3
  216. package/dist/components/Business/BsSulaQueryTable/setting.d.ts +0 -60
  217. package/dist/components/Business/BsSulaQueryTable/utils.d.ts +0 -99
  218. package/dist/components/Business/CommodityEntry/index.d.ts +0 -3
  219. package/dist/components/Business/CommonAlert/index.d.ts +0 -4
  220. package/dist/components/Business/CommonGuideWrapper/index.d.ts +0 -6
  221. package/dist/components/Business/DetailPageWrapper/index.d.ts +0 -10
  222. package/dist/components/Business/DetailPageWrapper/utils.d.ts +0 -8
  223. package/dist/components/Business/HomePageWrapper/index.d.ts +0 -4
  224. package/dist/components/Business/JsonQueryTable/components/FieldsModifyModal.d.ts +0 -3
  225. package/dist/components/Business/JsonQueryTable/components/FieldsSettingsTable.d.ts +0 -3
  226. package/dist/components/Business/JsonQueryTable/components/Formula.d.ts +0 -7
  227. package/dist/components/Business/JsonQueryTable/components/MaintainOptions.d.ts +0 -3
  228. package/dist/components/Business/JsonQueryTable/drawer/index.d.ts +0 -3
  229. package/dist/components/Business/JsonQueryTable/function.d.ts +0 -37
  230. package/dist/components/Business/JsonQueryTable/index.d.ts +0 -4
  231. package/dist/components/Business/JsonQueryTable/static.d.ts +0 -44
  232. package/dist/components/Business/SearchSelect/BusinessUtils.d.ts +0 -5
  233. package/dist/components/Business/SearchSelect/common.d.ts +0 -25
  234. package/dist/components/Business/SearchSelect/index.d.ts +0 -3
  235. package/dist/components/Business/SearchSelect/utils.d.ts +0 -5
  236. package/dist/components/Business/StateFlow/index.d.ts +0 -4
  237. package/dist/components/Business/TreeSearchSelect/index.d.ts +0 -3
  238. package/dist/components/Business/TreeSearchSelect/utils.d.ts +0 -4
  239. package/dist/components/Business/columnSettingTable/columnSetting.d.ts +0 -54
  240. package/dist/components/Business/columnSettingTable/index.d.ts +0 -16
  241. package/dist/components/Business/columnSettingTable/sulaSettingTable.d.ts +0 -17
  242. package/dist/components/Business/columnSettingTable/utils.d.ts +0 -9
  243. package/dist/components/Business/moreTreeTable/FixedScrollBar.d.ts +0 -3
  244. package/dist/components/Business/moreTreeTable/hooks/useSticky.d.ts +0 -8
  245. package/dist/components/Business/moreTreeTable/index.d.ts +0 -4
  246. package/dist/components/Business/moreTreeTable/utils.d.ts +0 -9
  247. package/dist/components/Functional/AddSelect/helps.d.ts +0 -14
  248. package/dist/components/Functional/AddSelect/index.d.ts +0 -4
  249. package/dist/components/Functional/BillEntry/index.d.ts +0 -4
  250. package/dist/components/Functional/BsAntdSula/BsCascader/index.d.ts +0 -18
  251. package/dist/components/Functional/BsAntdSula/index.d.ts +0 -1
  252. package/dist/components/Functional/DataImport/index.d.ts +0 -144
  253. package/dist/components/Functional/DataValidation/index.d.ts +0 -144
  254. package/dist/components/Functional/ExportFunctions/ExportIcon/index.d.ts +0 -13
  255. package/dist/components/Functional/QueryMutipleInput/index.d.ts +0 -6
  256. package/dist/components/Functional/SearchSelect/index.d.ts +0 -4
  257. package/dist/components/Functional/SearchSelect/utils.d.ts +0 -1
  258. package/dist/components/Functional/TreeSearchSelect/index.d.ts +0 -3
  259. package/dist/components/Solution/RuleComponent/Formula.d.ts +0 -9
  260. package/dist/components/Solution/RuleComponent/InnerSelect.d.ts +0 -12
  261. package/dist/components/Solution/RuleComponent/services.d.ts +0 -1
  262. package/dist/index.d.ts +0 -28
  263. package/dist/index.esm.js +0 -31379
  264. package/dist/plugin/TableColumnSetting/index.d.ts +0 -64
  265. package/dist/plugin/TableColumnSetting/utils.d.ts +0 -1
  266. package/dist/utils/CheckOneUser/index.d.ts +0 -2
  267. package/dist/utils/CustomLoginInfo.d.ts +0 -11
  268. package/dist/utils/LocalstorageUtils.d.ts +0 -17
  269. package/dist/utils/TableUtils.d.ts +0 -11
  270. package/dist/utils/checkUtils.d.ts +0 -3
  271. package/dist/utils/enumConfig.d.ts +0 -12
  272. package/dist/utils/index.d.ts +0 -4
  273. package/dist/utils/requestUtils.d.ts +0 -29
  274. package/dist/utils/utils.d.ts +0 -17
@@ -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;