@bit-sun/business-component 3.1.4 → 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 (225) 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/components/Business/DetailPageWrapper/utils.d.ts +3 -1
  10. package/dist/components/Functional/DataImport/index.d.ts +2 -0
  11. package/dist/components/Functional/DataValidation/index.d.ts +2 -0
  12. package/dist/index.esm.js +403 -43
  13. package/dist/index.js +405 -41
  14. package/dist/utils/LocalstorageUtils.d.ts +1 -0
  15. package/dist/utils/enumConfig.d.ts +1 -0
  16. package/dist/utils/index.d.ts +2 -0
  17. package/dist/utils/xlsxUtil.d.ts +6 -0
  18. package/docs/index.md +21 -21
  19. package/lib/assets/drag.svg +17 -17
  20. package/lib/assets/exportFail.svg +37 -37
  21. package/lib/assets/exportProcessing.svg +28 -28
  22. package/lib/assets/exportSuccess.svg +34 -34
  23. package/lib/assets/label_icon_bottom.svg +25 -25
  24. package/lib/assets/upExport.svg +22 -22
  25. package/package.json +88 -87
  26. package/src/assets/32.svg +27 -27
  27. package/src/assets/addIcon.svg +17 -17
  28. package/src/assets/allfunc.svg +27 -27
  29. package/src/assets/arrowRight.svg +24 -24
  30. package/src/assets/arrow_top.svg +17 -17
  31. package/src/assets/btn-delete.svg +29 -29
  32. package/src/assets/btn-edit.svg +19 -19
  33. package/src/assets/btn-more.svg +17 -17
  34. package/src/assets/btn-submit.svg +19 -19
  35. package/src/assets/caidan.svg +11 -11
  36. package/src/assets/close.svg +26 -26
  37. package/src/assets/drag.svg +17 -17
  38. package/src/assets/exportFail.svg +37 -37
  39. package/src/assets/exportProcessing.svg +28 -28
  40. package/src/assets/exportSuccess.svg +34 -34
  41. package/src/assets/fixed-left-active.svg +11 -11
  42. package/src/assets/fixed-left.svg +15 -15
  43. package/src/assets/fixed-right-active.svg +11 -11
  44. package/src/assets/fixed-right.svg +15 -15
  45. package/src/assets/guanbi.svg +15 -15
  46. package/src/assets/icon-quanping.svg +15 -15
  47. package/src/assets/icon-shezhi.svg +17 -17
  48. package/src/assets/label_icon_bottom.svg +25 -25
  49. package/src/assets/list-no-img.svg +21 -21
  50. package/src/assets/morentouxiang-32.svg +23 -23
  51. package/src/assets/scanning.svg +24 -24
  52. package/src/assets/upExport.svg +22 -22
  53. package/src/common/ENUM.ts +41 -41
  54. package/src/components/Business/AddSelectBusiness/index.md +398 -398
  55. package/src/components/Business/AddSelectBusiness/index.tsx +1116 -1116
  56. package/src/components/Business/BsLayouts/Components/AllFunc/drawContent.tsx +112 -112
  57. package/src/components/Business/BsLayouts/Components/AllFunc/index.less +153 -153
  58. package/src/components/Business/BsLayouts/Components/AllFunc/index.tsx +70 -70
  59. package/src/components/Business/BsLayouts/Components/ChooseStore/index.tsx +193 -193
  60. package/src/components/Business/BsLayouts/Components/ChooseStore/services.ts +10 -10
  61. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.less +90 -90
  62. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/index.tsx +37 -37
  63. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/leftTree.tsx +242 -242
  64. package/src/components/Business/BsLayouts/Components/CustomerMenu/MenuSetting/rightTree.tsx +384 -384
  65. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/DrawContent.tsx +285 -285
  66. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/customMenuHeader.tsx +74 -74
  67. package/src/components/Business/BsLayouts/Components/CustomerMenu/globalMenu/drawContent.less +170 -170
  68. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.less +64 -64
  69. package/src/components/Business/BsLayouts/Components/CustomerMenu/index.tsx +153 -153
  70. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.less +72 -72
  71. package/src/components/Business/BsLayouts/Components/GlobalHeader/index.tsx +163 -163
  72. package/src/components/Business/BsLayouts/Components/RightContent/LoginModal.tsx +85 -85
  73. package/src/components/Business/BsLayouts/Components/RightContent/home.less +218 -218
  74. package/src/components/Business/BsLayouts/Components/RightContent/i18n.ts +8 -8
  75. package/src/components/Business/BsLayouts/Components/RightContent/index.tsx +172 -172
  76. package/src/components/Business/BsLayouts/Components/SearchFunc/index.less +160 -160
  77. package/src/components/Business/BsLayouts/Components/SearchFunc/index.tsx +75 -75
  78. package/src/components/Business/BsLayouts/index.less +79 -79
  79. package/src/components/Business/BsLayouts/index.tsx +1606 -1606
  80. package/src/components/Business/BsLayouts/service.ts +10 -10
  81. package/src/components/Business/BsLayouts/utils.tsx +205 -205
  82. package/src/components/Business/BsSulaQueryTable/SearchItemSetting.tsx +566 -566
  83. package/src/components/Business/BsSulaQueryTable/bssulaquerytable.less +5 -5
  84. package/src/components/Business/BsSulaQueryTable/index.less +227 -227
  85. package/src/components/Business/BsSulaQueryTable/index.tsx +772 -772
  86. package/src/components/Business/BsSulaQueryTable/setting.tsx +888 -888
  87. package/src/components/Business/BsSulaQueryTable/utils.less +65 -65
  88. package/src/components/Business/BsSulaQueryTable/utils.tsx +709 -709
  89. package/src/components/Business/CommodityEntry/index.md +84 -84
  90. package/src/components/Business/CommodityEntry/index.tsx +82 -82
  91. package/src/components/Business/CommonAlert/index.tsx +23 -23
  92. package/src/components/Business/CommonGuideWrapper/index.less +121 -121
  93. package/src/components/Business/CommonGuideWrapper/index.md +39 -39
  94. package/src/components/Business/CommonGuideWrapper/index.tsx +94 -94
  95. package/src/components/Business/DetailPageWrapper/index.less +87 -87
  96. package/src/components/Business/DetailPageWrapper/index.tsx +327 -326
  97. package/src/components/Business/DetailPageWrapper/utils.tsx +166 -164
  98. package/src/components/Business/HomePageWrapper/index.less +33 -33
  99. package/src/components/Business/HomePageWrapper/index.md +45 -45
  100. package/src/components/Business/HomePageWrapper/index.tsx +162 -162
  101. package/src/components/Business/JsonQueryTable/components/FieldsModifyModal.tsx +823 -823
  102. package/src/components/Business/JsonQueryTable/components/FieldsSettingsTable.tsx +205 -205
  103. package/src/components/Business/JsonQueryTable/components/Formula.tsx +205 -205
  104. package/src/components/Business/JsonQueryTable/components/MaintainOptions.tsx +127 -127
  105. package/src/components/Business/JsonQueryTable/configButton/index.js +20 -20
  106. package/src/components/Business/JsonQueryTable/configTree/component/compactArrayView.js +25 -25
  107. package/src/components/Business/JsonQueryTable/configTree/component/compactObjectView.js +30 -30
  108. package/src/components/Business/JsonQueryTable/configTree/index.js +82 -82
  109. package/src/components/Business/JsonQueryTable/configTree/index.less +44 -44
  110. package/src/components/Business/JsonQueryTable/configTree/parser/highlight.js +57 -57
  111. package/src/components/Business/JsonQueryTable/configTree/parser/index.js +124 -124
  112. package/src/components/Business/JsonQueryTable/configTree/render/iconRender.js +29 -29
  113. package/src/components/Business/JsonQueryTable/configTree/render/nameRender.js +22 -22
  114. package/src/components/Business/JsonQueryTable/configTree/treeNode.js +116 -116
  115. package/src/components/Business/JsonQueryTable/drawer/index.tsx +12 -12
  116. package/src/components/Business/JsonQueryTable/function.ts +62 -62
  117. package/src/components/Business/JsonQueryTable/index.less +16 -16
  118. package/src/components/Business/JsonQueryTable/index.md +328 -328
  119. package/src/components/Business/JsonQueryTable/index.tsx +534 -534
  120. package/src/components/Business/JsonQueryTable/jsonEditor/index.js +346 -346
  121. package/src/components/Business/JsonQueryTable/jsonEditor/index.less +22 -22
  122. package/src/components/Business/JsonQueryTable/jsonEditor/lint/basicType.js +147 -147
  123. package/src/components/Business/JsonQueryTable/jsonEditor/lint/index.js +389 -389
  124. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/actions.js +118 -118
  125. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/dependency.js +22 -22
  126. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/index.js +21 -21
  127. package/src/components/Business/JsonQueryTable/jsonEditor/suggestions/request.js +65 -65
  128. package/src/components/Business/JsonQueryTable/static.ts +450 -450
  129. package/src/components/Business/SearchSelect/BusinessUtils.tsx +2162 -2160
  130. package/src/components/Business/SearchSelect/common.ts +134 -134
  131. package/src/components/Business/SearchSelect/index.md +1512 -1512
  132. package/src/components/Business/SearchSelect/index.tsx +55 -55
  133. package/src/components/Business/SearchSelect/utils.ts +125 -125
  134. package/src/components/Business/StateFlow/index.less +130 -130
  135. package/src/components/Business/StateFlow/index.md +60 -60
  136. package/src/components/Business/StateFlow/index.tsx +29 -29
  137. package/src/components/Business/TreeSearchSelect/index.md +211 -211
  138. package/src/components/Business/TreeSearchSelect/index.tsx +33 -33
  139. package/src/components/Business/TreeSearchSelect/utils.ts +104 -104
  140. package/src/components/Business/columnSettingTable/columnSetting.tsx +816 -816
  141. package/src/components/Business/columnSettingTable/index.less +253 -253
  142. package/src/components/Business/columnSettingTable/index.md +357 -357
  143. package/src/components/Business/columnSettingTable/index.tsx +226 -226
  144. package/src/components/Business/columnSettingTable/sulaSettingTable.tsx +233 -233
  145. package/src/components/Business/columnSettingTable/utils.tsx +87 -87
  146. package/src/components/Business/moreTreeTable/FixedScrollBar.tsx +87 -87
  147. package/src/components/Business/moreTreeTable/hooks/useSticky.ts +21 -21
  148. package/src/components/Business/moreTreeTable/index.less +99 -99
  149. package/src/components/Business/moreTreeTable/index.md +448 -448
  150. package/src/components/Business/moreTreeTable/index.tsx +387 -387
  151. package/src/components/Business/moreTreeTable/utils.ts +126 -126
  152. package/src/components/Functional/AccessWrapper/index.tsx +33 -33
  153. package/src/components/Functional/AddSelect/helps.ts +81 -81
  154. package/src/components/Functional/AddSelect/index.less +367 -367
  155. package/src/components/Functional/AddSelect/index.md +155 -155
  156. package/src/components/Functional/AddSelect/index.tsx +1065 -1065
  157. package/src/components/Functional/AuthButton/index.tsx +15 -15
  158. package/src/components/Functional/BillEntry/index.less +371 -371
  159. package/src/components/Functional/BillEntry/index.md +39 -39
  160. package/src/components/Functional/BillEntry/index.tsx +772 -772
  161. package/src/components/Functional/BsAntdSula/BsCascader/index.md +62 -62
  162. package/src/components/Functional/BsAntdSula/BsCascader/index.tsx +178 -178
  163. package/src/components/Functional/BsAntdSula/index.ts +2 -2
  164. package/src/components/Functional/DataImport/index.less +63 -63
  165. package/src/components/Functional/DataImport/index.md +44 -44
  166. package/src/components/Functional/DataImport/index.tsx +783 -706
  167. package/src/components/Functional/DataValidation/index.less +63 -63
  168. package/src/components/Functional/DataValidation/index.md +52 -52
  169. package/src/components/Functional/DataValidation/index.tsx +788 -708
  170. package/src/components/Functional/EllipsisTooltip/index.d.ts +5 -5
  171. package/src/components/Functional/EllipsisTooltip/index.js +36 -36
  172. package/src/components/Functional/EllipsisTooltip/index.md +30 -30
  173. package/src/components/Functional/ExportFunctions/ExportIcon/index.md +37 -37
  174. package/src/components/Functional/ExportFunctions/ExportIcon/index.tsx +65 -65
  175. package/src/components/Functional/QueryMutipleInput/index.less +37 -37
  176. package/src/components/Functional/QueryMutipleInput/index.md +33 -33
  177. package/src/components/Functional/QueryMutipleInput/index.tsx +129 -129
  178. package/src/components/Functional/SearchSelect/index.less +121 -121
  179. package/src/components/Functional/SearchSelect/index.md +141 -141
  180. package/src/components/Functional/SearchSelect/index.tsx +1034 -1034
  181. package/src/components/Functional/SearchSelect/utils.ts +3 -3
  182. package/src/components/Functional/TreeSearchSelect/index.md +47 -47
  183. package/src/components/Functional/TreeSearchSelect/index.tsx +224 -224
  184. package/src/components/Solution/RuleComponent/Formula.tsx +335 -335
  185. package/src/components/Solution/RuleComponent/InnerSelect.tsx +62 -62
  186. package/src/components/Solution/RuleComponent/RenderCompItem.tsx +670 -670
  187. package/src/components/Solution/RuleComponent/index.d.ts +29 -29
  188. package/src/components/Solution/RuleComponent/index.js +1601 -1601
  189. package/src/components/Solution/RuleComponent/index.less +247 -247
  190. package/src/components/Solution/RuleComponent/renderSpecificAction.js +99 -99
  191. package/src/components/Solution/RuleComponent/ruleFiled.js +2293 -2293
  192. package/src/components/Solution/RuleComponent/services.ts +13 -13
  193. package/src/components/Solution/RuleComponent/util.js +143 -143
  194. package/src/components/Solution/RuleSetter/RuleInstance.tsx +6 -6
  195. package/src/components/Solution/RuleSetter/baseRule.tsx +394 -394
  196. package/src/components/Solution/RuleSetter/function.ts +437 -437
  197. package/src/components/Solution/RuleSetter/index.less +221 -221
  198. package/src/components/Solution/RuleSetter/index.tsx +208 -208
  199. package/src/components/Solution/RuleSetter/service.js +276 -276
  200. package/src/index.ts +41 -41
  201. package/src/plugin/TableColumnSetting/index.less +247 -247
  202. package/src/plugin/TableColumnSetting/index.md +50 -50
  203. package/src/plugin/TableColumnSetting/index.tsx +725 -725
  204. package/src/plugin/TableColumnSetting/utils.ts +19 -19
  205. package/src/styles/bsDefault.less +1933 -1933
  206. package/src/utils/CheckOneUser/index.md +39 -39
  207. package/src/utils/CheckOneUser/index.ts +51 -51
  208. package/src/utils/CustomLoginInfo.ts +55 -55
  209. package/src/utils/LocalstorageUtils.ts +134 -128
  210. package/src/utils/TableUtils.less +51 -51
  211. package/src/utils/TableUtils.tsx +691 -691
  212. package/src/utils/auth.ts +38 -38
  213. package/src/utils/businessUtils.ts +434 -434
  214. package/src/utils/checkUtils.ts +39 -39
  215. package/src/utils/constant.ts +38 -38
  216. package/src/utils/enumConfig.ts +17 -16
  217. package/src/utils/getFormMode.js +12 -12
  218. package/src/utils/index.ts +19 -16
  219. package/src/utils/request.ts +53 -53
  220. package/src/utils/requestUtils.ts +193 -193
  221. package/src/utils/serialize.js +7 -7
  222. package/src/utils/utils.ts +238 -238
  223. package/src/utils/xlsxUtil.tsx +146 -0
  224. package/tsconfig.json +29 -29
  225. 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
+ };