@tplc/business 0.4.171 → 0.4.173

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/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.4.173](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.4.172...v0.4.173) (2025-07-26)
6
+
7
+
8
+ ### ✨ Features | 新功能
9
+
10
+ * 调整布局点击 ([5bcc28a](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/5bcc28a02ad983b6c0542b08f03b491713e6f1a9))
11
+
12
+ ### [0.4.172](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.4.171...v0.4.172) (2025-07-26)
13
+
14
+
15
+ ### ✨ Features | 新功能
16
+
17
+ * banner block full ([5a312ce](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/5a312ce1b94d35a1aa166317a9288aa80655fc2d))
18
+
5
19
  ### [0.4.171](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.4.170...v0.4.171) (2025-07-26)
6
20
 
7
21
 
@@ -1,22 +1,43 @@
1
1
  <template>
2
2
  <view
3
- class="lcb-banner"
4
- :class="{ 'full-screen-background': fullScreenBackground }"
3
+ class="lcb-banner relative"
4
+ :class="{
5
+ 'full-screen-background': fullScreenBackground,
6
+ 'full-screen-swiper': fullScreenBackground && !height,
7
+ }"
5
8
  :style="{ filter: `blur(${Math.min(scrollTop / 100, 10)}px)` }"
6
9
  >
10
+ <view
11
+ class="absolute z-1 transition-all duration-300"
12
+ v-if="showTitle"
13
+ :style="{
14
+ color: titleColor,
15
+ fontSize: transformValueUnit(titleFontSize),
16
+ top: transformValueUnit(titleTop),
17
+ left: transformValueUnit(titleLeft),
18
+ fontWeight: titleFontWeight,
19
+ }"
20
+ >
21
+ {{ currentTitle }}
22
+ </view>
7
23
  <lcb-block
8
24
  v-bind="$props"
9
- custom-class="overflow-visible lcb-banner-block"
10
- :customStyle="fullScreenBackground ? { width: '100%', height: '100%' } : {}"
25
+ custom-class="overflow-visible lcb-banner-block flex flex-col"
26
+ :customStyle="
27
+ fullScreenBackground
28
+ ? { width: '100%', height: '100%', flex: 1, display: 'flex', flexDirection: 'column' }
29
+ : {}
30
+ "
11
31
  >
12
32
  <wd-swiper
13
33
  value-key="url"
14
34
  action
35
+ v-model:current="currentIndex"
15
36
  custom-indicator-class="custom-indicator-class"
16
37
  v-bind="{
17
38
  list: items,
18
39
  loop,
19
- height: fullScreenBackground ? '100%' : transformValueUnit(height),
40
+ height: fullScreenBackground && !height ? '100%' : transformValueUnit(height),
20
41
  imgWidth: imgWidth && transformValueUnit(imgWidth),
21
42
  radius: transformValueUnit(radius),
22
43
  autoplay: Boolean(interval),
@@ -33,6 +54,12 @@
33
54
  ...supplementProps,
34
55
  }"
35
56
  />
57
+ <view
58
+ class="absolute top-0 left-0 w-full h-full z-1 pointer-events-none"
59
+ :style="{
60
+ background: fullMaskBgColor,
61
+ }"
62
+ />
36
63
  </lcb-block>
37
64
  </view>
38
65
  </template>
@@ -54,6 +81,11 @@ const props = withDefaults(defineProps<LcbBannerProps>(), {
54
81
  styleGroup: 1,
55
82
  radius: 0,
56
83
  slidingStyle: 1,
84
+ titleColor: '#fff',
85
+ titleFontSize: 28,
86
+ titleTop: 100,
87
+ titleLeft: 100,
88
+ fontWeight: 500,
57
89
  })
58
90
  const scrollTop = ref(0)
59
91
  const supplementProps = computed(() => {
@@ -71,8 +103,19 @@ const supplementProps = computed(() => {
71
103
  }
72
104
  return {}
73
105
  })
106
+ const currentIndex = ref(0)
107
+ const currentTitle = computed(() => {
108
+ return props.items?.[currentIndex.value]?.title
109
+ })
74
110
  const indicatorCustomStyle = computed(() => {
75
- return props.indicatorBottom ? `bottom: ${transformValueUnit(props.indicatorBottom)}` : ''
111
+ return props.indicatorBottom
112
+ ? `bottom: ${transformValueUnit(props.indicatorBottom)}`
113
+ : props.indicatorTop
114
+ ? `top: ${transformValueUnit(props.indicatorTop)}`
115
+ : ''
116
+ })
117
+ const fullMaskBgColor = computed(() => {
118
+ return props.items?.[currentIndex.value]?.maskBgColor
76
119
  })
77
120
  const customStyle = computed(() => {
78
121
  return props.paddingBottom ? `padding-bottom: ${transformValueUnit(props.paddingBottom)}` : ''
@@ -96,6 +139,9 @@ onPageScroll((e) => {
96
139
  position: fixed;
97
140
  top: 0;
98
141
  left: 0;
142
+ }
143
+
144
+ .full-screen-swiper {
99
145
  :deep(.wd-swiper, uni-swiper, .uni-swiper-wrapper, .uni-swiper-wrapper, .lcb-banner-block) {
100
146
  width: 100% !important;
101
147
  height: 100% !important;
@@ -2,7 +2,11 @@ import { ActionView } from 'action'
2
2
  import { LcbBlockProps } from '../lcb-block/types'
3
3
 
4
4
  export interface LcbBannerProps extends LcbBlockProps {
5
- items?: Partial<ActionView>[]
5
+ items?: Partial<
6
+ ActionView & {
7
+ maskBgColor?: string
8
+ }
9
+ >[]
6
10
  imageWidth?: number
7
11
  /** 风格 1.平铺 2.卡片 */
8
12
  styleGroup?: 1 | 2
@@ -38,6 +42,7 @@ export interface LcbBannerProps extends LcbBlockProps {
38
42
  paddingBottom?: number
39
43
  /** 指示器底部距离 */
40
44
  indicatorBottom?: number
45
+ indicatorTop?: number
41
46
  snapToEdge?: boolean
42
47
  // 图片之间距离
43
48
  itemPadding?: number
@@ -52,4 +57,10 @@ export interface LcbBannerProps extends LcbBlockProps {
52
57
  slidingStyle?: 1 | 2
53
58
  maskBgColor?: string
54
59
  fullScreenBackground?: boolean
60
+ titleColor?: string
61
+ titleFontSize?: number
62
+ titleFontWeight?: number
63
+ titleTop?: number
64
+ titleLeft?: number
65
+ showTitle?: boolean
55
66
  }
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <lcb-block v-bind="$props">
2
+ <lcb-block v-bind="$props" custom-class="pointer-events-none">
3
3
  <wd-gap
4
4
  :height="transformValueUnit(height)"
5
5
  :safe-area-bottom="safeAreaBottom"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tplc/business",
3
- "version": "0.4.171",
3
+ "version": "0.4.173",
4
4
  "keywords": [
5
5
  "业务组件"
6
6
  ],
@@ -6,6 +6,11 @@ declare const _default: import('vue').DefineComponent<
6
6
  styleGroup: number
7
7
  radius: number
8
8
  slidingStyle: number
9
+ titleColor: string
10
+ titleFontSize: number
11
+ titleTop: number
12
+ titleLeft: number
13
+ fontWeight: number
9
14
  }
10
15
  >,
11
16
  {},
@@ -25,14 +30,24 @@ declare const _default: import('vue').DefineComponent<
25
30
  styleGroup: number
26
31
  radius: number
27
32
  slidingStyle: number
33
+ titleColor: string
34
+ titleFontSize: number
35
+ titleTop: number
36
+ titleLeft: number
37
+ fontWeight: number
28
38
  }
29
39
  >
30
40
  >
31
41
  >,
32
42
  {
33
43
  radius: number
44
+ fontWeight: number
34
45
  styleGroup: 1 | 2
35
46
  slidingStyle: 1 | 2
47
+ titleColor: string
48
+ titleFontSize: number
49
+ titleTop: number
50
+ titleLeft: number
36
51
  },
37
52
  {}
38
53
  >
@@ -1,7 +1,11 @@
1
1
  import { ActionView } from 'action'
2
2
  import { LcbBlockProps } from '../lcb-block/types'
3
3
  export interface LcbBannerProps extends LcbBlockProps {
4
- items?: Partial<ActionView>[]
4
+ items?: Partial<
5
+ ActionView & {
6
+ maskBgColor?: string
7
+ }
8
+ >[]
5
9
  imageWidth?: number
6
10
  /** 风格 1.平铺 2.卡片 */
7
11
  styleGroup?: 1 | 2
@@ -37,6 +41,7 @@ export interface LcbBannerProps extends LcbBlockProps {
37
41
  paddingBottom?: number
38
42
  /** 指示器底部距离 */
39
43
  indicatorBottom?: number
44
+ indicatorTop?: number
40
45
  snapToEdge?: boolean
41
46
  itemPadding?: number
42
47
  /** 图片圆角 */
@@ -49,4 +54,10 @@ export interface LcbBannerProps extends LcbBlockProps {
49
54
  slidingStyle?: 1 | 2
50
55
  maskBgColor?: string
51
56
  fullScreenBackground?: boolean
57
+ titleColor?: string
58
+ titleFontSize?: number
59
+ titleFontWeight?: number
60
+ titleTop?: number
61
+ titleLeft?: number
62
+ showTitle?: boolean
52
63
  }