resolver-egretimp-plus 0.0.8 → 0.0.10

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 (73) hide show
  1. package/dist/h5/index.js +1 -0
  2. package/dist/theme/element/index.css +1 -1
  3. package/dist/web/index.js +2 -0
  4. package/index-H5.js +2 -0
  5. package/index-web.js +2 -0
  6. package/index.js +0 -2
  7. package/package.json +13 -10
  8. package/scripts/gulpfile.mjs +1 -1
  9. package/scripts/webpack.config.js +18 -4
  10. package/src/components/patchComponents-web.js +46 -0
  11. package/src/index.jsx +6 -1
  12. package/src/renderer.jsx +2 -1
  13. package/src/resolver-H5.vue +13 -0
  14. package/src/resolver-web.vue +13 -0
  15. package/src/rules/parseCondition.js +16 -4
  16. package/src/rules_b/events.js +412 -0
  17. package/src/rules_b/executeRule.js +0 -0
  18. package/src/rules_b/index.js +13 -0
  19. package/src/rules_b/parsCondition.js +0 -0
  20. package/src/rules_b/ruleUtils.js +0 -0
  21. package/src/utils/render.jsx +7 -7
  22. package/dist/index.js +0 -2
  23. /package/dist/{index.js.LICENSE.txt → web/index.js.LICENSE.txt} +0 -0
  24. /package/src/components/{packages → packages-H5}/CmiButton.vue +0 -0
  25. /package/src/components/{packages → packages-H5}/CmiCalendar.vue +0 -0
  26. /package/src/components/{packages → packages-H5}/CmiCell.vue +0 -0
  27. /package/src/components/{packages → packages-H5}/CmiCheckbox.vue +0 -0
  28. /package/src/components/{packages → packages-H5}/CmiDatetimePicker.vue +0 -0
  29. /package/src/components/{packages → packages-H5}/CmiDropdownMenu.vue +0 -0
  30. /package/src/components/{packages → packages-H5}/CmiInput.vue +0 -0
  31. /package/src/components/{packages → packages-H5}/CmiLink.vue +0 -0
  32. /package/src/components/{packages → packages-H5}/CmiPicker.vue +0 -0
  33. /package/src/components/{packages → packages-H5}/CmiRadio.vue +0 -0
  34. /package/src/components/{packages → packages-H5}/CmiSearch.vue +0 -0
  35. /package/src/components/{packages → packages-H5}/CmiSelect.vue +0 -0
  36. /package/src/components/{packages → packages-H5}/CustomComponentCardH5.vue +0 -0
  37. /package/src/components/{packages → packages-H5}/CustomComponentColH5.vue +0 -0
  38. /package/src/components/{packages → packages-H5}/CustomComponentCollapseH5.vue +0 -0
  39. /package/src/components/{packages → packages-H5}/CustomComponentFormLayoutH5.vue +0 -0
  40. /package/src/components/{packages → packages-H5}/CustomComponentTabPaneH5.vue +0 -0
  41. /package/src/components/{packages → packages-H5}/CustomComponentTableH5.vue +0 -0
  42. /package/src/components/{packages → packages-H5}/CustomComponentTabsH5.vue +0 -0
  43. /package/src/components/{packages → packages-web}/CustomComponentCard.vue +0 -0
  44. /package/src/components/{packages → packages-web}/CustomComponentCol.vue +0 -0
  45. /package/src/components/{packages → packages-web}/CustomComponentCollapse.vue +0 -0
  46. /package/src/components/{packages → packages-web}/CustomComponentCycle.vue +0 -0
  47. /package/src/components/{packages → packages-web}/CustomComponentCycleTabPane.vue +0 -0
  48. /package/src/components/{packages → packages-web}/CustomComponentDialog.vue +0 -0
  49. /package/src/components/{packages → packages-web}/CustomComponentEditor.vue +0 -0
  50. /package/src/components/{packages → packages-web}/CustomComponentFormLayout.vue +0 -0
  51. /package/src/components/{packages → packages-web}/CustomComponentGrid.vue +0 -0
  52. /package/src/components/{packages → packages-web}/CustomComponentGridCol.vue +0 -0
  53. /package/src/components/{packages → packages-web}/CustomComponentInputDialog.vue +0 -0
  54. /package/src/components/{packages → packages-web}/CustomComponentPlain.vue +0 -0
  55. /package/src/components/{packages → packages-web}/CustomComponentRow.vue +0 -0
  56. /package/src/components/{packages → packages-web}/CustomComponentSelectEmployees.vue +0 -0
  57. /package/src/components/{packages → packages-web}/CustomComponentSendMail.vue +0 -0
  58. /package/src/components/{packages → packages-web}/CustomComponentSteps.vue +0 -0
  59. /package/src/components/{packages → packages-web}/CustomComponentTabPane.vue +0 -0
  60. /package/src/components/{packages → packages-web}/CustomComponentTable.jsx +0 -0
  61. /package/src/components/{packages → packages-web}/CustomComponentTabs.vue +0 -0
  62. /package/src/components/{packages → packages-web}/CustomComponentTree.vue +0 -0
  63. /package/src/components/{packages → packages-web}/ElButton.vue +0 -0
  64. /package/src/components/{packages → packages-web}/ElCheckbox.vue +0 -0
  65. /package/src/components/{packages → packages-web}/ElDatePicker.vue +0 -0
  66. /package/src/components/{packages → packages-web}/ElInput.vue +0 -0
  67. /package/src/components/{packages → packages-web}/ElInputNumber.vue +0 -0
  68. /package/src/components/{packages → packages-web}/ElPagination.vue +0 -0
  69. /package/src/components/{packages → packages-web}/ElRadio.vue +0 -0
  70. /package/src/components/{packages → packages-web}/ElSelect.vue +0 -0
  71. /package/src/components/{packages → packages-web}/ElText.vue +0 -0
  72. /package/src/components/{packages → packages-web}/ElTimePicker.vue +0 -0
  73. /package/src/components/{patchComponents.js → patchComponents-H5.js} +0 -0
package/index-H5.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './index.js'
2
+ export { default as default} from './src/resolver-H5.vue'
package/index-web.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './index.js'
2
+ export { default as default} from './src/resolver-web.vue'
package/index.js CHANGED
@@ -1,5 +1,3 @@
1
- export { default as default} from './src/index.jsx'
2
-
3
1
  export { default as Renderer} from './src/renderer.jsx'
4
2
  import { commonPropsType } from './src/utils/index.js'
5
3
 
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "resolver-egretimp-plus",
3
- "version": "0.0.8",
3
+ "version": "0.0.10",
4
4
  "description": "交付体验渲染",
5
- "main": "./dist/index.js",
6
- "module": "./dist/index.js",
5
+ "main": "./dist/web/index.js",
6
+ "module": "./dist/web/index.js",
7
7
  "exports": {
8
8
  ".": "./dist/index.js",
9
9
  "./dist/*": "./dist/*"
@@ -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,16 +1,20 @@
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',
6
- entry: path.resolve(__dirname, '../index.js'),
6
+ entry: {
7
+ web: path.resolve(__dirname, '../index-web.js'),
8
+ h5: path.resolve(__dirname, '../index-h5.js'),
9
+ },
7
10
  output: {
11
+ clean: true,
8
12
  library: {
9
13
  // name: 'resolver',
10
14
  type: 'module'
11
15
  },
12
16
  path: path.resolve(__dirname, '../dist'),
13
- filename: 'index.js'
17
+ filename: '[name]/index.js'
14
18
  },
15
19
  module: {
16
20
  rules: [
@@ -24,7 +28,16 @@ module.exports = {
24
28
  },
25
29
  {
26
30
  test: /\.vue$/,
27
- loader: 'vue-loader',
31
+ use: [
32
+ {
33
+ loader: 'vue-loader',
34
+ options: {
35
+ compilerOptions: {
36
+ isCustomElement: tag => tag.startsWith('cmi-')
37
+ }
38
+ }
39
+ }
40
+ ],
28
41
  },
29
42
  {
30
43
  test: /\.less$/,
@@ -58,6 +71,7 @@ module.exports = {
58
71
  },
59
72
  externals: {
60
73
  vue: 'vue',
74
+ 'cmid-dev': 'cmid-dev',
61
75
  'element-plus': 'element-plus',
62
76
  'vue-router': 'vue-router',
63
77
  'element-plus/es/hooks/index.mjs': 'element-plus/es/hooks/index.mjs',
@@ -0,0 +1,46 @@
1
+ let composeKeys = null
2
+ let composeComponents = null
3
+
4
+ export default function () {
5
+ if (!composeComponents || !composeKeys) {
6
+ let modulesFiles = {}
7
+ let modulesFilesKeys = []
8
+ let resolveModule = null
9
+ try {
10
+ if (require) {
11
+ modulesFiles = require.context('./packages-web', false, /\.(vue|jsx|js)$/)
12
+ modulesFilesKeys = modulesFiles.keys() || []
13
+ resolveModule = (modulePath) => {
14
+ return modulesFiles(modulePath)
15
+ }
16
+ }
17
+ } catch (error) {
18
+ modulesFiles = import.meta.glob('./packages-web/*.{vue,jsx,js}')
19
+ modulesFilesKeys = Object.keys(modulesFiles)
20
+ resolveModule = (modulePath) => {
21
+ return modulesFiles[modulePath]
22
+ }
23
+ }
24
+
25
+ const keys = modulesFilesKeys.map(modulePath => modulePath.replace(/(.*\/)*([^.]+).*/ig,"$2"))
26
+ const components = modulesFilesKeys.reduce((retObj, modulePath) => {
27
+ const moduleName = modulePath.replace(/(.*\/)*([^.]+).*/ig,"$2")
28
+ const value = resolveModule(modulePath)
29
+ retObj[moduleName] = value.default || value
30
+ return retObj
31
+ }, {})
32
+
33
+ composeKeys = [
34
+ // ...dynamicKeys,
35
+ ...keys
36
+ ]
37
+ composeComponents = {
38
+ // ...dynamicComponents,
39
+ ...components
40
+ }
41
+ }
42
+ return {
43
+ composeKeys,
44
+ composeComponents
45
+ }
46
+ }
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: {
@@ -69,6 +68,10 @@ export default {
69
68
  isH5: {
70
69
  type: Boolean,
71
70
  default: false
71
+ },
72
+ getNativeComps: {
73
+ type: Function,
74
+ default: () => ({composeComponents: {}})
72
75
  }
73
76
  },
74
77
  setup(props, { emit, attrs, expose }) {
@@ -91,6 +94,8 @@ export default {
91
94
  watch(toRef(props, 'config'), () => {
92
95
  initPageConfig(props.config, props.lang, props.polyfillConfigs, instance, props.isH5)
93
96
  })
97
+
98
+ provide('_getNativeComps', props.getNativeComps)
94
99
  provide('pageConfig', pageConfigRef)
95
100
  const dynamicMapComp = reactive({})
96
101
  provide('_axiosInstance', axiosInstance)
package/src/renderer.jsx CHANGED
@@ -40,6 +40,7 @@ export default {
40
40
  emit('update:modelValue', val)
41
41
  }
42
42
  })
43
+ const getNativeComps = inject('_getNativeComps')
43
44
  const _isH5 = inject('_isH5')
44
45
  const injectMode = inject('injectMode', '')
45
46
  const mode = props.mode || injectMode
@@ -55,7 +56,7 @@ export default {
55
56
  return null
56
57
  }
57
58
  const disabled = calcDisable(config, mode)
58
- const component = getComponentForConfig(config, disabled, _isH5?.value)
59
+ const component = getComponentForConfig({config, disabled, getNativeComps, isH5: _isH5?.value})
59
60
  if (component) {
60
61
  const layoutPolyfill = generateLayoutPolyfill(config, disabled, _isH5?.value) // // 生成布局框(col)的辅助函数
61
62
  return layoutPolyfill(
@@ -0,0 +1,13 @@
1
+ <script setup>
2
+ import getNativeComps from './components/patchComponents-H5.js'
3
+ import { useAttrs } from 'vue';
4
+ import Resolver from './index.jsx'
5
+
6
+ defineOptions({
7
+ inheritAttrs: false
8
+ })
9
+ const attrs = useAttrs()
10
+ </script>
11
+ <template>
12
+ <Resolver v-bind="attrs" :getNativeComps="getNativeComps"></Resolver>
13
+ </template>
@@ -0,0 +1,13 @@
1
+ <script setup>
2
+ import getNativeComps from './components/patchComponents-web'
3
+ import { useAttrs } from 'vue';
4
+ import Resolver from './index.jsx'
5
+
6
+ defineOptions({
7
+ inheritAttrs: false
8
+ })
9
+ const attrs = useAttrs()
10
+ </script>
11
+ <template>
12
+ <Resolver v-bind="attrs" :getNativeComps="getNativeComps"></Resolver>
13
+ </template>
@@ -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
+ }