resolver-egretimp-plus 0.1.121 → 0.1.123

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.
@@ -1,7 +1,7 @@
1
1
  import { getCodeMapRules } from '../rules/rulesDriver.js'
2
2
  import SimpleFormItemPc from '../components/simpleFormItemPc'
3
3
  import { resolveAssetComponents, findComponent, compareComponet, normalPixel, isPlainObject, hasOwn, isFnStr, normalCapitalizeComponent, capitalize, camelize, formatDate, definePrivatelyProp, extend, getPathVal, cloneDeep, generateUniqueId} from './common.js'
4
- import { resolveComponent, inject, watch, unref, markRaw } from 'vue'
4
+ import { resolveComponent, inject, watch, unref, markRaw, reactive } from 'vue'
5
5
  import CustomComponentColH5 from '../components/packages-H5/CustomComponentColH5.vue'
6
6
  import {
7
7
  commonPropsType,
@@ -39,6 +39,7 @@ import loadModule from './loadModule.js'
39
39
  import { h } from 'vue'
40
40
  import dayjs from 'dayjs'
41
41
  import { OPEN_DATA_RULES } from '../config.js'
42
+ import { useVmodels } from '../hooks/reactive.js'
42
43
 
43
44
  export const COFNGI_KEY_EVENT_FLAG = /^on[A-Z]/
44
45
 
@@ -138,6 +139,7 @@ export function parsePageConfig({
138
139
  const hireRelatMapRules = getCodeMapRules(config._originConfig)
139
140
  // formConfig.pmPageMetaList = config.pmPageMetaList
140
141
  const cbs = []
142
+ window?.performance?.mark('noraml_config_start')
141
143
  let { pageConfig, mapComp } = normalConfig({
142
144
  requestTraceId,
143
145
  dialogReq,
@@ -159,12 +161,50 @@ export function parsePageConfig({
159
161
  cbs.forEach((cb) => {
160
162
  cb()
161
163
  })
164
+ window?.performance?.mark('noraml_config_end')
165
+ console.log('noraml_config', window?.performance?.measure('noraml_config', 'noraml_config_start', 'noraml_config_end'))
162
166
  return {
163
167
  pageConfig,
164
168
  mapComp,
165
169
  hireRelatMapRules
166
170
  }
167
171
  }
172
+
173
+ // 数组中行数据位置变了,需要控制multipagemtalist中的配置对应正确的dynamicMapComp映射
174
+ function correctConfigDynamicMap(dynamicMapComp, dynamicHireRelat) {
175
+ if (dynamicMapComp[dynamicHireRelat]) {
176
+ // 替换倒数第二个的[idx]中的idx值
177
+ const existConfig = dynamicMapComp[dynamicHireRelat]
178
+ const changedDynamicHireRelat = dynamicHireRelat.replace(/([^->\[\]]*)(\[\d*\])(->[^->]*)$/, (_, b, c, d) => {
179
+ return `${b}[${existConfig.rowIndex}]${d}`
180
+ })
181
+ if (changedDynamicHireRelat !== dynamicHireRelat) {
182
+ correctConfigDynamicMapHandler({config: existConfig, dynamicMapComp, changedDynamicHireRelat})
183
+ }
184
+ }
185
+ }
186
+
187
+ function correctConfigDynamicMapHandler({config, dynamicMapComp, changedDynamicHireRelat}) {
188
+ if (changedDynamicHireRelat === config.dynamicHireRelat) {
189
+ return
190
+ }
191
+ config.dynamicHireRelat = changedDynamicHireRelat
192
+ correctConfigDynamicMap(dynamicMapComp, changedDynamicHireRelat)
193
+ dynamicMapComp[changedDynamicHireRelat] = config
194
+ if (config.pmPageMetaList && config.pmPageMetaList.length) {
195
+ if (isCycleConfig(config)) {
196
+ config.multiPmPageMetaList?.forEach((pmPageMetaList, idx) => {
197
+ pmPageMetaList.forEach(cg => {
198
+ correctConfigDynamicMapHandler({config: cg, dynamicMapComp, changedDynamicHireRelat: `${changedDynamicHireRelat}[${idx}]->${cg.metaCode}`})
199
+ })
200
+ })
201
+ } else {
202
+ config.pmPageMetaList.forEach(cg => {
203
+ correctConfigDynamicMapHandler({config: cg, dynamicMapComp, changedDynamicHireRelat: `${changedDynamicHireRelat}->${cg.metaCode}`})
204
+ })
205
+ }
206
+ }
207
+ }
168
208
  /**
169
209
  * {
170
210
  * children: [], // 子元素
@@ -188,13 +228,19 @@ export function normalConfig({
188
228
  parentRootValue,
189
229
  parentDynamicMapComp,
190
230
  noParsePageMetaList,
231
+ changeConfig,
232
+ notParseConfig,
191
233
  }, config, hireRelat = '', mapComp = {}, needformItem = false, dynamicHireRelat = '', unWatchsList = []) {
234
+
192
235
  const metaCode = config.metaCode || ''
193
- hireRelat += hireRelat ? `->${metaCode}` : metaCode
194
236
  dynamicHireRelat += dynamicHireRelat ? `->${metaCode}` : metaCode
195
-
237
+ hireRelat += hireRelat ? `->${metaCode}` : metaCode
196
238
  const originMetaType = config.metaType
197
- const metaType = normalMetaType(config.metaType)
239
+ let metaType = originMetaType
240
+
241
+ if (!notParseConfig) {
242
+ metaType = normalMetaType(config.metaType)
243
+ }
198
244
 
199
245
  // 这个对象是不可以被配置进行覆盖
200
246
  const extendNativeObj = {
@@ -206,79 +252,80 @@ export function normalConfig({
206
252
  wrapVm: null, // 当前组件的实例(也就是analysisComponent)
207
253
  hireRelat,
208
254
  parent: null, // 这个是执行过程中,动态获取的
209
- dynamicHireRelat: '', // 这个也是执行过程中,动态获取的层级
210
255
  }
211
256
 
212
257
  if (OPEN_DATA_RULES) {
213
- extendNativeObj.dynamicHireRelat = dynamicHireRelat
258
+ if (changeConfig) {
259
+ // 设置multiPmPageMetaList的时候,如果数组变了,如果数组中的值变换了位置,需要对dynamicMapComp设置正确的映射
260
+ correctConfigDynamicMap(dynamicMapComp, dynamicHireRelat)
261
+ }
262
+ config.dynamicHireRelat = dynamicHireRelat
214
263
  dynamicMapComp[dynamicHireRelat] = config
215
- // extendNativeObj._rootValue = rootValue
216
264
  definePrivatelyProp(config, '_rootValue', rootValue)
265
+ definePrivatelyProp(config, 'refValue', useVmodels(config).modelValue)
217
266
  }
218
267
 
219
- let extendAttrObj = parseExtendAttr(config)
220
- let extendObj = {
221
- removeCol: findComponent(NOT_NEED_COL_ITEM_META_TYPE, extendAttrObj.renderby) !== -1 || findComponent(NOT_NEED_COL_ITEM_META_TYPE, metaType) !== -1,
222
- needformItem: (findComponent(NOT_NEED_FORM_ITEM_META_TYPE, extendAttrObj.renderby) !== -1 || findComponent(NOT_NEED_FORM_ITEM_META_TYPE, metaType) !== -1) ? false : needformItem, // 表示这个配置项对应的渲染组件是否需要formItem进行包装 移动端是cmi-form-item
223
- }
224
- if (config.defStyle) {
225
- extendObj.style = parseDefStyle(config.defStyle)
226
- }
227
- // 组件是根据数据进行动态循环渲染,这边需要进行特殊处理,确保config配置项独立
228
- if (findComponent(MULTI_PAGE_META_LIST_TYPES, extendAttrObj.renderby) !== -1 || findComponent(MULTI_PAGE_META_LIST_TYPES, metaType) !== -1) {
229
- extendObj.multiPmPageMetaList = []
230
- }
231
- // let pageConfig = {
232
- // ...extendObj,
233
- // ...config,
234
- // ...extendAttrObj,
235
- // ...extendNativeObj,
236
- // }
237
-
238
- extend(config, extendObj, true)
239
- extend(config, extendAttrObj)
240
- extend(config, extendNativeObj)
268
+ if (!notParseConfig) {
269
+ let extendAttrObj = parseExtendAttr(config)
270
+ let extendObj = {
271
+ removeCol: findComponent(NOT_NEED_COL_ITEM_META_TYPE, extendAttrObj.renderby) !== -1 || findComponent(NOT_NEED_COL_ITEM_META_TYPE, metaType) !== -1,
272
+ needformItem: (findComponent(NOT_NEED_FORM_ITEM_META_TYPE, extendAttrObj.renderby) !== -1 || findComponent(NOT_NEED_FORM_ITEM_META_TYPE, metaType) !== -1) ? false : needformItem, // 表示这个配置项对应的渲染组件是否需要formItem进行包装 移动端是cmi-form-item
273
+ }
274
+ if (config.defStyle) {
275
+ extendObj.style = parseDefStyle(config.defStyle)
276
+ }
277
+ // 组件是根据数据进行动态循环渲染,这边需要进行特殊处理,确保config配置项独立
278
+ if (isCycleConfig({renderby: extendAttrObj.renderby, metaType})) {
279
+ extendObj.multiPmPageMetaList = reactive([])
280
+ }
281
+
282
+ extend(config, extendObj, true)
283
+ extend(config, extendAttrObj)
284
+ extend(config, extendNativeObj)
285
+ }
241
286
 
242
287
  let pageConfig = config
243
288
 
244
- if (originMetaType == 'textarea') {
245
- pageConfig.type = 'textarea'
246
- }
247
- if (originMetaType == 'time-range') {
248
- pageConfig['isRange'] = true
249
- }
250
- if (originMetaType == 'date-range') {
251
- pageConfig.type = 'daterange'
252
- }
253
- if (originMetaType == 'card' && !hasOwn(pageConfig, 'needWrap')) {
254
- pageConfig.needWrap = '1'
255
- }
256
- // 在详情的情况下,配置组件是否显示
257
- if (mode === MODE.DETAIL) {
258
- if (pageConfig.detailExtendAttr) {
259
- const detailExtendAttrObj = parseExtendAttr({
260
- extendAttr: typeof pageConfig.detailExtendAttr === 'string' ? pageConfig.detailExtendAttr : JSON.stringify(pageConfig.detailExtendAttr),
261
- metaCode: `detail-${pageConfig.metaCode}`
262
- })
263
- extend(pageConfig, detailExtendAttrObj)
289
+ if (!notParseConfig) {
290
+ if (originMetaType == 'textarea') {
291
+ pageConfig.type = 'textarea'
292
+ }
293
+ if (originMetaType == 'time-range') {
294
+ pageConfig['isRange'] = true
295
+ }
296
+ if (originMetaType == 'date-range') {
297
+ pageConfig.type = 'daterange'
298
+ }
299
+ if (originMetaType == 'card' && !hasOwn(pageConfig, 'needWrap')) {
300
+ pageConfig.needWrap = '1'
301
+ }
302
+ // 在详情的情况下,配置组件是否显示
303
+ if (mode === MODE.DETAIL) {
304
+ if (pageConfig.detailExtendAttr) {
305
+ const detailExtendAttrObj = parseExtendAttr({
306
+ extendAttr: typeof pageConfig.detailExtendAttr === 'string' ? pageConfig.detailExtendAttr : JSON.stringify(pageConfig.detailExtendAttr),
307
+ metaCode: `detail-${pageConfig.metaCode}`
308
+ })
309
+ extend(pageConfig, detailExtendAttrObj)
264
310
 
311
+ }
312
+ pageConfig.hidden = pageConfig.detailHidden || pageConfig.hidden
265
313
  }
266
- pageConfig.hidden = pageConfig.detailHidden || pageConfig.hidden
267
- }
268
- // 在日志的情况下,配置组件是否显示
269
- if (mode === MODE.LOG) {
270
- if (pageConfig.logExtendAttr) {
271
- const logExtendAttrObj = parseExtendAttr({
272
- extendAttr: typeof pageConfig.logExtendAttr === 'string' ? pageConfig.logExtendAttr : JSON.stringify(pageConfig.logExtendAttr),
273
- metaCode: `log-${pageConfig.metaCode}`
274
- })
275
- extend(pageConfig, logExtendAttrObj)
314
+ // 在日志的情况下,配置组件是否显示
315
+ if (mode === MODE.LOG) {
316
+ if (pageConfig.logExtendAttr) {
317
+ const logExtendAttrObj = parseExtendAttr({
318
+ extendAttr: typeof pageConfig.logExtendAttr === 'string' ? pageConfig.logExtendAttr : JSON.stringify(pageConfig.logExtendAttr),
319
+ metaCode: `log-${pageConfig.metaCode}`
320
+ })
321
+ extend(pageConfig, logExtendAttrObj)
322
+ }
323
+ pageConfig.hidden = pageConfig.logHidden || pageConfig.hidden
276
324
  }
277
- pageConfig.hidden = pageConfig.logHidden || pageConfig.hidden
278
- }
279
325
 
280
- mapComp[hireRelat] = pageConfig
281
- parsePolyfillConfigs({ polyfillConfigs, instance, parentRootValue, parentDynamicMapComp }, pageConfig)
326
+ mapComp[hireRelat] = pageConfig
327
+ parsePolyfillConfigs({ polyfillConfigs, instance, parentRootValue, parentDynamicMapComp }, pageConfig)
328
+ }
282
329
 
283
330
  if (!OPEN_DATA_RULES) {
284
331
  // 如果有子项,需要进行递归遍历
@@ -311,13 +358,18 @@ export function normalConfig({
311
358
 
312
359
  function normalPmPageMetaList(config) {
313
360
  const isCycleFlag = isCycleConfig(config)
314
- config.pmPageMetaList = simpleNormalPmPageMetaList(config.pmPageMetaList, dynamicHireRelat, unWatchsList, isCycleFlag)
361
+ config.pmPageMetaList = simpleNormalPmPageMetaList({
362
+ pmPageMetaList: config.pmPageMetaList,
363
+ dynamicHireRelat,
364
+ unWatchsList,
365
+ noParsePageMetaList: isCycleFlag,
366
+ changeConfig
367
+ })
315
368
 
316
369
  definePrivatelyProp(config, '_rowColumnConfgsMap', markRaw(new Map()))
317
370
  config._unPageMetaListWatch?.() // 删除当前的监听
318
371
  if (isCycleFlag) {
319
372
  const currentUnWatchsList = [...unWatchsList]
320
- definePrivatelyProp(config, 'multiPmPageMetaList', [])
321
373
 
322
374
  // 这边先执行,因为当前的_unWatchs里面只放子级的watch
323
375
  const oldUnWatchsList = [...currentUnWatchsList]
@@ -325,11 +377,12 @@ export function normalConfig({
325
377
  definePrivatelyProp(config, '_unWatchs', markRaw([]))
326
378
  currentUnWatchsList?.push(config._unWatchs)
327
379
 
328
- config._unPageMetaListWatch = watch(() => getPathVal(unref(config._rootValue), config.dynamicHireRelat, '->'), (val) => {
329
- // config._unPageMetaListWatch = watch(() => config._rootValue?.cycle, (val) => {
330
- const list = getPathVal(unref(config._rootValue), config.dynamicHireRelat, '->')
380
+
381
+ config._unPageMetaListWatch = watch(() => getPathVal(unref(rootValue), config.dynamicHireRelat, '->'), (val) => {
382
+ const list = getPathVal(unref(rootValue), config.dynamicHireRelat, '->')
331
383
  if (list && list.length) {
332
- config.multiPmPageMetaList = list.map((row, idx) => {
384
+ const cbFns = []
385
+ const pageMetaList = list.map((row, idx) => {
333
386
  const columnsCgs = config._rowColumnConfgsMap.get(row)
334
387
  if (columnsCgs) {
335
388
  columnsCgs.forEach(config => {
@@ -355,11 +408,23 @@ export function normalConfig({
355
408
  definePrivatelyProp(ret, 'parent', config) // 这边手动设置一下,防止组件复用的时候不会刷新,造成parent的丢失
356
409
  return ret
357
410
  })
358
- simpleNormalPmPageMetaList(retColumnConfigs, `${dynamicHireRelat}[${idx}]`, currentUnWatchsList)
411
+ retColumnConfigs = reactive(retColumnConfigs)
412
+ cbFns.push(() => {
413
+ simpleNormalPmPageMetaList({
414
+ pmPageMetaList: retColumnConfigs,
415
+ dynamicHireRelat: `${config.dynamicHireRelat}[${idx}]`,
416
+ unWatchsList: currentUnWatchsList,
417
+ noParsePageMetaList: false,
418
+ changeConfig: true,
419
+ notParseConfig: true,
420
+ })
421
+ })
359
422
  config._rowColumnConfgsMap.set(row, retColumnConfigs)
360
423
  return retColumnConfigs
361
424
  }
362
425
  })
426
+ config.multiPmPageMetaList = reactive(pageMetaList)
427
+ cbFns.forEach(cb => cb())
363
428
 
364
429
  const mapKeys = config._rowColumnConfgsMap.keys()
365
430
  Array.from(mapKeys).forEach(row => {
@@ -375,6 +440,7 @@ export function normalConfig({
375
440
  }, {
376
441
  immediate: true,
377
442
  deep: true,
443
+ // flush: 'sync'
378
444
  })
379
445
 
380
446
  oldUnWatchsList?.forEach(list => {
@@ -382,7 +448,7 @@ export function normalConfig({
382
448
  })
383
449
  }
384
450
 
385
- function simpleNormalPmPageMetaList(pmPageMetaList, dynamicHireRelat, unWatchsList, noParsePageMetaList) {
451
+ function simpleNormalPmPageMetaList({pmPageMetaList, dynamicHireRelat, unWatchsList, noParsePageMetaList, changeConfig, notParseConfig}) {
386
452
  return pmPageMetaList.map(metaItem => {
387
453
  const { pageConfig } = normalConfig({
388
454
  requestTraceId,
@@ -400,6 +466,8 @@ export function normalConfig({
400
466
  parentRootValue,
401
467
  parentDynamicMapComp,
402
468
  noParsePageMetaList,
469
+ changeConfig,
470
+ notParseConfig,
403
471
  }, metaItem, hireRelat, mapComp, needformItem || [FORM_META_TYPE, FORM_META_TYPE_H5].includes(metaType), dynamicHireRelat, unWatchsList)
404
472
  return pageConfig
405
473
  })?.sort((a, b) => a.seqNo - b.seqNo)
@@ -500,13 +568,13 @@ export function isPlainColumn(config, disabled) {
500
568
  export function canHiddenConfig(config) {
501
569
  let retFlag = OPEN_DATA_RULES && config.hidden == '1'
502
570
  if (!retFlag) return false
503
-
571
+
504
572
  let travseConfigs = [config]
505
573
  let currentConfig = null
506
574
  while(travseConfigs.length) {
507
575
  currentConfig = travseConfigs.shift()
508
576
  // 如果子级别中有onVnodeMounted、onMounted中一个有值,就表示需要进行渲染
509
- if (config.onVnodeMounted || config.onMounted) {
577
+ if (currentConfig.onVnodeMounted || currentConfig.onMounted || currentConfig.immediateClickEvent) {
510
578
  return false
511
579
  }
512
580
  if (isCycleConfig(currentConfig)) {
@@ -2,7 +2,7 @@ import axios from 'axios'
2
2
  import qs from 'qs'
3
3
  import { AUTH_CODE, NOT_AUTH_APIS, PASSWORD, USER_NAME, USER_TYPE } from '../enums'
4
4
  import { LCP_LOGIN, REFRESH_TOKEN } from '../api/builtIn'
5
- import { HashingFactory } from './cipher'
5
+ import { EncryptionFactory, HashingFactory } from './cipher'
6
6
  import dayjs from 'dayjs'
7
7
  import { resultToast } from './respone'
8
8
 
@@ -85,8 +85,13 @@ export function initInterceptors(messageInstance) {
85
85
  )
86
86
  }
87
87
 
88
+ const encryptKey = '%cmi_lcp@10086#S'
88
89
  export function buildInRequest(url, data, config = {}) {
90
+ const randomUuidStr = `${data.busiIdentityId}_${data.requestTraceId}`
89
91
  const reqConfig = {
92
+ headers: {
93
+ 'randomUuid': EncryptionFactory.createAesEncryption({ key: encryptKey, iv: encryptKey }).encrypt(randomUuidStr)
94
+ },
90
95
  url,
91
96
  ...config
92
97
  }