@bit-sun/business-component 2.1.22 → 2.1.24

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 (188) hide show
  1. package/.editorconfig +16 -16
  2. package/.fatherrc.ts +5 -5
  3. package/.gitlab-ci.yml +179 -179
  4. package/.prettierignore +7 -7
  5. package/.prettierrc +11 -11
  6. package/.umirc.ts +74 -74
  7. package/README.md +27 -27
  8. package/dist/components/Business/BsLayouts/Components/AllFunc/drawContent.d.ts +1 -1
  9. package/dist/components/Business/BsLayouts/Components/AllFunc/index.d.ts +1 -1
  10. package/dist/components/Business/BsLayouts/Components/RightContent/index.d.ts +2 -2
  11. package/dist/components/Business/BsLayouts/Components/SearchFunc/index.d.ts +2 -2
  12. package/dist/components/Business/BsLayouts/index.d.ts +2 -2
  13. package/dist/components/Business/BsSulaQueryTable/utils.d.ts +2 -2
  14. package/dist/components/Business/JsonQueryTable/components/FieldsModifyModal.d.ts +2 -0
  15. package/dist/components/Business/JsonQueryTable/components/FieldsSettingsTable.d.ts +2 -0
  16. package/dist/components/Business/JsonQueryTable/components/Formula.d.ts +6 -0
  17. package/dist/components/Business/JsonQueryTable/components/MaintainOptions.d.ts +2 -0
  18. package/dist/components/Business/JsonQueryTable/drawer/index.d.ts +2 -0
  19. package/dist/components/Business/JsonQueryTable/function.d.ts +37 -0
  20. package/dist/components/Business/JsonQueryTable/index.d.ts +4 -0
  21. package/dist/components/Business/JsonQueryTable/static.d.ts +39 -0
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.esm.js +23656 -18705
  24. package/dist/index.js +23267 -18311
  25. package/dist/utils/TableUtils.d.ts +2 -2
  26. package/dist/utils/utils.d.ts +3 -1
  27. package/docs/index.md +21 -21
  28. package/lib/assets/drag.svg +17 -17
  29. package/lib/assets/exportFail.svg +37 -37
  30. package/lib/assets/exportProcessing.svg +28 -28
  31. package/lib/assets/exportSuccess.svg +34 -34
  32. package/lib/assets/label_icon_bottom.svg +25 -25
  33. package/lib/assets/upExport.svg +22 -22
  34. package/package.json +77 -71
  35. package/src/assets/32.svg +27 -27
  36. package/src/assets/addIcon.svg +17 -17
  37. package/src/assets/allfunc.svg +27 -27
  38. package/src/assets/arrowRight.svg +24 -24
  39. package/src/assets/btn-delete.svg +29 -29
  40. package/src/assets/btn-edit.svg +19 -19
  41. package/src/assets/btn-more.svg +17 -17
  42. package/src/assets/btn-submit.svg +19 -19
  43. package/src/assets/caidan.svg +11 -11
  44. package/src/assets/close.svg +26 -26
  45. package/src/assets/drag.svg +17 -17
  46. package/src/assets/exportFail.svg +37 -37
  47. package/src/assets/exportProcessing.svg +28 -28
  48. package/src/assets/exportSuccess.svg +34 -34
  49. package/src/assets/fixed-left-active.svg +11 -11
  50. package/src/assets/fixed-left.svg +15 -15
  51. package/src/assets/fixed-right-active.svg +11 -11
  52. package/src/assets/fixed-right.svg +15 -15
  53. package/src/assets/guanbi.svg +15 -15
  54. package/src/assets/icon-quanping.svg +15 -15
  55. package/src/assets/icon-shezhi.svg +17 -17
  56. package/src/assets/label_icon_bottom.svg +25 -25
  57. package/src/assets/list-no-img.svg +21 -21
  58. package/src/assets/morentouxiang-32.svg +23 -23
  59. package/src/assets/scanning.svg +24 -24
  60. package/src/assets/upExport.svg +22 -22
  61. package/src/components/Business/AddSelectBusiness/index.md +42 -41
  62. package/src/components/Business/AddSelectBusiness/index.tsx +341 -341
  63. package/src/components/Business/BsLayouts/Components/AllFunc/drawContent.tsx +111 -111
  64. package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -153
  65. package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -70
  66. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -90
  67. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +37 -37
  68. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +242 -242
  69. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +384 -384
  70. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +285 -285
  71. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +74 -74
  72. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +170 -170
  73. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +64 -64
  74. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +153 -153
  75. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +72 -72
  76. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +157 -157
  77. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -85
  78. package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -218
  79. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +156 -156
  80. package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +160 -160
  81. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +75 -75
  82. package/src/components/Business/BsLayouts/index.less +79 -79
  83. package/src/components/Business/BsLayouts/index.tsx +1479 -1479
  84. package/src/components/Business/BsLayouts/service.ts +10 -10
  85. package/src/components/Business/BsLayouts/utils.tsx +230 -230
  86. package/src/components/Business/BsSulaQueryTable/index.less +219 -219
  87. package/src/components/Business/BsSulaQueryTable/index.tsx +476 -476
  88. package/src/components/Business/BsSulaQueryTable/setting.tsx +802 -802
  89. package/src/components/Business/BsSulaQueryTable/utils.less +65 -65
  90. package/src/components/Business/BsSulaQueryTable/utils.tsx +688 -688
  91. package/src/components/Business/CommodityEntry/index.md +70 -70
  92. package/src/components/Business/CommodityEntry/index.tsx +80 -80
  93. package/src/components/Business/CommonAlert/index.tsx +23 -23
  94. package/src/components/Business/CommonGuideWrapper/index.less +111 -111
  95. package/src/components/Business/CommonGuideWrapper/index.md +39 -39
  96. package/src/components/Business/CommonGuideWrapper/index.tsx +83 -83
  97. package/src/components/Business/DetailPageWrapper/index.less +79 -79
  98. package/src/components/Business/DetailPageWrapper/index.tsx +335 -335
  99. package/src/components/Business/DetailPageWrapper/utils.tsx +100 -100
  100. package/src/components/Business/HomePageWrapper/index.less +33 -33
  101. package/src/components/Business/HomePageWrapper/index.md +45 -45
  102. package/src/components/Business/HomePageWrapper/index.tsx +162 -162
  103. package/src/components/Business/JsonQueryTable/components/FieldsModifyModal.tsx +824 -0
  104. package/src/components/Business/JsonQueryTable/components/FieldsSettingsTable.tsx +202 -0
  105. package/src/components/Business/JsonQueryTable/components/Formula.tsx +205 -0
  106. package/src/components/Business/JsonQueryTable/components/MaintainOptions.tsx +127 -0
  107. package/src/components/Business/JsonQueryTable/configButton/index.js +20 -0
  108. package/src/components/Business/JsonQueryTable/configTree/component/compactArrayView.js +25 -0
  109. package/src/components/Business/JsonQueryTable/configTree/component/compactObjectView.js +30 -0
  110. package/src/components/Business/JsonQueryTable/configTree/index.js +82 -0
  111. package/src/components/Business/JsonQueryTable/configTree/index.less +44 -0
  112. package/src/components/Business/JsonQueryTable/configTree/parser/highlight.js +57 -0
  113. package/src/components/Business/JsonQueryTable/configTree/parser/index.js +124 -0
  114. package/src/components/Business/JsonQueryTable/configTree/render/iconRender.js +29 -0
  115. package/src/components/Business/JsonQueryTable/configTree/render/nameRender.js +22 -0
  116. package/src/components/Business/JsonQueryTable/configTree/treeNode.js +116 -0
  117. package/src/components/Business/JsonQueryTable/drawer/index.tsx +12 -0
  118. package/src/components/Business/JsonQueryTable/function.ts +62 -0
  119. package/src/components/Business/JsonQueryTable/index.less +17 -0
  120. package/src/components/Business/JsonQueryTable/index.md +328 -0
  121. package/src/components/Business/JsonQueryTable/index.tsx +320 -0
  122. package/src/components/Business/JsonQueryTable/jsonEditor/index.js +346 -0
  123. package/src/components/Business/JsonQueryTable/jsonEditor/index.less +22 -0
  124. package/src/components/Business/JsonQueryTable/jsonEditor/lint/basicType.js +147 -0
  125. package/src/components/Business/JsonQueryTable/jsonEditor/lint/index.js +389 -0
  126. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/actions.js +118 -0
  127. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/dependency.js +22 -0
  128. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/index.js +21 -0
  129. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/request.js +65 -0
  130. package/src/components/Business/JsonQueryTable/static.ts +356 -0
  131. package/src/components/Business/SearchSelect/BusinessUtils.ts +1586 -1586
  132. package/src/components/Business/SearchSelect/common.ts +53 -53
  133. package/src/components/Business/SearchSelect/index.md +1254 -1254
  134. package/src/components/Business/SearchSelect/index.tsx +51 -51
  135. package/src/components/Business/SearchSelect/utils.ts +100 -100
  136. package/src/components/Business/StateFlow/index.less +130 -130
  137. package/src/components/Business/StateFlow/index.md +60 -60
  138. package/src/components/Business/StateFlow/index.tsx +29 -29
  139. package/src/components/Business/TreeSearchSelect/index.md +126 -126
  140. package/src/components/Business/TreeSearchSelect/index.tsx +34 -34
  141. package/src/components/Business/TreeSearchSelect/utils.ts +60 -60
  142. package/src/components/Business/columnSettingTable/columnSetting.tsx +764 -764
  143. package/src/components/Business/columnSettingTable/index.less +247 -247
  144. package/src/components/Business/columnSettingTable/index.md +357 -357
  145. package/src/components/Business/columnSettingTable/index.tsx +232 -232
  146. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +240 -240
  147. package/src/components/Business/columnSettingTable/utils.tsx +68 -68
  148. package/src/components/Business/moreTreeTable/index.less +99 -99
  149. package/src/components/Business/moreTreeTable/index.md +508 -508
  150. package/src/components/Business/moreTreeTable/index.tsx +315 -315
  151. package/src/components/Business/moreTreeTable/utils.ts +126 -126
  152. package/src/components/Functional/AddSelect/index.less +367 -367
  153. package/src/components/Functional/AddSelect/index.md +154 -154
  154. package/src/components/Functional/AddSelect/index.tsx +994 -992
  155. package/src/components/Functional/BillEntry/index.less +371 -371
  156. package/src/components/Functional/BillEntry/index.md +39 -39
  157. package/src/components/Functional/BillEntry/index.tsx +670 -671
  158. package/src/components/Functional/DataImport/index.less +63 -63
  159. package/src/components/Functional/DataImport/index.md +44 -44
  160. package/src/components/Functional/DataImport/index.tsx +695 -695
  161. package/src/components/Functional/DataValidation/index.less +63 -63
  162. package/src/components/Functional/DataValidation/index.md +39 -39
  163. package/src/components/Functional/DataValidation/index.tsx +687 -687
  164. package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -37
  165. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +59 -59
  166. package/src/components/Functional/QueryMutipleInput/index.less +37 -37
  167. package/src/components/Functional/QueryMutipleInput/index.md +33 -33
  168. package/src/components/Functional/QueryMutipleInput/index.tsx +128 -128
  169. package/src/components/Functional/SearchSelect/index.less +115 -115
  170. package/src/components/Functional/SearchSelect/index.md +141 -141
  171. package/src/components/Functional/SearchSelect/index.tsx +813 -813
  172. package/src/components/Functional/SearchSelect/utils.ts +3 -6
  173. package/src/components/Functional/TreeSearchSelect/index.md +47 -47
  174. package/src/components/Functional/TreeSearchSelect/index.tsx +149 -149
  175. package/src/index.ts +34 -32
  176. package/src/styles/bsDefault.less +1906 -1906
  177. package/src/utils/CheckOneUser/index.md +39 -39
  178. package/src/utils/CheckOneUser/index.ts +51 -51
  179. package/src/utils/TableUtils.tsx +18 -18
  180. package/src/utils/checkUtils.ts +39 -39
  181. package/src/utils/enumConfig.ts +10 -10
  182. package/src/utils/getFormMode.js +12 -0
  183. package/src/utils/index.ts +2 -2
  184. package/src/utils/requestUtils.ts +33 -33
  185. package/src/utils/serialize.js +7 -0
  186. package/src/utils/utils.ts +182 -142
  187. package/tsconfig.json +29 -29
  188. package/typings.d.ts +4 -4
@@ -0,0 +1,824 @@
1
+ import React, { useEffect, useRef, useState } from 'react';
2
+ import { Button, Modal, Input } from 'antd';
3
+ import { Form, request, Table } from 'bssula';
4
+ import { useMount } from 'ahooks';
5
+ import _ from 'lodash';
6
+ import MaintainOptions from '../components/MaintainOptions';
7
+ import Formula from '../components/Formula';
8
+ import { inputTypes } from './../static';
9
+ import { getDictionarySource } from '@/utils/utils';
10
+ import { getDynamicDict } from "./../function";
11
+
12
+ // @ts-nocheck
13
+ const FieldsModifyModal = (props: any) => {
14
+ const { onParentOk, mode, inputType, choiceType, valueType, lineDetail } = props;
15
+ const [maintainOptionsModal, setMaintainOptionsModal]:any = useState({
16
+ visible: false,
17
+ onCancel: () =>
18
+ setMaintainOptionsModal({
19
+ ...maintainOptionsModal,
20
+ visible: false,
21
+ }),
22
+ onParentOk: () => {},
23
+ });
24
+ const record = {
25
+ ...props.record,
26
+ ...props.record.info,
27
+ dictionaryCode_dynamic: props.record.info?.dictionaryCode,
28
+ defaultValue:
29
+ props.record.defaultValue && props.record.inputType === 30
30
+ ? props.record.defaultValue.split(',')
31
+ : props.record?.defaultValue,
32
+ showValue: [
33
+ 'createVisibleFlag',
34
+ 'editVisibleFlag',
35
+ 'createEditableFlag',
36
+ ].filter((item) => props.record[item]),
37
+ editableStatus:
38
+ props.record?.editableStatus === ''
39
+ ? []
40
+ : props.record?.editableStatus?.split(',') || [],
41
+ };
42
+
43
+ console.log(record,'record')
44
+ const trueOrFalseSource = [
45
+ {
46
+ text: '是',
47
+ value: true,
48
+ },
49
+ {
50
+ text: '否',
51
+ value: false,
52
+ },
53
+ ];
54
+ const ref = useRef();
55
+ useMount(async () => {
56
+ await setIsShowAndType((prev: any) => {
57
+ if (record.inputType === 20 || record.inputType === 30) {
58
+ return {
59
+ isShow: true,
60
+ singleOrMultiple: record.inputType,
61
+ type: record.choiceType,
62
+ };
63
+ }
64
+ return prev;
65
+ });
66
+ if(record.dictionaryCode){
67
+ let source = record.choiceType == 20 ? getDictionarySource(record.dictionaryCode) : record.choiceType == 30 ? await getDynamicDict(record.dictionaryCode) : []
68
+ // @ts-ignore
69
+ ref?.current?.setFieldSource('defaultValue', source)
70
+ }
71
+
72
+ });
73
+ const [isShowAndType, setIsShowAndType] = useState({
74
+ isShow: false,
75
+ singleOrMultiple: 20,
76
+ type: 10,
77
+ });
78
+ const [isFieldMappingRequired,setIsFieldMappingRequired] = useState(lineDetail?.moduleType == 1)
79
+
80
+ const fieldOfDefaultValue = () => {
81
+ const { singleOrMultiple, type } = isShowAndType;
82
+ if (type === 10) {
83
+ // 自定义
84
+ return [
85
+ {
86
+ name: 'defaultValue',
87
+ label: '默认值',
88
+ field: {
89
+ ...inputTypes[singleOrMultiple][type],
90
+ },
91
+ initialSource: Object.keys(record.enumeration || {})?.map(
92
+ (value: any) => ({
93
+ text: record?.enumeration[value],
94
+ value,
95
+ }),
96
+ ),
97
+ dependency: {
98
+ value: {
99
+ relates: ['enumeration'],
100
+ type: ({ form, values, name, relates }: any) => {
101
+ if (values[0]) {
102
+ form?.setFieldSource(name[0], []);
103
+ form?.setFieldValue(name[0], undefined);
104
+ form?.setFieldSource(
105
+ name[0],
106
+ Object.keys(values[0]).map((value: any) => ({
107
+ text: values[0][value],
108
+ value,
109
+ })),
110
+ );
111
+ }
112
+ },
113
+ },
114
+ },
115
+ },
116
+ ];
117
+ }
118
+ if (type === 20 || type === 30) {
119
+ // 数据字典 或 动态数据字典
120
+ return [
121
+ {
122
+ name: 'defaultValue',
123
+ label: '默认值',
124
+ field: {
125
+ ...inputTypes[singleOrMultiple][type],
126
+ },
127
+ dependency: {
128
+ source: {
129
+ relates: ['dictionaryCode', 'dictionaryCode_dynamic', 'choiceType'],
130
+ type: async ({ form, values, name, relates }: any) => {
131
+ if (values[0]) {
132
+ form?.setFieldSource(name[0], []);
133
+ form?.setFieldValue(name[0], undefined);
134
+ form?.setFieldSource(name[0], getDictionarySource(values[0]));
135
+ }
136
+ if(values[1]){
137
+ const source = await getDynamicDict(record.dictionaryCode || values[1])
138
+ form?.setFieldSource(name[0], []);
139
+ form?.setFieldValue(name[0], undefined);
140
+ form?.setFieldSource(name[0], source);
141
+ }
142
+ },
143
+ },
144
+ },
145
+ },
146
+ ];
147
+ }
148
+ if(type === 330){
149
+ // 变量
150
+ return [{
151
+ name:'defaultValue',
152
+ label:'默认值',
153
+ dependency:{
154
+ value:{
155
+ relates: ['variable'],
156
+ type:({name, values, form}: any) => {
157
+ if(values[0]){
158
+ form?.setFieldValue(name, undefined)
159
+ request({
160
+ url:`/basic/businessVariable/dict/${values[0]}`,
161
+ converter:({data}: any) => {
162
+ let source = []
163
+ form.setFieldDisabled(name, false)
164
+ if(data?.defaultValue?.modeType == 1){
165
+ if(typeof data?.defaultValue?.value[0] === 'string'){
166
+ source = data?.defaultValue?.value.map((d:any) => ({
167
+ text: d,
168
+ value: d
169
+ }))
170
+ }
171
+ }else if(data?.defaultValue?.modeType == 2) {
172
+ source = [{text: data?.defaultValue?.value, value: data?.defaultValue?.value}]
173
+ form.setFieldDisabled(name, true)
174
+ form?.setFieldValue(name,singleOrMultiple == 30 ? [data?.defaultValue?.value] : data?.defaultValue?.value)
175
+ }
176
+ form?.setFieldSource(name, source)
177
+ }
178
+ })
179
+ }
180
+ }
181
+ }
182
+ },
183
+ field:{
184
+ type:'select',
185
+ props:{
186
+ allowClear: true,
187
+ mode: singleOrMultiple == 30 ? 'multiple': 'default',
188
+ },
189
+ },
190
+ }]
191
+ }
192
+ return [
193
+ {
194
+ name: 'defaultValue',
195
+ label: '默认值',
196
+ field: {
197
+ ...inputTypes[singleOrMultiple][type],
198
+ },
199
+ },
200
+ ];
201
+ };
202
+
203
+ const handleChoiceTypeChange = (val: any) => {
204
+ // @ts-ignore
205
+ ref?.current?.setFieldValue('defaultValue', undefined);
206
+ // @ts-ignore
207
+ const singleOrMultiple = ref?.current?.getFieldValue('inputType'); // 20-单选, 30多选
208
+ setIsShowAndType((prev: any) => {
209
+ if (singleOrMultiple === 20 || singleOrMultiple === 30) {
210
+ return {
211
+ isShow: true,
212
+ singleOrMultiple,
213
+ type: val,
214
+ };
215
+ }
216
+ return prev;
217
+ });
218
+ };
219
+ const formConfig = {
220
+ mode,
221
+ initialValues:
222
+ mode !== 'create'
223
+ ? record
224
+ : {
225
+ showValue: [
226
+ 'createVisibleFlag',
227
+ 'editVisibleFlag',
228
+ 'createEditableFlag',
229
+ ],
230
+ },
231
+ itemLayout: {
232
+ cols: 2,
233
+ },
234
+ fields: [
235
+ {
236
+ name: 'code',
237
+ label: '字段编号',
238
+ field: 'input',
239
+ initialDisabled: true,
240
+ },
241
+ {
242
+ name: 'name',
243
+ label: '字段名',
244
+ field: {
245
+ type: 'input',
246
+ },
247
+ rules: [{ required: true }],
248
+ },
249
+ // {
250
+ // name:'name',
251
+ // label:'是否显示',
252
+ // field:{
253
+ // type:'select',
254
+ // },
255
+ // initialSource: trueOrFalseSource,
256
+ // rules:[{required: true,}],
257
+ // },x
258
+ {
259
+ name: 'priority',
260
+ label: '排序',
261
+ field: {
262
+ type: 'inputnumber',
263
+ props: {
264
+ min: 1,
265
+ max: Number.MAX_SAFE_INTEGER,
266
+ precision: 0,
267
+ },
268
+ },
269
+ rules: [{ required: true }],
270
+ },
271
+ {
272
+ name: 'requiredFlag',
273
+ label: '是否必填',
274
+ field: {
275
+ type: 'select',
276
+ },
277
+ initialSource: trueOrFalseSource,
278
+ initialValue: false,
279
+ rules: [{ required: true }],
280
+ },
281
+ // {
282
+ // name:'businessType',
283
+ // label:'校验规则',
284
+ // field:'input',
285
+ // rules:[{required: true,}]
286
+ // },
287
+ {
288
+ name: 'searchableFlag',
289
+ label: '是否查询项',
290
+ field: {
291
+ type: 'select',
292
+ props: {
293
+ onChange: (value: any) => {
294
+ // if(lineDetail?.moduleType == 2) {
295
+ // setIsFieldMappingRequired(value)
296
+ // }
297
+ }
298
+ }
299
+ },
300
+ rules: [{ required: true }],
301
+ initialSource: trueOrFalseSource,
302
+ initialValue: false,
303
+ },
304
+ {
305
+ name: 'sortableFlag',
306
+ label: '是否允许排序',
307
+ field: {
308
+ type: 'select',
309
+ },
310
+ initialSource: trueOrFalseSource,
311
+ rules: [{ required: true }],
312
+ initialValue: false,
313
+ },
314
+ // {
315
+ // name:'multiFlag',
316
+ // label:'是否汇总项',
317
+ // field:{
318
+ // type:'select',
319
+ // },
320
+ // initialSource: trueOrFalseSource,
321
+ // rules:[{required: true,}],
322
+ // },
323
+ {
324
+ name: 'inputType',
325
+ label: '显示类型',
326
+ field: {
327
+ type: 'select',
328
+ props: {
329
+ onChange: (val: any) => {
330
+ setIsShowAndType((prev: any) => {
331
+ if (val !== 20 && val !== 30) {
332
+ return {
333
+ ...prev,
334
+ isShow: false,
335
+ };
336
+ }
337
+ return { ...prev };
338
+ });
339
+ },
340
+ },
341
+ },
342
+ initialDisabled: mode !== 'create',
343
+ initialSource: Object.keys(inputType).map((d: any) => ({
344
+ text: inputType[d],
345
+ value: Number(d),
346
+ })),
347
+ rules: [{ required: true }],
348
+ },
349
+ {
350
+ name: 'scale',
351
+ label: '精度值',
352
+ field: {
353
+ type: 'InputNumber',
354
+ props: {
355
+ min: 1,
356
+ max: Number.MAX_SAFE_INTEGER,
357
+ precision: 0,
358
+ },
359
+ },
360
+ initialVisible: false,
361
+ initialValue: 2,
362
+ dependency: {
363
+ source: {
364
+ relates: ['inputType'],
365
+ type: (ctx: any) => {
366
+ const { values, form, name } = ctx;
367
+ if (values[0] === 40) {
368
+ form.setFieldVisible(name, true);
369
+ !form.getFieldValue(name) && form?.setFieldValue(name, 2);
370
+ } else {
371
+ form.setFieldVisible(name, false);
372
+ }
373
+ },
374
+ },
375
+ },
376
+ rules: [{ required: true }],
377
+ },
378
+ {
379
+ name: 'formula',
380
+ label: '表达式',
381
+ itemLayout: {
382
+ cols: 1,
383
+ span: 24,
384
+ labelCol: { span: 4 },
385
+ wrapperCol: { span: 20 },
386
+ },
387
+ field: {
388
+ type: ({ form }:any) => {
389
+ const setValue = (formulaArray:any) => {
390
+ debugger;
391
+ form?.setFieldValue(
392
+ 'formula',
393
+ formulaArray
394
+ .map((item:any) => {
395
+ if (
396
+ ['+', '-', '*', '/', '(', ')'].indexOf(item.value) == -1
397
+ ) {
398
+ return `{${item.value}}`;
399
+ }
400
+ return item.value;
401
+ })
402
+ .join(''),
403
+ );
404
+ };
405
+
406
+ const formula = form.getFieldValue('formula');
407
+
408
+ return (
409
+ <div style={{ display: 'flex', width: '868px' }}>
410
+ <Formula
411
+ formula={formula}
412
+ setValue={setValue}
413
+ record={{ ...record }}
414
+ />
415
+ </div>
416
+ );
417
+ },
418
+ },
419
+ initialDisabled: mode !== 'create',
420
+ initialVisible: false,
421
+ dependency: {
422
+ source: {
423
+ relates: ['inputType'],
424
+ type: (ctx: any) => {
425
+ const { values, form, name } = ctx;
426
+ if (values[0] === 40) {
427
+ form.setFieldVisible(name, true);
428
+ } else {
429
+ form.setFieldVisible(name, false);
430
+ }
431
+ },
432
+ },
433
+ },
434
+ rules: [{ required: true }],
435
+ },
436
+ {
437
+ name: 'valueType',
438
+ label: '字段类型',
439
+ field: {
440
+ type: 'select',
441
+ },
442
+ initialDisabled: mode !== 'create',
443
+ initialSource: Object.keys(valueType).map((d: any) => ({
444
+ text: valueType[d],
445
+ value: Number(d),
446
+ })),
447
+ dependency: {
448
+ source: {
449
+ relates: ['inputType'],
450
+ type: (ctx: any) => {
451
+ const { values, form, name } = ctx;
452
+ if (values[0] === 40) {
453
+ form?.setFieldValue(name, null);
454
+ form.setFieldVisible(name, false);
455
+ }
456
+ if (mode === 'create') {
457
+ if (values[0] && values[0] === 10) {
458
+ form?.setFieldValue(name, null);
459
+ form.setFieldDisabled(name, false);
460
+ } else {
461
+ form?.setFieldValue(name, 10);
462
+ form.setFieldDisabled(name, true);
463
+ }
464
+ }
465
+ },
466
+ },
467
+ },
468
+ rules: [{ required: true }],
469
+ },
470
+ {
471
+ name: 'showValue',
472
+ label: '显示属性',
473
+ field: {
474
+ type: 'checkboxgroup',
475
+ },
476
+ initialValue: [
477
+ 'createVisibleFlag',
478
+ 'editVisibleFlag',
479
+ 'createEditableFlag',
480
+ ],
481
+ initialSource: [
482
+ { text: '新增时显示', value: 'createVisibleFlag' },
483
+ { text: '编辑时显示', value: 'editVisibleFlag' },
484
+ { text: '新增时编辑', value: 'createEditableFlag' },
485
+ ],
486
+ },
487
+ {
488
+ name: 'choiceType',
489
+ label: '选项集',
490
+ field: {
491
+ type: 'select',
492
+ props: {
493
+ onChange: handleChoiceTypeChange,
494
+ showSearch: true,
495
+ filterOption: (input: any, option: any) =>
496
+ option.props.children
497
+ .toLowerCase()
498
+ .indexOf(input.toLowerCase()) >= 0,
499
+ },
500
+ },
501
+ initialVisible: false,
502
+ initialDisabled: mode !== 'create',
503
+ initialSource: Object.keys(choiceType).map((d: any) => ({
504
+ text: choiceType[d],
505
+ value: Number(d),
506
+ })),
507
+ dependencies: ['inputType'],
508
+ dependency: {
509
+ source: {
510
+ relates: ['inputType'],
511
+ type: ({ form, name, values }: any) => {
512
+ const flag = values[0] === 20 || values[0] === 30;
513
+ form.setFieldVisible(name, flag);
514
+ },
515
+ },
516
+ },
517
+ rules: [
518
+ ({ getFieldValue }: any) => {
519
+ const value = getFieldValue('inputType');
520
+ const flag = value === 20 || value === 30;
521
+ return {
522
+ required: flag,
523
+ };
524
+ },
525
+ ],
526
+ },
527
+ {
528
+ name: 'dictionaryCode',
529
+ label: '数据字典',
530
+ field: {
531
+ type: 'bs-searchSelect',
532
+ props: {
533
+ requestConfig: {
534
+ url: `/basic/bscDict/getBscDictList`,
535
+ filter: 'qp-name-like',
536
+ mappingTextField: 'name',
537
+ mappingValueField: 'code',
538
+ },
539
+ },
540
+ },
541
+ initialVisible: false,
542
+ dependency: {
543
+ source: {
544
+ relates: ['choiceType', 'inputType'],
545
+ type: ({ values, name, form }: any) => {
546
+ if (values[1] === 40) {
547
+ form?.setFieldValue(name, null);
548
+ form.setFieldVisible(name, false);
549
+ }
550
+
551
+ if (values[0] === 20) {
552
+ form.setFieldVisible(name, true);
553
+ } else {
554
+ form.setFieldVisible(name, false);
555
+ }
556
+ },
557
+ },
558
+ },
559
+ },
560
+ {
561
+ name: 'dictionaryCode_dynamic',
562
+ label: '数据字典',
563
+ field: {
564
+ type: 'select',
565
+ },
566
+ initialVisible: false,
567
+ dependency: {
568
+ source: {
569
+ relates: ['choiceType', 'inputType'],
570
+ type: async ({ values, name, form }: any) => {
571
+ if (values[1] === 40) {
572
+ form?.setFieldValue(name, null);
573
+ form.setFieldVisible(name, false);
574
+ }
575
+
576
+ if (values[0] === 30) {
577
+ const source = await request({
578
+ url:'/basic/dictDynamicItem/queryList',
579
+ converter:({data}: any) => {
580
+ return data?.map((d:any) => ({
581
+ text: d.dictCode,
582
+ value: d.dictCode,
583
+ }))
584
+ }
585
+ })
586
+ form?.setFieldSource(name, source)
587
+ form.setFieldVisible(name, true);
588
+ } else {
589
+ form.setFieldVisible(name, false);
590
+ }
591
+ },
592
+ },
593
+ },
594
+ },
595
+ {
596
+ name: 'enumeration',
597
+ label: '维护自定义选项',
598
+ field: {
599
+ type: ({ form }: any) => {
600
+ return (
601
+ <Button
602
+ type={'link'}
603
+ onClick={() => {
604
+ setMaintainOptionsModal({
605
+ ...maintainOptionsModal,
606
+ visible: true,
607
+ record: {
608
+ choiceInfo: form.getFieldValue('enumeration'),
609
+ },
610
+ onParentOk: (rows:any) => {
611
+ const obj:any = {};
612
+ rows.forEach((d: any) => {
613
+ obj[d.value] = d.text;
614
+ });
615
+ form?.setFieldValue('enumeration', obj);
616
+ maintainOptionsModal.onCancel();
617
+ },
618
+ });
619
+ }}
620
+ >
621
+ 点击维护自定义选项
622
+ </Button>
623
+ );
624
+ },
625
+ },
626
+ initialVisible: false,
627
+ dependency: {
628
+ source: {
629
+ relates: ['choiceType'],
630
+ type: ({ values, name, form }: any) => {
631
+ if (values[0] === 10) {
632
+ form.setFieldVisible(name, true);
633
+ } else {
634
+ form.setFieldVisible(name, false);
635
+ }
636
+ },
637
+ },
638
+ },
639
+ },
640
+ {
641
+ name: 'variable',
642
+ label: '变量值',
643
+ initialVisible: false,
644
+ dependency:{
645
+ visible:{
646
+ relates:['choiceType'],
647
+ type:({name, values, form}: any) => {
648
+ if(values[0] == 330){
649
+ form.setFieldVisible(name, true)
650
+ }else{
651
+ form.setFieldVisible(name, false)
652
+ }
653
+ }
654
+ }
655
+ },
656
+ field:{
657
+ type:'select',
658
+ props:{
659
+ allowClear: true,
660
+ showSearch: true,
661
+ filterOption: (input: string, option: { props: { children: string } }) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0,
662
+ }
663
+ },
664
+ remoteSource: {
665
+ url:'/basic/businessVariable/listNoPage',
666
+ params:{
667
+ 'qp-businessType-eq': record.businessType,
668
+ },
669
+ converter:({data}: any) => {
670
+ return data?.map((d:any) => ({
671
+ text: d.name,
672
+ value: d.code
673
+ })) || []
674
+ },
675
+ },
676
+ },
677
+ ...(isShowAndType.isShow ? fieldOfDefaultValue() : []),
678
+ {
679
+ name: 'editableStatus',
680
+ label: '允许编辑状态',
681
+ field: {
682
+ type: 'select',
683
+ props: {
684
+ mode: 'multiple',
685
+ },
686
+ },
687
+ dependency: {
688
+ source: {
689
+ relates: ['inputType'],
690
+ type: (ctx: any) => {
691
+ const { values, form, name } = ctx;
692
+ if (values[0] === 40) {
693
+ form?.setFieldValue(name, null);
694
+ form.setFieldVisible(name, false);
695
+ } else {
696
+ form.setFieldVisible(name, true);
697
+ }
698
+ },
699
+ },
700
+ },
701
+ remoteSource: {
702
+ url: `/basic/flow/businessStatus/listNoPage`,
703
+ params: {
704
+ 'qp-businessType-eq': record.businessType,
705
+ 'qp-status-eq': 1,
706
+ },
707
+ converter: ({ data }: any) => {
708
+ return (
709
+ data?.map((d: any) => ({
710
+ text: d.name,
711
+ value: d.code?.toString(),
712
+ })) || []
713
+ );
714
+ },
715
+ },
716
+ },
717
+ {
718
+ name: 'fieldMapping',
719
+ label:'关联字段',
720
+ initialVisible: lineDetail?.moduleType == 1 || lineDetail?.moduleType == 2,
721
+ initialDisabled: lineDetail?.moduleType == 2,
722
+ rules:[{required: isFieldMappingRequired}],
723
+ field:{
724
+ type:'select',
725
+ props:{
726
+ allowClear: true,
727
+ },
728
+ },
729
+ ...((lineDetail?.moduleRelationId) ? {
730
+ remoteSource:{
731
+ url: lineDetail.moduleType == 1 ? `/basic/planModelField/listNoPage?qp-modelCode-eq=${lineDetail?.moduleRelationId}` : `/basic/flow/businessField/metaFieldMapping?metaEntityCode=${lineDetail?.moduleRelationId}&fieldMapping=${record?.fieldMapping}`,
732
+ method:'get',
733
+ converter:({data}: any) => {
734
+ if(lineDetail.moduleType == 1){
735
+ return data?.map((d:any) => ({
736
+ text: d.fieldName,
737
+ value: d.fieldCode,
738
+ })) || []
739
+ }
740
+ if(lineDetail.moduleType == 2){
741
+ return data?.map((d:any) =>({
742
+ text: d.name,
743
+ value: d.code
744
+ })) || []
745
+ }
746
+ return []
747
+ }
748
+ }
749
+ } : {}),
750
+ }
751
+ ],
752
+ };
753
+
754
+ return (
755
+ <Modal
756
+ {...props}
757
+ width={900}
758
+ maskClosable={false}
759
+ onOk={async () => {
760
+ // @ts-ignore
761
+ const res = await ref?.current?.validateFields();
762
+ res.editableStatus = res.editableStatus?.join(',');
763
+ res.fieldGroup = record.fieldGroup;
764
+ res.businessType = record.businessType;
765
+ res.info = {
766
+ enumeration: res.enumeration,
767
+ dictionaryCode: res.dictionaryCode || res?.['dictionaryCode_dynamic'],
768
+ formula: res.formula,
769
+ scale: res.scale,
770
+ variable: res.variable,
771
+ };
772
+
773
+ res.createVisibleFlag = res.showValue.indexOf('createVisibleFlag') >= 0;
774
+ res.editVisibleFlag = res.showValue.indexOf('editVisibleFlag') >= 0;
775
+ res.createEditableFlag =
776
+ res.showValue.indexOf('createEditableFlag') >= 0;
777
+
778
+ if (res.inputType === 40) {
779
+ res.valueType = 22;
780
+ }
781
+ // 把数组处理成文本
782
+ if (res.inputType === 30) {
783
+ if (res.defaultValue) {
784
+ res.defaultValue = res.defaultValue?.join(',');
785
+ }
786
+ }
787
+
788
+ res.fieldMapping = res.fieldMapping || ''
789
+
790
+ delete res.formula;
791
+ delete res.showValue;
792
+
793
+ if (mode === 'create') {
794
+ request({
795
+ url: `/basic/flow/businessField`,
796
+ method: 'POST',
797
+ params: res,
798
+ successMessage: '创建成功!',
799
+ converter: () => {
800
+ onParentOk();
801
+ },
802
+ });
803
+ return;
804
+ }
805
+ request({
806
+ url: `/basic/flow/businessField/${record.id}`,
807
+ method: 'PATCH',
808
+ params: res,
809
+ successMessage: '修改成功!',
810
+ converter: () => {
811
+ onParentOk();
812
+ },
813
+ });
814
+ }}
815
+ >
816
+ <Form {...formConfig} ref={ref} />
817
+ {maintainOptionsModal.visible && (
818
+ <MaintainOptions {...maintainOptionsModal} />
819
+ )}
820
+ </Modal>
821
+ );
822
+ };
823
+
824
+ export default FieldsModifyModal;