resolver-egretimp-plus 0.0.8 → 0.0.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "resolver-egretimp-plus",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "description": "交付体验渲染",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -11,7 +11,7 @@
11
11
  "scripts": {
12
12
  "build:package": "webpack --config scripts/webpack.config.js",
13
13
  "build:theme": "gulp -f scripts/gulpfile.mjs",
14
- "build": "pnpm run build:package && pnpm run build:theme"
14
+ "build": "npm run build:package && npm run build:theme"
15
15
  },
16
16
  "author": "caowb",
17
17
  "license": "ISC",
@@ -21,8 +21,14 @@
21
21
  "@vue/babel-plugin-jsx": "^1.2.2",
22
22
  "@vue/cli-plugin-babel": "^5.0.8",
23
23
  "@vue/compiler-sfc": "^3.4.29",
24
+ "@vueuse/core": "^10.11.1",
25
+ "axios": "^1.7.7",
24
26
  "babel-loader": "^9.1.3",
25
27
  "consola": "^3.2.3",
28
+ "core-js-pure": "^3.38.1",
29
+ "css-loader": "^7.1.2",
30
+ "dayjs": "^1.11.13",
31
+ "element-plus": "^2.7.6",
26
32
  "gulp": "^4.0.0",
27
33
  "gulp-autoprefixer": "^9.0.0",
28
34
  "gulp-clean-css": "^4.3.0",
@@ -32,15 +38,12 @@
32
38
  "lodash-es": "^4.17.21",
33
39
  "mini-css-extract-plugin": "^2.9.0",
34
40
  "node-sass": "^9.0.0",
35
- "sass": "^1.53.0",
41
+ "sass": "1.77.6",
36
42
  "sass-loader": "^14.2.1",
37
43
  "vue-loader": "^17.4.2",
44
+ "vue-style-loader": "^4.1.3",
45
+ "vue3-quill": "^0.3.1",
38
46
  "webpack": "^5.90.0",
39
47
  "webpack-cli": "^5.1.4"
40
- },
41
- "dependencies": {
42
- "@vueuse/core": "^10.11.0",
43
- "axios": "^1.7.7",
44
- "vue3-quill": "^0.3.1"
45
48
  }
46
49
  }
@@ -30,7 +30,7 @@ function buildThemeChalk() {
30
30
  const sass = gulpSass(dartSass)
31
31
  const stream = src(path.resolve(__dirname, '../src/theme/element/index.scss'))
32
32
  .pipe(sass({
33
- includePaths: ['../node_modules'] // 添加
33
+ includePaths: [path.resolve(__dirname, '../node_modules')] // 添加
34
34
  }))
35
35
  .pipe(autoprefixer({ cascade: false }))
36
36
  .pipe(
@@ -1,5 +1,5 @@
1
1
  const path = require('path')
2
- const { VueLoaderPlugin } = require('vue-loader')
2
+ const { VueLoaderPlugin, default: loader } = require('vue-loader')
3
3
 
4
4
  module.exports = {
5
5
  mode: 'production',
@@ -24,7 +24,16 @@ module.exports = {
24
24
  },
25
25
  {
26
26
  test: /\.vue$/,
27
- loader: 'vue-loader',
27
+ use: [
28
+ {
29
+ loader: 'vue-loader',
30
+ options: {
31
+ compilerOptions: {
32
+ isCustomElement: tag => tag.startsWith('cmi-')
33
+ }
34
+ }
35
+ }
36
+ ],
28
37
  },
29
38
  {
30
39
  test: /\.less$/,
@@ -58,6 +67,7 @@ module.exports = {
58
67
  },
59
68
  externals: {
60
69
  vue: 'vue',
70
+ 'cmid-dev': 'cmid-dev',
61
71
  'element-plus': 'element-plus',
62
72
  'vue-router': 'vue-router',
63
73
  'element-plus/es/hooks/index.mjs': 'element-plus/es/hooks/index.mjs',
package/src/index.jsx CHANGED
@@ -5,7 +5,6 @@ import { usePageConfig } from './hooks/pageConfig'
5
5
  import { toValidate } from './utils/valid.js'
6
6
  import { MODE } from "./utils/const.js"
7
7
  import { generateRequester } from "./utils/request.js"
8
-
9
8
  export default {
10
9
  name: 'Resolver',
11
10
  props: {
@@ -276,10 +276,22 @@ export function parseRuleForRefCodeAndEvents(rule) {
276
276
  const expressObj = JSON.parse(eventExpress)
277
277
  const { conditions = [] } = expressObj
278
278
  conditions.forEach(condition => {
279
- codeRules.push({
280
- key: tabpanelCode ? `${tabpanelCode}->${condition.refCode || condition.refValue}` : condition.refCode || condition.refValue,
281
- rules: [rule]
282
- })
279
+ if (condition.refType == conditionType.COMPONENT || condition.targetType == conditionType.COMPONENT) {
280
+ if (condition.refType == conditionType.COMPONENT) {
281
+ codeRules.push({
282
+ key: tabpanelCode ? `${tabpanelCode}->${condition.refCode || condition.refValue}` : condition.refCode || condition.refValue,
283
+ rules: [rule]
284
+ })
285
+ }
286
+ if (condition.targetType == conditionType.COMPONENT) {
287
+ codeRules.push({
288
+ key: tabpanelCode ? `${tabpanelCode}->${condition.targetValue}` : condition.targetValue,
289
+ rules: [rule]
290
+ })
291
+ }
292
+ } else {
293
+
294
+ }
283
295
  });
284
296
  return codeRules
285
297
  }
@@ -0,0 +1,412 @@
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
+ import { DISPLAY_HIDDEN, DISPLAY_SHOW } from '../utils'
21
+ import {
22
+ getConfigValue,
23
+ getCurrentComp,
24
+ greaterThan,
25
+ setFormVal,
26
+ lessThan
27
+ } from './ruleUtils'
28
+
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
+ }
47
+
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
+ }
69
+ },
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
+ }
87
+ },
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
+ }
102
+ },
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
+ })
122
+ },
123
+ setDefaultValue(event, isInit, tabpanelCode) {
124
+ const { targetObj: target, targetObjVal } = event
125
+ if (!target) return
126
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
127
+ let val = ''
128
+ try {
129
+ val = JSON.parse(targetObjVal)
130
+ } catch (err) {
131
+ val = targetObjVal
132
+ }
133
+ if (typeof val === 'number') {
134
+ val = `${val}`
135
+ }
136
+ if (val === ARG_FLAGS.REF_VAL) {
137
+ const { config } = this
138
+ val = config?.bindValue
139
+ } else {
140
+ const _absoluteTarget = /^_absoluteTarget:(.+)$/
141
+ const matchs = val.match(_absoluteTarget)
142
+ if (typeof val === 'string' && matchs?.[1]) {
143
+ const { dynamicMapComp } = this
144
+ const targetConfig = dynamicMapComp?.[matchs[1]]
145
+ val = targetConfig?.bindValue || ''
146
+ } else {
147
+ const curVal = getConfigValue.call(this, targetObj, true)
148
+ if (curVal || curVal == '0') {
149
+ val = curVal
150
+ }
151
+ }
152
+ }
153
+ setFormVal.call(this, targetObj, val)
154
+ },
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)
222
+ }
223
+ },
224
+ setNoRequired(event, isInit, tabpanelCode) {
225
+ const { targetObj: target } = event
226
+ if (!target) return
227
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
228
+ const configs = getCurrentComp.call(this, targetObj)
229
+
230
+ const callFns = []
231
+ configs.forEach(labelInfo => {
232
+ if (labelInfo && labelInfo.requiredFlag != '0') {
233
+ labelInfo && (labelInfo.requiredFlag = '0')
234
+ // 有的事件在不满足条件的情况下,需要进行恢复
235
+ callFns.push(() => {
236
+ labelInfo && (labelInfo.requiredFlag = '1')
237
+ })
238
+ }
239
+ })
240
+ return () => {
241
+ callFns.forEach(fn => fn())
242
+ }
243
+ },
244
+ setNoDisable(event, isInit, tabpanelCode) {
245
+ const { targetObj: target } = event
246
+ if (!target) return
247
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
248
+ const configs = getCurrentComp.call(this, targetObj)
249
+ configs.forEach((labelInfo) => {
250
+ labelInfo && (labelInfo.editFlag = '1')
251
+ })
252
+ // 有的事件在不满足条件的情况下,需要进行恢复
253
+ return () => {
254
+ configs.forEach((labelInfo) => {
255
+ labelInfo && (labelInfo.editFlag = '0')
256
+ })
257
+ }
258
+ },
259
+ setDisableNotEffect(event, isInit, tabpanelCode) {
260
+ const { targetObj: target } = event
261
+ if (!target) return
262
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
263
+ const configs = getCurrentComp.call(this, targetObj)
264
+ const oldEditFlags = []
265
+ configs.forEach(labelInfo => {
266
+ const oldEditFlag = labelInfo && labelInfo.editFlag
267
+ oldEditFlags.push(oldEditFlag)
268
+ labelInfo && (labelInfo.editFlag = '0')
269
+ })
270
+ // 有的事件在不满足条件的情况下,需要进行恢复
271
+ return () => {
272
+ configs.forEach((labelInfo, idx) => {
273
+ const oldEditFlag = oldEditFlags[idx]
274
+ labelInfo && (labelInfo.editFlag = oldEditFlag)
275
+ })
276
+ }
277
+ },
278
+ setRequiredNotEffect(event, isInit, tabpanelCode) {
279
+ const { targetObj: target } = event
280
+ if (!target) return
281
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
282
+ const configs = getCurrentComp.call(this, targetObj)
283
+
284
+ const oldRequiredFlags = []
285
+ configs.forEach(labelInfo => {
286
+ const oldRequiredFlag = labelInfo && labelInfo.requiredFlag
287
+ oldRequiredFlags.push(oldRequiredFlag)
288
+ labelInfo && (labelInfo.requiredFlag = '1')
289
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.requiredFlag = '1')
290
+ })
291
+ // 有的事件在不满足条件的情况下,需要进行恢复
292
+ return () => {
293
+ configs.forEach((labelInfo, idx) => {
294
+ const oldRequiredFlag = oldRequiredFlags[idx]
295
+ labelInfo && (labelInfo.requiredFlag = oldRequiredFlag)
296
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.requiredFlag = oldRequiredFlag)
297
+ })
298
+ }
299
+ },
300
+ setNoRequiredNotEffect(event, isInit, tabpanelCode) {
301
+ const { targetObj: target } = event
302
+ if (!target) return
303
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
304
+ const configs = getCurrentComp.call(this, targetObj)
305
+
306
+ const oldRequiredFlags = []
307
+ configs.forEach(labelInfo => {
308
+ const oldRequiredFlag = labelInfo && labelInfo.requiredFlag
309
+ oldRequiredFlags.push(oldRequiredFlag)
310
+ labelInfo && (labelInfo.requiredFlag = '0')
311
+ })
312
+
313
+ // 有的事件在不满足条件的情况下,需要进行恢复
314
+ return () => {
315
+ configs.forEach((labelInfo, idx) => {
316
+ const oldRequiredFlag = oldRequiredFlags[idx]
317
+ labelInfo && (labelInfo.requiredFlag = oldRequiredFlag)
318
+ })
319
+ }
320
+ },
321
+ setNoDisableNotEffect(event, isInit, tabpanelCode) {
322
+ const { targetObj: target } = event
323
+ if (!target) return
324
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
325
+ const configs = getCurrentComp.call(this, targetObj)
326
+ const oldEditFlags = []
327
+ configs.forEach((labelInfo) => {
328
+ const oldEditFlag = labelInfo && labelInfo.editFlag
329
+ oldEditFlags.push(oldEditFlag)
330
+ labelInfo && (labelInfo.editFlag = '1')
331
+ })
332
+
333
+ // 有的事件在不满足条件的情况下,需要进行恢复
334
+ return () => {
335
+ configs.forEach((labelInfo, idx) => {
336
+ const oldEditFlag = oldEditFlags[idx]
337
+ labelInfo && (labelInfo.editFlag = oldEditFlag)
338
+ })
339
+ }
340
+ },
341
+ setProps(event, isInit, tabpanelCode, rule) {
342
+ const { targetObj: target, targetObjVal } = event
343
+ if (!target) return
344
+
345
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
346
+ const { config } = this
347
+ let val = ''
348
+ try {
349
+ val = parseExtendAttr(
350
+ {
351
+ extendAttr: targetObjVal,
352
+ metaCode: `event setPorps code:${config.metaCode}`
353
+ },
354
+ config?.bindValue
355
+ )
356
+ } catch (err) {
357
+ val = ''
358
+ }
359
+ if (!isPlainObject(val)) return
360
+
361
+ const configs = getCurrentComp.call(this, targetObj)
362
+ const oldPorpsList = []
363
+ const porpsKeys = Object.keys(val)
364
+ // if (target.indexOf('amountBilled') > -1) {
365
+ // debugger
366
+ // }
367
+ configs.forEach((labelInfo) => {
368
+ let updateFlag = false
369
+ const oldProps = {}
370
+ if (!labelInfo) return
371
+ porpsKeys.forEach(key => {
372
+ oldProps[key] = labelInfo[key]
373
+ if (!hasOwn(labelInfo, key)) {
374
+ // 如果有一个属性没有,就需要更新下组件,防止渲染不及时
375
+ updateFlag = true
376
+ }
377
+ if ((typeof val[key]) === 'string') {
378
+ const { config } = this
379
+ const bindValue = config?.bindValue
380
+ labelInfo[key] = val[key].replace(/\{([^}]+)\}/g, (originVal, matchVal) => {
381
+ if (matchVal.trimEnd().trimStart() === ARG_FLAGS.REF_VAL) {
382
+ return bindValue
383
+ }
384
+ if (matchVal.trimEnd().trimStart() === ARG_FLAGS.CURRENT_DATE) {
385
+ return formatDate(new Date(), 'yyyy-MM-dd')
386
+ }
387
+ return originVal
388
+ })
389
+ } else {
390
+ labelInfo[key] = val[key]
391
+ }
392
+ })
393
+ oldPorpsList.push(oldProps)
394
+ if (updateFlag) {
395
+ labelInfo?.wrapVm?.ctx?.$forceUpdate?.()
396
+ }
397
+ })
398
+ // 有的事件在不满足条件的情况下,需要进行恢复
399
+ return () => {
400
+ // 需要晚点触发,才能正常执行清空等一些列需要组件操作
401
+ return setTimeout(() => {
402
+ configs.forEach((labelInfo, idx) => {
403
+ const oldProps = oldPorpsList[idx]
404
+ if (!labelInfo) return
405
+ porpsKeys.forEach(key => {
406
+ labelInfo[key] = oldProps[key]
407
+ })
408
+ })
409
+ }, 0)
410
+ }
411
+ },
412
+ }
File without changes
@@ -0,0 +1,13 @@
1
+
2
+
3
+ class RuleDriver {
4
+ constructor() {
5
+
6
+ }
7
+ executeRule(rule) {
8
+
9
+ }
10
+ executeRules(rules) {
11
+
12
+ }
13
+ }
File without changes
File without changes
@@ -488,7 +488,7 @@ function generateFormItemPc (config, lang, compProps, params,) {
488
488
  return node
489
489
  }
490
490
 
491
- if (!config.needformItem && !config.showFromItem) {
491
+ if (!config.needformItem && !config.showFormItem) {
492
492
  return node
493
493
  }
494
494
  const slots = {}
@@ -504,7 +504,7 @@ function generateFormItemPc (config, lang, compProps, params,) {
504
504
 
505
505
  function generateFormItemH5(config, lang, compProps, params) {
506
506
  return node => {
507
- if (!config.needformItem && !config.showFromItem) {
507
+ if (!config.needformItem && !config.showFormItem) {
508
508
  return node
509
509
  }
510
510
  const props = {