resolver-egretimp-plus 0.0.124 → 0.0.126

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.
@@ -17,7 +17,7 @@
17
17
  * "updateOperId":"72523"
18
18
  * }
19
19
  */
20
- import { DISPLAY_HIDDEN, DISPLAY_SHOW } from '../utils'
20
+ /* eslint-disable */
21
21
  import {
22
22
  getConfigValue,
23
23
  getCurrentComp,
@@ -25,105 +25,113 @@ import {
25
25
  setFormVal,
26
26
  lessThan
27
27
  } from './ruleUtils'
28
+ import { ARG_FLAGS, MULTI_PAGE_META_LIST_TYPES } from '../utils/const'
28
29
 
29
- const eventsMap = {
30
- 0: 'setHidden',
31
- 1: 'setRequired',
32
- 2: 'setDisable',
33
- 3: 'setClear',
34
- 4: 'setDefaultValue',
35
- 5: 'limitDataRange',
36
- 6: 'setPopup',
37
- 7: 'openThePage',
38
- 8: 'setShow',
39
- 9: 'setNoRequired',
40
- 10: 'setNoDisable',
41
- 11: 'setDisableNotEffect',
42
- 12: 'setRequiredNotEffect',
43
- 13: 'setNoRequiredNotEffect',
44
- 14: 'setNoDisableNotEffect',
45
- 16: 'setProps'
46
- }
30
+ import { formatDate, hasOwn, isPlainObject, parseExtendAttr } from '../utils/index';
31
+ const valArrTypes = [...MULTI_PAGE_META_LIST_TYPES]
32
+ const valBooleanTypes = []
47
33
 
48
- const allInitEvents = {
49
- setHidden(event, isInit) {
50
- const { targetObj: target } = event
51
- if (!target) return
52
- const targetObj = `${target}`
53
- const configs = getCurrentComp.call(this, targetObj)
54
- // 隐藏的效果需要晚点触发,才能正常执行清空等一些列需要组件操作
55
- setTimeout(() => {
56
- configs.forEach(labelInfo => {
57
- labelInfo && (labelInfo.displayType = DISPLAY_HIDDEN)
58
- labelInfo && labelInfo.refConfig && (labelInfo.refConfig.displayType = DISPLAY_HIDDEN)
59
- })
60
- }, 0)
61
-
62
- // 有的事件在不满足条件的情况下,需要进行恢复
63
- return () => {
64
- configs.forEach((labelInfo) => {
65
- labelInfo && (labelInfo.displayType = DISPLAY_SHOW)
66
- labelInfo && labelInfo.refConfig && (labelInfo.refConfig.displayType = DISPLAY_SHOW)
67
- })
68
- }
34
+ // 事件优先级越高,越快执行
35
+ export const EVENTS_PRIORITY = {
36
+ 0: 1,
37
+ 1: 2,
38
+ 2: 2,
39
+ 3: 2,
40
+ 4: 2,
41
+ 5: 2,
42
+ 6: 2,
43
+ 7: 2,
44
+ 8: 100,
45
+ 9: 2,
46
+ 10: 2,
47
+ 11: 2,
48
+ 12: 2,
49
+ 13: 2,
50
+ 14: 2,
51
+ 16: 99,
52
+ }
53
+ export const EVENS_INFO = {
54
+ 0: {
55
+ eventCode: 'setHidden',
56
+ priority: 1,
57
+ recover: 8,
69
58
  },
70
- setRequired(event, isInit, tabpanelCode) {
71
- const { targetObj: target } = event
72
- if (!target) return
73
- const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
74
- const configs = getCurrentComp.call(this, targetObj)
75
- configs.forEach(labelInfo => {
76
- labelInfo && (labelInfo.requiredFlag = '1')
77
- labelInfo && labelInfo.refConfig && (labelInfo.refConfig.requiredFlag = '1')
78
-
79
- })
80
- // 有的事件在不满足条件的情况下,需要进行恢复
81
- return () => {
82
- configs.forEach(labelInfo => {
83
- labelInfo && (labelInfo.requiredFlag = '0')
84
- labelInfo && labelInfo.refConfig && (labelInfo.refConfig.requiredFlag = '0')
85
- })
86
- }
59
+ 1: {
60
+ eventCode: 'setRequired',
61
+ priority: 2,
62
+ recover: 9,
87
63
  },
88
- setDisable(event, isInit, tabpanelCode) {
89
- const { targetObj: target } = event
90
- if (!target) return
91
- const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
92
- const configs = getCurrentComp.call(this, targetObj)
93
- configs.forEach(labelInfo => {
94
- labelInfo && (labelInfo.editFlag = '0')
95
- })
96
- // 有的事件在不满足条件的情况下,需要进行恢复
97
- return () => {
98
- configs.forEach(labelInfo => {
99
- labelInfo && (labelInfo.editFlag = '1')
100
- })
101
- }
64
+ 2: {
65
+ eventCode: 'setDisable',
66
+ priority: 2,
67
+ recover: 10,
102
68
  },
103
- setClear(event, isInit, tabpanelCode) {
104
- if (isInit) {
105
- return
106
- }
107
- const { targetObj: target } = event
108
- if (!target) return
109
- const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
110
- const configs = getCurrentComp.call(this, targetObj)
111
- configs.forEach(labelInfo => {
112
- if (!labelInfo) return
113
- let val = ''
114
- if (valArrTypes.includes(labelInfo.labelType)) {
115
- val = []
116
- }
117
- if (valBooleanTypes.includes(labelInfo.labelType)) {
118
- val = false
119
- }
120
- hasOwn(labelInfo, 'refValue') && (labelInfo.refValue = val)
121
- })
69
+ 3: {
70
+ eventCode: 'setClear',
71
+ priority: 2,
72
+ },
73
+ 4: {
74
+ eventCode: 'setDefaultValue',
75
+ priority: 2,
76
+ },
77
+ 5: {
78
+ eventCode: 'limitDataRange',
79
+ priority: 2,
80
+ },
81
+ 6: {
82
+ eventCode: 'setPopup',
83
+ priority: 2,
84
+ },
85
+ 7: {
86
+ eventCode: 'openThePage',
87
+ priority: 2,
88
+ },
89
+ 8: {
90
+ eventCode: 'setShow',
91
+ priority: 100,
92
+ recover: 0,
93
+ },
94
+ 9: {
95
+ eventCode: 'setNoRequired',
96
+ priority: 2,
97
+ recover: 1,
98
+ },
99
+ 10: {
100
+ eventCode: 'setNoDisable',
101
+ priority: 2,
102
+ recover: 2,
122
103
  },
123
- setDefaultValue(event, isInit, tabpanelCode) {
104
+ 11: {
105
+ eventCode: 'setDisableNotEffect',
106
+ priority: 2,
107
+ },
108
+ 12: {
109
+ eventCode: 'setRequiredNotEffect',
110
+ priority: 2,
111
+ },
112
+ 13: {
113
+ eventCode: 'setNoRequiredNotEffect',
114
+ priority: 2,
115
+ },
116
+ 14: {
117
+ eventCode: 'setNoDisableNotEffect',
118
+ priority: 2,
119
+ },
120
+ 16: {
121
+ eventCode: 'setProps',
122
+ priority: 99,
123
+ }
124
+ }
125
+
126
+ export function getEventPriority(eventId) {
127
+ return EVENS_INFO[eventId]?.priority || 2
128
+ }
129
+
130
+ const allInitEvents = {
131
+ setDefaultValue(event, isInit) {
124
132
  const { targetObj: target, targetObjVal } = event
125
133
  if (!target) return
126
- const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
134
+ const targetObj = `${target}`
127
135
  let val = ''
128
136
  try {
129
137
  val = JSON.parse(targetObjVal)
@@ -152,114 +160,45 @@ const allInitEvents = {
152
160
  }
153
161
  setFormVal.call(this, targetObj, val)
154
162
  },
155
- limitDataRange(event, isInit, tabpanelCode) {
156
- const { targetObj: target, targetObjVal = '' } = event
157
- if (!target) return
158
- const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
159
- const range = targetObjVal.split('~')
160
- if (range && range.length) {
161
- const min = range[0]
162
- const max = range[1]
163
- const currentVal = getConfigValue.call(this, targetObj, true)
164
- if (min && lessThan(currentVal, min)) {
165
- setFormVal.call(this, targetObj, min)
166
- }
167
- if (max && greaterThan(currentVal, max)) {
168
- setFormVal.call(this, targetObj, max)
169
- }
170
- }
171
- },
172
- setPopup(event, isInit, tabpanelCode) {
173
- const { targetMsg, targetMsgEn } = event
174
- const msg = this.lang.value.indexOf('zh') > -1 ? targetMsg : targetMsgEn
175
- this.$alert(msg, '', {
176
- showCancelButton: false,
177
- });
178
- // commModal({
179
- // msg: storage.get('aid-language').indexOf('zh') !== -1 ? targetMsg : targetMsgEn
180
- // })
181
- // document && document.body && document.body.click()
182
- },
183
- openThePage(event, isInit, tabpanelCode) {
184
- const { targetObjVal } = event
185
- if (targetObjVal) {
186
- window.open(targetObjVal, '_blank')
187
- }
188
- },
189
- setShow(event, isInit, tabpanelCode, rule) {
190
- const { targetObj: target } = event
191
- if (!target) return
192
- const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
193
- // if (target.indexOf('isSpecialPriceingApproval') > -1) {
194
- // console.log('rule===:', rule)
195
- // debugger
196
- // }
197
- const configs = getCurrentComp.call(this, targetObj)
198
- // const oldDisplayTypes = []
199
- // if (target.indexOf('amountBilled') > -1) {
200
- // debugger
201
- // }
202
- configs.forEach((labelInfo) => {
203
- // const oldDisplayType = labelInfo && labelInfo.displayType
204
- // oldDisplayTypes.push(oldDisplayType)
205
- labelInfo && (labelInfo.displayType = '1')
206
- labelInfo && labelInfo.refConfig && (labelInfo.refConfig.displayType = '1')
207
- })
208
- // 有的事件在不满足条件的情况下,需要进行恢复
209
- return () => {
210
- // 隐藏的效果需要晚点触发,才能正常执行清空等一些列需要组件操作
211
- return setTimeout(() => {
212
- // if (target.indexOf('isSpecialPriceingApproval') > -1) {
213
- // console.log('rule===:', rule)
214
- // debugger
215
- // }
216
- configs.forEach((labelInfo, idx) => {
217
- // const oldDisplayType = oldDisplayTypes[idx]
218
- labelInfo && (labelInfo.displayType = '0')
219
- labelInfo && labelInfo.refConfig && (labelInfo.refConfig.displayType = '0')
220
- })
221
- }, 0)
163
+ setClear(event, isInit) {
164
+ if (isInit) {
165
+ return
222
166
  }
223
- },
224
- setNoRequired(event, isInit, tabpanelCode) {
225
167
  const { targetObj: target } = event
226
168
  if (!target) return
227
- const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
169
+ const targetObj = `${target}`
228
170
  const configs = getCurrentComp.call(this, targetObj)
229
-
230
- const callFns = []
231
171
  configs.forEach(labelInfo => {
232
- if (labelInfo && labelInfo.requiredFlag != '0') {
233
- labelInfo && (labelInfo.requiredFlag = '0')
234
- // 有的事件在不满足条件的情况下,需要进行恢复
235
- callFns.push(() => {
236
- labelInfo && (labelInfo.requiredFlag = '1')
237
- })
172
+ if (!labelInfo) return
173
+ let val = ''
174
+ if (valArrTypes.includes(labelInfo.labelType)) {
175
+ val = []
238
176
  }
177
+ if (valBooleanTypes.includes(labelInfo.labelType)) {
178
+ val = false
179
+ }
180
+ hasOwn(labelInfo, 'refValue') && (labelInfo.refValue = val)
239
181
  })
240
- return () => {
241
- callFns.forEach(fn => fn())
242
- }
243
182
  },
244
- setNoDisable(event, isInit, tabpanelCode) {
183
+ setDisable(event, isInit) {
245
184
  const { targetObj: target } = event
246
185
  if (!target) return
247
- const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
186
+ const targetObj = `${target}`
248
187
  const configs = getCurrentComp.call(this, targetObj)
249
- configs.forEach((labelInfo) => {
250
- labelInfo && (labelInfo.editFlag = '1')
188
+ configs.forEach(labelInfo => {
189
+ labelInfo && (labelInfo.editFlag = '0')
251
190
  })
252
191
  // 有的事件在不满足条件的情况下,需要进行恢复
253
192
  return () => {
254
- configs.forEach((labelInfo) => {
255
- labelInfo && (labelInfo.editFlag = '0')
193
+ configs.forEach(labelInfo => {
194
+ labelInfo && (labelInfo.editFlag = '1')
256
195
  })
257
196
  }
258
197
  },
259
- setDisableNotEffect(event, isInit, tabpanelCode) {
198
+ setDisableNotEffect(event, isInit) {
260
199
  const { targetObj: target } = event
261
200
  if (!target) return
262
- const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
201
+ const targetObj = `${target}`
263
202
  const configs = getCurrentComp.call(this, targetObj)
264
203
  const oldEditFlags = []
265
204
  configs.forEach(labelInfo => {
@@ -275,10 +214,28 @@ const allInitEvents = {
275
214
  })
276
215
  }
277
216
  },
278
- setRequiredNotEffect(event, isInit, tabpanelCode) {
217
+ setRequired(event, isInit) {
218
+ const { targetObj: target } = event
219
+ if (!target) return
220
+ const targetObj = `${target}`
221
+ const configs = getCurrentComp.call(this, targetObj)
222
+ configs.forEach(labelInfo => {
223
+ labelInfo && (labelInfo.requiredFlag = '1')
224
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.requiredFlag = '1')
225
+
226
+ })
227
+ // 有的事件在不满足条件的情况下,需要进行恢复
228
+ return () => {
229
+ configs.forEach(labelInfo => {
230
+ labelInfo && (labelInfo.requiredFlag = '0')
231
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.requiredFlag = '0')
232
+ })
233
+ }
234
+ },
235
+ setRequiredNotEffect(event, isInit) {
279
236
  const { targetObj: target } = event
280
237
  if (!target) return
281
- const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
238
+ const targetObj = `${target}`
282
239
  const configs = getCurrentComp.call(this, targetObj)
283
240
 
284
241
  const oldRequiredFlags = []
@@ -297,10 +254,78 @@ const allInitEvents = {
297
254
  })
298
255
  }
299
256
  },
300
- setNoRequiredNotEffect(event, isInit, tabpanelCode) {
257
+ setHidden(event, isInit) {
258
+ const { targetObj: target } = event
259
+ if (!target) return
260
+ const targetObj = `${target}`
261
+ const configs = getCurrentComp.call(this, targetObj)
262
+ // const oldDisplayTypes = []
263
+ // 隐藏的效果需要晚点触发,才能正常执行清空等一些列需要组件操作
264
+ // setTimeout(() => {
265
+ configs.forEach(labelInfo => {
266
+ // 兼容开始使用displayType用于显示隐藏的配置
267
+ labelInfo && /^\d*$/.test(labelInfo.displayType) && (labelInfo.displayType = '0')
268
+ labelInfo && (labelInfo.hidden = '1')
269
+ labelInfo && labelInfo.refConfig && /^\d*$/.test(labelInfo.refConfig.displayType) && (labelInfo.refConfig.displayType = '0')
270
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.hidden = '1')
271
+ })
272
+ // }, 0)
273
+
274
+ // 有的事件在不满足条件的情况下,需要进行恢复
275
+ return () => {
276
+ configs.forEach((labelInfo, idx) => {
277
+ labelInfo && /^\d*$/.test(labelInfo.displayType) && (labelInfo.displayType = '1')
278
+ labelInfo && (labelInfo.hidden = '0')
279
+ labelInfo && labelInfo.refConfig && /^\d*$/.test(labelInfo.refConfig.displayType) && (labelInfo.refConfig.displayType = '1')
280
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.hidden = '0')
281
+ })
282
+ }
283
+ },
284
+ setShow(event, isInit) {
285
+ const { targetObj: target } = event
286
+ if (!target) return
287
+ const targetObj = `${target}`
288
+ const configs = getCurrentComp.call(this, targetObj)
289
+ configs.forEach((labelInfo) => {
290
+ labelInfo && /^\d*$/.test(labelInfo.displayType) && (labelInfo.displayType = '1')
291
+ labelInfo && (labelInfo.hidden = '0')
292
+ labelInfo && labelInfo.refConfig && /^\d*$/.test(labelInfo.refConfig.displayType) && (labelInfo.refConfig.displayType = '1')
293
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.hidden = '0')
294
+ })
295
+ // 有的事件在不满足条件的情况下,需要进行恢复
296
+ return () => {
297
+ configs.forEach((labelInfo, idx) => {
298
+ labelInfo && /^\d*$/.test(labelInfo.displayType) && (labelInfo.displayType = '0')
299
+ labelInfo && (labelInfo.hidden = '1')
300
+ labelInfo && labelInfo.refConfig && /^\d*$/.test(labelInfo.refConfig.displayType) && (labelInfo.refConfig.displayType = '0')
301
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.hidden = '1')
302
+ })
303
+ }
304
+ },
305
+ setNoRequired(event, isInit) {
301
306
  const { targetObj: target } = event
302
307
  if (!target) return
303
- const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
308
+ const targetObj = `${target}`
309
+ const configs = getCurrentComp.call(this, targetObj)
310
+
311
+ const callFns = []
312
+ configs.forEach(labelInfo => {
313
+ if (labelInfo && labelInfo.requiredFlag != '0') {
314
+ labelInfo && (labelInfo.requiredFlag = '0')
315
+ // 有的事件在不满足条件的情况下,需要进行恢复
316
+ callFns.push(() => {
317
+ labelInfo && (labelInfo.requiredFlag = '1')
318
+ })
319
+ }
320
+ })
321
+ return () => {
322
+ callFns.forEach(fn => fn())
323
+ }
324
+ },
325
+ setNoRequiredNotEffect(event, isInit) {
326
+ const { targetObj: target } = event
327
+ if (!target) return
328
+ const targetObj = `${target}`
304
329
  const configs = getCurrentComp.call(this, targetObj)
305
330
 
306
331
  const oldRequiredFlags = []
@@ -318,10 +343,25 @@ const allInitEvents = {
318
343
  })
319
344
  }
320
345
  },
321
- setNoDisableNotEffect(event, isInit, tabpanelCode) {
346
+ setNoDisable(event, isInit) {
347
+ const { targetObj: target } = event
348
+ if (!target) return
349
+ const targetObj = `${target}`
350
+ const configs = getCurrentComp.call(this, targetObj)
351
+ configs.forEach((labelInfo) => {
352
+ labelInfo && (labelInfo.editFlag = '1')
353
+ })
354
+ // 有的事件在不满足条件的情况下,需要进行恢复
355
+ return () => {
356
+ configs.forEach((labelInfo) => {
357
+ labelInfo && (labelInfo.editFlag = '0')
358
+ })
359
+ }
360
+ },
361
+ setNoDisableNotEffect(event, isInit) {
322
362
  const { targetObj: target } = event
323
363
  if (!target) return
324
- const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
364
+ const targetObj = `${target}`
325
365
  const configs = getCurrentComp.call(this, targetObj)
326
366
  const oldEditFlags = []
327
367
  configs.forEach((labelInfo) => {
@@ -338,11 +378,45 @@ const allInitEvents = {
338
378
  })
339
379
  }
340
380
  },
341
- setProps(event, isInit, tabpanelCode, rule) {
381
+ limitDataRange(event, isInit) {
382
+ const { targetObj: target, targetObjVal = '' } = event
383
+ if (!target) return
384
+ const targetObj = `${target}`
385
+ const range = targetObjVal.split('~')
386
+ if (range && range.length) {
387
+ const min = range[0]
388
+ const max = range[1]
389
+ const currentVal = getConfigValue.call(this, targetObj, true)
390
+ if (min && lessThan(currentVal, min)) {
391
+ setFormVal.call(this, targetObj, min)
392
+ }
393
+ if (max && greaterThan(currentVal, max)) {
394
+ setFormVal.call(this, targetObj, max)
395
+ }
396
+ }
397
+ },
398
+ setPopup(event, isInit) {
399
+ const { targetMsg, targetMsgEn } = event
400
+ const msg = this.lang.value.indexOf('zh') > -1 ? targetMsg : targetMsgEn
401
+ this.messageInstance.warning(msg, '', {
402
+ showCancelButton: false,
403
+ });
404
+ // commModal({
405
+ // msg: storage.get('aid-language').indexOf('zh') !== -1 ? targetMsg : targetMsgEn
406
+ // })
407
+ // document && document.body && document.body.click()
408
+ },
409
+ openThePage(event, isInit) {
410
+ const { targetObjVal } = event
411
+ if (targetObjVal) {
412
+ window.open(targetObjVal, '_blank')
413
+ }
414
+ },
415
+ setProps(event, isInit) {
342
416
  const { targetObj: target, targetObjVal } = event
343
417
  if (!target) return
344
418
 
345
- const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
419
+ const targetObj = `${target}`
346
420
  const { config } = this
347
421
  let val = ''
348
422
  try {
@@ -361,9 +435,6 @@ const allInitEvents = {
361
435
  const configs = getCurrentComp.call(this, targetObj)
362
436
  const oldPorpsList = []
363
437
  const porpsKeys = Object.keys(val)
364
- // if (target.indexOf('amountBilled') > -1) {
365
- // debugger
366
- // }
367
438
  configs.forEach((labelInfo) => {
368
439
  let updateFlag = false
369
440
  const oldProps = {}
@@ -410,3 +481,20 @@ const allInitEvents = {
410
481
  }
411
482
  },
412
483
  }
484
+
485
+
486
+ export default allInitEvents
487
+
488
+ export function runEvent(events, isInit) {
489
+ events = events || []
490
+ return events.map(event => {
491
+ const { eventId } = event
492
+ const eventCode = EVENS_INFO[eventId]?.eventCode
493
+ if (!eventCode) {
494
+ return
495
+ }
496
+ console.log('event==:', eventCode, 'targetObj==:',event?.targetObj, 'rule===:', this.rule)
497
+ return allInitEvents[eventCode] && allInitEvents[eventCode].call(this, event, isInit)
498
+ })
499
+ }
500
+
@@ -0,0 +1,33 @@
1
+ import { RuleDriver } from "./ruleInstance"
2
+
3
+ export class RuleExecuter {
4
+ penddingRules = {}
5
+ ruleEngines = {}
6
+ constructor() {
7
+ }
8
+ run({
9
+ rootValue,
10
+ rules,
11
+ config,
12
+ dynamicMapComp,
13
+ _mapComp,
14
+ lang,
15
+ messageInstance,
16
+ isInit
17
+ }) {
18
+ rules?.forEach(rule => {
19
+ const key = `${rule.relId}_${config.dynamicHireRelat}`
20
+ if (!this.ruleEngines[key]) {
21
+ this.ruleEngines[key] = new RuleDriver({
22
+ rule,
23
+ config,
24
+ dynamicMapComp,
25
+ lang,
26
+ messageInstance,
27
+ _mapComp
28
+ })
29
+ }
30
+ this.ruleEngines[key].run(rootValue?.value, isInit)
31
+ })
32
+ }
33
+ }