resolver-egretimp-plus 0.0.4

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 (121) hide show
  1. package/babel.config.js +14 -0
  2. package/dist/index.js +2 -0
  3. package/dist/index.js.LICENSE.txt +8 -0
  4. package/dist/theme/element/index.css +1 -0
  5. package/dist/theme/element/src/components/card.scss +4 -0
  6. package/dist/theme/element/src/components/collapse.scss +16 -0
  7. package/dist/theme/element/src/components/date.scss +13 -0
  8. package/dist/theme/element/src/components/form.scss +54 -0
  9. package/dist/theme/element/src/components/index.scss +42 -0
  10. package/dist/theme/element/src/components/input.scss +15 -0
  11. package/dist/theme/element/src/components/message.scss +31 -0
  12. package/dist/theme/element/src/components/scrollbar.scss +14 -0
  13. package/dist/theme/element/src/components/select.scss +17 -0
  14. package/dist/theme/element/src/components/steps.scss +6 -0
  15. package/dist/theme/element/src/components/table.scss +8 -0
  16. package/dist/theme/element/src/components/tabs.scss +68 -0
  17. package/dist/theme/element/src/components/tree.scss +0 -0
  18. package/dist/theme/element/src/index.scss +79 -0
  19. package/index.js +17 -0
  20. package/package.json +45 -0
  21. package/scripts/gulpfile.mjs +73 -0
  22. package/scripts/webpack.config.js +81 -0
  23. package/src/analysisComponent.jsx +166 -0
  24. package/src/components/helper/button.js +17 -0
  25. package/src/components/helper/dock.js +120 -0
  26. package/src/components/icons/question-filled.vue +13 -0
  27. package/src/components/packages/CmiButton.vue +84 -0
  28. package/src/components/packages/CmiCalendar.vue +138 -0
  29. package/src/components/packages/CmiCell.vue +34 -0
  30. package/src/components/packages/CmiCheckbox.vue +63 -0
  31. package/src/components/packages/CmiDatetimePicker.vue +84 -0
  32. package/src/components/packages/CmiDropdownMenu.vue +57 -0
  33. package/src/components/packages/CmiInput.vue +45 -0
  34. package/src/components/packages/CmiLink.vue +28 -0
  35. package/src/components/packages/CmiPicker.vue +120 -0
  36. package/src/components/packages/CmiRadio.vue +29 -0
  37. package/src/components/packages/CmiSearch.vue +39 -0
  38. package/src/components/packages/CmiSelect.vue +84 -0
  39. package/src/components/packages/CustomComponentCard.vue +40 -0
  40. package/src/components/packages/CustomComponentCardH5.vue +40 -0
  41. package/src/components/packages/CustomComponentCol.vue +69 -0
  42. package/src/components/packages/CustomComponentColH5.vue +8 -0
  43. package/src/components/packages/CustomComponentCollapse.vue +183 -0
  44. package/src/components/packages/CustomComponentCollapseH5.vue +37 -0
  45. package/src/components/packages/CustomComponentCycle.vue +95 -0
  46. package/src/components/packages/CustomComponentCycleTabPane.vue +92 -0
  47. package/src/components/packages/CustomComponentDialog.vue +162 -0
  48. package/src/components/packages/CustomComponentEditor.vue +43 -0
  49. package/src/components/packages/CustomComponentFormLayout.vue +63 -0
  50. package/src/components/packages/CustomComponentFormLayoutH5.vue +55 -0
  51. package/src/components/packages/CustomComponentGrid.vue +29 -0
  52. package/src/components/packages/CustomComponentGridCol.vue +29 -0
  53. package/src/components/packages/CustomComponentInputDialog.vue +144 -0
  54. package/src/components/packages/CustomComponentPlain.vue +80 -0
  55. package/src/components/packages/CustomComponentRow.vue +67 -0
  56. package/src/components/packages/CustomComponentSelectEmployees.vue +133 -0
  57. package/src/components/packages/CustomComponentSendMail.vue +72 -0
  58. package/src/components/packages/CustomComponentSteps.vue +41 -0
  59. package/src/components/packages/CustomComponentTabPane.vue +41 -0
  60. package/src/components/packages/CustomComponentTabPaneH5.vue +30 -0
  61. package/src/components/packages/CustomComponentTable.jsx +406 -0
  62. package/src/components/packages/CustomComponentTableH5.vue +58 -0
  63. package/src/components/packages/CustomComponentTabs.vue +75 -0
  64. package/src/components/packages/CustomComponentTabsH5.vue +86 -0
  65. package/src/components/packages/CustomComponentTree.vue +28 -0
  66. package/src/components/packages/ElButton.vue +90 -0
  67. package/src/components/packages/ElCheckbox.vue +55 -0
  68. package/src/components/packages/ElDatePicker.vue +58 -0
  69. package/src/components/packages/ElInput.vue +23 -0
  70. package/src/components/packages/ElInputNumber.vue +54 -0
  71. package/src/components/packages/ElPagination.vue +56 -0
  72. package/src/components/packages/ElRadio.vue +44 -0
  73. package/src/components/packages/ElSelect.vue +73 -0
  74. package/src/components/packages/ElText.vue +48 -0
  75. package/src/components/packages/ElTimePicker.vue +34 -0
  76. package/src/components/patchComponents.js +46 -0
  77. package/src/components/styles/CustomComponenTable.scss +125 -0
  78. package/src/components/tabs/index.js +8 -0
  79. package/src/components/tabs/src/constants.js +23 -0
  80. package/src/components/tabs/src/tab-bar.js +8 -0
  81. package/src/components/tabs/src/tab-bar.vue +92 -0
  82. package/src/components/tabs/src/tab-nav.jsx +413 -0
  83. package/src/components/tabs/src/tab-pane.js +15 -0
  84. package/src/components/tabs/src/tab-pane.vue +80 -0
  85. package/src/components/tabs/src/tabs.jsx +217 -0
  86. package/src/components/tabs/style/css.js +2 -0
  87. package/src/components/tabs/style/index.js +2 -0
  88. package/src/components/thirdPartyFrame/index.js +32 -0
  89. package/src/components/thirdPartyFrame/src/ThirdPartyFrame.vue +123 -0
  90. package/src/hooks/index.js +129 -0
  91. package/src/hooks/pageConfig.js +20 -0
  92. package/src/index.jsx +140 -0
  93. package/src/renderer.jsx +68 -0
  94. package/src/rules/eventsSupplement.js +439 -0
  95. package/src/rules/parseCondition.js +359 -0
  96. package/src/rules/ruleUtils.js +208 -0
  97. package/src/rules/rulesDriver.js +118 -0
  98. package/src/theme/element/components/card.scss +4 -0
  99. package/src/theme/element/components/collapse.scss +16 -0
  100. package/src/theme/element/components/date.scss +13 -0
  101. package/src/theme/element/components/form.scss +54 -0
  102. package/src/theme/element/components/index.scss +42 -0
  103. package/src/theme/element/components/input.scss +15 -0
  104. package/src/theme/element/components/message.scss +31 -0
  105. package/src/theme/element/components/scrollbar.scss +14 -0
  106. package/src/theme/element/components/select.scss +17 -0
  107. package/src/theme/element/components/steps.scss +6 -0
  108. package/src/theme/element/components/table.scss +8 -0
  109. package/src/theme/element/components/tabs.scss +68 -0
  110. package/src/theme/element/components/tree.scss +0 -0
  111. package/src/theme/element/index.scss +79 -0
  112. package/src/utils/common.js +230 -0
  113. package/src/utils/const.js +198 -0
  114. package/src/utils/defaultVal.js +23 -0
  115. package/src/utils/format.js +19 -0
  116. package/src/utils/index.js +4 -0
  117. package/src/utils/is.js +69 -0
  118. package/src/utils/preserveFunc.js +33 -0
  119. package/src/utils/render.jsx +714 -0
  120. package/src/utils/request.js +10 -0
  121. package/src/utils/valid.js +71 -0
package/src/index.jsx ADDED
@@ -0,0 +1,140 @@
1
+ import { provide, toRef, watch, computed, ref, defineExpose, reactive, getCurrentInstance } from "vue"
2
+ import Renderer from './renderer.jsx'
3
+ // import './style/index.scss'
4
+ import { usePageConfig } from './hooks/pageConfig'
5
+ import { toValidate } from './utils/valid.js'
6
+ import { MODE } from "./utils/const.js"
7
+ import { generateRequester } from "./utils/request.js"
8
+
9
+ export default {
10
+ name: 'Resolver',
11
+ props: {
12
+ // 传入的自定义组件
13
+ components: {
14
+ type: Object,
15
+ default: () => ({})
16
+ },
17
+ // 当前模式;操作:operate(默认)、详情:detail、日志:log
18
+ mode: {
19
+ type: String,
20
+ default: MODE.OPERATE, // 操作:operate(默认)、详情:detail、日志:log
21
+ },
22
+ config: {
23
+ type: [Object],
24
+ default: () => null
25
+ },
26
+ // 下拉所需要用到的枚举值
27
+ selects: {
28
+ type: Object,
29
+ default: () => ({})
30
+ },
31
+ // 这个组件通过v-model进行数据的绑定
32
+ modelValue: {
33
+ // type: [String, Number, Object],
34
+ default: null
35
+ },
36
+ // 是否可以开始执行规则初始化
37
+ dataLoad: {
38
+ type: Boolean,
39
+ default: false
40
+ },
41
+ // 按钮的工作集合
42
+ buttonActions: {
43
+ type: Object,
44
+ default: () => ({})
45
+ },
46
+ lang: {
47
+ type: String,
48
+ default: 'zh'
49
+ },
50
+ // 请求方法的实列
51
+ axiosInstance: {
52
+ type: [Object, Function],
53
+ default: () => null
54
+ },
55
+ // config的额外属性配置
56
+ polyfillConfigs: {
57
+ type: Object,
58
+ default: () => ({})
59
+ },
60
+ // 输入弹框组件中弹框中的组件
61
+ dialogComponents: {
62
+ type: Object,
63
+ default: () => ({})
64
+ },
65
+ axiosConfig: {
66
+ type: Object,
67
+ default: null
68
+ },
69
+ isH5: {
70
+ type: Boolean,
71
+ default: false
72
+ }
73
+ },
74
+ setup(props, { emit, attrs, expose }) {
75
+ let axiosInstance = ref(props.axiosInstance)
76
+ watch(() => {
77
+ return props.axiosConfig
78
+ }, (val) => {
79
+ if (val) {
80
+ axiosInstance.value = generateRequester(val)
81
+ } else {
82
+ axiosInstance.value = props.axiosInstance
83
+ }
84
+ }, {
85
+ immediate: true
86
+ })
87
+ const instance = getCurrentInstance()
88
+ const { initPageConfig, pageConfigRef, mapCompRef, hireRelatMapRulesRef } = usePageConfig()
89
+ initPageConfig(props.config, props.lang, props.polyfillConfigs, instance, props.isH5)
90
+
91
+ watch(toRef(props, 'config'), () => {
92
+ initPageConfig(props.config, props.lang, props.polyfillConfigs, instance, props.isH5)
93
+ })
94
+ provide('pageConfig', pageConfigRef)
95
+ const dynamicMapComp = reactive({})
96
+ provide('_axiosInstance', axiosInstance)
97
+ provide('dynamicMapComp', dynamicMapComp)
98
+ provide('_mapComp', mapCompRef)
99
+ provide('hireRelatMapRules', hireRelatMapRulesRef) // 组件对应的规则集合
100
+
101
+ provide('buttonActions', props.buttonActions)
102
+ provide('components', toRef(props, 'components'))
103
+ provide('selects', toRef(props, 'selects'))
104
+ provide('rootValue', toRef(props, 'modelValue')) // 绑定进入的跟数据
105
+ provide('lang', toRef(props, 'lang'))
106
+ provide('dataLoad', toRef(props, 'dataLoad')) // 是否可以开始执行规则初始化
107
+ provide('dialogComponents', props.dialogComponents) // 是否可以开始执行规则初始化
108
+ provide('_isH5', toRef(props, 'isH5')) // 是否是H5配置
109
+
110
+ const rootForm = ref(null)
111
+ provide('rootForm', rootForm)
112
+
113
+ const validate = (cb) => {
114
+ toValidate(rootForm, cb, dynamicMapComp)
115
+ }
116
+ expose({
117
+ dynamicMapComp,
118
+ validate,
119
+ pageConfig: pageConfigRef,
120
+ rootForm
121
+ })
122
+
123
+ const modelValue = computed({
124
+ get() {
125
+ return props.modelValue
126
+ },
127
+ set(val) {
128
+ emit('update:modelValue', val)
129
+ }
130
+ })
131
+ return () => {
132
+ if (!pageConfigRef.value) {
133
+ return null
134
+ }
135
+ return (
136
+ <Renderer {...attrs} mode={props.mode} v-model={modelValue.value} config={pageConfigRef.value}></Renderer>
137
+ )
138
+ }
139
+ }
140
+ }
@@ -0,0 +1,68 @@
1
+ import { inject, ref, computed, provide, isReactive } from 'vue'
2
+ import { DISPLAY_SHOW, getComponentForConfig, generateLayoutPolyfill, isPlainObject, hasOwn, calcDisable, DISPLAY_HIDDEN } from './utils/index.js'
3
+ import AnalysisComponent from './analysisComponent.jsx'
4
+
5
+ export default {
6
+ name: 'Renderer',
7
+ inheritAttrs: false,
8
+ props: {
9
+ config: {
10
+ type: [Object, Array],
11
+ default: () => null
12
+ },
13
+ // 这个组件通过v-model进行数据的绑定
14
+ modelValue: {
15
+ // type: [String, Number, Object],
16
+ default: null
17
+ },
18
+ // 如果是表格中列的组件,会传入行数据,{row, $index}
19
+ rowScope: {
20
+ type: [Object],
21
+ default: () => null
22
+ },
23
+ // 当前模式;操作:operate(默认)、详情:detail、日志:log
24
+ mode: {
25
+ type: String,
26
+ default: '', // 操作:operate(默认)、详情:detail、日志:log
27
+ },
28
+ additionConfigs: {
29
+ type: Array,
30
+ default: () => []
31
+ },
32
+ },
33
+ emits: ['update:modelValue'],
34
+ setup(props, { emit, attrs }) {
35
+ const modelValue = computed({
36
+ get() {
37
+ return props.modelValue
38
+ },
39
+ set(val) {
40
+ emit('update:modelValue', val)
41
+ }
42
+ })
43
+ const _isH5 = inject('_isH5')
44
+ const injectMode = inject('injectMode', '')
45
+ const mode = props.mode || injectMode
46
+ provide('injectMode', mode)
47
+
48
+ return () => {
49
+ const configs = (Array.isArray(props.config) ? props.config : [props.config])
50
+ if (!configs) return null
51
+ if (!configs.length) return null
52
+ // 根据配置获取到对应的组件
53
+ return configs.map(config => {
54
+ if (config?.displayType == DISPLAY_HIDDEN) {
55
+ return null
56
+ }
57
+ const disabled = calcDisable(config, mode)
58
+ const component = getComponentForConfig(config, disabled, _isH5?.value)
59
+ if (component) {
60
+ const layoutPolyfill = generateLayoutPolyfill(config, disabled, _isH5?.value) // // 生成布局框(col)的辅助函数
61
+ return layoutPolyfill(
62
+ <AnalysisComponent additionConfigs={props.additionConfigs} key={`${config.metaId}-${config.rowIndex}`} component={component} config={config} {...attrs} mode={mode} rowScope={props.rowScope} v-model={modelValue.value}></AnalysisComponent>
63
+ )
64
+ }
65
+ })
66
+ }
67
+ }
68
+ }
@@ -0,0 +1,439 @@
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 { formatDate, hasOwn, isPlainObject, parseExtendAttr } from '../utils/index';
32
+ const valArrTypes = [...MULTI_PAGE_META_LIST_TYPES]
33
+ const valBooleanTypes = []
34
+
35
+ const eventsMap = {
36
+ 0: 'setHidden',
37
+ 1: 'setRequired',
38
+ 2: 'setDisable',
39
+ 3: 'setClear',
40
+ 4: 'setDefaultValue',
41
+ 5: 'limitDataRange',
42
+ 6: 'setPopup',
43
+ 7: 'openThePage',
44
+ 8: 'setShow',
45
+ 9: 'setNoRequired',
46
+ 10: 'setNoDisable',
47
+ 11: 'setDisableNotEffect',
48
+ 12: 'setRequiredNotEffect',
49
+ 13: 'setNoRequiredNotEffect',
50
+ 14: 'setNoDisableNotEffect',
51
+ 16: 'setProps'
52
+ }
53
+ const allInitEvents = {
54
+ setDefaultValue(event, isInit, tabpanelCode) {
55
+ const { targetObj: target, targetObjVal } = event
56
+ if (!target) return
57
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
58
+ let val = ''
59
+ try {
60
+ val = JSON.parse(targetObjVal)
61
+ } catch (err) {
62
+ val = targetObjVal
63
+ }
64
+ if (typeof val === 'number') {
65
+ val = `${val}`
66
+ }
67
+ if (val === ARG_FLAGS.REF_VAL) {
68
+ const { config } = this
69
+ val = config?.bindValue
70
+ } else {
71
+ const _absoluteTarget = /^_absoluteTarget:(.+)$/
72
+ const matchs = val.match(_absoluteTarget)
73
+ if (typeof val === 'string' && matchs?.[1]) {
74
+ const { dynamicMapComp } = this
75
+ const targetConfig = dynamicMapComp?.[matchs[1]]
76
+ val = targetConfig?.bindValue || ''
77
+ } else {
78
+ const curVal = getConfigValue.call(this, targetObj, true)
79
+ if (curVal || curVal == '0') {
80
+ val = curVal
81
+ }
82
+ }
83
+ }
84
+ setFormVal.call(this, targetObj, val)
85
+ },
86
+ setClear(event, isInit, tabpanelCode) {
87
+ if (isInit) {
88
+ return
89
+ }
90
+ const { targetObj: target } = event
91
+ if (!target) return
92
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
93
+ const configs = getCurrentComp.call(this, targetObj)
94
+ configs.forEach(labelInfo => {
95
+ if (!labelInfo) return
96
+ let val = ''
97
+ if (valArrTypes.includes(labelInfo.labelType)) {
98
+ val = []
99
+ }
100
+ if (valBooleanTypes.includes(labelInfo.labelType)) {
101
+ val = false
102
+ }
103
+ hasOwn(labelInfo, 'refValue') && (labelInfo.refValue = val)
104
+ })
105
+ },
106
+ setDisable(event, isInit, tabpanelCode) {
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
+ labelInfo && (labelInfo.editFlag = '0')
113
+ })
114
+ // 有的事件在不满足条件的情况下,需要进行恢复
115
+ return () => {
116
+ configs.forEach(labelInfo => {
117
+ labelInfo && (labelInfo.editFlag = '1')
118
+ })
119
+ }
120
+ },
121
+ setDisableNotEffect(event, isInit, tabpanelCode) {
122
+ const { targetObj: target } = event
123
+ if (!target) return
124
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
125
+ const configs = getCurrentComp.call(this, targetObj)
126
+ const oldEditFlags = []
127
+ configs.forEach(labelInfo => {
128
+ const oldEditFlag = labelInfo && labelInfo.editFlag
129
+ oldEditFlags.push(oldEditFlag)
130
+ labelInfo && (labelInfo.editFlag = '0')
131
+ })
132
+ // 有的事件在不满足条件的情况下,需要进行恢复
133
+ return () => {
134
+ configs.forEach((labelInfo, idx) => {
135
+ const oldEditFlag = oldEditFlags[idx]
136
+ labelInfo && (labelInfo.editFlag = oldEditFlag)
137
+ })
138
+ }
139
+ },
140
+ setRequired(event, isInit, tabpanelCode) {
141
+ const { targetObj: target } = event
142
+ if (!target) return
143
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
144
+ const configs = getCurrentComp.call(this, targetObj)
145
+ configs.forEach(labelInfo => {
146
+ labelInfo && (labelInfo.requiredFlag = '1')
147
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.requiredFlag = '1')
148
+
149
+ })
150
+ // 有的事件在不满足条件的情况下,需要进行恢复
151
+ return () => {
152
+ configs.forEach(labelInfo => {
153
+ labelInfo && (labelInfo.requiredFlag = '0')
154
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.requiredFlag = '0')
155
+ })
156
+ }
157
+ },
158
+ setRequiredNotEffect(event, isInit, tabpanelCode) {
159
+ const { targetObj: target } = event
160
+ if (!target) return
161
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
162
+ const configs = getCurrentComp.call(this, targetObj)
163
+
164
+ const oldRequiredFlags = []
165
+ configs.forEach(labelInfo => {
166
+ const oldRequiredFlag = labelInfo && labelInfo.requiredFlag
167
+ oldRequiredFlags.push(oldRequiredFlag)
168
+ labelInfo && (labelInfo.requiredFlag = '1')
169
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.requiredFlag = '1')
170
+ })
171
+ // 有的事件在不满足条件的情况下,需要进行恢复
172
+ return () => {
173
+ configs.forEach((labelInfo, idx) => {
174
+ const oldRequiredFlag = oldRequiredFlags[idx]
175
+ labelInfo && (labelInfo.requiredFlag = oldRequiredFlag)
176
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.requiredFlag = oldRequiredFlag)
177
+ })
178
+ }
179
+ },
180
+ setHidden(event, isInit, tabpanelCode) {
181
+ const { targetObj: target } = event
182
+ if (!target) return
183
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
184
+ const configs = getCurrentComp.call(this, targetObj)
185
+ // const oldDisplayTypes = []
186
+ // 隐藏的效果需要晚点触发,才能正常执行清空等一些列需要组件操作
187
+ setTimeout(() => {
188
+ configs.forEach(labelInfo => {
189
+ // const oldDisplayType = labelInfo && labelInfo.displayType
190
+ // oldDisplayTypes.push(oldDisplayType)
191
+ labelInfo && (labelInfo.displayType = '0')
192
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.displayType = '0')
193
+ })
194
+ }, 0)
195
+
196
+ // 有的事件在不满足条件的情况下,需要进行恢复
197
+ return () => {
198
+ configs.forEach((labelInfo, idx) => {
199
+ // const oldDisplayType = oldDisplayTypes[idx]
200
+ labelInfo && (labelInfo.displayType = '1')
201
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.displayType = '1')
202
+ })
203
+ }
204
+ },
205
+ setShow(event, isInit, tabpanelCode, rule) {
206
+ const { targetObj: target } = event
207
+ if (!target) return
208
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
209
+ // if (target.indexOf('isSpecialPriceingApproval') > -1) {
210
+ // console.log('rule===:', rule)
211
+ // debugger
212
+ // }
213
+ const configs = getCurrentComp.call(this, targetObj)
214
+ // const oldDisplayTypes = []
215
+ // if (target.indexOf('amountBilled') > -1) {
216
+ // debugger
217
+ // }
218
+ configs.forEach((labelInfo) => {
219
+ // const oldDisplayType = labelInfo && labelInfo.displayType
220
+ // oldDisplayTypes.push(oldDisplayType)
221
+ labelInfo && (labelInfo.displayType = '1')
222
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.displayType = '1')
223
+ })
224
+ // 有的事件在不满足条件的情况下,需要进行恢复
225
+ return () => {
226
+ // 隐藏的效果需要晚点触发,才能正常执行清空等一些列需要组件操作
227
+ return setTimeout(() => {
228
+ // if (target.indexOf('isSpecialPriceingApproval') > -1) {
229
+ // console.log('rule===:', rule)
230
+ // debugger
231
+ // }
232
+ configs.forEach((labelInfo, idx) => {
233
+ // const oldDisplayType = oldDisplayTypes[idx]
234
+ labelInfo && (labelInfo.displayType = '0')
235
+ labelInfo && labelInfo.refConfig && (labelInfo.refConfig.displayType = '0')
236
+ })
237
+ }, 0)
238
+ }
239
+ },
240
+ setNoRequired(event, isInit, tabpanelCode) {
241
+ const { targetObj: target } = event
242
+ if (!target) return
243
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
244
+ const configs = getCurrentComp.call(this, targetObj)
245
+
246
+ const callFns = []
247
+ configs.forEach(labelInfo => {
248
+ if (labelInfo && labelInfo.requiredFlag != '0') {
249
+ labelInfo && (labelInfo.requiredFlag = '0')
250
+ // 有的事件在不满足条件的情况下,需要进行恢复
251
+ callFns.push(() => {
252
+ labelInfo && (labelInfo.requiredFlag = '1')
253
+ })
254
+ }
255
+ })
256
+ return () => {
257
+ callFns.forEach(fn => fn())
258
+ }
259
+ },
260
+ setNoRequiredNotEffect(event, isInit, tabpanelCode) {
261
+ const { targetObj: target } = event
262
+ if (!target) return
263
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
264
+ const configs = getCurrentComp.call(this, targetObj)
265
+
266
+ const oldRequiredFlags = []
267
+ configs.forEach(labelInfo => {
268
+ const oldRequiredFlag = labelInfo && labelInfo.requiredFlag
269
+ oldRequiredFlags.push(oldRequiredFlag)
270
+ labelInfo && (labelInfo.requiredFlag = '0')
271
+ })
272
+
273
+ // 有的事件在不满足条件的情况下,需要进行恢复
274
+ return () => {
275
+ configs.forEach((labelInfo, idx) => {
276
+ const oldRequiredFlag = oldRequiredFlags[idx]
277
+ labelInfo && (labelInfo.requiredFlag = oldRequiredFlag)
278
+ })
279
+ }
280
+ },
281
+ setNoDisable(event, isInit, tabpanelCode) {
282
+ const { targetObj: target } = event
283
+ if (!target) return
284
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
285
+ const configs = getCurrentComp.call(this, targetObj)
286
+ configs.forEach((labelInfo) => {
287
+ labelInfo && (labelInfo.editFlag = '1')
288
+ })
289
+ // 有的事件在不满足条件的情况下,需要进行恢复
290
+ return () => {
291
+ configs.forEach((labelInfo) => {
292
+ labelInfo && (labelInfo.editFlag = '0')
293
+ })
294
+ }
295
+ },
296
+ setNoDisableNotEffect(event, isInit, tabpanelCode) {
297
+ const { targetObj: target } = event
298
+ if (!target) return
299
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
300
+ const configs = getCurrentComp.call(this, targetObj)
301
+ const oldEditFlags = []
302
+ configs.forEach((labelInfo) => {
303
+ const oldEditFlag = labelInfo && labelInfo.editFlag
304
+ oldEditFlags.push(oldEditFlag)
305
+ labelInfo && (labelInfo.editFlag = '1')
306
+ })
307
+
308
+ // 有的事件在不满足条件的情况下,需要进行恢复
309
+ return () => {
310
+ configs.forEach((labelInfo, idx) => {
311
+ const oldEditFlag = oldEditFlags[idx]
312
+ labelInfo && (labelInfo.editFlag = oldEditFlag)
313
+ })
314
+ }
315
+ },
316
+ limitDataRange(event, isInit, tabpanelCode) {
317
+ const { targetObj: target, targetObjVal = '' } = event
318
+ if (!target) return
319
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
320
+ const range = targetObjVal.split('~')
321
+ if (range && range.length) {
322
+ const min = range[0]
323
+ const max = range[1]
324
+ const currentVal = getConfigValue.call(this, targetObj, true)
325
+ if (min && lessThan(currentVal, min)) {
326
+ setFormVal.call(this, targetObj, min)
327
+ }
328
+ if (max && greaterThan(currentVal, max)) {
329
+ setFormVal.call(this, targetObj, max)
330
+ }
331
+ }
332
+ },
333
+ setPopup(event, isInit, tabpanelCode) {
334
+ const { targetMsg, targetMsgEn } = event
335
+ const msg = this.lang.value.indexOf('zh') > -1 ? targetMsg : targetMsgEn
336
+ this.$alert(msg, '', {
337
+ showCancelButton: false,
338
+ });
339
+ // commModal({
340
+ // msg: storage.get('aid-language').indexOf('zh') !== -1 ? targetMsg : targetMsgEn
341
+ // })
342
+ // document && document.body && document.body.click()
343
+ },
344
+ openThePage(event, isInit, tabpanelCode) {
345
+ const { targetObjVal } = event
346
+ if (targetObjVal) {
347
+ window.open(targetObjVal, '_blank')
348
+ }
349
+ },
350
+ setProps(event, isInit, tabpanelCode, rule) {
351
+ const { targetObj: target, targetObjVal } = event
352
+ if (!target) return
353
+
354
+ const targetObj = `${tabpanelCode ? tabpanelCode + '->' : ''}${target}`
355
+ const { config } = this
356
+ let val = ''
357
+ try {
358
+ val = parseExtendAttr(
359
+ {
360
+ extendAttr: targetObjVal,
361
+ metaCode: `event setPorps code:${config.metaCode}`
362
+ },
363
+ config?.bindValue
364
+ )
365
+ } catch (err) {
366
+ val = ''
367
+ }
368
+ if (!isPlainObject(val)) return
369
+
370
+ const configs = getCurrentComp.call(this, targetObj)
371
+ const oldPorpsList = []
372
+ const porpsKeys = Object.keys(val)
373
+ // if (target.indexOf('amountBilled') > -1) {
374
+ // debugger
375
+ // }
376
+ configs.forEach((labelInfo) => {
377
+ let updateFlag = false
378
+ const oldProps = {}
379
+ if (!labelInfo) return
380
+ porpsKeys.forEach(key => {
381
+ oldProps[key] = labelInfo[key]
382
+ if (!hasOwn(labelInfo, key)) {
383
+ // 如果有一个属性没有,就需要更新下组件,防止渲染不及时
384
+ updateFlag = true
385
+ }
386
+ if ((typeof val[key]) === 'string') {
387
+ const { config } = this
388
+ const bindValue = config?.bindValue
389
+ labelInfo[key] = val[key].replace(/\{([^}]+)\}/g, (originVal, matchVal) => {
390
+ if (matchVal.trimEnd().trimStart() === ARG_FLAGS.REF_VAL) {
391
+ return bindValue
392
+ }
393
+ if (matchVal.trimEnd().trimStart() === ARG_FLAGS.CURRENT_DATE) {
394
+ return formatDate(new Date(), 'yyyy-MM-dd')
395
+ }
396
+ return originVal
397
+ })
398
+ } else {
399
+ labelInfo[key] = val[key]
400
+ }
401
+ })
402
+ oldPorpsList.push(oldProps)
403
+ if (updateFlag) {
404
+ labelInfo?.wrapVm?.ctx?.$forceUpdate?.()
405
+ }
406
+ })
407
+ // 有的事件在不满足条件的情况下,需要进行恢复
408
+ return () => {
409
+ // 需要晚点触发,才能正常执行清空等一些列需要组件操作
410
+ return setTimeout(() => {
411
+ configs.forEach((labelInfo, idx) => {
412
+ const oldProps = oldPorpsList[idx]
413
+ if (!labelInfo) return
414
+ porpsKeys.forEach(key => {
415
+ labelInfo[key] = oldProps[key]
416
+ })
417
+ })
418
+ }, 0)
419
+ }
420
+ },
421
+ }
422
+
423
+
424
+ export default allInitEvents
425
+
426
+ export function runEvent(events, isInit, tabpanelCode, rule) {
427
+ events = events || []
428
+ return events.map(event => {
429
+ const { eventId } = event
430
+ const eventCode = eventsMap[eventId]
431
+ // const { eventCode } = event
432
+ return allInitEvents[eventCode] && allInitEvents[eventCode].call(this, event, isInit, tabpanelCode, rule)
433
+ // return {
434
+ // eventId,
435
+ // cb: allInitEvents[eventCode] && allInitEvents[eventCode].call(this, event)
436
+ // }
437
+ })
438
+ }
439
+