@bit-sun/business-component 3.1.5 → 3.1.6

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 (218) 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/.yarnclean +45 -0
  8. package/README.md +27 -27
  9. package/dist/index.esm.js +2 -2
  10. package/dist/index.js +2 -2
  11. package/docs/index.md +21 -21
  12. package/lib/assets/drag.svg +17 -17
  13. package/lib/assets/exportFail.svg +37 -37
  14. package/lib/assets/exportProcessing.svg +28 -28
  15. package/lib/assets/exportSuccess.svg +34 -34
  16. package/lib/assets/label_icon_bottom.svg +25 -25
  17. package/lib/assets/upExport.svg +22 -22
  18. package/package.json +88 -88
  19. package/src/assets/32.svg +27 -27
  20. package/src/assets/addIcon.svg +17 -17
  21. package/src/assets/allfunc.svg +27 -27
  22. package/src/assets/arrowRight.svg +24 -24
  23. package/src/assets/arrow_top.svg +17 -17
  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 +398 -398
  48. package/src/components/Business/AddSelectBusiness/index.tsx +1116 -1116
  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/ChooseStore/index.tsx +193 -193
  53. package/src/components/Business/BsLayouts/Components/ChooseStore/services.ts +10 -10
  54. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -90
  55. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +37 -37
  56. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +242 -242
  57. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +384 -384
  58. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +285 -285
  59. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +74 -74
  60. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +170 -170
  61. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +64 -64
  62. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +153 -153
  63. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +72 -72
  64. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +163 -163
  65. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -85
  66. package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -218
  67. package/src/components/Business/BsLayouts/Components/RightContent/i18n.ts +8 -8
  68. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +172 -172
  69. package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +160 -160
  70. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +75 -75
  71. package/src/components/Business/BsLayouts/index.less +79 -79
  72. package/src/components/Business/BsLayouts/index.tsx +1606 -1606
  73. package/src/components/Business/BsLayouts/service.ts +10 -10
  74. package/src/components/Business/BsLayouts/utils.tsx +205 -205
  75. package/src/components/Business/BsSulaQueryTable/SearchItemSetting.tsx +566 -566
  76. package/src/components/Business/BsSulaQueryTable/bssulaquerytable.less +5 -5
  77. package/src/components/Business/BsSulaQueryTable/index.less +227 -227
  78. package/src/components/Business/BsSulaQueryTable/index.tsx +772 -772
  79. package/src/components/Business/BsSulaQueryTable/setting.tsx +888 -888
  80. package/src/components/Business/BsSulaQueryTable/utils.less +65 -65
  81. package/src/components/Business/BsSulaQueryTable/utils.tsx +709 -709
  82. package/src/components/Business/CommodityEntry/index.md +84 -84
  83. package/src/components/Business/CommodityEntry/index.tsx +82 -82
  84. package/src/components/Business/CommonAlert/index.tsx +23 -23
  85. package/src/components/Business/CommonGuideWrapper/index.less +121 -121
  86. package/src/components/Business/CommonGuideWrapper/index.md +39 -39
  87. package/src/components/Business/CommonGuideWrapper/index.tsx +94 -94
  88. package/src/components/Business/DetailPageWrapper/index.less +87 -87
  89. package/src/components/Business/DetailPageWrapper/index.tsx +327 -327
  90. package/src/components/Business/DetailPageWrapper/utils.tsx +166 -166
  91. package/src/components/Business/HomePageWrapper/index.less +33 -33
  92. package/src/components/Business/HomePageWrapper/index.md +45 -45
  93. package/src/components/Business/HomePageWrapper/index.tsx +162 -162
  94. package/src/components/Business/JsonQueryTable/components/FieldsModifyModal.tsx +823 -823
  95. package/src/components/Business/JsonQueryTable/components/FieldsSettingsTable.tsx +205 -205
  96. package/src/components/Business/JsonQueryTable/components/Formula.tsx +205 -205
  97. package/src/components/Business/JsonQueryTable/components/MaintainOptions.tsx +127 -127
  98. package/src/components/Business/JsonQueryTable/configButton/index.js +20 -20
  99. package/src/components/Business/JsonQueryTable/configTree/component/compactArrayView.js +25 -25
  100. package/src/components/Business/JsonQueryTable/configTree/component/compactObjectView.js +30 -30
  101. package/src/components/Business/JsonQueryTable/configTree/index.js +82 -82
  102. package/src/components/Business/JsonQueryTable/configTree/index.less +44 -44
  103. package/src/components/Business/JsonQueryTable/configTree/parser/highlight.js +57 -57
  104. package/src/components/Business/JsonQueryTable/configTree/parser/index.js +124 -124
  105. package/src/components/Business/JsonQueryTable/configTree/render/iconRender.js +29 -29
  106. package/src/components/Business/JsonQueryTable/configTree/render/nameRender.js +22 -22
  107. package/src/components/Business/JsonQueryTable/configTree/treeNode.js +116 -116
  108. package/src/components/Business/JsonQueryTable/drawer/index.tsx +12 -12
  109. package/src/components/Business/JsonQueryTable/function.ts +62 -62
  110. package/src/components/Business/JsonQueryTable/index.less +16 -16
  111. package/src/components/Business/JsonQueryTable/index.md +328 -328
  112. package/src/components/Business/JsonQueryTable/index.tsx +534 -534
  113. package/src/components/Business/JsonQueryTable/jsonEditor/index.js +346 -346
  114. package/src/components/Business/JsonQueryTable/jsonEditor/index.less +22 -22
  115. package/src/components/Business/JsonQueryTable/jsonEditor/lint/basicType.js +147 -147
  116. package/src/components/Business/JsonQueryTable/jsonEditor/lint/index.js +389 -389
  117. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/actions.js +118 -118
  118. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/dependency.js +22 -22
  119. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/index.js +21 -21
  120. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/request.js +65 -65
  121. package/src/components/Business/JsonQueryTable/static.ts +450 -450
  122. package/src/components/Business/SearchSelect/BusinessUtils.tsx +2162 -2162
  123. package/src/components/Business/SearchSelect/common.ts +134 -134
  124. package/src/components/Business/SearchSelect/index.md +1512 -1512
  125. package/src/components/Business/SearchSelect/index.tsx +55 -55
  126. package/src/components/Business/SearchSelect/utils.ts +125 -125
  127. package/src/components/Business/StateFlow/index.less +130 -130
  128. package/src/components/Business/StateFlow/index.md +60 -60
  129. package/src/components/Business/StateFlow/index.tsx +29 -29
  130. package/src/components/Business/TreeSearchSelect/index.md +211 -211
  131. package/src/components/Business/TreeSearchSelect/index.tsx +33 -33
  132. package/src/components/Business/TreeSearchSelect/utils.ts +104 -104
  133. package/src/components/Business/columnSettingTable/columnSetting.tsx +816 -816
  134. package/src/components/Business/columnSettingTable/index.less +253 -253
  135. package/src/components/Business/columnSettingTable/index.md +357 -357
  136. package/src/components/Business/columnSettingTable/index.tsx +226 -226
  137. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +233 -233
  138. package/src/components/Business/columnSettingTable/utils.tsx +87 -87
  139. package/src/components/Business/moreTreeTable/FixedScrollBar.tsx +87 -87
  140. package/src/components/Business/moreTreeTable/hooks/useSticky.ts +21 -21
  141. package/src/components/Business/moreTreeTable/index.less +99 -99
  142. package/src/components/Business/moreTreeTable/index.md +448 -448
  143. package/src/components/Business/moreTreeTable/index.tsx +387 -387
  144. package/src/components/Business/moreTreeTable/utils.ts +126 -126
  145. package/src/components/Functional/AccessWrapper/index.tsx +33 -33
  146. package/src/components/Functional/AddSelect/helps.ts +81 -81
  147. package/src/components/Functional/AddSelect/index.less +367 -367
  148. package/src/components/Functional/AddSelect/index.md +155 -155
  149. package/src/components/Functional/AddSelect/index.tsx +1065 -1065
  150. package/src/components/Functional/AuthButton/index.tsx +15 -15
  151. package/src/components/Functional/BillEntry/index.less +371 -371
  152. package/src/components/Functional/BillEntry/index.md +39 -39
  153. package/src/components/Functional/BillEntry/index.tsx +772 -772
  154. package/src/components/Functional/BsAntdSula/BsCascader/index.md +62 -62
  155. package/src/components/Functional/BsAntdSula/BsCascader/index.tsx +178 -178
  156. package/src/components/Functional/BsAntdSula/index.ts +2 -2
  157. package/src/components/Functional/DataImport/index.less +63 -63
  158. package/src/components/Functional/DataImport/index.md +44 -44
  159. package/src/components/Functional/DataImport/index.tsx +783 -783
  160. package/src/components/Functional/DataValidation/index.less +63 -63
  161. package/src/components/Functional/DataValidation/index.md +52 -52
  162. package/src/components/Functional/DataValidation/index.tsx +788 -787
  163. package/src/components/Functional/EllipsisTooltip/index.d.ts +5 -5
  164. package/src/components/Functional/EllipsisTooltip/index.js +36 -36
  165. package/src/components/Functional/EllipsisTooltip/index.md +30 -30
  166. package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -37
  167. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +65 -65
  168. package/src/components/Functional/QueryMutipleInput/index.less +37 -37
  169. package/src/components/Functional/QueryMutipleInput/index.md +33 -33
  170. package/src/components/Functional/QueryMutipleInput/index.tsx +129 -129
  171. package/src/components/Functional/SearchSelect/index.less +121 -121
  172. package/src/components/Functional/SearchSelect/index.md +141 -141
  173. package/src/components/Functional/SearchSelect/index.tsx +1034 -1034
  174. package/src/components/Functional/SearchSelect/utils.ts +3 -3
  175. package/src/components/Functional/TreeSearchSelect/index.md +47 -47
  176. package/src/components/Functional/TreeSearchSelect/index.tsx +224 -224
  177. package/src/components/Solution/RuleComponent/Formula.tsx +335 -335
  178. package/src/components/Solution/RuleComponent/InnerSelect.tsx +62 -62
  179. package/src/components/Solution/RuleComponent/RenderCompItem.tsx +670 -670
  180. package/src/components/Solution/RuleComponent/index.d.ts +29 -29
  181. package/src/components/Solution/RuleComponent/index.js +1601 -1601
  182. package/src/components/Solution/RuleComponent/index.less +247 -247
  183. package/src/components/Solution/RuleComponent/renderSpecificAction.js +99 -99
  184. package/src/components/Solution/RuleComponent/ruleFiled.js +2293 -2293
  185. package/src/components/Solution/RuleComponent/services.ts +13 -13
  186. package/src/components/Solution/RuleComponent/util.js +143 -143
  187. package/src/components/Solution/RuleSetter/RuleInstance.tsx +6 -6
  188. package/src/components/Solution/RuleSetter/baseRule.tsx +394 -394
  189. package/src/components/Solution/RuleSetter/function.ts +437 -437
  190. package/src/components/Solution/RuleSetter/index.less +221 -221
  191. package/src/components/Solution/RuleSetter/index.tsx +208 -208
  192. package/src/components/Solution/RuleSetter/service.js +276 -276
  193. package/src/index.ts +41 -41
  194. package/src/plugin/TableColumnSetting/index.less +247 -247
  195. package/src/plugin/TableColumnSetting/index.md +50 -50
  196. package/src/plugin/TableColumnSetting/index.tsx +725 -725
  197. package/src/plugin/TableColumnSetting/utils.ts +19 -19
  198. package/src/styles/bsDefault.less +1933 -1933
  199. package/src/utils/CheckOneUser/index.md +39 -39
  200. package/src/utils/CheckOneUser/index.ts +51 -51
  201. package/src/utils/CustomLoginInfo.ts +55 -55
  202. package/src/utils/LocalstorageUtils.ts +134 -134
  203. package/src/utils/TableUtils.less +51 -51
  204. package/src/utils/TableUtils.tsx +691 -691
  205. package/src/utils/auth.ts +38 -38
  206. package/src/utils/businessUtils.ts +434 -434
  207. package/src/utils/checkUtils.ts +39 -39
  208. package/src/utils/constant.ts +38 -38
  209. package/src/utils/enumConfig.ts +17 -17
  210. package/src/utils/getFormMode.js +12 -12
  211. package/src/utils/index.ts +19 -19
  212. package/src/utils/request.ts +53 -53
  213. package/src/utils/requestUtils.ts +193 -193
  214. package/src/utils/serialize.js +7 -7
  215. package/src/utils/utils.ts +238 -238
  216. package/src/utils/xlsxUtil.tsx +145 -145
  217. package/tsconfig.json +29 -29
  218. package/typings.d.ts +4 -4
@@ -1,437 +1,437 @@
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, ruleReturnList: any) => {
91
- const result = data?.map((item: any, index: number) => {
92
- console.log('data', item);
93
- let newResponse: any = [];
94
-
95
- //新数据都用responseArray形式
96
- if (Array.isArray(item?.result?.responseArray)) {
97
- newResponse = ruleReturnList.map((s: any, index: number) => {
98
- let defaultValue = s.defaultValue;
99
- const Item = item?.result?.responseArray.find(
100
- (u: any) => u.code === s.code,
101
- );
102
- const itemValue = Item?.value
103
- const isStringValue = typeof itemValue == 'string' && itemValue?.includes(',');
104
- if (Item) {
105
- return {
106
- ...Item,
107
- value: (isStringValue ? itemValue?.split(',') : itemValue) || defaultValue || '',
108
- formulaName: Item?.formulaName,
109
- enable: Item?.enable !== false
110
- };
111
- }
112
- return {
113
- code: s?.code,
114
- inputType: s?.inputType,
115
- value: defaultValue || '',
116
- formulaName: '',
117
- enable: false
118
- };
119
- });
120
- //兼容回显之前老数据
121
- } else if (Object.prototype.toString.call(item?.result?.response) === '[object Object]') {
122
- newResponse = ruleReturnList.map((s: any) => {
123
- let defaultValue = s.defaultValue;
124
- const itemValue = item?.result?.response?.value
125
- const isStringValue = typeof itemValue == 'string' && itemValue?.includes(',');
126
- return {
127
- code: s?.code,
128
- inputType: s?.inputType,
129
- value: (isStringValue ? itemValue?.split(',') : itemValue) || defaultValue || '',
130
- formulaName: item?.result?.response?.formulaName,
131
- enable: Object.keys(item?.result?.response)?.length ? (item?.result?.response?.enable !== false) : false
132
- };
133
- });
134
- }
135
- const handleResult = {
136
- response: newResponse,
137
- execute:
138
- (functionRuleList?.length &&
139
- functionRuleList.map((s: any, index: number) => {
140
- const Item = (item?.result?.execute || []).find(
141
- (u: any) => u.code === s.code,
142
- );
143
- if (Item) {
144
- return {
145
- ...Item,
146
- properties: Item?.frontendProperties || Item?.properties,
147
- isSelected: true,
148
- };
149
- }
150
- return {
151
- priority: index + 1,
152
- code: s.code,
153
- properties: {
154
- configPropertyCode: 'configPropertyValue',
155
- },
156
- };
157
- })) ||
158
- [],
159
- };
160
- const restObject = {
161
- extraInfo: handleResult,
162
- id: item.id,
163
- ruleId: item.ruleId,
164
- priority: item.priority,
165
- status: item.status,
166
- extStrField01: item?.extStrField01,
167
- name: item?.name,
168
- };
169
- if (item?.expression) {
170
- return {
171
- ruleName: item.ruleName || `规则${index + 1}`,
172
- subExpression: item.expression,
173
- ...restObject,
174
- };
175
- } else {
176
- return {
177
- ruleName: `规则${index + 1}`,
178
- subExpression: {
179
- expressionType: 'relation',
180
- operationType: 'relation',
181
- propertyPath: '',
182
- params: [],
183
- paramNames: [],
184
- },
185
- ...restObject,
186
- };
187
- }
188
- });
189
- return result;
190
- };
191
-
192
- const isNoEmpty = (data: any) =>
193
- (Array.isArray(data) && data.length > 0) ||
194
- !(data == null || data == undefined || String(data).trim() == '');
195
-
196
- // 校验必填数据
197
- export const handleRuleRequireCheck = (saveData: any, ruleActionData: any, ruleReturnConfig: any) => {
198
- let checkResult = false; // 默认通过校验
199
- let checkInfo: any = []; // 没有选必填执行动作(暂不考虑);执行动作下的对象未选
200
-
201
- // 校验返回值必填数据(兼容新/老数据: 配置对象为新数据/旧数据、规则返回值配置为老/新数据。组合一共是四种情况)
202
- if((ruleReturnConfig?.required || (Array.isArray(ruleReturnConfig) && ruleReturnConfig?.length)) && saveData.length) {
203
- const checkKey = 'code'
204
-
205
- saveData.forEach((s: any, index: number) => {
206
-
207
- let isComplete = true; // 默认通过校验
208
- let returnTipsName = ``// 返回值提示关键信息
209
- const resultResponse = s.result?.responseArray || s.result.response;
210
- const isNewResponse = Array.isArray(resultResponse)
211
-
212
- if(ruleReturnConfig?.required) {
213
- if(!isNewResponse) {
214
- isComplete = isNoEmpty(resultResponse.value || resultResponse.formulaName);
215
- } else {
216
- const valueList = resultResponse.filter((c: any) => (c[checkKey] == ruleReturnConfig[checkKey]) && isNoEmpty(c.value || c.formulaName)) || [];
217
- isComplete = valueList?.length > 0;
218
- }
219
- returnTipsName = `${ruleReturnConfig.leftText || ruleReturnConfig.name}`
220
- }
221
-
222
- if((Array.isArray(ruleReturnConfig) && ruleReturnConfig?.length)) {
223
- const requiredKeyList = ruleReturnConfig.filter((c: any) => c.required).map(v => v[checkKey]);
224
- if(requiredKeyList.length) {
225
- if(!isNewResponse) {
226
- if(resultResponse[checkKey] && requiredKeyList.includes(resultResponse[checkKey])) {
227
- isComplete = isNoEmpty(resultResponse.value || resultResponse.formulaName);
228
- const ruleReturnRequiredItemConfig = ruleReturnConfig.find((r: any) => r[checkKey] == resultResponse[checkKey])
229
- returnTipsName = `${ruleReturnRequiredItemConfig.leftText || ruleReturnRequiredItemConfig.name}`
230
- }
231
- } else {
232
- const needCheckList = resultResponse.filter((c: any) =>(requiredKeyList.includes(c[checkKey])))||[];
233
- if(needCheckList?.length) {
234
- const valueList = needCheckList.filter((c: any) => isNoEmpty(c.value || c.formulaName)) || [];
235
- isComplete = valueList?.length > 0;
236
- const emptyValueList = needCheckList.filter((c: any) => !isNoEmpty(c.value || c.formulaName)) || [];
237
- returnTipsName = ruleReturnConfig.filter((r: any) => emptyValueList.map((v: any) => v[checkKey]).includes(r[checkKey])).map((v: any) => v.leftText || v.name).join(',')
238
- }
239
- }
240
- }
241
- }
242
-
243
- if (!isComplete) {
244
- checkResult = true;
245
- checkInfo.push(`规则${index + 1}: 返回值【${returnTipsName}】信息填写不完整`);
246
- }
247
- })
248
- }
249
-
250
- // 校验执行动作必填数据
251
- if (ruleActionData?.length && saveData.length) {
252
- let requireList: any = [];
253
- ruleActionData.forEach((s: any) => {
254
- s.valueList.forEach((n: any) => {
255
- if (n.required) {
256
- if (requireList.some((m: any) => m.functionCode === s.code)) {
257
- requireList = requireList.map((k: any) => {
258
- if (k.functionCode === s.code) {
259
- k.propertiesCode = [...k.propertiesCode, ...n.code];
260
- }
261
- return k;
262
- });
263
- } else {
264
- requireList.push({
265
- functionCode: s.code,
266
- functionName: s.functionName,
267
- propertiesCode: [n.code],
268
- });
269
- }
270
- }
271
- });
272
- });
273
-
274
- requireList?.length &&
275
- saveData.forEach((s: any, index: number) => {
276
- s.result.execute.length &&
277
- s.result.execute.forEach((e: any) => {
278
- if (requireList.some((r: any) => r.functionCode === e.code)) {
279
- const currentRequireList = requireList.find(
280
- (r: any) => r.functionCode === e.code,
281
- );
282
- const currentPropertiesCode = currentRequireList.propertiesCode;
283
- const isComplete = currentPropertiesCode.every((c: any) =>
284
- Object.keys(e.properties).some(
285
- (p: any) => p === c && isNoEmpty(e.properties[p]),
286
- ),
287
- );
288
- if (!isComplete) {
289
- checkResult = true;
290
- checkInfo.push(
291
- `规则${index + 1}: 执行动作【${
292
- currentRequireList.functionName
293
- }】信息填写不完整`,
294
- );
295
- }
296
- }
297
- });
298
- });
299
- }
300
- return { checkResult, checkInfo };
301
- };
302
-
303
- function isObj(object: any) {
304
- return (
305
- object &&
306
- typeof object == 'object' &&
307
- Object.prototype.toString.call(object).toLowerCase() == '[object object]'
308
- );
309
- }
310
-
311
- // 保存规则处理数据
312
- export const handleRuleResultList = (data: any, ruleTypeData: any) => {
313
- let result = data || [];
314
- if (Array.isArray(result) && result?.length) {
315
- result = result.map((i: any) => {
316
- return {
317
- expression: i?.subExpression, // 左侧规则
318
- result: {
319
- ...i?.extraInfo,
320
- ...(i?.extraInfo.execute
321
- ? {
322
- execute: i?.extraInfo.execute
323
- .filter((s: any) => s.isSelected)
324
- ?.map((s: any) => {
325
- const saveP = s.properties;
326
- // 处理在执行动作配置中设置了默认值的
327
- const ruleValueList = ruleTypeData.find(
328
- (r: any) => r.code === s.code,
329
- )?.valueList;
330
- if (ruleValueList?.length) {
331
- ruleValueList.forEach((r: any) => {
332
- if (
333
- r.defaultValue &&
334
- r?.inputType === 10 &&
335
- r?.valueType === 21 &&
336
- saveP[r.code] === undefined
337
- ) {
338
- saveP[r.code] = ' ';
339
- } else if (r.defaultValue && !saveP[r.code]) {
340
- saveP[r.code] = r.defaultValue;
341
- }
342
- });
343
- }
344
-
345
- delete saveP.configPropertyCode;
346
- // 前端所需回显数据
347
- s.frontendProperties = { ...s.properties };
348
- // 格式化后端需要的数据
349
- Object.keys(s.properties).forEach((p: any) => {
350
- const v = s.properties[p];
351
- if (Array.isArray(v)) {
352
- s.properties = {
353
- ...s.properties,
354
- [p]: v.map((m: any) => m.value || m).join(','),
355
- };
356
- }
357
- if (isObj(v)) {
358
- s.properties = {
359
- ...s.properties,
360
- [p]: v.value || v.PCDCode?.join('/'),
361
- };
362
- }
363
- });
364
- return s;
365
- }),
366
- }
367
- : {}),
368
- responseArray: i?.extraInfo.response
369
- ? i?.extraInfo.response
370
- .filter((s: any) => s.enable)
371
- .map((m: any) => ({
372
- ...m,
373
- value: Array.isArray(m.value) ? m.value.join(',') : m.value,
374
- }))
375
- : [], // 使用新的返回值
376
- response: {}, // 保存清空旧数据
377
- }, // 右侧信息
378
- ruleName: i.ruleName,
379
- ruleId: i.ruleId,
380
- id: i.id,
381
- priority: i.priority,
382
- status: i.status,
383
- extStrField01: i?.extStrField01,
384
- name: i?.name,
385
- };
386
- });
387
- }
388
- return result;
389
- };
390
-
391
- export const getInitClassData = (ruleTypeData: any, ruleReturnConfig: any) => {
392
- const initClassData = [
393
- {
394
- ruleName: `规则1`,
395
- subExpression: {
396
- // "expressionType": "relation",
397
- operationType: 'relation',
398
- propertyPath: '',
399
- params: [],
400
- paramNames: [],
401
- },
402
- extraInfo: {
403
- response: ruleReturnConfig?.map((s: any) => {
404
- return {
405
- code: s?.code,
406
- value: s?.defaultValue || '',
407
- enable: false,
408
- };
409
- }),
410
- execute: ruleTypeData?.map((s: any) => {
411
- return {
412
- priority: 1,
413
- code: s.code,
414
- properties: {
415
- configPropertyCode: 'configPropertyValue',
416
- },
417
- };
418
- }),
419
- },
420
- },
421
- ];
422
- return initClassData;
423
- };
424
-
425
- export const formatGroupOtherPriorityList = (data: any, templateId: string) => {
426
- const result = data.filter((i: any) => i.templateId !== templateId);
427
- return result;
428
- };
429
- export const formatOtherPriorityList = (
430
- data: any,
431
- templateId: string,
432
- extStr: string,
433
- ) => {
434
- return data.filter(
435
- (i: any) => i.templateId != templateId || i.extStrField01 != extStr,
436
- );
437
- };
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, ruleReturnList: any) => {
91
+ const result = data?.map((item: any, index: number) => {
92
+ console.log('data', item);
93
+ let newResponse: any = [];
94
+
95
+ //新数据都用responseArray形式
96
+ if (Array.isArray(item?.result?.responseArray)) {
97
+ newResponse = ruleReturnList.map((s: any, index: number) => {
98
+ let defaultValue = s.defaultValue;
99
+ const Item = item?.result?.responseArray.find(
100
+ (u: any) => u.code === s.code,
101
+ );
102
+ const itemValue = Item?.value
103
+ const isStringValue = typeof itemValue == 'string' && itemValue?.includes(',');
104
+ if (Item) {
105
+ return {
106
+ ...Item,
107
+ value: (isStringValue ? itemValue?.split(',') : itemValue) || defaultValue || '',
108
+ formulaName: Item?.formulaName,
109
+ enable: Item?.enable !== false
110
+ };
111
+ }
112
+ return {
113
+ code: s?.code,
114
+ inputType: s?.inputType,
115
+ value: defaultValue || '',
116
+ formulaName: '',
117
+ enable: false
118
+ };
119
+ });
120
+ //兼容回显之前老数据
121
+ } else if (Object.prototype.toString.call(item?.result?.response) === '[object Object]') {
122
+ newResponse = ruleReturnList.map((s: any) => {
123
+ let defaultValue = s.defaultValue;
124
+ const itemValue = item?.result?.response?.value
125
+ const isStringValue = typeof itemValue == 'string' && itemValue?.includes(',');
126
+ return {
127
+ code: s?.code,
128
+ inputType: s?.inputType,
129
+ value: (isStringValue ? itemValue?.split(',') : itemValue) || defaultValue || '',
130
+ formulaName: item?.result?.response?.formulaName,
131
+ enable: Object.keys(item?.result?.response)?.length ? (item?.result?.response?.enable !== false) : false
132
+ };
133
+ });
134
+ }
135
+ const handleResult = {
136
+ response: newResponse,
137
+ execute:
138
+ (functionRuleList?.length &&
139
+ functionRuleList.map((s: any, index: number) => {
140
+ const Item = (item?.result?.execute || []).find(
141
+ (u: any) => u.code === s.code,
142
+ );
143
+ if (Item) {
144
+ return {
145
+ ...Item,
146
+ properties: Item?.frontendProperties || Item?.properties,
147
+ isSelected: true,
148
+ };
149
+ }
150
+ return {
151
+ priority: index + 1,
152
+ code: s.code,
153
+ properties: {
154
+ configPropertyCode: 'configPropertyValue',
155
+ },
156
+ };
157
+ })) ||
158
+ [],
159
+ };
160
+ const restObject = {
161
+ extraInfo: handleResult,
162
+ id: item.id,
163
+ ruleId: item.ruleId,
164
+ priority: item.priority,
165
+ status: item.status,
166
+ extStrField01: item?.extStrField01,
167
+ name: item?.name,
168
+ };
169
+ if (item?.expression) {
170
+ return {
171
+ ruleName: item.ruleName || `规则${index + 1}`,
172
+ subExpression: item.expression,
173
+ ...restObject,
174
+ };
175
+ } else {
176
+ return {
177
+ ruleName: `规则${index + 1}`,
178
+ subExpression: {
179
+ expressionType: 'relation',
180
+ operationType: 'relation',
181
+ propertyPath: '',
182
+ params: [],
183
+ paramNames: [],
184
+ },
185
+ ...restObject,
186
+ };
187
+ }
188
+ });
189
+ return result;
190
+ };
191
+
192
+ const isNoEmpty = (data: any) =>
193
+ (Array.isArray(data) && data.length > 0) ||
194
+ !(data == null || data == undefined || String(data).trim() == '');
195
+
196
+ // 校验必填数据
197
+ export const handleRuleRequireCheck = (saveData: any, ruleActionData: any, ruleReturnConfig: any) => {
198
+ let checkResult = false; // 默认通过校验
199
+ let checkInfo: any = []; // 没有选必填执行动作(暂不考虑);执行动作下的对象未选
200
+
201
+ // 校验返回值必填数据(兼容新/老数据: 配置对象为新数据/旧数据、规则返回值配置为老/新数据。组合一共是四种情况)
202
+ if((ruleReturnConfig?.required || (Array.isArray(ruleReturnConfig) && ruleReturnConfig?.length)) && saveData.length) {
203
+ const checkKey = 'code'
204
+
205
+ saveData.forEach((s: any, index: number) => {
206
+
207
+ let isComplete = true; // 默认通过校验
208
+ let returnTipsName = ``// 返回值提示关键信息
209
+ const resultResponse = s.result?.responseArray || s.result.response;
210
+ const isNewResponse = Array.isArray(resultResponse)
211
+
212
+ if(ruleReturnConfig?.required) {
213
+ if(!isNewResponse) {
214
+ isComplete = isNoEmpty(resultResponse.value || resultResponse.formulaName);
215
+ } else {
216
+ const valueList = resultResponse.filter((c: any) => (c[checkKey] == ruleReturnConfig[checkKey]) && isNoEmpty(c.value || c.formulaName)) || [];
217
+ isComplete = valueList?.length > 0;
218
+ }
219
+ returnTipsName = `${ruleReturnConfig.leftText || ruleReturnConfig.name}`
220
+ }
221
+
222
+ if((Array.isArray(ruleReturnConfig) && ruleReturnConfig?.length)) {
223
+ const requiredKeyList = ruleReturnConfig.filter((c: any) => c.required).map(v => v[checkKey]);
224
+ if(requiredKeyList.length) {
225
+ if(!isNewResponse) {
226
+ if(resultResponse[checkKey] && requiredKeyList.includes(resultResponse[checkKey])) {
227
+ isComplete = isNoEmpty(resultResponse.value || resultResponse.formulaName);
228
+ const ruleReturnRequiredItemConfig = ruleReturnConfig.find((r: any) => r[checkKey] == resultResponse[checkKey])
229
+ returnTipsName = `${ruleReturnRequiredItemConfig.leftText || ruleReturnRequiredItemConfig.name}`
230
+ }
231
+ } else {
232
+ const needCheckList = resultResponse.filter((c: any) =>(requiredKeyList.includes(c[checkKey])))||[];
233
+ if(needCheckList?.length) {
234
+ const valueList = needCheckList.filter((c: any) => isNoEmpty(c.value || c.formulaName)) || [];
235
+ isComplete = valueList?.length > 0;
236
+ const emptyValueList = needCheckList.filter((c: any) => !isNoEmpty(c.value || c.formulaName)) || [];
237
+ returnTipsName = ruleReturnConfig.filter((r: any) => emptyValueList.map((v: any) => v[checkKey]).includes(r[checkKey])).map((v: any) => v.leftText || v.name).join(',')
238
+ }
239
+ }
240
+ }
241
+ }
242
+
243
+ if (!isComplete) {
244
+ checkResult = true;
245
+ checkInfo.push(`规则${index + 1}: 返回值【${returnTipsName}】信息填写不完整`);
246
+ }
247
+ })
248
+ }
249
+
250
+ // 校验执行动作必填数据
251
+ if (ruleActionData?.length && saveData.length) {
252
+ let requireList: any = [];
253
+ ruleActionData.forEach((s: any) => {
254
+ s.valueList.forEach((n: any) => {
255
+ if (n.required) {
256
+ if (requireList.some((m: any) => m.functionCode === s.code)) {
257
+ requireList = requireList.map((k: any) => {
258
+ if (k.functionCode === s.code) {
259
+ k.propertiesCode = [...k.propertiesCode, ...n.code];
260
+ }
261
+ return k;
262
+ });
263
+ } else {
264
+ requireList.push({
265
+ functionCode: s.code,
266
+ functionName: s.functionName,
267
+ propertiesCode: [n.code],
268
+ });
269
+ }
270
+ }
271
+ });
272
+ });
273
+
274
+ requireList?.length &&
275
+ saveData.forEach((s: any, index: number) => {
276
+ s.result.execute.length &&
277
+ s.result.execute.forEach((e: any) => {
278
+ if (requireList.some((r: any) => r.functionCode === e.code)) {
279
+ const currentRequireList = requireList.find(
280
+ (r: any) => r.functionCode === e.code,
281
+ );
282
+ const currentPropertiesCode = currentRequireList.propertiesCode;
283
+ const isComplete = currentPropertiesCode.every((c: any) =>
284
+ Object.keys(e.properties).some(
285
+ (p: any) => p === c && isNoEmpty(e.properties[p]),
286
+ ),
287
+ );
288
+ if (!isComplete) {
289
+ checkResult = true;
290
+ checkInfo.push(
291
+ `规则${index + 1}: 执行动作【${
292
+ currentRequireList.functionName
293
+ }】信息填写不完整`,
294
+ );
295
+ }
296
+ }
297
+ });
298
+ });
299
+ }
300
+ return { checkResult, checkInfo };
301
+ };
302
+
303
+ function isObj(object: any) {
304
+ return (
305
+ object &&
306
+ typeof object == 'object' &&
307
+ Object.prototype.toString.call(object).toLowerCase() == '[object object]'
308
+ );
309
+ }
310
+
311
+ // 保存规则处理数据
312
+ export const handleRuleResultList = (data: any, ruleTypeData: any) => {
313
+ let result = data || [];
314
+ if (Array.isArray(result) && result?.length) {
315
+ result = result.map((i: any) => {
316
+ return {
317
+ expression: i?.subExpression, // 左侧规则
318
+ result: {
319
+ ...i?.extraInfo,
320
+ ...(i?.extraInfo.execute
321
+ ? {
322
+ execute: i?.extraInfo.execute
323
+ .filter((s: any) => s.isSelected)
324
+ ?.map((s: any) => {
325
+ const saveP = s.properties;
326
+ // 处理在执行动作配置中设置了默认值的
327
+ const ruleValueList = ruleTypeData.find(
328
+ (r: any) => r.code === s.code,
329
+ )?.valueList;
330
+ if (ruleValueList?.length) {
331
+ ruleValueList.forEach((r: any) => {
332
+ if (
333
+ r.defaultValue &&
334
+ r?.inputType === 10 &&
335
+ r?.valueType === 21 &&
336
+ saveP[r.code] === undefined
337
+ ) {
338
+ saveP[r.code] = ' ';
339
+ } else if (r.defaultValue && !saveP[r.code]) {
340
+ saveP[r.code] = r.defaultValue;
341
+ }
342
+ });
343
+ }
344
+
345
+ delete saveP.configPropertyCode;
346
+ // 前端所需回显数据
347
+ s.frontendProperties = { ...s.properties };
348
+ // 格式化后端需要的数据
349
+ Object.keys(s.properties).forEach((p: any) => {
350
+ const v = s.properties[p];
351
+ if (Array.isArray(v)) {
352
+ s.properties = {
353
+ ...s.properties,
354
+ [p]: v.map((m: any) => m.value || m).join(','),
355
+ };
356
+ }
357
+ if (isObj(v)) {
358
+ s.properties = {
359
+ ...s.properties,
360
+ [p]: v.value || v.PCDCode?.join('/'),
361
+ };
362
+ }
363
+ });
364
+ return s;
365
+ }),
366
+ }
367
+ : {}),
368
+ responseArray: i?.extraInfo.response
369
+ ? i?.extraInfo.response
370
+ .filter((s: any) => s.enable)
371
+ .map((m: any) => ({
372
+ ...m,
373
+ value: Array.isArray(m.value) ? m.value.join(',') : m.value,
374
+ }))
375
+ : [], // 使用新的返回值
376
+ response: {}, // 保存清空旧数据
377
+ }, // 右侧信息
378
+ ruleName: i.ruleName,
379
+ ruleId: i.ruleId,
380
+ id: i.id,
381
+ priority: i.priority,
382
+ status: i.status,
383
+ extStrField01: i?.extStrField01,
384
+ name: i?.name,
385
+ };
386
+ });
387
+ }
388
+ return result;
389
+ };
390
+
391
+ export const getInitClassData = (ruleTypeData: any, ruleReturnConfig: any) => {
392
+ const initClassData = [
393
+ {
394
+ ruleName: `规则1`,
395
+ subExpression: {
396
+ // "expressionType": "relation",
397
+ operationType: 'relation',
398
+ propertyPath: '',
399
+ params: [],
400
+ paramNames: [],
401
+ },
402
+ extraInfo: {
403
+ response: ruleReturnConfig?.map((s: any) => {
404
+ return {
405
+ code: s?.code,
406
+ value: s?.defaultValue || '',
407
+ enable: false,
408
+ };
409
+ }),
410
+ execute: ruleTypeData?.map((s: any) => {
411
+ return {
412
+ priority: 1,
413
+ code: s.code,
414
+ properties: {
415
+ configPropertyCode: 'configPropertyValue',
416
+ },
417
+ };
418
+ }),
419
+ },
420
+ },
421
+ ];
422
+ return initClassData;
423
+ };
424
+
425
+ export const formatGroupOtherPriorityList = (data: any, templateId: string) => {
426
+ const result = data.filter((i: any) => i.templateId !== templateId);
427
+ return result;
428
+ };
429
+ export const formatOtherPriorityList = (
430
+ data: any,
431
+ templateId: string,
432
+ extStr: string,
433
+ ) => {
434
+ return data.filter(
435
+ (i: any) => i.templateId != templateId || i.extStrField01 != extStr,
436
+ );
437
+ };