@bit-sun/business-component 2.4.31-alpha.9 → 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 (210) 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.d.ts +0 -1
  9. package/dist/index.esm.js +950 -1044
  10. package/dist/index.js +954 -1051
  11. package/dist/utils/auth.d.ts +0 -1
  12. package/docs/index.md +21 -21
  13. package/lib/assets/drag.svg +17 -17
  14. package/lib/assets/exportFail.svg +37 -37
  15. package/lib/assets/exportProcessing.svg +28 -28
  16. package/lib/assets/exportSuccess.svg +34 -34
  17. package/lib/assets/label_icon_bottom.svg +25 -25
  18. package/lib/assets/upExport.svg +22 -22
  19. package/package.json +80 -83
  20. package/src/assets/32.svg +27 -27
  21. package/src/assets/addIcon.svg +17 -17
  22. package/src/assets/allfunc.svg +27 -27
  23. package/src/assets/arrowRight.svg +24 -24
  24. package/src/assets/btn-delete.svg +29 -29
  25. package/src/assets/btn-edit.svg +19 -19
  26. package/src/assets/btn-more.svg +17 -17
  27. package/src/assets/btn-submit.svg +19 -19
  28. package/src/assets/caidan.svg +11 -11
  29. package/src/assets/close.svg +26 -26
  30. package/src/assets/drag.svg +17 -17
  31. package/src/assets/exportFail.svg +37 -37
  32. package/src/assets/exportProcessing.svg +28 -28
  33. package/src/assets/exportSuccess.svg +34 -34
  34. package/src/assets/fixed-left-active.svg +11 -11
  35. package/src/assets/fixed-left.svg +15 -15
  36. package/src/assets/fixed-right-active.svg +11 -11
  37. package/src/assets/fixed-right.svg +15 -15
  38. package/src/assets/guanbi.svg +15 -15
  39. package/src/assets/icon-quanping.svg +15 -15
  40. package/src/assets/icon-shezhi.svg +17 -17
  41. package/src/assets/label_icon_bottom.svg +25 -25
  42. package/src/assets/list-no-img.svg +21 -21
  43. package/src/assets/morentouxiang-32.svg +23 -23
  44. package/src/assets/scanning.svg +24 -24
  45. package/src/assets/upExport.svg +22 -22
  46. package/src/common/ENUM.ts +41 -41
  47. package/src/components/Business/AddSelectBusiness/index.md +162 -398
  48. package/src/components/Business/AddSelectBusiness/index.tsx +1062 -1099
  49. package/src/components/Business/BsLayouts/Components/AllFunc/drawContent.tsx +112 -112
  50. package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -153
  51. package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -70
  52. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -90
  53. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +37 -37
  54. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +242 -242
  55. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +384 -384
  56. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +285 -285
  57. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +74 -74
  58. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +170 -170
  59. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +64 -64
  60. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +153 -153
  61. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +72 -72
  62. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +158 -157
  63. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -85
  64. package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -218
  65. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +155 -155
  66. package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +160 -160
  67. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +75 -75
  68. package/src/components/Business/BsLayouts/index.less +79 -79
  69. package/src/components/Business/BsLayouts/index.tsx +1484 -1572
  70. package/src/components/Business/BsLayouts/service.ts +10 -10
  71. package/src/components/Business/BsLayouts/utils.tsx +203 -205
  72. package/src/components/Business/BsSulaQueryTable/SearchItemSetting.tsx +566 -566
  73. package/src/components/Business/BsSulaQueryTable/index.less +221 -221
  74. package/src/components/Business/BsSulaQueryTable/index.tsx +606 -560
  75. package/src/components/Business/BsSulaQueryTable/setting.tsx +854 -854
  76. package/src/components/Business/BsSulaQueryTable/utils.less +65 -65
  77. package/src/components/Business/BsSulaQueryTable/utils.tsx +690 -690
  78. package/src/components/Business/CommodityEntry/index.md +70 -84
  79. package/src/components/Business/CommodityEntry/index.tsx +81 -82
  80. package/src/components/Business/CommonAlert/index.tsx +23 -23
  81. package/src/components/Business/CommonGuideWrapper/index.less +111 -111
  82. package/src/components/Business/CommonGuideWrapper/index.md +39 -39
  83. package/src/components/Business/CommonGuideWrapper/index.tsx +83 -83
  84. package/src/components/Business/DetailPageWrapper/index.less +79 -79
  85. package/src/components/Business/DetailPageWrapper/index.tsx +315 -316
  86. package/src/components/Business/DetailPageWrapper/utils.tsx +164 -164
  87. package/src/components/Business/HomePageWrapper/index.less +33 -33
  88. package/src/components/Business/HomePageWrapper/index.md +45 -45
  89. package/src/components/Business/HomePageWrapper/index.tsx +162 -162
  90. package/src/components/Business/JsonQueryTable/components/FieldsModifyModal.tsx +824 -824
  91. package/src/components/Business/JsonQueryTable/components/FieldsSettingsTable.tsx +205 -205
  92. package/src/components/Business/JsonQueryTable/components/Formula.tsx +206 -206
  93. package/src/components/Business/JsonQueryTable/components/MaintainOptions.tsx +127 -127
  94. package/src/components/Business/JsonQueryTable/configButton/index.js +20 -20
  95. package/src/components/Business/JsonQueryTable/configTree/component/compactArrayView.js +25 -25
  96. package/src/components/Business/JsonQueryTable/configTree/component/compactObjectView.js +30 -30
  97. package/src/components/Business/JsonQueryTable/configTree/index.js +82 -82
  98. package/src/components/Business/JsonQueryTable/configTree/index.less +44 -44
  99. package/src/components/Business/JsonQueryTable/configTree/parser/highlight.js +57 -57
  100. package/src/components/Business/JsonQueryTable/configTree/parser/index.js +124 -124
  101. package/src/components/Business/JsonQueryTable/configTree/render/iconRender.js +29 -29
  102. package/src/components/Business/JsonQueryTable/configTree/render/nameRender.js +22 -22
  103. package/src/components/Business/JsonQueryTable/configTree/treeNode.js +116 -116
  104. package/src/components/Business/JsonQueryTable/drawer/index.tsx +12 -12
  105. package/src/components/Business/JsonQueryTable/function.ts +62 -62
  106. package/src/components/Business/JsonQueryTable/index.less +16 -16
  107. package/src/components/Business/JsonQueryTable/index.md +328 -328
  108. package/src/components/Business/JsonQueryTable/index.tsx +537 -537
  109. package/src/components/Business/JsonQueryTable/jsonEditor/index.js +346 -346
  110. package/src/components/Business/JsonQueryTable/jsonEditor/index.less +22 -22
  111. package/src/components/Business/JsonQueryTable/jsonEditor/lint/basicType.js +147 -147
  112. package/src/components/Business/JsonQueryTable/jsonEditor/lint/index.js +389 -389
  113. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/actions.js +118 -118
  114. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/dependency.js +22 -22
  115. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/index.js +21 -21
  116. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/request.js +65 -65
  117. package/src/components/Business/JsonQueryTable/static.ts +450 -450
  118. package/src/components/Business/SearchSelect/BusinessUtils.tsx +2120 -2120
  119. package/src/components/Business/SearchSelect/common.ts +134 -134
  120. package/src/components/Business/SearchSelect/index.md +1503 -1512
  121. package/src/components/Business/SearchSelect/index.tsx +55 -55
  122. package/src/components/Business/SearchSelect/utils.ts +101 -101
  123. package/src/components/Business/StateFlow/index.less +130 -130
  124. package/src/components/Business/StateFlow/index.md +60 -60
  125. package/src/components/Business/StateFlow/index.tsx +29 -29
  126. package/src/components/Business/TreeSearchSelect/index.md +185 -185
  127. package/src/components/Business/TreeSearchSelect/index.tsx +33 -33
  128. package/src/components/Business/TreeSearchSelect/utils.ts +104 -104
  129. package/src/components/Business/columnSettingTable/columnSetting.tsx +766 -766
  130. package/src/components/Business/columnSettingTable/index.less +247 -247
  131. package/src/components/Business/columnSettingTable/index.md +357 -357
  132. package/src/components/Business/columnSettingTable/index.tsx +235 -235
  133. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +243 -243
  134. package/src/components/Business/columnSettingTable/utils.tsx +71 -71
  135. package/src/components/Business/moreTreeTable/FixedScrollBar.tsx +87 -87
  136. package/src/components/Business/moreTreeTable/hooks/useSticky.ts +21 -21
  137. package/src/components/Business/moreTreeTable/index.less +99 -99
  138. package/src/components/Business/moreTreeTable/index.md +448 -448
  139. package/src/components/Business/moreTreeTable/index.tsx +387 -387
  140. package/src/components/Business/moreTreeTable/utils.ts +126 -126
  141. package/src/components/Functional/AddSelect/helps.ts +80 -80
  142. package/src/components/Functional/AddSelect/index.less +367 -367
  143. package/src/components/Functional/AddSelect/index.md +155 -155
  144. package/src/components/Functional/AddSelect/index.tsx +1171 -1011
  145. package/src/components/Functional/BillEntry/index.less +371 -371
  146. package/src/components/Functional/BillEntry/index.md +39 -39
  147. package/src/components/Functional/BillEntry/index.tsx +773 -773
  148. package/src/components/Functional/BsAntdSula/BsCascader/index.md +62 -62
  149. package/src/components/Functional/BsAntdSula/BsCascader/index.tsx +178 -178
  150. package/src/components/Functional/BsAntdSula/index.ts +2 -2
  151. package/src/components/Functional/DataImport/index.less +63 -63
  152. package/src/components/Functional/DataImport/index.md +44 -44
  153. package/src/components/Functional/DataImport/index.tsx +696 -701
  154. package/src/components/Functional/DataValidation/index.less +63 -63
  155. package/src/components/Functional/DataValidation/index.md +39 -52
  156. package/src/components/Functional/DataValidation/index.tsx +688 -701
  157. package/src/components/Functional/EllipsisTooltip/index.d.ts +5 -5
  158. package/src/components/Functional/EllipsisTooltip/index.js +36 -36
  159. package/src/components/Functional/EllipsisTooltip/index.md +30 -30
  160. package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -37
  161. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +60 -60
  162. package/src/components/Functional/QueryMutipleInput/index.less +37 -37
  163. package/src/components/Functional/QueryMutipleInput/index.md +33 -33
  164. package/src/components/Functional/QueryMutipleInput/index.tsx +128 -128
  165. package/src/components/Functional/SearchSelect/index.less +115 -115
  166. package/src/components/Functional/SearchSelect/index.md +141 -141
  167. package/src/components/Functional/SearchSelect/index.tsx +897 -896
  168. package/src/components/Functional/SearchSelect/utils.ts +3 -3
  169. package/src/components/Functional/TreeSearchSelect/index.md +47 -47
  170. package/src/components/Functional/TreeSearchSelect/index.tsx +204 -204
  171. package/src/components/Solution/RuleComponent/Formula.tsx +335 -335
  172. package/src/components/Solution/RuleComponent/InnerSelect.tsx +62 -62
  173. package/src/components/Solution/RuleComponent/index.d.ts +29 -29
  174. package/src/components/Solution/RuleComponent/index.js +2103 -2103
  175. package/src/components/Solution/RuleComponent/index.less +229 -229
  176. package/src/components/Solution/RuleComponent/renderSpecificAction.js +99 -99
  177. package/src/components/Solution/RuleComponent/ruleFiled.js +2293 -2293
  178. package/src/components/Solution/RuleComponent/services.ts +13 -13
  179. package/src/components/Solution/RuleComponent/util.js +143 -143
  180. package/src/components/Solution/RuleSetter/RuleInstance.tsx +6 -6
  181. package/src/components/Solution/RuleSetter/baseRule.tsx +368 -368
  182. package/src/components/Solution/RuleSetter/function.ts +336 -336
  183. package/src/components/Solution/RuleSetter/index.less +221 -221
  184. package/src/components/Solution/RuleSetter/index.tsx +208 -208
  185. package/src/components/Solution/RuleSetter/service.js +276 -276
  186. package/src/index.ts +40 -41
  187. package/src/plugin/TableColumnSetting/index.less +247 -247
  188. package/src/plugin/TableColumnSetting/index.md +50 -50
  189. package/src/plugin/TableColumnSetting/index.tsx +725 -725
  190. package/src/plugin/TableColumnSetting/utils.ts +19 -19
  191. package/src/styles/bsDefault.less +1912 -1912
  192. package/src/utils/CheckOneUser/index.md +39 -39
  193. package/src/utils/CheckOneUser/index.ts +51 -51
  194. package/src/utils/CustomLoginInfo.ts +55 -55
  195. package/src/utils/LocalstorageUtils.ts +128 -128
  196. package/src/utils/TableUtils.tsx +18 -18
  197. package/src/utils/auth.ts +32 -38
  198. package/src/utils/checkUtils.ts +39 -39
  199. package/src/utils/enumConfig.ts +16 -16
  200. package/src/utils/getFormMode.js +12 -12
  201. package/src/utils/index.ts +12 -12
  202. package/src/utils/requestUtils.ts +166 -166
  203. package/src/utils/serialize.js +7 -7
  204. package/src/utils/utils.ts +195 -195
  205. package/tsconfig.json +29 -29
  206. package/typings.d.ts +4 -4
  207. package/dist/components/Functional/AccessWrapper/index.d.ts +0 -5
  208. package/dist/components/Functional/AuthButton/index.d.ts +0 -3
  209. package/src/components/Functional/AccessWrapper/index.tsx +0 -34
  210. package/src/components/Functional/AuthButton/index.tsx +0 -15
@@ -1,336 +1,336 @@
1
- // expression规则集合
2
- //{
3
- // complex,
4
- // dataTypeCode,
5
- // elementId,
6
- // elementName,
7
- // metaObjectCode,
8
- // operationCode,
9
- // operationType,
10
- // paramNames: [],
11
- // params: [],
12
- // propertyPath,
13
- // subExpression: [
14
- // complex,
15
- // dataTypeCode,
16
- // elementId,
17
- // elementName,
18
- // metaObjectCode,
19
- // operationCode,
20
- // operationType,
21
- // paramNames: [],
22
- // params: [],
23
- // propertyPath,
24
- // subExpression: [.....] // 继续嵌套
25
- // ]
26
- // }
27
- // result 执行返回值/执行动作
28
- //{
29
- // "return": {
30
- // "enable": true,
31
- // "value": "ticketId"
32
- // },
33
- // "execute": [
34
- // {
35
- // "priority": 1,
36
- // "code": "functionCode",
37
- // "properties": {
38
- // "${logisticsNum}": "dasdadasdadas"
39
- // }
40
- // },
41
- // {
42
- // "priority": 2,
43
- // "code": "",
44
- // "properties": {
45
- // "${detailList.skuCode}": "ccxcx",
46
- // "${logisticsNum}": "cxcxcx"
47
- // }
48
- // }
49
- // ]
50
- // }
51
- export const formatOperationList = (data: any) => {
52
- let result = data||[];
53
- result = result.concat([{
54
- code: 32,
55
- name: 'dateTime',
56
- operationList: result.find((s: any)=> s.code ==41)?.operationList || []
57
- }])
58
- // 新版基础中对象字段编码valueType和旧版中valueType枚举不一致,如果没有取到符号值--需要排查数据后端是否做了映射转化; 按照oldValueType进行匹配符号和第三个参数框的
59
- // const oldValueType = Object.freeze({
60
- // 10: '对象',
61
- // 21: '字符串',
62
- // 23: '长整数',
63
- // 22: '小数',
64
- // 41: '日期',
65
- // 40: '时间',
66
- // 30: '数组',
67
- // 24: '布尔值',
68
- // });
69
- // const newValueType = {
70
- // 10: '字符串',
71
- // 20: '短整数',
72
- // 21: '长整数',
73
- // 22: '小数',
74
- // 40: '数组',
75
- // 41: '布尔值',
76
- // 12: '富文本',
77
- // 30: '日期',
78
- // 31: '时间',
79
- // 32: '日期时间',
80
- // }
81
- return result;
82
- };
83
-
84
- export const formatRegularList = (data: any) => {
85
- let result = data;
86
- return result;
87
- };
88
-
89
- // 回显规则处理数据
90
- export const handleRuleShowBack = (data: any, functionRuleList: any) => {
91
- let result = data?.map((item: any, index: number) => {
92
- const handleResult = {
93
- response: {
94
- inputType: item?.result?.response?.inputType,
95
- formulaName: item?.result?.response?.formulaName,
96
- enable: item?.result?.response?.enable !== false,
97
- value: item?.result?.response?.value || '',
98
- },
99
- execute:
100
- (functionRuleList?.length &&
101
- functionRuleList.map((s: any, index: number) => {
102
- const Item = (item?.result?.execute || []).find(
103
- (u: any) => u.code === s.code,
104
- );
105
- if (Item) {
106
- return {
107
- ...Item,
108
- properties: Item?.frontendProperties || Item?.properties,
109
- isSelected: true,
110
- };
111
- }
112
- return {
113
- priority: index + 1,
114
- code: s.code,
115
- properties: {
116
- configPropertyCode: 'configPropertyValue',
117
- },
118
- };
119
- })) ||
120
- [],
121
- };
122
- const restObject = {
123
- extraInfo: handleResult,
124
- id: item.id,
125
- ruleId: item.ruleId,
126
- priority: item.priority,
127
- status: item.status,
128
- extStrField01: item?.extStrField01,
129
- name: item?.name,
130
- };
131
- if (item?.expression) {
132
- return {
133
- ruleName: item.ruleName || `规则${index + 1}`,
134
- subExpression: item.expression,
135
- ...restObject,
136
- };
137
- } else {
138
- return {
139
- ruleName: `规则${index + 1}`,
140
- subExpression: {
141
- expressionType: 'relation',
142
- operationType: 'relation',
143
- propertyPath: '',
144
- params: [],
145
- paramNames: [],
146
- },
147
- ...restObject,
148
- };
149
- }
150
- });
151
- return result;
152
- };
153
-
154
- const isNoEmpty = (data: any) =>
155
- (Array.isArray(data) && data.length > 0) ||
156
- !(data == null || data == undefined || String(data).trim() == '');
157
-
158
- // 校验执行动作必填数据
159
- export const handleRuleRequireCheck = (saveData: any, ruleActionData: any) => {
160
- let checkResult = false; // 默认通过校验
161
- const checkInfo: any = []; // 没有选必填执行动作(暂不考虑);执行动作下的对象未选
162
- if (Array.isArray(ruleActionData) && ruleActionData?.length && Array.isArray(saveData) && saveData.length) {
163
- let requireList: any = [];
164
- ruleActionData.forEach((s: any) => {
165
- s.valueList.forEach((n: any) => {
166
- if (n.required) {
167
- if (requireList.some((m: any) => m.functionCode === s.code)) {
168
- requireList = requireList.map((k: any) => {
169
- if (k.functionCode === s.code) {
170
- k.propertiesCode = [...k.propertiesCode, ...n.code];
171
- }
172
- return k;
173
- });
174
- } else {
175
- requireList.push({
176
- functionCode: s.code,
177
- functionName: s.functionName,
178
- propertiesCode: [n.code],
179
- });
180
- }
181
- }
182
- });
183
- });
184
-
185
- requireList?.length &&
186
- saveData.forEach((s: any, index: number) => {
187
- s.result.execute.length &&
188
- s.result.execute.forEach((e: any) => {
189
- if (requireList.some((r: any) => r.functionCode === e.code)) {
190
- const currentRequireList = requireList.find(
191
- (r: any) => r.functionCode === e.code,
192
- );
193
- const currentPropertiesCode = currentRequireList.propertiesCode;
194
- const isComplete = currentPropertiesCode.every((c: any) =>
195
- Object.keys(e.properties).some(
196
- (p: any) => p === c && isNoEmpty(e.properties[p]),
197
- ),
198
- );
199
- if (!isComplete) {
200
- checkResult = true;
201
- checkInfo.push(
202
- `规则${index + 1}: 执行动作【${
203
- currentRequireList.functionName
204
- }】信息填写不完整`,
205
- );
206
- }
207
- }
208
- });
209
- });
210
- }
211
- return { checkResult, checkInfo };
212
- };
213
-
214
- function isObj(object: any) {
215
- return (
216
- object &&
217
- typeof object == 'object' &&
218
- Object.prototype.toString.call(object).toLowerCase() == '[object object]'
219
- );
220
- }
221
-
222
- // 保存规则处理数据
223
- export const handleRuleResultList = (data: any, ruleTypeData: any) => {
224
- let result = data || [];
225
- if (Array.isArray(result) && result?.length) {
226
- result = result.map((i: any) => {
227
- return {
228
- expression: i?.subExpression, // 左侧规则
229
- result: {
230
- ...i?.extraInfo,
231
- ...(i?.extraInfo.execute
232
- ? {
233
- execute: i?.extraInfo.execute
234
- .filter((s: any) => s.isSelected)
235
- ?.map((s: any) => {
236
- const saveP = s.properties;
237
- // 处理在执行动作配置中设置了默认值的
238
- const ruleValueList = ruleTypeData.find(
239
- (r: any) => r.code === s.code,
240
- )?.valueList;
241
- if (ruleValueList?.length) {
242
- ruleValueList.forEach((r: any) => {
243
- if (
244
- r.defaultValue &&
245
- r?.inputType === 10 &&
246
- r?.valueType === 21 &&
247
- saveP[r.code] === undefined
248
- ) {
249
- saveP[r.code] = ' ';
250
- } else if (r.defaultValue && !saveP[r.code]) {
251
- saveP[r.code] = r.defaultValue;
252
- }
253
- });
254
- }
255
-
256
- delete saveP.configPropertyCode;
257
- // 前端所需回显数据
258
- s.frontendProperties = { ...s.properties };
259
- // 格式化后端需要的数据
260
- Object.keys(s.properties).forEach((p: any) => {
261
- const v = s.properties[p];
262
- if (Array.isArray(v)) {
263
- s.properties = {
264
- ...s.properties,
265
- [p]: v.map((m: any) => m.value || m).join(','),
266
- };
267
- }
268
- if (isObj(v)) {
269
- s.properties = {
270
- ...s.properties,
271
- [p]: v.value || v.PCDCode?.join('/'),
272
- };
273
- }
274
- });
275
- return s;
276
- }),
277
- }
278
- : {}),
279
- }, // 右侧信息
280
- ruleName: i.ruleName,
281
- ruleId: i.ruleId,
282
- id: i.id,
283
- priority: i.priority,
284
- status: i.status,
285
- extStrField01: i?.extStrField01,
286
- name: i?.name,
287
- };
288
- });
289
- }
290
- return result;
291
- };
292
-
293
- export const getInitClassData = (ruleTypeData: any) => {
294
- const initClassData = [
295
- {
296
- ruleName: `规则1`,
297
- subExpression: {
298
- // "expressionType": "relation",
299
- operationType: 'relation',
300
- propertyPath: '',
301
- params: [],
302
- paramNames: [],
303
- },
304
- extraInfo: {
305
- response: {
306
- enable: false,
307
- value: '',
308
- },
309
- execute: ruleTypeData?.map((s: any) => {
310
- return {
311
- priority: 1,
312
- code: s.code,
313
- properties: {
314
- configPropertyCode: 'configPropertyValue',
315
- },
316
- };
317
- }),
318
- },
319
- },
320
- ];
321
- return initClassData;
322
- };
323
-
324
- export const formatGroupOtherPriorityList = (data: any, templateId: string) => {
325
- const result = data.filter((i: any) => i.templateId !== templateId);
326
- return result;
327
- };
328
- export const formatOtherPriorityList = (
329
- data: any,
330
- templateId: string,
331
- extStr: string,
332
- ) => {
333
- return data.filter(
334
- (i: any) => i.templateId != templateId || i.extStrField01 != extStr,
335
- );
336
- };
1
+ // expression规则集合
2
+ //{
3
+ // complex,
4
+ // dataTypeCode,
5
+ // elementId,
6
+ // elementName,
7
+ // metaObjectCode,
8
+ // operationCode,
9
+ // operationType,
10
+ // paramNames: [],
11
+ // params: [],
12
+ // propertyPath,
13
+ // subExpression: [
14
+ // complex,
15
+ // dataTypeCode,
16
+ // elementId,
17
+ // elementName,
18
+ // metaObjectCode,
19
+ // operationCode,
20
+ // operationType,
21
+ // paramNames: [],
22
+ // params: [],
23
+ // propertyPath,
24
+ // subExpression: [.....] // 继续嵌套
25
+ // ]
26
+ // }
27
+ // result 执行返回值/执行动作
28
+ //{
29
+ // "return": {
30
+ // "enable": true,
31
+ // "value": "ticketId"
32
+ // },
33
+ // "execute": [
34
+ // {
35
+ // "priority": 1,
36
+ // "code": "functionCode",
37
+ // "properties": {
38
+ // "${logisticsNum}": "dasdadasdadas"
39
+ // }
40
+ // },
41
+ // {
42
+ // "priority": 2,
43
+ // "code": "",
44
+ // "properties": {
45
+ // "${detailList.skuCode}": "ccxcx",
46
+ // "${logisticsNum}": "cxcxcx"
47
+ // }
48
+ // }
49
+ // ]
50
+ // }
51
+ export const formatOperationList = (data: any) => {
52
+ let result = data||[];
53
+ result = result.concat([{
54
+ code: 32,
55
+ name: 'dateTime',
56
+ operationList: result.find((s: any)=> s.code ==41)?.operationList || []
57
+ }])
58
+ // 新版基础中对象字段编码valueType和旧版中valueType枚举不一致,如果没有取到符号值--需要排查数据后端是否做了映射转化; 按照oldValueType进行匹配符号和第三个参数框的
59
+ // const oldValueType = Object.freeze({
60
+ // 10: '对象',
61
+ // 21: '字符串',
62
+ // 23: '长整数',
63
+ // 22: '小数',
64
+ // 41: '日期',
65
+ // 40: '时间',
66
+ // 30: '数组',
67
+ // 24: '布尔值',
68
+ // });
69
+ // const newValueType = {
70
+ // 10: '字符串',
71
+ // 20: '短整数',
72
+ // 21: '长整数',
73
+ // 22: '小数',
74
+ // 40: '数组',
75
+ // 41: '布尔值',
76
+ // 12: '富文本',
77
+ // 30: '日期',
78
+ // 31: '时间',
79
+ // 32: '日期时间',
80
+ // }
81
+ return result;
82
+ };
83
+
84
+ export const formatRegularList = (data: any) => {
85
+ let result = data;
86
+ return result;
87
+ };
88
+
89
+ // 回显规则处理数据
90
+ export const handleRuleShowBack = (data: any, functionRuleList: any) => {
91
+ let result = data?.map((item: any, index: number) => {
92
+ const handleResult = {
93
+ response: {
94
+ inputType: item?.result?.response?.inputType,
95
+ formulaName: item?.result?.response?.formulaName,
96
+ enable: item?.result?.response?.enable !== false,
97
+ value: item?.result?.response?.value || '',
98
+ },
99
+ execute:
100
+ (functionRuleList?.length &&
101
+ functionRuleList.map((s: any, index: number) => {
102
+ const Item = (item?.result?.execute || []).find(
103
+ (u: any) => u.code === s.code,
104
+ );
105
+ if (Item) {
106
+ return {
107
+ ...Item,
108
+ properties: Item?.frontendProperties || Item?.properties,
109
+ isSelected: true,
110
+ };
111
+ }
112
+ return {
113
+ priority: index + 1,
114
+ code: s.code,
115
+ properties: {
116
+ configPropertyCode: 'configPropertyValue',
117
+ },
118
+ };
119
+ })) ||
120
+ [],
121
+ };
122
+ const restObject = {
123
+ extraInfo: handleResult,
124
+ id: item.id,
125
+ ruleId: item.ruleId,
126
+ priority: item.priority,
127
+ status: item.status,
128
+ extStrField01: item?.extStrField01,
129
+ name: item?.name,
130
+ };
131
+ if (item?.expression) {
132
+ return {
133
+ ruleName: item.ruleName || `规则${index + 1}`,
134
+ subExpression: item.expression,
135
+ ...restObject,
136
+ };
137
+ } else {
138
+ return {
139
+ ruleName: `规则${index + 1}`,
140
+ subExpression: {
141
+ expressionType: 'relation',
142
+ operationType: 'relation',
143
+ propertyPath: '',
144
+ params: [],
145
+ paramNames: [],
146
+ },
147
+ ...restObject,
148
+ };
149
+ }
150
+ });
151
+ return result;
152
+ };
153
+
154
+ const isNoEmpty = (data: any) =>
155
+ (Array.isArray(data) && data.length > 0) ||
156
+ !(data == null || data == undefined || String(data).trim() == '');
157
+
158
+ // 校验执行动作必填数据
159
+ export const handleRuleRequireCheck = (saveData: any, ruleActionData: any) => {
160
+ let checkResult = false; // 默认通过校验
161
+ const checkInfo: any = []; // 没有选必填执行动作(暂不考虑);执行动作下的对象未选
162
+ if (Array.isArray(ruleActionData) && ruleActionData?.length && Array.isArray(saveData) && saveData.length) {
163
+ let requireList: any = [];
164
+ ruleActionData.forEach((s: any) => {
165
+ s.valueList.forEach((n: any) => {
166
+ if (n.required) {
167
+ if (requireList.some((m: any) => m.functionCode === s.code)) {
168
+ requireList = requireList.map((k: any) => {
169
+ if (k.functionCode === s.code) {
170
+ k.propertiesCode = [...k.propertiesCode, ...n.code];
171
+ }
172
+ return k;
173
+ });
174
+ } else {
175
+ requireList.push({
176
+ functionCode: s.code,
177
+ functionName: s.functionName,
178
+ propertiesCode: [n.code],
179
+ });
180
+ }
181
+ }
182
+ });
183
+ });
184
+
185
+ requireList?.length &&
186
+ saveData.forEach((s: any, index: number) => {
187
+ s.result.execute.length &&
188
+ s.result.execute.forEach((e: any) => {
189
+ if (requireList.some((r: any) => r.functionCode === e.code)) {
190
+ const currentRequireList = requireList.find(
191
+ (r: any) => r.functionCode === e.code,
192
+ );
193
+ const currentPropertiesCode = currentRequireList.propertiesCode;
194
+ const isComplete = currentPropertiesCode.every((c: any) =>
195
+ Object.keys(e.properties).some(
196
+ (p: any) => p === c && isNoEmpty(e.properties[p]),
197
+ ),
198
+ );
199
+ if (!isComplete) {
200
+ checkResult = true;
201
+ checkInfo.push(
202
+ `规则${index + 1}: 执行动作【${
203
+ currentRequireList.functionName
204
+ }】信息填写不完整`,
205
+ );
206
+ }
207
+ }
208
+ });
209
+ });
210
+ }
211
+ return { checkResult, checkInfo };
212
+ };
213
+
214
+ function isObj(object: any) {
215
+ return (
216
+ object &&
217
+ typeof object == 'object' &&
218
+ Object.prototype.toString.call(object).toLowerCase() == '[object object]'
219
+ );
220
+ }
221
+
222
+ // 保存规则处理数据
223
+ export const handleRuleResultList = (data: any, ruleTypeData: any) => {
224
+ let result = data || [];
225
+ if (Array.isArray(result) && result?.length) {
226
+ result = result.map((i: any) => {
227
+ return {
228
+ expression: i?.subExpression, // 左侧规则
229
+ result: {
230
+ ...i?.extraInfo,
231
+ ...(i?.extraInfo.execute
232
+ ? {
233
+ execute: i?.extraInfo.execute
234
+ .filter((s: any) => s.isSelected)
235
+ ?.map((s: any) => {
236
+ const saveP = s.properties;
237
+ // 处理在执行动作配置中设置了默认值的
238
+ const ruleValueList = ruleTypeData.find(
239
+ (r: any) => r.code === s.code,
240
+ )?.valueList;
241
+ if (ruleValueList?.length) {
242
+ ruleValueList.forEach((r: any) => {
243
+ if (
244
+ r.defaultValue &&
245
+ r?.inputType === 10 &&
246
+ r?.valueType === 21 &&
247
+ saveP[r.code] === undefined
248
+ ) {
249
+ saveP[r.code] = ' ';
250
+ } else if (r.defaultValue && !saveP[r.code]) {
251
+ saveP[r.code] = r.defaultValue;
252
+ }
253
+ });
254
+ }
255
+
256
+ delete saveP.configPropertyCode;
257
+ // 前端所需回显数据
258
+ s.frontendProperties = { ...s.properties };
259
+ // 格式化后端需要的数据
260
+ Object.keys(s.properties).forEach((p: any) => {
261
+ const v = s.properties[p];
262
+ if (Array.isArray(v)) {
263
+ s.properties = {
264
+ ...s.properties,
265
+ [p]: v.map((m: any) => m.value || m).join(','),
266
+ };
267
+ }
268
+ if (isObj(v)) {
269
+ s.properties = {
270
+ ...s.properties,
271
+ [p]: v.value || v.PCDCode?.join('/'),
272
+ };
273
+ }
274
+ });
275
+ return s;
276
+ }),
277
+ }
278
+ : {}),
279
+ }, // 右侧信息
280
+ ruleName: i.ruleName,
281
+ ruleId: i.ruleId,
282
+ id: i.id,
283
+ priority: i.priority,
284
+ status: i.status,
285
+ extStrField01: i?.extStrField01,
286
+ name: i?.name,
287
+ };
288
+ });
289
+ }
290
+ return result;
291
+ };
292
+
293
+ export const getInitClassData = (ruleTypeData: any) => {
294
+ const initClassData = [
295
+ {
296
+ ruleName: `规则1`,
297
+ subExpression: {
298
+ // "expressionType": "relation",
299
+ operationType: 'relation',
300
+ propertyPath: '',
301
+ params: [],
302
+ paramNames: [],
303
+ },
304
+ extraInfo: {
305
+ response: {
306
+ enable: false,
307
+ value: '',
308
+ },
309
+ execute: ruleTypeData?.map((s: any) => {
310
+ return {
311
+ priority: 1,
312
+ code: s.code,
313
+ properties: {
314
+ configPropertyCode: 'configPropertyValue',
315
+ },
316
+ };
317
+ }),
318
+ },
319
+ },
320
+ ];
321
+ return initClassData;
322
+ };
323
+
324
+ export const formatGroupOtherPriorityList = (data: any, templateId: string) => {
325
+ const result = data.filter((i: any) => i.templateId !== templateId);
326
+ return result;
327
+ };
328
+ export const formatOtherPriorityList = (
329
+ data: any,
330
+ templateId: string,
331
+ extStr: string,
332
+ ) => {
333
+ return data.filter(
334
+ (i: any) => i.templateId != templateId || i.extStrField01 != extStr,
335
+ );
336
+ };