resolver-egretimp-plus 0.0.208 → 0.0.210

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "resolver-egretimp-plus",
3
- "version": "0.0.208",
3
+ "version": "0.0.210",
4
4
  "description": "交付体验渲染",
5
5
  "main": "./dist/web/index.js",
6
6
  "module": "./dist/web/index.js",
@@ -1,7 +1,8 @@
1
1
  <template>
2
2
  <TabPane v-for="(pageMetaList, $index) in (multiPmPageMetaList || [])" v-bind="{...tabPaneProps}" :key="pageMetaListKeys[pageMetaList.id]" :label="`${lang.indexOf('zh') > -1 ? props.config?.metaNameZh : props.config?.metaNameEn}-${$index}`" :name="`${props.config?.metaCode}-${$index}`">
3
- <template #label v-if="pageMetaList.filter(config => config.collapseSlot).length">
4
- <Renderer :modelValue="modelValue?.[$index]" :rowScope="{row: modelValue?.[$index], $index}" @update:modelValues="onUpdateModelValue($event, $index)" :config="pageMetaList.filter(config => config.collapseSlot)"></Renderer>
3
+ <template #label v-if="labelRenderContentFn || pageMetaList.filter(config => config.collapseSlot).length">
4
+ <component :is="labelRenderContentFn(getLableRenderParams(modelValue?.[$index]))" v-if="labelRenderContentFn"></component>
5
+ <Renderer v-else :modelValue="modelValue?.[$index]" :rowScope="{row: modelValue?.[$index], $index}" @update:modelValues="onUpdateModelValue($event, $index)" :config="pageMetaList.filter(config => config.collapseSlot)"></Renderer>
5
6
  </template>
6
7
  <ElRow>
7
8
  <Renderer :modelValue="modelValue?.[$index]" :rowScope="{row: modelValue?.[$index], $index}" @update:modelValues="onUpdateModelValue($event, $index)" :config="pageMetaList.filter(config => !config.collapseSlot)"></Renderer>
@@ -14,6 +15,7 @@ import Renderer from '../../renderer.jsx'
14
15
  import { computed, inject, reactive, watch, defineModel, defineProps } from 'vue'
15
16
  import { commonPropsType, cloneDeep, definePrivatelyProp } from '../../utils/index.js'
16
17
  import { TabPane } from '../tabs'
18
+ import { h } from 'vue'
17
19
 
18
20
  const props = defineProps({
19
21
  ...commonPropsType,
@@ -82,6 +84,28 @@ watch(() => {
82
84
  }, {
83
85
  immediate: true
84
86
  })
87
+
88
+ // 自定义渲染label方法
89
+ const labelRenderContentFn = computed(() => {
90
+ if (props.config?.labelRender && typeof props.config?.labelRender == 'function') {
91
+ return (params) => {
92
+ const context = props.config?.labelRender?.(params)
93
+ if (typeof context === 'string') {
94
+ return h('span', context)
95
+ } else {
96
+ return context
97
+ }
98
+ }
99
+ } else {
100
+ return null
101
+ }
102
+ })
103
+ function getLableRenderParams(tabPaneData) {
104
+ return {
105
+ config: props.config,
106
+ tabPaneData
107
+ }
108
+ }
85
109
  </script>
86
110
  <style lang="scss">
87
111
  .el-tabs__item.is-active {
@@ -1,7 +1,8 @@
1
1
  <template>
2
2
  <TabPane v-bind="{...attrs, ...tabPaneProps, ...polyProps}">
3
- <template #label v-if="slotsPageMetalist.length">
4
- <Renderer :config="slotsPageMetalist" v-model="props.refValue.value"></Renderer>
3
+ <template #label v-if="labelRenderContent || slotsPageMetalist.length">
4
+ <component :is="labelRenderContent" v-if="labelRenderContent"></component>
5
+ <Renderer v-else :config="slotsPageMetalist" v-model="props.refValue.value"></Renderer>
5
6
  </template>
6
7
  <ElRow>
7
8
  <Renderer :config="(props.config.pmPageMetaList || []).filter(config => !config.collapseSlot)" v-model="props.refValue.value"></Renderer>
@@ -14,6 +15,7 @@ import Renderer from '../../renderer.jsx'
14
15
  import { computed, inject, useAttrs } from 'vue'
15
16
  import { commonPropsType } from '../../utils/index.js'
16
17
  import { TabPane } from '../tabs'
18
+ import { h } from 'vue'
17
19
 
18
20
  const props = defineProps({
19
21
  ...commonPropsType,
@@ -43,4 +45,20 @@ const tabPaneProps = computed(() => {
43
45
  }
44
46
  return ret
45
47
  })
48
+
49
+ // 自定义渲染label方法
50
+ const labelRenderContent = computed(() => {
51
+ const context = props.config?.labelRender?.(getLableRenderParams())
52
+ if (typeof context === 'string') {
53
+ return h('span', context)
54
+ } else {
55
+ return context
56
+ }
57
+ })
58
+ function getLableRenderParams() {
59
+ return {
60
+ config: props.config,
61
+ tabPaneData: props.refValue.value
62
+ }
63
+ }
46
64
  </script>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <Tabs :class="[`tabs-level-${level}`, fullBorder ? 'full-border' : '']" v-bind="transTabsProps" v-model="activeNames">
2
+ <Tabs :class="[`tabs-level-${level}`, isHeaderAuto ? 'tabpane-auto-header' : '', fullBorder ? 'full-border' : '']" v-bind="transTabsProps" v-model="activeNames">
3
3
  <Renderer :config="tabpanes" v-model="props.refValue.value"></Renderer>
4
4
  </Tabs>
5
5
  </template>
@@ -56,7 +56,9 @@ const activeNames = computed({
56
56
  })
57
57
  }
58
58
  })
59
-
59
+ const isHeaderAuto = computed(() => {
60
+ return props.config.autoHeader == '1'
61
+ })
60
62
  const level = computed(() => {
61
63
  return props.config.level || tabpanes.value.find(tabpane => hasOwn(tabpane, 'level'))?.level || 1
62
64
  })
@@ -72,6 +72,11 @@
72
72
  }
73
73
  }
74
74
  }
75
+ .tabpane-auto-header {
76
+ & > .el-tabs__header {
77
+ --el-tabs-header-height: auto;
78
+ }
79
+ }
75
80
  .CustomComponentTabs {
76
81
  .el-tabs__content {
77
82
  margin-right: -16px;
@@ -765,7 +765,7 @@ function getFormItemRule(config, lang, params) {
765
765
  callback()
766
766
  return
767
767
  }
768
- if (isHidden({ config })) {
768
+ if (isChainHidden({ config })) {
769
769
  callback()
770
770
  return
771
771
  }
@@ -815,7 +815,7 @@ function getFormItemRule(config, lang, params) {
815
815
  callback()
816
816
  return
817
817
  }
818
- if (isHidden({ config })) {
818
+ if (isChainHidden({ config })) {
819
819
  callback()
820
820
  return
821
821
  }
@@ -852,7 +852,7 @@ function getFormItemRule(config, lang, params) {
852
852
  callback()
853
853
  return
854
854
  }
855
- if (isHidden({ config })) {
855
+ if (isChainHidden({ config })) {
856
856
  callback()
857
857
  return
858
858
  }
@@ -973,6 +973,16 @@ function isTransCellMobile(config, disabled) {
973
973
  function isHidden({config}) {
974
974
  return (typeof config.hidden === 'boolean' && config.hidden) || config.hidden === '1'
975
975
  }
976
+ // 如果父级有一个是hidden了,那就表示hidden了
977
+ function isChainHidden({config}) {
978
+ if (isHidden({config})) {
979
+ return true
980
+ }
981
+ if (config?.parent) {
982
+ return isChainHidden({config: config.parent})
983
+ }
984
+ return false
985
+ }
976
986
 
977
987
  function generateVuePath(path) {
978
988
  class LoadModulePath extends String {