resolver-egretimp-plus 0.0.209 → 0.0.211

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.209",
3
+ "version": "0.0.211",
4
4
  "description": "交付体验渲染",
5
5
  "main": "./dist/web/index.js",
6
6
  "module": "./dist/web/index.js",
@@ -280,7 +280,7 @@ function normalResult(ret, config) {
280
280
  ret[config.metaCode] = formatAmount(ret[config.metaCode], config.amountFormat)
281
281
  }
282
282
  if (typeof config?.formatter === "function") {
283
- ret[config.metaCode] = config.formatter(ret[config.metaCode], config, props)
283
+ ret[config.metaCode] = config.formatter(ret[config.metaCode], ret, config, props)
284
284
  }
285
285
  }
286
286
 
@@ -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;