resolver-egretimp-plus 0.1.114 → 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.
Files changed (222) hide show
  1. package/dist/const/index.js +1 -1
  2. package/dist/h5/index.js +9 -9
  3. package/dist/web/index.js +2 -2
  4. package/package.json +1 -1
  5. package/src/components/packages-H5/CustomComponentCollapseH5.vue +6 -2
  6. package/src/components/packages-web/CustomComponentPlain.vue +5 -1
  7. package/src/hooks/watchRuels.js +94 -0
  8. package/src/index.jsx +9 -2
  9. package/src/rulesOfDate/eventsSupplement.js +559 -0
  10. package/src/rulesOfDate/parseCondition.js +257 -0
  11. package/src/rulesOfDate/ruleUtils.js +343 -0
  12. package/src/rulesOfDate/rulesDriver.js +67 -0
  13. package/src/utils/common.js +24 -16
  14. package/src/utils/const.js +1 -0
  15. package/src/utils/render.jsx +7 -1
  16. package/src-bak/analysisComponent.jsx +343 -0
  17. package/src-bak/api/builtIn.js +10 -0
  18. package/src-bak/bpm/bpmInstance.js +388 -0
  19. package/src-bak/bpm/udc-sdk-esm/cjs/impl/application.js +8 -0
  20. package/src-bak/bpm/udc-sdk-esm/cjs/impl/component.js +97 -0
  21. package/src-bak/bpm/udc-sdk-esm/cjs/impl/datasource.js +88 -0
  22. package/src-bak/bpm/udc-sdk-esm/cjs/impl/iframe/index.js +3 -0
  23. package/src-bak/bpm/udc-sdk-esm/cjs/impl/iframe/udcSdkForIframe/UdcComponent.js +76 -0
  24. package/src-bak/bpm/udc-sdk-esm/cjs/impl/iframe/udcSdkForIframe/index.js +201 -0
  25. package/src-bak/bpm/udc-sdk-esm/cjs/impl/index.js +69 -0
  26. package/src-bak/bpm/udc-sdk-esm/cjs/impl/page.js +56 -0
  27. package/src-bak/bpm/udc-sdk-esm/cjs/impl/utils.js +76 -0
  28. package/src-bak/bpm/udc-sdk-esm/cjs/index.js +46 -0
  29. package/src-bak/bpm/udc-sdk-esm/cjs/utils.js +21 -0
  30. package/src-bak/components/childDialog/index.js +39 -0
  31. package/src-bak/components/childDialog/src/index.vue +185 -0
  32. package/src-bak/components/cmiFormItem/index.js +1 -0
  33. package/src-bak/components/cmiFormItem/src/index.vue +112 -0
  34. package/src-bak/components/confirmInstance-H5/index.js +53 -0
  35. package/src-bak/components/confirmInstance-H5/src/index.vue +54 -0
  36. package/src-bak/components/helper/FormPolyfill.jsx +25 -0
  37. package/src-bak/components/helper/calcTooltip.jsx +134 -0
  38. package/src-bak/components/helper/dock.js +141 -0
  39. package/src-bak/components/helper/eventOrchestration.js +763 -0
  40. package/src-bak/components/helper/resolver.js +163 -0
  41. package/src-bak/components/helper/table.jsx +103 -0
  42. package/src-bak/components/icons/date.vue +33 -0
  43. package/src-bak/components/icons/info.vue +62 -0
  44. package/src-bak/components/icons/loading.vue +19 -0
  45. package/src-bak/components/icons/question-filled.vue +8 -0
  46. package/src-bak/components/loading/index.js +6 -0
  47. package/src-bak/components/loading/loading.js +98 -0
  48. package/src-bak/components/loading/loading.scss +74 -0
  49. package/src-bak/components/loading/loading.vue +89 -0
  50. package/src-bak/components/loadingComponent/LoadingComponent.vue +33 -0
  51. package/src-bak/components/modal/index.js +9 -0
  52. package/src-bak/components/modal/modal.scss +195 -0
  53. package/src-bak/components/modal/modal.vue +201 -0
  54. package/src-bak/components/options/OptionsDefault.vue +47 -0
  55. package/src-bak/components/packages-H5/CmiButton.vue +120 -0
  56. package/src-bak/components/packages-H5/CmiCalendar.vue +152 -0
  57. package/src-bak/components/packages-H5/CmiCell.vue +87 -0
  58. package/src-bak/components/packages-H5/CmiCheckbox.vue +82 -0
  59. package/src-bak/components/packages-H5/CmiDatetimePicker.vue +98 -0
  60. package/src-bak/components/packages-H5/CmiDivider.vue +30 -0
  61. package/src-bak/components/packages-H5/CmiDropdownMenu.vue +58 -0
  62. package/src-bak/components/packages-H5/CmiInput.vue +69 -0
  63. package/src-bak/components/packages-H5/CmiLink.vue +28 -0
  64. package/src-bak/components/packages-H5/CmiPicker.vue +229 -0
  65. package/src-bak/components/packages-H5/CmiRadio.vue +29 -0
  66. package/src-bak/components/packages-H5/CmiSearch.vue +39 -0
  67. package/src-bak/components/packages-H5/CmiSelect.vue +84 -0
  68. package/src-bak/components/packages-H5/CustomComponentCardH5.vue +129 -0
  69. package/src-bak/components/packages-H5/CustomComponentColH5.vue +8 -0
  70. package/src-bak/components/packages-H5/CustomComponentCollapseH5.vue +141 -0
  71. package/src-bak/components/packages-H5/CustomComponentFormLayoutH5.vue +54 -0
  72. package/src-bak/components/packages-H5/CustomComponentTabPaneH5.vue +38 -0
  73. package/src-bak/components/packages-H5/CustomComponentTableH5.vue +352 -0
  74. package/src-bak/components/packages-H5/CustomComponentTabsH5.vue +170 -0
  75. package/src-bak/components/packages-web/CustomComponentCard.vue +40 -0
  76. package/src-bak/components/packages-web/CustomComponentCol.vue +66 -0
  77. package/src-bak/components/packages-web/CustomComponentCollapse.vue +164 -0
  78. package/src-bak/components/packages-web/CustomComponentCycle.vue +95 -0
  79. package/src-bak/components/packages-web/CustomComponentCycleTabPane.vue +155 -0
  80. package/src-bak/components/packages-web/CustomComponentDialog.vue +192 -0
  81. package/src-bak/components/packages-web/CustomComponentEditor.vue +50 -0
  82. package/src-bak/components/packages-web/CustomComponentFileExport.vue +60 -0
  83. package/src-bak/components/packages-web/CustomComponentFileImport.vue +60 -0
  84. package/src-bak/components/packages-web/CustomComponentFormLayout.vue +65 -0
  85. package/src-bak/components/packages-web/CustomComponentGrid.vue +29 -0
  86. package/src-bak/components/packages-web/CustomComponentGridCol.vue +29 -0
  87. package/src-bak/components/packages-web/CustomComponentInputDialog.vue +144 -0
  88. package/src-bak/components/packages-web/CustomComponentNativeTabPane.vue +84 -0
  89. package/src-bak/components/packages-web/CustomComponentPlain.vue +247 -0
  90. package/src-bak/components/packages-web/CustomComponentRow.vue +83 -0
  91. package/src-bak/components/packages-web/CustomComponentSelectEmployees.vue +203 -0
  92. package/src-bak/components/packages-web/CustomComponentSendMail.vue +62 -0
  93. package/src-bak/components/packages-web/CustomComponentSteps.vue +41 -0
  94. package/src-bak/components/packages-web/CustomComponentTabPane.vue +20 -0
  95. package/src-bak/components/packages-web/CustomComponentTable.jsx +814 -0
  96. package/src-bak/components/packages-web/CustomComponentTabs.vue +126 -0
  97. package/src-bak/components/packages-web/CustomComponentTree.vue +28 -0
  98. package/src-bak/components/packages-web/ElButton.vue +146 -0
  99. package/src-bak/components/packages-web/ElCheckbox.vue +97 -0
  100. package/src-bak/components/packages-web/ElDatePicker.vue +93 -0
  101. package/src-bak/components/packages-web/ElInput copy.jsx +393 -0
  102. package/src-bak/components/packages-web/ElInput.jsx +312 -0
  103. package/src-bak/components/packages-web/ElInputNumber.vue +81 -0
  104. package/src-bak/components/packages-web/ElPagination.vue +61 -0
  105. package/src-bak/components/packages-web/ElRadio.vue +47 -0
  106. package/src-bak/components/packages-web/ElSelect.jsx +249 -0
  107. package/src-bak/components/packages-web/ElSelect_bak.vue +155 -0
  108. package/src-bak/components/packages-web/ElText.jsx +187 -0
  109. package/src-bak/components/packages-web/ElTextaa.vue +169 -0
  110. package/src-bak/components/packages-web/ElTimePicker.vue +39 -0
  111. package/src-bak/components/patchComponents-H5.js +46 -0
  112. package/src-bak/components/patchComponents-web.js +46 -0
  113. package/src-bak/components/simpleFormItemPc/index.js +1 -0
  114. package/src-bak/components/simpleFormItemPc/src/index.vue +94 -0
  115. package/src-bak/components/table/index.ts +29 -0
  116. package/src-bak/components/table/src/composables/use-scrollbar.ts +30 -0
  117. package/src-bak/components/table/src/config.ts +256 -0
  118. package/src-bak/components/table/src/filter-panel.vue +260 -0
  119. package/src-bak/components/table/src/h-helper.ts +34 -0
  120. package/src-bak/components/table/src/layout-observer.ts +78 -0
  121. package/src-bak/components/table/src/store/current.ts +85 -0
  122. package/src-bak/components/table/src/store/expand.ts +76 -0
  123. package/src-bak/components/table/src/store/helper.ts +74 -0
  124. package/src-bak/components/table/src/store/index.ts +246 -0
  125. package/src-bak/components/table/src/store/tree.ts +230 -0
  126. package/src-bak/components/table/src/store/watcher.ts +543 -0
  127. package/src-bak/components/table/src/table/defaults.ts +402 -0
  128. package/src-bak/components/table/src/table/key-render-helper.ts +27 -0
  129. package/src-bak/components/table/src/table/style-helper.ts +378 -0
  130. package/src-bak/components/table/src/table/utils-helper.ts +47 -0
  131. package/src-bak/components/table/src/table-body/defaults.ts +52 -0
  132. package/src-bak/components/table/src/table-body/events-helper.ts +203 -0
  133. package/src-bak/components/table/src/table-body/index.ts +119 -0
  134. package/src-bak/components/table/src/table-body/render-helper.ts +283 -0
  135. package/src-bak/components/table/src/table-body/styles-helper.ts +164 -0
  136. package/src-bak/components/table/src/table-column/defaults.ts +237 -0
  137. package/src-bak/components/table/src/table-column/index.ts +202 -0
  138. package/src-bak/components/table/src/table-column/render-helper.ts +214 -0
  139. package/src-bak/components/table/src/table-column/watcher-helper.ts +88 -0
  140. package/src-bak/components/table/src/table-footer/index.ts +128 -0
  141. package/src-bak/components/table/src/table-footer/mapState-helper.ts +33 -0
  142. package/src-bak/components/table/src/table-footer/style-helper.ts +51 -0
  143. package/src-bak/components/table/src/table-header/event-helper.ts +213 -0
  144. package/src-bak/components/table/src/table-header/index.ts +244 -0
  145. package/src-bak/components/table/src/table-header/style.helper.ts +119 -0
  146. package/src-bak/components/table/src/table-header/utils-helper.ts +94 -0
  147. package/src-bak/components/table/src/table-layout.ts +259 -0
  148. package/src-bak/components/table/src/table.vue +389 -0
  149. package/src-bak/components/table/src/tableColumn.ts +3 -0
  150. package/src-bak/components/table/src/tokens.ts +5 -0
  151. package/src-bak/components/table/src/util.ts +521 -0
  152. package/src-bak/components/table/style/css.ts +5 -0
  153. package/src-bak/components/table/style/index.ts +5 -0
  154. package/src-bak/components/tabs/index.js +8 -0
  155. package/src-bak/components/tabs/src/constants.js +23 -0
  156. package/src-bak/components/tabs/src/tab-bar.js +8 -0
  157. package/src-bak/components/tabs/src/tab-bar.vue +92 -0
  158. package/src-bak/components/tabs/src/tab-nav.jsx +424 -0
  159. package/src-bak/components/tabs/src/tab-pane.js +16 -0
  160. package/src-bak/components/tabs/src/tab-pane.vue +80 -0
  161. package/src-bak/components/tabs/src/tabs.jsx +223 -0
  162. package/src-bak/components/tabs/style/css.js +2 -0
  163. package/src-bak/components/tabs/style/index.js +2 -0
  164. package/src-bak/components/thirdPartyFrame/index.js +32 -0
  165. package/src-bak/components/thirdPartyFrame/src/ThirdPartyFrame.vue +125 -0
  166. package/src-bak/enums/index.js +16 -0
  167. package/src-bak/hooks/configLoad.js +45 -0
  168. package/src-bak/hooks/index.js +189 -0
  169. package/src-bak/hooks/mock.js +6960 -0
  170. package/src-bak/hooks/pageConfig.js +127 -0
  171. package/src-bak/index.jsx +443 -0
  172. package/src-bak/renderer.jsx +77 -0
  173. package/src-bak/resolver-H5.vue +88 -0
  174. package/src-bak/resolver-common.vue +129 -0
  175. package/src-bak/resolver-web.vue +91 -0
  176. package/src-bak/rules/eventsSupplement.js +573 -0
  177. package/src-bak/rules/parseCondition.js +378 -0
  178. package/src-bak/rules/ruleUtils.js +273 -0
  179. package/src-bak/rules/rulesDriver.js +139 -0
  180. package/src-bak/rulesImp/events.js +588 -0
  181. package/src-bak/rulesImp/index.js +33 -0
  182. package/src-bak/rulesImp/ruleInstance.js +231 -0
  183. package/src-bak/rulesImp/ruleUtils.js +124 -0
  184. package/src-bak/theme/element/components/button.scss +122 -0
  185. package/src-bak/theme/element/components/card.scss +8 -0
  186. package/src-bak/theme/element/components/checkbox.scss +19 -0
  187. package/src-bak/theme/element/components/collapse.scss +174 -0
  188. package/src-bak/theme/element/components/common.scss +30 -0
  189. package/src-bak/theme/element/components/cycle.scss +0 -0
  190. package/src-bak/theme/element/components/date.scss +13 -0
  191. package/src-bak/theme/element/components/dialog.scss +44 -0
  192. package/src-bak/theme/element/components/form.scss +104 -0
  193. package/src-bak/theme/element/components/index.scss +55 -0
  194. package/src-bak/theme/element/components/input.scss +36 -0
  195. package/src-bak/theme/element/components/message.scss +48 -0
  196. package/src-bak/theme/element/components/pagination.scss +47 -0
  197. package/src-bak/theme/element/components/popper.scss +3 -0
  198. package/src-bak/theme/element/components/radio.scss +40 -0
  199. package/src-bak/theme/element/components/scrollbar.scss +14 -0
  200. package/src-bak/theme/element/components/select.scss +82 -0
  201. package/src-bak/theme/element/components/steps.scss +6 -0
  202. package/src-bak/theme/element/components/table.scss +218 -0
  203. package/src-bak/theme/element/components/tabs.scss +128 -0
  204. package/src-bak/theme/element/components/tag.scss +6 -0
  205. package/src-bak/theme/element/components/text.scss +20 -0
  206. package/src-bak/theme/element/components/textarea.scss +3 -0
  207. package/src-bak/theme/element/components/tree.scss +0 -0
  208. package/src-bak/theme/element/index.scss +55 -0
  209. package/src-bak/utils/cipher.js +141 -0
  210. package/src-bak/utils/common.js +664 -0
  211. package/src-bak/utils/const.js +259 -0
  212. package/src-bak/utils/defaultVal.js +92 -0
  213. package/src-bak/utils/dom.js +36 -0
  214. package/src-bak/utils/format.js +19 -0
  215. package/src-bak/utils/index.js +4 -0
  216. package/src-bak/utils/is.js +74 -0
  217. package/src-bak/utils/loadModule.js +75 -0
  218. package/src-bak/utils/preserveFunc.js +33 -0
  219. package/src-bak/utils/render.jsx +1138 -0
  220. package/src-bak/utils/request.js +136 -0
  221. package/src-bak/utils/respone.js +70 -0
  222. package/src-bak/utils/valid.js +89 -0
@@ -569,34 +569,42 @@ function normalizeNumberString(numStr) {
569
569
  }
570
570
 
571
571
 
572
- export function getPathVal(obj = {}, path) {
572
+ export function getPathVal(obj = {}, path, separator = '.') {
573
573
  let paths = path
574
574
  if (typeof path === 'string') {
575
- paths = path.split('.')
575
+ paths = path.split(separator)
576
576
  }
577
577
  return paths.reduce((ret, key) => {
578
578
  if (ret) {
579
+ const match = key.match(/^(\w+)\[(\d+)\]/)
580
+ if (match) {
581
+ return ret[match[1]]?.[match[2]]
582
+ }
579
583
  return ret[key]
580
584
  }
581
585
  return null
582
586
  }, obj) ?? ''
583
587
  }
584
- export function assignmentPathVal(obj = {}, path, val) {
585
- let paths = path
586
- if (typeof path === 'string') {
587
- paths = path.split('.')
588
- }
589
- let currentObj = obj
590
- paths.forEach((item, idx) => {
591
- if (idx + 1 === paths.length) {
592
- currentObj[item] = val ?? ''
593
- } else {
594
- if (!currentObj[item]) {
595
- currentObj[item] = {}
588
+
589
+ export function assignmentPathVal(obj = {}, path, val, separator = '.') {
590
+ if (path && obj) {
591
+ let beginObj = obj
592
+ if (isRef(obj)) {
593
+ beginObj = obj.value
594
+ }
595
+ const keyArr = path.split(separator)
596
+ keyArr.reduce((ret, code, idx) => {
597
+ if (idx === keyArr.length - 1) {
598
+ ret[code] = val
599
+ } else {
600
+ !ret[code] && (ret[code] = {})
596
601
  }
597
- currentObj = currentObj[item]
602
+ return ret[code]
603
+ }, beginObj)
604
+ if (isRef(obj)) {
605
+ obj.value = beginObj
598
606
  }
599
- })
607
+ }
600
608
  }
601
609
 
602
610
  export function eleIsOverflow(e) {
@@ -46,6 +46,7 @@ export const NOT_NEED_FORM_ITEM_META_TYPE = [
46
46
  ]
47
47
  export const EXECTE_CLICK_EVENT_COMPONENTS = ['ElInput', 'ElButton', 'CmiInput', 'CmiButton', 'ElText']
48
48
  export const TRANS_CELL_COMPONETS = ['CmiInput', 'CmiSelect', 'CmiPicker']
49
+ export const CYCLE_COMPONETS = ['CustomComponentCycle', 'CustomComponentCycleTabPane', 'CustomComponentTable']
49
50
  export const NOT_NEED_COL_ITEM_META_TYPE = ['CustomComponentTabPane', 'CustomComponentDialog', 'CustomComponentCol', 'CustomComponentTabPaneH5']
50
51
  export const MULTI_PAGE_META_LIST_TYPES = ['CustomComponentTable']
51
52
  export const SPECIAL_SET_FULL_WIDTH_ITEM_META_TYPE = ['el-select', 'el-date-picker', 'el-time-picker', 'el-time-select', 'el-cascader', 'el-input-number', 'CustomComponentTree', 'CustomComponentSteps']
@@ -25,7 +25,8 @@ import {
25
25
  TRANS_CELL_COMPONETS,
26
26
  MODE,
27
27
 
28
- isHidden
28
+ isHidden,
29
+ CYCLE_COMPONETS
29
30
  } from './const.js'
30
31
  import { preserveCheck } from './preserveFunc.js'
31
32
  import { isArray, isFunction, isString } from './is.js'
@@ -355,6 +356,11 @@ function getTableServices(lcpPageServiceMapVOList = [], { dynamicMapComp, dynami
355
356
  }
356
357
  return []
357
358
  }
359
+
360
+ export function isCycleConfig(config) {
361
+ return findComponent(CYCLE_COMPONETS, config.renderby) !== -1 || findComponent(CYCLE_COMPONETS, config.metaType) !== -1
362
+ }
363
+
358
364
  function parsePolyfillConfigs({ polyfillConfigs, instance, parentRootValue, parentDynamicMapComp}, config) {
359
365
  const hireRelat = config.hireRelat
360
366
  const findKeys = Object.keys(polyfillConfigs || {}).filter(key => hireRelat.endsWith(key))
@@ -0,0 +1,343 @@
1
+ import { computed, defineAsyncComponent, getCurrentInstance, inject, onBeforeMount, provide, ref, watch } from 'vue'
2
+ import { COFNGI_KEY_EVENT_FLAG, commonPropsType, definePrivatelyProp, EXECTE_CLICK_EVENT_COMPONENTS, findComponent, getComponentPropsKeys, getComponentSolt, hasOwn, isPlainObject } from './utils/index.js'
3
+ import { useVmodels } from './hooks/index.js'
4
+ import { getRenderComponentProps, generateFormItemPolyfill } from './utils/index.js'
5
+ import rulesDriver from './rules/rulesDriver'
6
+ import { penddingRules } from './rules/ruleUtils.js'
7
+ import { useRoute } from 'vue-router'
8
+ import { executeEventOrchestration } from './components/helper/eventOrchestration.js'
9
+ import { useRouter } from 'vue-router'
10
+ import { onErrorCaptured } from 'vue'
11
+ import LoadingComponent from './components/loadingComponent/LoadingComponent.vue'
12
+ import { useConfigLoad } from './hooks/configLoad.js'
13
+
14
+ export default {
15
+ name: 'AnalysisComponent',
16
+ inheritAttrs: false,
17
+ props: {
18
+ config: {
19
+ type: Object,
20
+ default: () => ({})
21
+ },
22
+ // 这个组件通过v-model进行数据的绑定
23
+ modelValue: {
24
+ // type: [String, Number, Object],
25
+ default: null
26
+ },
27
+ component: {
28
+ type: [Function, Object, String],
29
+ default: null
30
+ },
31
+ // 如果是表格中列的组件,会传入行数据,{row, $index}
32
+ rowScope: {
33
+ type: [Object],
34
+ default: () => null
35
+ },
36
+ // 当前模式;操作:operate(默认)、详情:detail、日志:log
37
+ mode: {
38
+ type: String,
39
+ default: 'operate', // 操作:operate(默认)、详情:detail、日志:log
40
+ },
41
+ additionConfigs: {
42
+ type: Array,
43
+ default: () => []
44
+ },
45
+ },
46
+ emits: ['update:modelValue'],
47
+ setup(props, { emit, attrs }) {
48
+ const currentAttrs = computed(() => {
49
+ const ret = {
50
+ ...attrs
51
+ }
52
+ delete ret.onClick
53
+ return ret
54
+ })
55
+ useConfigLoad(props.config)
56
+ const configsSet = inject('_configsSet')
57
+ const ruleExecuter = inject('_ruleExecuter')
58
+ const dialogReq = inject('_dialogReq', {})
59
+ const requestTraceId = inject('requestTraceId')
60
+ const polyfillConfigs = inject('_polyfillConfigs', {})
61
+ const buttonActions = inject('buttonActions', {})
62
+ const router = useRouter()
63
+ const route = useRoute()
64
+ const routeQuery= route?.query
65
+ const hireRelatMapRules = inject('hireRelatMapRules')
66
+ const components = inject('components')
67
+ const dataLoad = inject('dataLoad')
68
+ const rootForm = inject('rootForm')
69
+ const _axiosInstance = inject('_axiosInstance')
70
+ const confirmInstance = inject('_confirmInstance')
71
+ const openChildDialogInstance = inject('_openChildDialogInstance')
72
+ const messageCb = inject('_messageCb')
73
+ const messageInstance = inject('_messageInstance')
74
+ const builtPolyfillReq = inject('_builtPolyfillReq')
75
+ const rootValue = inject('rootValue')
76
+ const validate = inject('_validate')
77
+ const lang = inject('lang')
78
+
79
+ const selects = inject('selects')
80
+ const _parentRootValue = inject('_parentRootValue')
81
+ const _parentDynamicMapComp = inject('_parentDynamicMapComp')
82
+
83
+ definePrivatelyProp(props.config, '_lang', lang)
84
+ definePrivatelyProp(props.config, '_rootValue', rootValue)
85
+ definePrivatelyProp(props.config, 'router', router)
86
+ definePrivatelyProp(props.config, 'route', route)
87
+ definePrivatelyProp(props.config, '_validate', validate)
88
+ definePrivatelyProp(props.config, '_rowScope', props.rowScope)
89
+ definePrivatelyProp(props.config, '_selects', selects)
90
+ definePrivatelyProp(props.config, '_parentRootValue', _parentRootValue)
91
+ definePrivatelyProp(props.config, '_parentDynamicMapComp', _parentDynamicMapComp)
92
+ // 当前组件的实例
93
+ const instance = getCurrentInstance()
94
+ const appContext = instance?.appContext
95
+ definePrivatelyProp(props.config, 'wrapVm', instance)
96
+ const refFn = e => {
97
+ // 具体渲染的组件
98
+ definePrivatelyProp(props.config, 'vm', e)
99
+ }
100
+ const onVnodeMounted = (e) => {
101
+ definePrivatelyProp(props.config, 'vmIsBind', true)
102
+
103
+
104
+ if (props.config.onVnodeMounted && typeof props.config.onVnodeMounted === 'function') {
105
+ const context = {
106
+ dataLoad: dataLoad
107
+ }
108
+ try {
109
+ props.config.onVnodeMounted.call(context, props, e, selects)
110
+ } catch (error) {
111
+ console.error('onVnodeMounted error,', error, props.config)
112
+ }
113
+ }
114
+ if (props.config.onMounted) {
115
+ let onMounted = props.config.onMounted
116
+ if (typeof onMounted === 'string') {
117
+ try {
118
+ onMounted = eval(`(function({props, e, selects}) {
119
+ try {
120
+ ${props.config.onMounted}
121
+ } catch (error) {
122
+ console.error('onMounted error===:', props, error)
123
+ }
124
+ })`)
125
+ } catch (error) {
126
+ console.error('parse onMounted error===:',props, error)
127
+ }
128
+ }
129
+ typeof onMounted === 'function' && onMounted({props, e, selects})
130
+ }
131
+
132
+ // 执行没有执行完的规则
133
+ const hireRelat = props.config?.hireRelat
134
+ if (penddingRules[hireRelat]?.length) {
135
+ penddingRules[hireRelat].forEach(context => {
136
+ const rules = context.rules
137
+ delete context.rules
138
+ setTimeout(() => {
139
+ rulesDriver.call(context, rules)
140
+ }, 0)
141
+ })
142
+ penddingRules[hireRelat] = null
143
+ }
144
+ // 使用json-rules-engine书写的规则,打开这边,需要对之前的规则进行注释,并且需要再index.js文件中进行开启 ====start====
145
+ if (ruleExecuter?.penddingRules?.[hireRelat]?.length) {
146
+ ruleExecuter?.penddingRules[hireRelat].forEach(context => {
147
+ const rules = context.rules
148
+ delete context.rules
149
+ setTimeout(() => {
150
+ ruleExecuter?.run(context, rules)
151
+ }, 0)
152
+ })
153
+ ruleExecuter.penddingRules[hireRelat] = null
154
+ }
155
+ // 使用json-rules-engine书写的规则,打开这边,需要对之前的规则进行注释,并且需要再index.js文件中进行开启 ====end====
156
+
157
+ if (props.config?.immediateClickEvent) {
158
+ const unWatch = watch(dataLoad, (val) => {
159
+ if (val) {
160
+ setTimeout(() => {
161
+ executeClickEvents()
162
+ unWatch && unWatch()
163
+ }, 100);
164
+ }
165
+ }, {
166
+ immediate: true
167
+ })
168
+ }
169
+ }
170
+ const onVnodeUnmounted = () => {
171
+ props.config.vmIsBind = false
172
+ if (props.config.onVnodeUnmounted && typeof props.config.onVnodeUnmounted === 'function') {
173
+ try {
174
+ props.config.onVnodeUnmounted(props)
175
+ } catch (error) {
176
+ console.error('onVnodeUnmounted error,', error, props.config)
177
+ }
178
+ }
179
+ }
180
+
181
+ const { vModelObjs, initVmodels, modelValue } = useVmodels(props, emit) // 过个v-model绑定对象,实现可以组件过赋值
182
+
183
+ definePrivatelyProp(props.config, 'refValue', modelValue)
184
+ // onBeforeMount(() => {
185
+ // defaultVal(props.config, modelValue) // 设置默认值
186
+ // })
187
+
188
+
189
+ // 获取组件中定义的props,赋值对应的属性====start====
190
+ const fnComponentkeys = ref([])
191
+ function getFncomponentProps() {
192
+ const obj = {}
193
+ fnComponentkeys.value.forEach(key => {
194
+ if (hasOwn(props.config, key)) {
195
+ const config = props.config
196
+ if (COFNGI_KEY_EVENT_FLAG.test(key) && typeof config[key] === 'function') {
197
+ obj[key] = function(...arg) {
198
+ return config[key](...arg, vm)
199
+ }
200
+ } else {
201
+ obj[key] = config[key]
202
+ }
203
+ }
204
+ })
205
+ return obj
206
+ }
207
+ if (typeof props.component === 'function') {
208
+ props.component()?.then(res => {
209
+ if (res?.default?.emits) {
210
+ initVmodels(res?.default?.emits)
211
+ }
212
+ fnComponentkeys.value = getComponentPropsKeys(res?.default || res)
213
+ })
214
+ } else {
215
+ if (props.component?.emits) {
216
+ initVmodels(props.component?.emits)
217
+ }
218
+ }
219
+ // 获取组件中定义的props,赋值对应的属性===end===
220
+ const currentComponent = computed(() => {
221
+ if (typeof props.component === 'function') {
222
+ return defineAsyncComponent({
223
+ loader: props.component,
224
+ loadingComponent: LoadingComponent,
225
+ delay: 0
226
+ })
227
+ } else {
228
+ return props.component
229
+ }
230
+ })
231
+ /**
232
+ * 动态赋值parent跟dynamicHireRelat
233
+ * 同时设置dynamicMapComp(动态dynamicHireRelat对应的config集合)
234
+ */
235
+ const parent = inject('parent', null)
236
+ const dynamicMapComp = inject('dynamicMapComp')
237
+
238
+ const configLinks = [parent, ...props.additionConfigs, props.config]
239
+ configLinks.reduce((parent, config) => {
240
+ definePrivatelyProp(config, 'parent', parent)
241
+ definePrivatelyProp(config, 'dynamicMapComp', dynamicMapComp)
242
+
243
+ // 如果已经有dynamicHireRelat值的时候,就不需要再进行以下赋值了
244
+ if (
245
+ config?.dynamicHireRelat_bak && !configsSet?.has(config)
246
+ // && props.mode !== 'operate'
247
+ ) {
248
+ definePrivatelyProp(config, 'dynamicHireRelat', `${config.dynamicHireRelat_bak}__@__${props.mode}__`)
249
+ } else {
250
+ const dynamicHireRelat = parent?.dynamicHireRelat ? `${parent?.dynamicHireRelat}${hasOwn(config, 'rowIndex') ? `[${config.rowIndex}]` : ''}->${(config.metaCode || '')}` : config.metaCode
251
+ definePrivatelyProp(config, 'dynamicHireRelat', dynamicHireRelat)
252
+ config.dynamicHireRelat_bak = dynamicHireRelat
253
+ }
254
+ configsSet?.add(config) // 搜集所有的config
255
+ config.dynamicHireRelat && (dynamicMapComp[config.dynamicHireRelat] = config)
256
+ return config
257
+ })
258
+
259
+ provide('parent', props.config)
260
+
261
+ const _isH5 = inject('_isH5')
262
+ const onClick = (e, params) => {
263
+ const context = {
264
+ props,
265
+ dynamicMapComp,
266
+ hireRelatMapRules,
267
+ components,
268
+ selects,
269
+ rootValue: rootValue?.value,
270
+ dataLoad,
271
+ rootForm,
272
+ routeQuery,
273
+ appContext
274
+ }
275
+ attrs?.onClick?.call(context, e) // 如果配置中有点击事件
276
+ if (findComponent(EXECTE_CLICK_EVENT_COMPONENTS, props.config?.renderby || props.config?.metaType) !== -1 ) {
277
+ executeClickEvents(params)
278
+ }
279
+ }
280
+ function executeClickEvents(params = {}) {
281
+ // beforeRequestService,
282
+ // afterRequestService,
283
+ // beforeOpenDialog,
284
+ // afterOpenDialog,
285
+ // middleOpenDialog,
286
+ // 目前parmas支持以上五种钩子
287
+ if (!isPlainObject(params)) {
288
+ params = {}
289
+ }
290
+ executeEventOrchestration({
291
+ ...params,
292
+ builtPolyfillReq,
293
+ components,
294
+ props,
295
+ requestTraceId: requestTraceId?.value,
296
+ axiosInstance: _axiosInstance?.value,
297
+ polyfillConfigs,
298
+ rootValue: rootValue?.value,
299
+ confirmInstance: confirmInstance?.value,
300
+ dynamicMapComp,
301
+ openChildDialog: openChildDialogInstance?.value,
302
+ messageInstance: messageInstance?.value,
303
+ messageCb,
304
+ buttonActions,
305
+ lang: lang?.value,
306
+ dialogReq,
307
+ appContext
308
+ })
309
+ }
310
+ onErrorCaptured((err, instance, info) => {
311
+ console.error('component render failer', lang?.value?.indexOf('zh') > -1 ? props.config?.metaNameZh : props.config?.metaNameEn, props.config?.metaCode, err, instance, info)
312
+ })
313
+ return () => {
314
+ const componentProps = getFncomponentProps()
315
+ const compProps = getRenderComponentProps({config: props.config, props, component: props.component, modelValue, selects, lang: lang.value, vm: instance.proxy})
316
+ const compPropsOnClick = compProps?.onClick
317
+ delete compProps.onClick
318
+ const formItemPolyfill = generateFormItemPolyfill(props.config, lang.value, compProps, _isH5?.value, {
319
+ lang,
320
+ rootValue,
321
+ dynamicMapComp,
322
+ props,
323
+ messageInstance: messageInstance?.value
324
+ }) // 生成formItem()的辅助函数
325
+ return formItemPolyfill(
326
+ <currentComponent.value
327
+ ref={refFn}
328
+ onVnodeMounted={onVnodeMounted}
329
+ onVnodeUnmounted={onVnodeUnmounted}
330
+ {...currentAttrs.value}
331
+ onClick={(e, params) => {onClick(e, params);compPropsOnClick?.(e)}}
332
+ {...componentProps}
333
+ {...compProps}
334
+ {...vModelObjs}
335
+ >
336
+ {
337
+ getComponentSolt({config: props.config})
338
+ }
339
+ </currentComponent.value>
340
+ )
341
+ }
342
+ }
343
+ }
@@ -0,0 +1,10 @@
1
+ export const QUERY_PAGE_CONFIG_DATA = '/sa-lcp/api/v1/pageConfig/queryPageConfigData'
2
+ export const LCP_LOGIN = '/sa-lcp/login'
3
+ export const GET_SYS_PARAM_CACHE = '/sa-lcp/api/v1/sysparam/getSysParamCache'
4
+ export const REFRESH_TOKEN = '/sa-lcp/changePwd/refreshToken'
5
+ export const DATA_VALID_RULE_EXECUTE = '/sa-lcp/api/v1/validate/dataValidRuleExecute'
6
+ export const FIND_FILEA_NND_CONENT_BY_ID = '/sa-lcp/api/v1/fileopertate/findFileAndContentById'
7
+
8
+ export const MAIL_SEND_URL = '/gcweb/External_Mail'
9
+ export const FILE_IMPORT_URL = '/gcweb/External_Import'
10
+ export const FILE_EXPORT_URL = '/gcweb/External_Export'