@tplc/business 0.3.60 → 0.3.62
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 +20 -0
- package/components/lcb-filter-grid/lcb-filter-grid.vue +78 -0
- package/components/lcb-filter-grid/types.ts +17 -0
- package/components/lcb-home-search/lcb-home-search.vue +0 -1
- package/components/lcb-list/lcb-list.vue +2 -2
- package/components/lcb-nav/Title/index.vue +13 -7
- package/components/lcb-nav/lcb-nav.vue +6 -2
- package/components/lcb-nav/types.ts +2 -0
- package/components/lcb-product/lcb-product.vue +59 -16
- package/components/lcb-product/types.ts +3 -1
- package/components/lcb-product-item/components/ItemValue.vue +1 -1
- package/components/lcb-tabs/components/Tabs/index.vue +38 -0
- package/components/lcb-tabs/lcb-tabs.vue +22 -0
- package/components/lcb-tabs/types.ts +10 -0
- package/global.d.ts +2 -0
- package/package.json +2 -2
- package/types/components/lcb-filter-grid/lcb-filter-grid.vue.d.ts +73 -0
- package/types/components/lcb-filter-grid/types.d.ts +16 -0
- package/types/components/lcb-list/lcb-list.vue.d.ts +1 -1
- package/types/components/lcb-nav/types.d.ts +2 -0
- package/types/components/lcb-product/lcb-product.vue.d.ts +3 -0
- package/types/components/lcb-product/types.d.ts +3 -1
- package/types/components/lcb-tabs/components/Tabs/index.vue.d.ts +42 -0
- package/types/components/lcb-tabs/lcb-tabs.vue.d.ts +42 -0
- package/types/components/lcb-tabs/types.d.ts +9 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
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.3.62](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.1.62...v0.3.62) (2025-02-27)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### ✨ Features | 新功能
|
|
9
|
+
|
|
10
|
+
* calendar 支持 withCell ([c8c21ad](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/c8c21adaf5c1bb402f34c99a04b7a2ee39b12563))
|
|
11
|
+
* product 支持 request ([3e708e0](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/3e708e02e9ce504b699357a4e04852be9140f515))
|
|
12
|
+
* product 支持刷新 ([39bfec8](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/39bfec829996bee60c12ae8e9c6d58c076b7123a))
|
|
13
|
+
* 支持grid ([ee2b8fb](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/ee2b8fbff8bbaabd6120d1b91b7c54545c7ae552))
|
|
14
|
+
* 新增tabs ([dcf9d11](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/dcf9d1152525a3f4a000725029e4fb90ab5be43f))
|
|
15
|
+
* 暂时提交block ([27f9e53](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/27f9e5304a7a47187109b2c860d82a81f3434d58))
|
|
16
|
+
* 还差数据跳转 ([70b6f24](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/70b6f248e7b74fdaae87480112e19a4c1eb13f46))
|
|
17
|
+
|
|
18
|
+
### [0.3.61](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.3.60...v0.3.61) (2025-02-22)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### ✨ Features | 新功能
|
|
22
|
+
|
|
23
|
+
* 修改整体字体大小 ([80a7abb](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/commit/80a7abb1e670a2bb191d9d0175fcc87423c5ed40))
|
|
24
|
+
|
|
5
25
|
### [0.3.60](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.3.59...v0.3.60) (2025-02-22)
|
|
6
26
|
|
|
7
27
|
### [0.3.59](http://gitlab888.30jia.com.cn/bhBank/zero-code-pro/compare/v0.3.58...v0.3.59) (2025-02-22)
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<view
|
|
3
|
+
class="grid"
|
|
4
|
+
:style="{
|
|
5
|
+
'grid-template-columns': `repeat(${cols}, minmax(0, 1fr))`,
|
|
6
|
+
'grid-gap': transformValueUnit(gap),
|
|
7
|
+
gap: transformValueUnit(gap),
|
|
8
|
+
margin: `0 ${transformValueUnit(marginHorizontal)}`,
|
|
9
|
+
}"
|
|
10
|
+
>
|
|
11
|
+
<view
|
|
12
|
+
v-for="(item, index) in items"
|
|
13
|
+
:key="index"
|
|
14
|
+
class="flex justify-center items-center overflow-hidden box-border overflow-hidden w-full transition"
|
|
15
|
+
@click="handleClick(index)"
|
|
16
|
+
:style="{
|
|
17
|
+
borderRadius: transformValueUnit(radius),
|
|
18
|
+
padding: `${transformValueUnit(textPV)} ${transformValueUnit(textPH)}`,
|
|
19
|
+
backgroundColor: current === index ? themeColor : textBgColor,
|
|
20
|
+
boxShadow:
|
|
21
|
+
shadowColor && shadowSize
|
|
22
|
+
? `${shadowColor} 0px ${shadowSize}rpx ${blurSize}rpx 0px `
|
|
23
|
+
: '',
|
|
24
|
+
border: borderColor && current !== index ? `1px solid ${borderColor}` : '',
|
|
25
|
+
backgroundImage: `url(${item.url})`,
|
|
26
|
+
backgroundSize: 'cover',
|
|
27
|
+
backgroundRepeat: 'no-repeat',
|
|
28
|
+
height: transformValueUnit(height),
|
|
29
|
+
'border-radius': transformValueUnit(radius),
|
|
30
|
+
textAlign,
|
|
31
|
+
color: current === index ? '#fff' : color,
|
|
32
|
+
fontSize: transformValueUnit(fontSize),
|
|
33
|
+
}"
|
|
34
|
+
>
|
|
35
|
+
{{ item.title }}
|
|
36
|
+
</view>
|
|
37
|
+
</view>
|
|
38
|
+
</template>
|
|
39
|
+
|
|
40
|
+
<script setup lang="ts">
|
|
41
|
+
import { LcbFilterGridProps } from './types'
|
|
42
|
+
import { transformValueUnit } from '../../utils/transform'
|
|
43
|
+
import { inject, Ref, ref } from 'vue'
|
|
44
|
+
import { FORM_KEY } from '../../constants'
|
|
45
|
+
defineOptions({
|
|
46
|
+
name: 'LcbFilterGrid',
|
|
47
|
+
options: {
|
|
48
|
+
addGlobalClass: true,
|
|
49
|
+
virtualHost: true,
|
|
50
|
+
styleIsolation: 'shared',
|
|
51
|
+
},
|
|
52
|
+
})
|
|
53
|
+
const themeColor = inject('theme-color', '#3875FF')
|
|
54
|
+
const form = inject<Ref<Record<string, any>>>(FORM_KEY)
|
|
55
|
+
const props = withDefaults(defineProps<LcbFilterGridProps>(), {
|
|
56
|
+
marginHorizontal: 24,
|
|
57
|
+
height: 100,
|
|
58
|
+
cols: 2,
|
|
59
|
+
gap: 16,
|
|
60
|
+
textAlign: 'center',
|
|
61
|
+
imgRadius: 8,
|
|
62
|
+
fontSize: 28,
|
|
63
|
+
})
|
|
64
|
+
const current = ref(-1)
|
|
65
|
+
const handleClick = (index: number) => {
|
|
66
|
+
current.value = index === current.value ? -1 : index
|
|
67
|
+
try {
|
|
68
|
+
const params = JSON.parse(props.items?.[index]?.name)
|
|
69
|
+
form!.value = {
|
|
70
|
+
...form!.value,
|
|
71
|
+
...params,
|
|
72
|
+
}
|
|
73
|
+
} catch (error) {
|
|
74
|
+
console.error(error)
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
</script>
|
|
78
|
+
<style lang="scss" scoped></style>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { LcbBlockProps } from '../lcb-block/types'
|
|
2
|
+
import { ActionView } from 'action'
|
|
3
|
+
export interface LcbFilterGridProps extends LcbBlockProps {
|
|
4
|
+
items: {
|
|
5
|
+
name: string
|
|
6
|
+
title: string
|
|
7
|
+
url?: string
|
|
8
|
+
}[]
|
|
9
|
+
height?: number
|
|
10
|
+
cols?: number
|
|
11
|
+
gap?: number
|
|
12
|
+
textAlign?: 'left' | 'center' | 'right'
|
|
13
|
+
textBgColor?: string
|
|
14
|
+
textPH?: number
|
|
15
|
+
textPV?: number
|
|
16
|
+
borderColor?: string
|
|
17
|
+
}
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
<slot name="list" :items="items" v-if="$slots.list" />
|
|
35
35
|
<template v-else>
|
|
36
36
|
<lcb-product
|
|
37
|
-
v-bind="{ ...$props, ...attrs
|
|
37
|
+
v-bind="{ ...$props, ...attrs }"
|
|
38
38
|
:items="items"
|
|
39
39
|
filterList
|
|
40
40
|
ref="productRef"
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
</template>
|
|
46
46
|
</lcb-product>
|
|
47
47
|
<lcb-product
|
|
48
|
-
v-bind="{ ...$props, ...attrs
|
|
48
|
+
v-bind="{ ...$props, ...attrs }"
|
|
49
49
|
filterList
|
|
50
50
|
:items="items"
|
|
51
51
|
ref="productRef"
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<view
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
<view
|
|
3
|
+
:style="{
|
|
4
|
+
opacity,
|
|
5
|
+
}"
|
|
6
|
+
>
|
|
7
|
+
<view class="titleContainer" v-if="titleMode === 'text'">
|
|
8
|
+
<view class="images mr-2" v-if="logoImg">
|
|
9
|
+
<img :src="logoImg" />
|
|
10
|
+
</view>
|
|
11
|
+
<view class="title">{{ title }}</view>
|
|
12
|
+
</view>
|
|
13
|
+
<view class="images" v-else>
|
|
14
|
+
<img :src="typographyTextBackground" />
|
|
5
15
|
</view>
|
|
6
|
-
<view class="title">{{ title }}</view>
|
|
7
|
-
</view>
|
|
8
|
-
<view class="images" v-else>
|
|
9
|
-
<img :src="typographyTextBackground" />
|
|
10
16
|
</view>
|
|
11
17
|
</template>
|
|
12
18
|
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
left
|
|
68
68
|
v-if="styleGroup === 2 && titleLocation === 'left'"
|
|
69
69
|
/>
|
|
70
|
-
<Title v-bind="titleProps" v-else-if="topStyle !== 2" />
|
|
70
|
+
<Title v-bind="titleProps" v-else-if="topStyle !== 2" :opacity="navbarBgOpacity" />
|
|
71
71
|
</view>
|
|
72
72
|
</view>
|
|
73
73
|
<!-- 中间布局 -->
|
|
@@ -77,7 +77,11 @@
|
|
|
77
77
|
:back="canBack"
|
|
78
78
|
:link="searchLink"
|
|
79
79
|
/>
|
|
80
|
-
<Title
|
|
80
|
+
<Title
|
|
81
|
+
v-bind="titleProps"
|
|
82
|
+
v-else-if="styleGroup === 2 || titleLocation === 'center'"
|
|
83
|
+
:opacity="navbarBgOpacity"
|
|
84
|
+
/>
|
|
81
85
|
</view>
|
|
82
86
|
<view
|
|
83
87
|
class="navbar-right gap-3"
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import { ref, useAttrs, watch, watchEffect } from 'vue'
|
|
2
|
+
import { inject, Ref, ref, useAttrs, watch, watchEffect } from 'vue'
|
|
3
3
|
import UWaterfall from 'uview-plus/components/u-waterfall/u-waterfall.vue'
|
|
4
4
|
import { LcbProductProps } from './types'
|
|
5
5
|
import { transformValueUnit } from '../../utils/transform'
|
|
6
6
|
import { calculateImageHeight } from '../../utils/utils'
|
|
7
7
|
import { isH5 } from '@tplc/wot/components/common/util'
|
|
8
|
+
import { FORM_KEY } from '../../constants'
|
|
8
9
|
|
|
9
10
|
const uWaterfallRef = ref()
|
|
10
11
|
defineOptions({
|
|
@@ -25,8 +26,10 @@ const props = withDefaults(defineProps<LcbProductProps>(), {
|
|
|
25
26
|
column: 2,
|
|
26
27
|
paddingHorizontal: 24,
|
|
27
28
|
paddingVertical: 24,
|
|
29
|
+
sourceMode: 1,
|
|
28
30
|
})
|
|
29
31
|
const renderList = ref<Record<string, any>[]>([])
|
|
32
|
+
const form = inject<Ref<Record<string, any>>>(FORM_KEY)
|
|
30
33
|
const screenWidth = isH5 ? window.innerWidth : uni.getWindowInfo().screenWidth
|
|
31
34
|
watchEffect(() => {
|
|
32
35
|
if (!props.filterList) return
|
|
@@ -35,27 +38,34 @@ watchEffect(() => {
|
|
|
35
38
|
defineSlots<{
|
|
36
39
|
item(props: { item: any }): any
|
|
37
40
|
}>()
|
|
38
|
-
watch(
|
|
39
|
-
() => props.form,
|
|
40
|
-
() => {
|
|
41
|
-
if (props.listType === 'waterfall') {
|
|
42
|
-
renderList.value = []
|
|
43
|
-
uWaterfallRef.value?.clear?.()
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
{ deep: true },
|
|
47
|
-
)
|
|
48
41
|
const getData = async () => {
|
|
42
|
+
/** 如果是list里面嵌套就不处理 */
|
|
49
43
|
if (props.filterList) return
|
|
50
|
-
if (props.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
44
|
+
if (props.listType === 'waterfall') {
|
|
45
|
+
renderList.value = []
|
|
46
|
+
uWaterfallRef.value?.clear?.()
|
|
47
|
+
}
|
|
48
|
+
let requestParams = {}
|
|
49
|
+
try {
|
|
50
|
+
requestParams = JSON.parse(props.requestParams ?? '{}')
|
|
51
|
+
} catch (error) {
|
|
52
|
+
console.error(error)
|
|
53
|
+
}
|
|
54
|
+
/** 如果是列表模式 */
|
|
55
|
+
if (props.items?.length && props.sourceMode === 1) {
|
|
55
56
|
const { data } = await uni.$lcb.http.post('/productInfo/filteredPage', {
|
|
56
57
|
productIdList: props.items.map((item) => item.productId),
|
|
57
58
|
productType: props.items[0].productType,
|
|
58
59
|
listType: props.listType,
|
|
60
|
+
...requestParams,
|
|
61
|
+
})
|
|
62
|
+
renderList.value = data as Record<string, any>[]
|
|
63
|
+
/** 如果是请求模式 */
|
|
64
|
+
} else if (props.requestUrl && props.sourceMode === 2) {
|
|
65
|
+
const { data } = await uni.$lcb.http.post(props.requestUrl, {
|
|
66
|
+
listType: props.listType,
|
|
67
|
+
...requestParams,
|
|
68
|
+
...form!.value,
|
|
59
69
|
})
|
|
60
70
|
renderList.value = data as Record<string, any>[]
|
|
61
71
|
} else {
|
|
@@ -63,10 +73,43 @@ const getData = async () => {
|
|
|
63
73
|
uWaterfallRef.value?.clear?.()
|
|
64
74
|
}
|
|
65
75
|
}
|
|
76
|
+
watch(
|
|
77
|
+
() => form!.value,
|
|
78
|
+
() => {
|
|
79
|
+
if (props.listType === 'waterfall') {
|
|
80
|
+
renderList.value = []
|
|
81
|
+
uWaterfallRef.value?.clear?.()
|
|
82
|
+
}
|
|
83
|
+
/** 如果是请求模式 */
|
|
84
|
+
if (props.sourceMode === 2) {
|
|
85
|
+
getData()
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
{ deep: true },
|
|
89
|
+
)
|
|
90
|
+
watch(
|
|
91
|
+
() => props.requestUrl,
|
|
92
|
+
() => {
|
|
93
|
+
/** 如果是请求模式 */
|
|
94
|
+
if (props.sourceMode === 2) {
|
|
95
|
+
getData()
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
immediate: true,
|
|
100
|
+
},
|
|
101
|
+
)
|
|
102
|
+
watch(
|
|
103
|
+
() => props.requestParams,
|
|
104
|
+
() => {
|
|
105
|
+
getData()
|
|
106
|
+
},
|
|
107
|
+
)
|
|
66
108
|
|
|
67
109
|
watch(
|
|
68
110
|
() => props.items,
|
|
69
111
|
(newValue, oldValue) => {
|
|
112
|
+
if (props.sourceMode === 2) return
|
|
70
113
|
if (
|
|
71
114
|
newValue?.map((item) => item.productId).join(',') !==
|
|
72
115
|
oldValue?.map((item) => item.productId).join(',')
|
|
@@ -16,7 +16,9 @@ export interface LcbProductProps extends LcbBlockProps {
|
|
|
16
16
|
productId: string
|
|
17
17
|
[key: string]: any
|
|
18
18
|
}[]
|
|
19
|
-
|
|
19
|
+
sourceMode?: 1 | 2 // 数据源模式 1 列表 2 请求
|
|
20
|
+
requestUrl?: string
|
|
21
|
+
requestParams?: string
|
|
20
22
|
layoutType?: 'vertical' | 'horizontal' // 布局方式
|
|
21
23
|
titleLineClamp?: number
|
|
22
24
|
coverImgStyle?: Record<string, any>
|
|
@@ -167,7 +167,7 @@ const value = computed(() => {
|
|
|
167
167
|
|
|
168
168
|
<slot :value="value" v-if="prop === 'scoreAvg'" name="scoreAvg">
|
|
169
169
|
<view :class="`px-1.5 rounded bg-primary text-3 text-white ${className}`" :style="style">
|
|
170
|
-
{{ value }}
|
|
170
|
+
{{ value.toFixed(1) }}
|
|
171
171
|
</view>
|
|
172
172
|
</slot>
|
|
173
173
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<view class="w-100vw">
|
|
3
|
+
<lcb-block v-bind="$props">
|
|
4
|
+
<wd-tabs custom-class="!bg-transparent" @change="handleChange">
|
|
5
|
+
<wd-tab v-for="tab in items" :key="tab.name" :title="tab.title" :name="tab.name" />
|
|
6
|
+
</wd-tabs>
|
|
7
|
+
</lcb-block>
|
|
8
|
+
</view>
|
|
9
|
+
</template>
|
|
10
|
+
|
|
11
|
+
<script setup lang="ts">
|
|
12
|
+
import { FORM_KEY } from '../../../../constants'
|
|
13
|
+
import { inject, Ref, watch } from 'vue'
|
|
14
|
+
import { LcbTabsProps } from '../../types'
|
|
15
|
+
defineOptions({
|
|
16
|
+
name: 'LcbTabsItem',
|
|
17
|
+
options: {
|
|
18
|
+
addGlobalClass: true,
|
|
19
|
+
virtualHost: true,
|
|
20
|
+
styleIsolation: 'shared',
|
|
21
|
+
},
|
|
22
|
+
})
|
|
23
|
+
const form = inject<Ref<Record<string, any>>>(FORM_KEY)
|
|
24
|
+
withDefaults(defineProps<LcbTabsProps>(), {})
|
|
25
|
+
const handleChange = (e: { name: string }) => {
|
|
26
|
+
try {
|
|
27
|
+
const params = JSON.parse(e.name)
|
|
28
|
+
form!.value = {
|
|
29
|
+
...form!.value,
|
|
30
|
+
...params,
|
|
31
|
+
}
|
|
32
|
+
} catch (error) {
|
|
33
|
+
console.error(error)
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
</script>
|
|
37
|
+
|
|
38
|
+
<style lang="scss" scoped></style>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<wd-sticky v-if="sticky">
|
|
3
|
+
<Tabs v-bind="$props" />
|
|
4
|
+
</wd-sticky>
|
|
5
|
+
<Tabs v-else v-bind="$props" />
|
|
6
|
+
</template>
|
|
7
|
+
|
|
8
|
+
<script setup lang="ts">
|
|
9
|
+
import { LcbTabsProps } from './types'
|
|
10
|
+
import Tabs from './components/Tabs/index.vue'
|
|
11
|
+
defineOptions({
|
|
12
|
+
name: 'LcbTabs',
|
|
13
|
+
options: {
|
|
14
|
+
addGlobalClass: true,
|
|
15
|
+
virtualHost: true,
|
|
16
|
+
styleIsolation: 'shared',
|
|
17
|
+
},
|
|
18
|
+
})
|
|
19
|
+
withDefaults(defineProps<LcbTabsProps>(), {})
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<style lang="scss" scoped></style>
|
package/global.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ declare module 'vue' {
|
|
|
14
14
|
'lcb-city-select': (typeof import('@tplc/business/components/lcb-city-select/lcb-city-select.vue'))['default']
|
|
15
15
|
'lcb-dynamic-data': (typeof import('@tplc/business/components/lcb-dynamic-data/lcb-dynamic-data.vue'))['default']
|
|
16
16
|
'lcb-fab': (typeof import('@tplc/business/components/lcb-fab/lcb-fab.vue'))['default']
|
|
17
|
+
'lcb-filter-grid': (typeof import('@tplc/business/components/lcb-filter-grid/lcb-filter-grid.vue'))['default']
|
|
17
18
|
'lcb-gap': (typeof import('@tplc/business/components/lcb-gap/lcb-gap.vue'))['default']
|
|
18
19
|
'lcb-grid': (typeof import('@tplc/business/components/lcb-grid/lcb-grid.vue'))['default']
|
|
19
20
|
'lcb-home-search': (typeof import('@tplc/business/components/lcb-home-search/lcb-home-search.vue'))['default']
|
|
@@ -29,6 +30,7 @@ declare module 'vue' {
|
|
|
29
30
|
'lcb-product-item': (typeof import('@tplc/business/components/lcb-product-item/lcb-product-item.vue'))['default']
|
|
30
31
|
'lcb-rich-text': (typeof import('@tplc/business/components/lcb-rich-text/lcb-rich-text.vue'))['default']
|
|
31
32
|
'lcb-swiper': (typeof import('@tplc/business/components/lcb-swiper/lcb-swiper.vue'))['default']
|
|
33
|
+
'lcb-tabs': (typeof import('@tplc/business/components/lcb-tabs/lcb-tabs.vue'))['default']
|
|
32
34
|
'lcb-tags': (typeof import('@tplc/business/components/lcb-tags/lcb-tags.vue'))['default']
|
|
33
35
|
'lcb-text': (typeof import('@tplc/business/components/lcb-text/lcb-text.vue'))['default']
|
|
34
36
|
'lcb-title': (typeof import('@tplc/business/components/lcb-title/lcb-title.vue'))['default']
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tplc/business",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.62",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"业务组件"
|
|
6
6
|
],
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
},
|
|
12
12
|
"peerDependencies": {
|
|
13
13
|
"vue": ">=3.2.47",
|
|
14
|
-
"@tplc/wot": "0.1.
|
|
14
|
+
"@tplc/wot": "0.1.62"
|
|
15
15
|
},
|
|
16
16
|
"engines": {
|
|
17
17
|
"node": ">=18",
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { LcbFilterGridProps } from './types'
|
|
2
|
+
declare const _default: import('vue').DefineComponent<
|
|
3
|
+
__VLS_WithDefaults<
|
|
4
|
+
__VLS_TypePropsToOption<LcbFilterGridProps>,
|
|
5
|
+
{
|
|
6
|
+
marginHorizontal: number
|
|
7
|
+
height: number
|
|
8
|
+
cols: number
|
|
9
|
+
gap: number
|
|
10
|
+
textAlign: string
|
|
11
|
+
imgRadius: number
|
|
12
|
+
fontSize: number
|
|
13
|
+
}
|
|
14
|
+
>,
|
|
15
|
+
{},
|
|
16
|
+
unknown,
|
|
17
|
+
{},
|
|
18
|
+
{},
|
|
19
|
+
import('vue').ComponentOptionsMixin,
|
|
20
|
+
import('vue').ComponentOptionsMixin,
|
|
21
|
+
{},
|
|
22
|
+
string,
|
|
23
|
+
import('vue').PublicProps,
|
|
24
|
+
Readonly<
|
|
25
|
+
import('vue').ExtractPropTypes<
|
|
26
|
+
__VLS_WithDefaults<
|
|
27
|
+
__VLS_TypePropsToOption<LcbFilterGridProps>,
|
|
28
|
+
{
|
|
29
|
+
marginHorizontal: number
|
|
30
|
+
height: number
|
|
31
|
+
cols: number
|
|
32
|
+
gap: number
|
|
33
|
+
textAlign: string
|
|
34
|
+
imgRadius: number
|
|
35
|
+
fontSize: number
|
|
36
|
+
}
|
|
37
|
+
>
|
|
38
|
+
>
|
|
39
|
+
>,
|
|
40
|
+
{
|
|
41
|
+
height: number
|
|
42
|
+
marginHorizontal: number
|
|
43
|
+
fontSize: number
|
|
44
|
+
textAlign: 'left' | 'center' | 'right'
|
|
45
|
+
cols: number
|
|
46
|
+
gap: number
|
|
47
|
+
},
|
|
48
|
+
{}
|
|
49
|
+
>
|
|
50
|
+
export default _default
|
|
51
|
+
type __VLS_WithDefaults<P, D> = {
|
|
52
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D
|
|
53
|
+
? __VLS_Prettify<
|
|
54
|
+
P[K] & {
|
|
55
|
+
default: D[K]
|
|
56
|
+
}
|
|
57
|
+
>
|
|
58
|
+
: P[K]
|
|
59
|
+
}
|
|
60
|
+
type __VLS_Prettify<T> = {
|
|
61
|
+
[K in keyof T]: T[K]
|
|
62
|
+
} & {}
|
|
63
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T
|
|
64
|
+
type __VLS_TypePropsToOption<T> = {
|
|
65
|
+
[K in keyof T]-?: {} extends Pick<T, K>
|
|
66
|
+
? {
|
|
67
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>
|
|
68
|
+
}
|
|
69
|
+
: {
|
|
70
|
+
type: import('vue').PropType<T[K]>
|
|
71
|
+
required: true
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { LcbBlockProps } from '../lcb-block/types'
|
|
2
|
+
export interface LcbFilterGridProps extends LcbBlockProps {
|
|
3
|
+
items: {
|
|
4
|
+
name: string
|
|
5
|
+
title: string
|
|
6
|
+
url?: string
|
|
7
|
+
}[]
|
|
8
|
+
height?: number
|
|
9
|
+
cols?: number
|
|
10
|
+
gap?: number
|
|
11
|
+
textAlign?: 'left' | 'center' | 'right'
|
|
12
|
+
textBgColor?: string
|
|
13
|
+
textPH?: number
|
|
14
|
+
textPV?: number
|
|
15
|
+
borderColor?: string
|
|
16
|
+
}
|
|
@@ -48,12 +48,12 @@ declare const __VLS_component: import('vue').DefineComponent<
|
|
|
48
48
|
textAlign: 'left' | 'center' | 'right'
|
|
49
49
|
imageWidth: number
|
|
50
50
|
borderRadius: number
|
|
51
|
+
border: boolean
|
|
51
52
|
imageHeight: number
|
|
52
53
|
listType: 'list' | 'horizontal' | 'grid' | 'waterfall'
|
|
53
54
|
pageFilterType: string
|
|
54
55
|
pageListProps: import('./components/FilterList/type').PageListProps
|
|
55
56
|
styleMode: 'default' | 'plain'
|
|
56
|
-
border: boolean
|
|
57
57
|
titleLineClamp: number
|
|
58
58
|
isSticky: boolean
|
|
59
59
|
layoutType: 'vertical' | 'horizontal'
|
|
@@ -15,6 +15,7 @@ declare const __VLS_component: import('vue').DefineComponent<
|
|
|
15
15
|
column: number
|
|
16
16
|
paddingHorizontal: number
|
|
17
17
|
paddingVertical: number
|
|
18
|
+
sourceMode: number
|
|
18
19
|
}
|
|
19
20
|
>,
|
|
20
21
|
{
|
|
@@ -40,6 +41,7 @@ declare const __VLS_component: import('vue').DefineComponent<
|
|
|
40
41
|
column: number
|
|
41
42
|
paddingHorizontal: number
|
|
42
43
|
paddingVertical: number
|
|
44
|
+
sourceMode: number
|
|
43
45
|
}
|
|
44
46
|
>
|
|
45
47
|
>
|
|
@@ -52,6 +54,7 @@ declare const __VLS_component: import('vue').DefineComponent<
|
|
|
52
54
|
column: number
|
|
53
55
|
listType: 'list' | 'horizontal' | 'grid' | 'waterfall'
|
|
54
56
|
titleLineClamp: number
|
|
57
|
+
sourceMode: 1 | 2
|
|
55
58
|
},
|
|
56
59
|
{}
|
|
57
60
|
>
|
|
@@ -14,7 +14,9 @@ export interface LcbProductProps extends LcbBlockProps {
|
|
|
14
14
|
productId: string
|
|
15
15
|
[key: string]: any
|
|
16
16
|
}[]
|
|
17
|
-
|
|
17
|
+
sourceMode?: 1 | 2
|
|
18
|
+
requestUrl?: string
|
|
19
|
+
requestParams?: string
|
|
18
20
|
layoutType?: 'vertical' | 'horizontal'
|
|
19
21
|
titleLineClamp?: number
|
|
20
22
|
coverImgStyle?: Record<string, any>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { LcbTabsProps } from '../../types'
|
|
2
|
+
declare const _default: import('vue').DefineComponent<
|
|
3
|
+
__VLS_WithDefaults<__VLS_TypePropsToOption<LcbTabsProps>, {}>,
|
|
4
|
+
{},
|
|
5
|
+
unknown,
|
|
6
|
+
{},
|
|
7
|
+
{},
|
|
8
|
+
import('vue').ComponentOptionsMixin,
|
|
9
|
+
import('vue').ComponentOptionsMixin,
|
|
10
|
+
{},
|
|
11
|
+
string,
|
|
12
|
+
import('vue').PublicProps,
|
|
13
|
+
Readonly<
|
|
14
|
+
import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<LcbTabsProps>, {}>>
|
|
15
|
+
>,
|
|
16
|
+
{},
|
|
17
|
+
{}
|
|
18
|
+
>
|
|
19
|
+
export default _default
|
|
20
|
+
type __VLS_WithDefaults<P, D> = {
|
|
21
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D
|
|
22
|
+
? __VLS_Prettify<
|
|
23
|
+
P[K] & {
|
|
24
|
+
default: D[K]
|
|
25
|
+
}
|
|
26
|
+
>
|
|
27
|
+
: P[K]
|
|
28
|
+
}
|
|
29
|
+
type __VLS_Prettify<T> = {
|
|
30
|
+
[K in keyof T]: T[K]
|
|
31
|
+
} & {}
|
|
32
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T
|
|
33
|
+
type __VLS_TypePropsToOption<T> = {
|
|
34
|
+
[K in keyof T]-?: {} extends Pick<T, K>
|
|
35
|
+
? {
|
|
36
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>
|
|
37
|
+
}
|
|
38
|
+
: {
|
|
39
|
+
type: import('vue').PropType<T[K]>
|
|
40
|
+
required: true
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { LcbTabsProps } from './types'
|
|
2
|
+
declare const _default: import('vue').DefineComponent<
|
|
3
|
+
__VLS_WithDefaults<__VLS_TypePropsToOption<LcbTabsProps>, {}>,
|
|
4
|
+
{},
|
|
5
|
+
unknown,
|
|
6
|
+
{},
|
|
7
|
+
{},
|
|
8
|
+
import('vue').ComponentOptionsMixin,
|
|
9
|
+
import('vue').ComponentOptionsMixin,
|
|
10
|
+
{},
|
|
11
|
+
string,
|
|
12
|
+
import('vue').PublicProps,
|
|
13
|
+
Readonly<
|
|
14
|
+
import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<LcbTabsProps>, {}>>
|
|
15
|
+
>,
|
|
16
|
+
{},
|
|
17
|
+
{}
|
|
18
|
+
>
|
|
19
|
+
export default _default
|
|
20
|
+
type __VLS_WithDefaults<P, D> = {
|
|
21
|
+
[K in keyof Pick<P, keyof P>]: K extends keyof D
|
|
22
|
+
? __VLS_Prettify<
|
|
23
|
+
P[K] & {
|
|
24
|
+
default: D[K]
|
|
25
|
+
}
|
|
26
|
+
>
|
|
27
|
+
: P[K]
|
|
28
|
+
}
|
|
29
|
+
type __VLS_Prettify<T> = {
|
|
30
|
+
[K in keyof T]: T[K]
|
|
31
|
+
} & {}
|
|
32
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T
|
|
33
|
+
type __VLS_TypePropsToOption<T> = {
|
|
34
|
+
[K in keyof T]-?: {} extends Pick<T, K>
|
|
35
|
+
? {
|
|
36
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>
|
|
37
|
+
}
|
|
38
|
+
: {
|
|
39
|
+
type: import('vue').PropType<T[K]>
|
|
40
|
+
required: true
|
|
41
|
+
}
|
|
42
|
+
}
|