resolver-egretimp-plus 0.1.115 → 0.1.116
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.
- package/dist/const/index.js +1 -1
- package/dist/h5/index.js +9 -9
- package/dist/web/index.js +2 -2
- package/package.json +1 -1
- package/src/components/packages-web/CustomComponentPlain.vue +5 -1
- package/src/hooks/watchRuels.js +94 -0
- package/src/index.jsx +9 -2
- package/src/rulesOfDate/eventsSupplement.js +559 -0
- package/src/rulesOfDate/parseCondition.js +257 -0
- package/src/rulesOfDate/ruleUtils.js +343 -0
- package/src/rulesOfDate/rulesDriver.js +67 -0
- package/src/utils/common.js +24 -16
- package/src/utils/const.js +1 -0
- package/src/utils/render.jsx +7 -1
- package/src-bak/components/packages-H5/CustomComponentCollapseH5.vue +6 -2
- package/src-bak/components/packages-web/CustomComponentPlain.vue +6 -2
- package/src-bak/components/packages-web/CustomComponentTable.jsx +41 -40
- package/src-bak/index.jsx +21 -18
- package/src-bak/rules/rulesDriver.js +21 -0
- package/src-bak/utils/render.jsx +5 -5
|
@@ -0,0 +1,559 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* event:
|
|
3
|
+
* {
|
|
4
|
+
* "targetEventId":"1001",
|
|
5
|
+
* "relId":"100000000000005",
|
|
6
|
+
* "eventId":"0",
|
|
7
|
+
* "eventCode":null,
|
|
8
|
+
* "actionType":"0",
|
|
9
|
+
* "targetObj":"xiangmuxinxi->CustomerName",
|
|
10
|
+
* "targetObjVal":null,
|
|
11
|
+
* "targetMsg":null,
|
|
12
|
+
* "targetMsgEn":null,
|
|
13
|
+
* "state":"1",
|
|
14
|
+
* "createTime":"2023-04-13 19:32:01",
|
|
15
|
+
* "createOperId":"72523",
|
|
16
|
+
* "updateTime":"2023-04-13 19:32:01",
|
|
17
|
+
* "updateOperId":"72523"
|
|
18
|
+
* }
|
|
19
|
+
*/
|
|
20
|
+
/* eslint-disable */
|
|
21
|
+
import {
|
|
22
|
+
getConfigValue,
|
|
23
|
+
getCurrentComp,
|
|
24
|
+
greaterThan,
|
|
25
|
+
setFormVal,
|
|
26
|
+
lessThan
|
|
27
|
+
} from './ruleUtils'
|
|
28
|
+
import { ARG_FLAGS, MULTI_PAGE_META_LIST_TYPES } from '../utils/const'
|
|
29
|
+
|
|
30
|
+
// import { commModal } from '../../../common/components/cmi/components/comm-modal-tip/index'
|
|
31
|
+
import { findComponent, formatDate, getPathVal, hasOwn, isPlainObject, parseExtendAttr } from '../utils/index';
|
|
32
|
+
import { unref } from 'vue';
|
|
33
|
+
const valArrTypes = [...MULTI_PAGE_META_LIST_TYPES]
|
|
34
|
+
const valBooleanTypes = []
|
|
35
|
+
|
|
36
|
+
const eventsMap = {
|
|
37
|
+
0: 'setHidden',
|
|
38
|
+
1: 'setRequired',
|
|
39
|
+
2: 'setDisable',
|
|
40
|
+
3: 'setClear',
|
|
41
|
+
4: 'setDefaultValue',
|
|
42
|
+
5: 'limitDataRange',
|
|
43
|
+
6: 'setPopup',
|
|
44
|
+
7: 'openThePage',
|
|
45
|
+
8: 'setShow',
|
|
46
|
+
9: 'setNoRequired',
|
|
47
|
+
10: 'setNoDisable',
|
|
48
|
+
11: 'setDisableNotEffect',
|
|
49
|
+
12: 'setRequiredNotEffect',
|
|
50
|
+
13: 'setNoRequiredNotEffect',
|
|
51
|
+
14: 'setNoDisableNotEffect',
|
|
52
|
+
16: 'setProps'
|
|
53
|
+
}
|
|
54
|
+
function replaceDefValue(str, {currentPath, rootValue, lang, route}) {
|
|
55
|
+
return str?.replace(/\$\{([^}]+)\}/g, (a, val, c) => {
|
|
56
|
+
let routeMatchs = null
|
|
57
|
+
const _absoluteTarget = /^_absoluteTarget:(.+)$/
|
|
58
|
+
const matchs = val?.match?.(_absoluteTarget)
|
|
59
|
+
if (val === ARG_FLAGS.REF_VAL) {
|
|
60
|
+
const refVal = getPathVal(unref(rootValue), currentPath, '->')
|
|
61
|
+
val = refVal ?? ''
|
|
62
|
+
} else if(val === ARG_FLAGS.CURRENT_DATE) {
|
|
63
|
+
val = formatDate(new Date(), 'yyyy-MM-dd')
|
|
64
|
+
} else if (routeMatchs = val.match(/^_route:(.*)$/)) {
|
|
65
|
+
const queryKey = routeMatchs[1]
|
|
66
|
+
const routeQuery = route?.query
|
|
67
|
+
val = routeQuery?.[queryKey]
|
|
68
|
+
} else if ( typeof val === 'string' && (/^_lang$/.test(val))) {
|
|
69
|
+
val = lang
|
|
70
|
+
} else if (matchs?.[1]) {
|
|
71
|
+
const existVal = getPathVal(unref(rootValue), matchs[1], '->')
|
|
72
|
+
val = existVal || ''
|
|
73
|
+
} else {
|
|
74
|
+
const _assginKey = /^_assgin:(.*)$/
|
|
75
|
+
const matchs = val?.match?.(_assginKey)
|
|
76
|
+
if (matchs) {
|
|
77
|
+
val = matchs?.[1]
|
|
78
|
+
} else {
|
|
79
|
+
val = ''
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return val
|
|
83
|
+
})
|
|
84
|
+
}
|
|
85
|
+
const allInitEvents = {
|
|
86
|
+
setDefaultValue({event, rootValue, mapComp, route, lang, currentPath, isInit}) {
|
|
87
|
+
let { targetObj: target, targetObjVal } = event
|
|
88
|
+
if (!target) return
|
|
89
|
+
const targetObj = `${target}`
|
|
90
|
+
const isReplace = /^_replace:/.test(targetObjVal)
|
|
91
|
+
if (isReplace) {
|
|
92
|
+
targetObjVal = replaceDefValue(targetObjVal?.replace(/^_replace:/, ''), {currentPath, rootValue, lang, route, dynamicMapComp})
|
|
93
|
+
}
|
|
94
|
+
let val = ''
|
|
95
|
+
try {
|
|
96
|
+
val = JSON.parse(targetObjVal)
|
|
97
|
+
} catch (err) {
|
|
98
|
+
val = targetObjVal || ''
|
|
99
|
+
}
|
|
100
|
+
if (typeof val === 'number') {
|
|
101
|
+
val = `${val}`
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (isReplace) {
|
|
105
|
+
val = val
|
|
106
|
+
} else if (val === ARG_FLAGS.REF_VAL) {
|
|
107
|
+
const refVal = getPathVal(unref(rootValue), currentPath, '->')
|
|
108
|
+
val = refVal ?? ''
|
|
109
|
+
} else if(val === ARG_FLAGS.CURRENT_DATE) {
|
|
110
|
+
val = formatDate(new Date(), 'yyyy-MM-dd')
|
|
111
|
+
} else {
|
|
112
|
+
let routeMatchs = null
|
|
113
|
+
const _absoluteTarget = /^_absoluteTarget:(.+)$/
|
|
114
|
+
const matchs = val?.match?.(_absoluteTarget)
|
|
115
|
+
if ( typeof val === 'string' && (routeMatchs = val.match(/^_route:(.*)$/))) {
|
|
116
|
+
const queryKey = routeMatchs[1]
|
|
117
|
+
const routeQuery = route?.query
|
|
118
|
+
val = routeQuery?.[queryKey]
|
|
119
|
+
} else if ( typeof val === 'string' && (/^_lang$/.test(val))) {
|
|
120
|
+
val = lang
|
|
121
|
+
} else if (typeof val === 'string' && matchs?.[1]) {
|
|
122
|
+
const existVal = getPathVal(unref(rootValue), matchs[1], '->')
|
|
123
|
+
val = existVal || ''
|
|
124
|
+
} else {
|
|
125
|
+
const _assginKey = /^_assgin:(.*)$/
|
|
126
|
+
const matchs = val?.match?.(_assginKey)
|
|
127
|
+
if (matchs) {
|
|
128
|
+
val = matchs?.[1]
|
|
129
|
+
} else {
|
|
130
|
+
const curVal = getConfigValue.call(this, targetObj, true)
|
|
131
|
+
if (curVal || curVal == '0') {
|
|
132
|
+
val = curVal
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
setFormVal(targetObj, val, mapComp, rootValue, currentPath)
|
|
139
|
+
},
|
|
140
|
+
setClear({event, rootValue, mapComp, currentPath, isInit}) {
|
|
141
|
+
if (isInit) {
|
|
142
|
+
return
|
|
143
|
+
}
|
|
144
|
+
const { targetObj: target } = event
|
|
145
|
+
if (!target) return
|
|
146
|
+
const targetObj = `${target}`
|
|
147
|
+
|
|
148
|
+
setFormVal(targetObj, '', mapComp, rootValue, currentPath)
|
|
149
|
+
|
|
150
|
+
},
|
|
151
|
+
setDisable({event, rootValue, mapComp, currentPath, isInit}) {
|
|
152
|
+
const { targetObj: target } = event
|
|
153
|
+
if (!target) return
|
|
154
|
+
const targetObj = `${target}`
|
|
155
|
+
const configs = getCurrentComp.call(this, targetObj)
|
|
156
|
+
configs.forEach(labelInfo => {
|
|
157
|
+
labelInfo && (labelInfo.editFlag = '0')
|
|
158
|
+
})
|
|
159
|
+
// 有的事件在不满足条件的情况下,需要进行恢复
|
|
160
|
+
return () => {
|
|
161
|
+
configs.forEach(labelInfo => {
|
|
162
|
+
labelInfo && (labelInfo.editFlag = '1')
|
|
163
|
+
})
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
setDisableNotEffect(event, isInit, tabpanelCode) {
|
|
167
|
+
const { targetObj: target } = event
|
|
168
|
+
if (!target) return
|
|
169
|
+
const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
|
|
170
|
+
const configs = getCurrentComp.call(this, targetObj)
|
|
171
|
+
const oldEditFlags = []
|
|
172
|
+
configs.forEach(labelInfo => {
|
|
173
|
+
const oldEditFlag = labelInfo && labelInfo.editFlag
|
|
174
|
+
oldEditFlags.push(oldEditFlag)
|
|
175
|
+
labelInfo && (labelInfo.editFlag = '0')
|
|
176
|
+
})
|
|
177
|
+
// 有的事件在不满足条件的情况下,需要进行恢复
|
|
178
|
+
return () => {
|
|
179
|
+
configs.forEach((labelInfo, idx) => {
|
|
180
|
+
const oldEditFlag = oldEditFlags[idx]
|
|
181
|
+
labelInfo && (labelInfo.editFlag = oldEditFlag)
|
|
182
|
+
})
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
setRequired(event, isInit, tabpanelCode) {
|
|
186
|
+
const { targetObj: target } = event
|
|
187
|
+
if (!target) return
|
|
188
|
+
const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
|
|
189
|
+
const configs = getCurrentComp.call(this, targetObj)
|
|
190
|
+
configs.forEach(labelInfo => {
|
|
191
|
+
labelInfo && (labelInfo.requiredFlag = '1')
|
|
192
|
+
labelInfo && labelInfo.refConfig && (labelInfo.refConfig.requiredFlag = '1')
|
|
193
|
+
|
|
194
|
+
})
|
|
195
|
+
// 有的事件在不满足条件的情况下,需要进行恢复
|
|
196
|
+
return () => {
|
|
197
|
+
configs.forEach(labelInfo => {
|
|
198
|
+
labelInfo && (labelInfo.requiredFlag = '0')
|
|
199
|
+
labelInfo && labelInfo.refConfig && (labelInfo.refConfig.requiredFlag = '0')
|
|
200
|
+
})
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
setRequiredNotEffect(event, isInit, tabpanelCode) {
|
|
204
|
+
const { targetObj: target } = event
|
|
205
|
+
if (!target) return
|
|
206
|
+
const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
|
|
207
|
+
const configs = getCurrentComp.call(this, targetObj)
|
|
208
|
+
|
|
209
|
+
const oldRequiredFlags = []
|
|
210
|
+
configs.forEach(labelInfo => {
|
|
211
|
+
const oldRequiredFlag = labelInfo && labelInfo.requiredFlag
|
|
212
|
+
oldRequiredFlags.push(oldRequiredFlag)
|
|
213
|
+
labelInfo && (labelInfo.requiredFlag = '1')
|
|
214
|
+
labelInfo && labelInfo.refConfig && (labelInfo.refConfig.requiredFlag = '1')
|
|
215
|
+
})
|
|
216
|
+
// 有的事件在不满足条件的情况下,需要进行恢复
|
|
217
|
+
return () => {
|
|
218
|
+
configs.forEach((labelInfo, idx) => {
|
|
219
|
+
const oldRequiredFlag = oldRequiredFlags[idx]
|
|
220
|
+
labelInfo && (labelInfo.requiredFlag = oldRequiredFlag)
|
|
221
|
+
labelInfo && labelInfo.refConfig && (labelInfo.refConfig.requiredFlag = oldRequiredFlag)
|
|
222
|
+
})
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
setHidden(event, isInit, tabpanelCode) {
|
|
226
|
+
const { targetObj: target } = event
|
|
227
|
+
if (!target) return
|
|
228
|
+
const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
|
|
229
|
+
const configs = getCurrentComp.call(this, targetObj, 'setHidden')
|
|
230
|
+
// const oldDisplayTypes = []
|
|
231
|
+
// 隐藏的效果需要晚点触发,才能正常执行清空等一些列需要组件操作
|
|
232
|
+
setTimeout(() => {
|
|
233
|
+
configs.forEach(labelInfo => {
|
|
234
|
+
// const oldDisplayType = labelInfo && labelInfo.displayType
|
|
235
|
+
// oldDisplayTypes.push(oldDisplayType)
|
|
236
|
+
// 兼容开始使用displayType用于显示隐藏的配置
|
|
237
|
+
labelInfo && /^\d+$/.test(labelInfo.displayType) && (labelInfo.displayType = '0')
|
|
238
|
+
labelInfo && (labelInfo.hidden = '1')
|
|
239
|
+
labelInfo && labelInfo.refConfig && (labelInfo.refConfig.displayType = '0')
|
|
240
|
+
labelInfo && labelInfo.refConfig && (labelInfo.refConfig.hidden = '1')
|
|
241
|
+
})
|
|
242
|
+
}, 0)
|
|
243
|
+
|
|
244
|
+
// 有的事件在不满足条件的情况下,需要进行恢复
|
|
245
|
+
return () => {
|
|
246
|
+
configs.forEach((labelInfo, idx) => {
|
|
247
|
+
// const oldDisplayType = oldDisplayTypes[idx]
|
|
248
|
+
labelInfo && /^\d+$/.test(labelInfo.displayType) && (labelInfo.displayType = '1')
|
|
249
|
+
labelInfo && (labelInfo.hidden = '0')
|
|
250
|
+
labelInfo && labelInfo.refConfig && (labelInfo.refConfig.displayType = '1')
|
|
251
|
+
labelInfo && labelInfo.refConfig && (labelInfo.refConfig.hidden = '0')
|
|
252
|
+
})
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
setShow(event, isInit, tabpanelCode, rule) {
|
|
256
|
+
const { targetObj: target } = event
|
|
257
|
+
if (!target) return
|
|
258
|
+
const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
|
|
259
|
+
const configs = getCurrentComp.call(this, targetObj, 'setShow')
|
|
260
|
+
// const oldDisplayTypes = []
|
|
261
|
+
configs.forEach((labelInfo) => {
|
|
262
|
+
// const oldDisplayType = labelInfo && labelInfo.displayType
|
|
263
|
+
// oldDisplayTypes.push(oldDisplayType)
|
|
264
|
+
labelInfo && /^\d+$/.test(labelInfo.displayType) && (labelInfo.displayType = '1')
|
|
265
|
+
labelInfo && (labelInfo.hidden = '0')
|
|
266
|
+
labelInfo && labelInfo.refConfig && (labelInfo.refConfig.displayType = '1')
|
|
267
|
+
labelInfo && labelInfo.refConfig && (labelInfo.refConfig.hidden = '0')
|
|
268
|
+
})
|
|
269
|
+
// 有的事件在不满足条件的情况下,需要进行恢复
|
|
270
|
+
return () => {
|
|
271
|
+
// 隐藏的效果需要晚点触发,才能正常执行清空等一些列需要组件操作
|
|
272
|
+
return setTimeout(() => {
|
|
273
|
+
configs.forEach((labelInfo, idx) => {
|
|
274
|
+
// const oldDisplayType = oldDisplayTypes[idx]
|
|
275
|
+
labelInfo && /^\d+$/.test(labelInfo.displayType) && (labelInfo.displayType = '0')
|
|
276
|
+
labelInfo && (labelInfo.hidden = '1')
|
|
277
|
+
labelInfo && labelInfo.refConfig && (labelInfo.refConfig.displayType = '0')
|
|
278
|
+
labelInfo && labelInfo.refConfig && (labelInfo.refConfig.hidden = '1')
|
|
279
|
+
})
|
|
280
|
+
}, 0)
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
setNoRequired(event, isInit, tabpanelCode) {
|
|
284
|
+
const { targetObj: target } = event
|
|
285
|
+
if (!target) return
|
|
286
|
+
const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
|
|
287
|
+
const configs = getCurrentComp.call(this, targetObj)
|
|
288
|
+
|
|
289
|
+
const callFns = []
|
|
290
|
+
configs.forEach(labelInfo => {
|
|
291
|
+
if (labelInfo && labelInfo.requiredFlag != '0') {
|
|
292
|
+
labelInfo && (labelInfo.requiredFlag = '0')
|
|
293
|
+
// 有的事件在不满足条件的情况下,需要进行恢复
|
|
294
|
+
callFns.push(() => {
|
|
295
|
+
labelInfo && (labelInfo.requiredFlag = '1')
|
|
296
|
+
})
|
|
297
|
+
}
|
|
298
|
+
})
|
|
299
|
+
return () => {
|
|
300
|
+
callFns.forEach(fn => fn())
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
setNoRequiredNotEffect(event, isInit, tabpanelCode) {
|
|
304
|
+
const { targetObj: target } = event
|
|
305
|
+
if (!target) return
|
|
306
|
+
const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
|
|
307
|
+
const configs = getCurrentComp.call(this, targetObj)
|
|
308
|
+
|
|
309
|
+
const oldRequiredFlags = []
|
|
310
|
+
configs.forEach(labelInfo => {
|
|
311
|
+
const oldRequiredFlag = labelInfo && labelInfo.requiredFlag
|
|
312
|
+
oldRequiredFlags.push(oldRequiredFlag)
|
|
313
|
+
labelInfo && (labelInfo.requiredFlag = '0')
|
|
314
|
+
})
|
|
315
|
+
|
|
316
|
+
// 有的事件在不满足条件的情况下,需要进行恢复
|
|
317
|
+
return () => {
|
|
318
|
+
configs.forEach((labelInfo, idx) => {
|
|
319
|
+
const oldRequiredFlag = oldRequiredFlags[idx]
|
|
320
|
+
labelInfo && (labelInfo.requiredFlag = oldRequiredFlag)
|
|
321
|
+
})
|
|
322
|
+
}
|
|
323
|
+
},
|
|
324
|
+
setNoDisable(event, isInit, tabpanelCode) {
|
|
325
|
+
const { targetObj: target } = event
|
|
326
|
+
if (!target) return
|
|
327
|
+
const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
|
|
328
|
+
const configs = getCurrentComp.call(this, targetObj)
|
|
329
|
+
configs.forEach((labelInfo) => {
|
|
330
|
+
labelInfo && (labelInfo.editFlag = '1')
|
|
331
|
+
})
|
|
332
|
+
// 有的事件在不满足条件的情况下,需要进行恢复
|
|
333
|
+
return () => {
|
|
334
|
+
configs.forEach((labelInfo) => {
|
|
335
|
+
labelInfo && (labelInfo.editFlag = '0')
|
|
336
|
+
})
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
setNoDisableNotEffect(event, isInit, tabpanelCode) {
|
|
340
|
+
const { targetObj: target } = event
|
|
341
|
+
if (!target) return
|
|
342
|
+
const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
|
|
343
|
+
const configs = getCurrentComp.call(this, targetObj)
|
|
344
|
+
const oldEditFlags = []
|
|
345
|
+
configs.forEach((labelInfo) => {
|
|
346
|
+
const oldEditFlag = labelInfo && labelInfo.editFlag
|
|
347
|
+
oldEditFlags.push(oldEditFlag)
|
|
348
|
+
labelInfo && (labelInfo.editFlag = '1')
|
|
349
|
+
})
|
|
350
|
+
|
|
351
|
+
// 有的事件在不满足条件的情况下,需要进行恢复
|
|
352
|
+
return () => {
|
|
353
|
+
configs.forEach((labelInfo, idx) => {
|
|
354
|
+
const oldEditFlag = oldEditFlags[idx]
|
|
355
|
+
labelInfo && (labelInfo.editFlag = oldEditFlag)
|
|
356
|
+
})
|
|
357
|
+
}
|
|
358
|
+
},
|
|
359
|
+
limitDataRange(event, isInit, tabpanelCode) {
|
|
360
|
+
const { targetObj: target, targetObjVal = '' } = event
|
|
361
|
+
if (!target) return
|
|
362
|
+
const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
|
|
363
|
+
let range = []
|
|
364
|
+
if (targetObjVal?.indexOf('~') > -1) {
|
|
365
|
+
range = targetObjVal.split('~')
|
|
366
|
+
} else {
|
|
367
|
+
range = targetObjVal.split(',')
|
|
368
|
+
}
|
|
369
|
+
if (range && range.length) {
|
|
370
|
+
const oldPorpsList = []
|
|
371
|
+
const configs = getCurrentComp.call(this, targetObj)
|
|
372
|
+
configs.forEach(config => {
|
|
373
|
+
let updateFlag = false
|
|
374
|
+
const oldProps = {}
|
|
375
|
+
oldPorpsList.push(oldProps)
|
|
376
|
+
if (!config) return
|
|
377
|
+
const { config: currentConfig } = this
|
|
378
|
+
let val = ''
|
|
379
|
+
if (findComponent(['ElDatePicker'], config?.renderby || config?.metaType) !== -1) {
|
|
380
|
+
const min = range[0]
|
|
381
|
+
const max = range[1]
|
|
382
|
+
try {
|
|
383
|
+
val = parseExtendAttr(
|
|
384
|
+
{
|
|
385
|
+
extendAttr: JSON.stringify({min, max}),
|
|
386
|
+
metaCode: `event limitDataRange code:${config.metaCode}`
|
|
387
|
+
},
|
|
388
|
+
currentConfig?.bindValue
|
|
389
|
+
)
|
|
390
|
+
} catch (err) {
|
|
391
|
+
val = ''
|
|
392
|
+
}
|
|
393
|
+
} else if (findComponent(['ElSelect'], config?.renderby || config?.metaType) !== -1) {
|
|
394
|
+
try {
|
|
395
|
+
console.log('event==:', event)
|
|
396
|
+
val = parseExtendAttr(
|
|
397
|
+
{
|
|
398
|
+
extendAttr: JSON.stringify({rangeOptions: range}),
|
|
399
|
+
metaCode: `event limitDataRange code:${config.metaCode}`
|
|
400
|
+
},
|
|
401
|
+
currentConfig?.bindValue
|
|
402
|
+
)
|
|
403
|
+
} catch (err) {
|
|
404
|
+
val = ''
|
|
405
|
+
}
|
|
406
|
+
} else {
|
|
407
|
+
const currentVal = getConfigValue.call(this, targetObj, true)
|
|
408
|
+
if (min && lessThan(currentVal, min)) {
|
|
409
|
+
setFormVal.call(this, config, min)
|
|
410
|
+
}
|
|
411
|
+
if (max && greaterThan(currentVal, max)) {
|
|
412
|
+
setFormVal.call(this, config, max)
|
|
413
|
+
}
|
|
414
|
+
return
|
|
415
|
+
}
|
|
416
|
+
delete val.metaCode
|
|
417
|
+
if (!isPlainObject(val)) return
|
|
418
|
+
const porpsKeys = Object.keys(val)
|
|
419
|
+
porpsKeys.forEach(key => {
|
|
420
|
+
oldProps[key] = config[key]
|
|
421
|
+
if (!hasOwn(config, key)) {
|
|
422
|
+
// 如果有一个属性没有,就需要更新下组件,防止渲染不及时
|
|
423
|
+
updateFlag = true
|
|
424
|
+
}
|
|
425
|
+
if ((typeof val[key]) === 'string') {
|
|
426
|
+
const { config: currentConfig } = this
|
|
427
|
+
const bindValue = currentConfig?.bindValue
|
|
428
|
+
config[key] = val[key].replace(/\{([^}]+)\}/g, (originVal, matchVal) => {
|
|
429
|
+
if (matchVal.trimEnd().trimStart() === ARG_FLAGS.REF_VAL) {
|
|
430
|
+
return bindValue
|
|
431
|
+
}
|
|
432
|
+
if (matchVal.trimEnd().trimStart() === ARG_FLAGS.CURRENT_DATE) {
|
|
433
|
+
return formatDate(new Date(), 'yyyy-MM-dd')
|
|
434
|
+
}
|
|
435
|
+
return originVal
|
|
436
|
+
})
|
|
437
|
+
} else {
|
|
438
|
+
config[key] = val[key]
|
|
439
|
+
}
|
|
440
|
+
})
|
|
441
|
+
if (updateFlag) {
|
|
442
|
+
config?.wrapVm?.proxy?.$forceUpdate?.()
|
|
443
|
+
}
|
|
444
|
+
})
|
|
445
|
+
return () => {
|
|
446
|
+
// 需要晚点触发,才能正常执行清空等一些列需要组件操作
|
|
447
|
+
// return setTimeout(() => {
|
|
448
|
+
configs.forEach((labelInfo, idx) => {
|
|
449
|
+
const oldProps = oldPorpsList[idx]
|
|
450
|
+
if (!labelInfo) return
|
|
451
|
+
const porpsKeys = Object.keys(oldProps)
|
|
452
|
+
porpsKeys.forEach(key => {
|
|
453
|
+
labelInfo[key] = oldProps[key]
|
|
454
|
+
})
|
|
455
|
+
})
|
|
456
|
+
// }, 0)
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
},
|
|
460
|
+
setPopup(event, isInit, tabpanelCode) {
|
|
461
|
+
const { targetMsg, targetMsgEn } = event
|
|
462
|
+
const msg = this.lang.value.indexOf('zh') > -1 ? targetMsg : targetMsgEn
|
|
463
|
+
this.messageInstance.warning(msg, '', {
|
|
464
|
+
showCancelButton: false,
|
|
465
|
+
});
|
|
466
|
+
// commModal({
|
|
467
|
+
// msg: storage.get('aid-language').indexOf('zh') !== -1 ? targetMsg : targetMsgEn
|
|
468
|
+
// })
|
|
469
|
+
// document && document.body && document.body.click()
|
|
470
|
+
},
|
|
471
|
+
openThePage(event, isInit, tabpanelCode) {
|
|
472
|
+
const { targetObjVal } = event
|
|
473
|
+
if (targetObjVal) {
|
|
474
|
+
window.open(targetObjVal, '_blank')
|
|
475
|
+
}
|
|
476
|
+
},
|
|
477
|
+
setProps(event, isInit, tabpanelCode, rule) {
|
|
478
|
+
const { targetObj: target, targetObjVal } = event
|
|
479
|
+
if (!target) return
|
|
480
|
+
|
|
481
|
+
const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
|
|
482
|
+
const { config } = this
|
|
483
|
+
let val = ''
|
|
484
|
+
try {
|
|
485
|
+
val = parseExtendAttr(
|
|
486
|
+
{
|
|
487
|
+
extendAttr: targetObjVal,
|
|
488
|
+
metaCode: `event setPorps code:${config.metaCode}`
|
|
489
|
+
},
|
|
490
|
+
config?.bindValue
|
|
491
|
+
)
|
|
492
|
+
} catch (err) {
|
|
493
|
+
val = ''
|
|
494
|
+
}
|
|
495
|
+
delete val.metaCode
|
|
496
|
+
if (!isPlainObject(val)) return
|
|
497
|
+
|
|
498
|
+
const configs = getCurrentComp.call(this, targetObj)
|
|
499
|
+
const oldPorpsList = []
|
|
500
|
+
const porpsKeys = Object.keys(val)
|
|
501
|
+
configs.forEach((labelInfo) => {
|
|
502
|
+
let updateFlag = false
|
|
503
|
+
const oldProps = {}
|
|
504
|
+
if (!labelInfo) return
|
|
505
|
+
porpsKeys.forEach(key => {
|
|
506
|
+
oldProps[key] = labelInfo[key]
|
|
507
|
+
if (!hasOwn(labelInfo, key)) {
|
|
508
|
+
// 如果有一个属性没有,就需要更新下组件,防止渲染不及时
|
|
509
|
+
updateFlag = true
|
|
510
|
+
}
|
|
511
|
+
if ((typeof val[key]) === 'string') {
|
|
512
|
+
const { config } = this
|
|
513
|
+
const bindValue = config?.bindValue
|
|
514
|
+
labelInfo[key] = val[key].replace(/\{([^}]+)\}/g, (originVal, matchVal) => {
|
|
515
|
+
if (matchVal.trimEnd().trimStart() === ARG_FLAGS.REF_VAL) {
|
|
516
|
+
return bindValue
|
|
517
|
+
}
|
|
518
|
+
if (matchVal.trimEnd().trimStart() === ARG_FLAGS.CURRENT_DATE) {
|
|
519
|
+
return formatDate(new Date(), 'yyyy-MM-dd')
|
|
520
|
+
}
|
|
521
|
+
return originVal
|
|
522
|
+
})
|
|
523
|
+
} else {
|
|
524
|
+
labelInfo[key] = val[key]
|
|
525
|
+
}
|
|
526
|
+
})
|
|
527
|
+
oldPorpsList.push(oldProps)
|
|
528
|
+
if (updateFlag) {
|
|
529
|
+
labelInfo?.wrapVm?.proxy?.$forceUpdate?.()
|
|
530
|
+
}
|
|
531
|
+
})
|
|
532
|
+
// 有的事件在不满足条件的情况下,需要进行恢复
|
|
533
|
+
return () => {
|
|
534
|
+
// 需要晚点触发,才能正常执行清空等一些列需要组件操作
|
|
535
|
+
// return setTimeout(() => {
|
|
536
|
+
configs.forEach((labelInfo, idx) => {
|
|
537
|
+
const oldProps = oldPorpsList[idx]
|
|
538
|
+
if (!labelInfo) return
|
|
539
|
+
porpsKeys.forEach(key => {
|
|
540
|
+
labelInfo[key] = oldProps[key]
|
|
541
|
+
})
|
|
542
|
+
})
|
|
543
|
+
// }, 0)
|
|
544
|
+
}
|
|
545
|
+
},
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
|
|
549
|
+
export default allInitEvents
|
|
550
|
+
|
|
551
|
+
export function runEvent({events, rootValue, mapComp, currentPath, isInit, rule,}) {
|
|
552
|
+
events = events || []
|
|
553
|
+
return events.map(event => {
|
|
554
|
+
const { eventId } = event
|
|
555
|
+
const eventCode = eventsMap[eventId]
|
|
556
|
+
return allInitEvents[eventCode] && allInitEvents[eventCode]({event, rootValue, mapComp, route, lang, currentPath, isInit, rule,})
|
|
557
|
+
})
|
|
558
|
+
}
|
|
559
|
+
|